diff --git a/src/main/fragment/mos6502-common/vbsaa_gt_vbsz1_then_la1.asm b/src/main/fragment/mos6502-common/vbsaa_gt_vbsz1_then_la1.asm new file mode 100644 index 000000000..b86993823 --- /dev/null +++ b/src/main/fragment/mos6502-common/vbsaa_gt_vbsz1_then_la1.asm @@ -0,0 +1,8 @@ +sec +sbc {z1} +beq !e+ +bvc !+ +eor #$80 +!: +bpl {la1} +!e: \ No newline at end of file diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index d584a5020..afcc828de 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -41,13 +41,18 @@ public class TestPrograms { } @Test - public void testCircleChars() throws IOException, URISyntaxException { - compileAndCompare("circlechars.c"); + public void testPolygon() throws IOException, URISyntaxException { + compileAndCompare("complex/polygon/polygon.c"); } @Test - public void testPolygon() throws IOException, URISyntaxException { - compileAndCompare("complex/polygon/polygon.c"); + public void testPlus4Walk() throws IOException, URISyntaxException { + compileAndCompare("examples/plus4walk/plus4walk.c"); + } + + @Test + public void testCircleChars() throws IOException, URISyntaxException { + compileAndCompare("circlechars.c"); } @Test diff --git a/src/test/kc/complex/polygon/polygon.c b/src/test/kc/complex/polygon/polygon.c index e6ff11c57..e622f2109 100644 --- a/src/test/kc/complex/polygon/polygon.c +++ b/src/test/kc/complex/polygon/polygon.c @@ -34,7 +34,7 @@ char volatile canvas_show_flag = 0; // SIN/COS tables char align(0x100) SINTAB[0x140] = kickasm {{ - .fill $200, 63 + 63*sin(i*2*PI/$100) + .fill $200, round(63 + 63*sin(i*2*PI/$100)) }}; char* COSTAB = SINTAB+0x40; @@ -64,7 +64,7 @@ void main() { // Set text color textcolor(WHITE); - char p0_idx = 0xf0; + char p0_idx = 0xb5; char p1_idx = p0_idx+15; char p2_idx = p0_idx+170; @@ -103,8 +103,8 @@ void main() { canvas_show_flag = 1; // Read and display cycles clock_t cyclecount = clock()-CLOCKS_PER_INIT; - gotoxy(0,24); - printf("frame: %02x cycles: %6lu", p0_idx, cyclecount); + //gotoxy(0,24); + //printf("frame: %02x cycles: %6lu", p0_idx, cyclecount); //printf("(%02x,%02x)-(%02x,%02x)", x0, y0, x1, y1); } } @@ -127,7 +127,7 @@ void setup_irq() { // Interrupt Routine 1: Just above last text line. interrupt(kernel_min) void irq_bottom_1() { // Change border color - VICII->BORDER_COLOR = WHITE; + VICII->BORDER_COLOR = DARK_GREY; // Show the cycle counter VICII->MEMORY = toD018(CONSOLE, PETSCII); // Acknowledge the IRQ @@ -144,6 +144,8 @@ interrupt(kernel_keyboard) void irq_bottom_2() { // Show the current canvas (unless a key is being pressed) if(!kbhit()) { VICII->MEMORY = canvas_show_memory; + } else { + VICII->MEMORY = toD018(SCREEN, LINE_BUFFER); } canvas_show_flag = 0; // Acknowledge the IRQ @@ -162,39 +164,57 @@ void line(char* canvas, char x1, char y1, char x2, char y2) { char dy = abs_u8(y2-y1); char sx = sgn_u8(x2-x1); char sy = sgn_u8(y2-y1); + // The sign of the x-difference determines if this is a line at the top of the face + // being filled or a line at the bottom of the face. Because the points are organized in a clockwise + // fashion any line pointing right is filled below the line and any line pointing left is filled above if(sx==0xff) { - // The sign of the x-difference determines if this is a line at the top of the face - // being filled or a line at the bottom of the face. Because the points are organized in a clockwise - // fashion any line pointing right is filled below the line and any line pointing left is filled above - // If this line is pointing left then move it down one pixel to ensure the fill is stopped correctly + // This is a line at the bottom of the face - move it 1 pixel down to stop the fill correctly y++; y2++; - } + } if(dx > dy) { - // X is the driver - plot every X using bresenham + // Flat slope - X is the driver - plot every X using bresenham char e = dx/2; - do { + do { plot(x, y); x += sx; e += dy; - if(dx < e) { + if(e>dx) { y += sy; e -= dx; } } while (x != x2); plot(x, y); } else { - // Y is the driver - only plot one plot per X - char e = dy/2; - plot(x, y); - do { - y += sy; - e += dx; - if(dydy) { + plot(x, y-sy); + x += sx; + e -= dy; + } + } while (y != y2); + plot(x, y); + } } } @@ -217,6 +237,7 @@ void eorfill(char* line_buffer, char* canvas) { char* fill_column = canvas; for(char x=0;x<16;x++) { char eor = line_column[0]; + fill_column[0] = eor; for(char y=1;y<16*8;y++) { eor ^= line_column[y]; fill_column[y] = eor; diff --git a/src/test/kc/examples/plus4walk/plus4.ld b/src/test/kc/examples/plus4walk/plus4.ld new file mode 100644 index 000000000..7e2af5568 --- /dev/null +++ b/src/test/kc/examples/plus4walk/plus4.ld @@ -0,0 +1,9 @@ +.file [name="%O.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$1001] +.segmentdef Code [start=$1010] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(%E) +.segment Code + diff --git a/src/test/kc/examples/plus4walk/plus4walk.c b/src/test/kc/examples/plus4walk/plus4walk.c new file mode 100644 index 000000000..37193f8e2 --- /dev/null +++ b/src/test/kc/examples/plus4walk/plus4walk.c @@ -0,0 +1,48 @@ +// Random walk with color fading for Commodore Plus/4 / C16 +#pragma link("plus4.ld") + +#include +#include + +char * const SCREEN = 0x0c00; +char * const COLORRAM = 0x0800; + +char * const BGCOLOR = 0xff19; +char * const BORDERCOLOR = 0xff15; +char * const RASTER = 0xff1d; + +char FADE[16] = { 0x02, 0x12, 0x22, 0x32, 0x42, 0x52, 0x62, 0x72, 0x76, 0x66, 0x56, 0x46, 0x36, 0x26, 0x16, 0x06 }; +char COUNT[1000]; + +void main() { + memset(SCREEN, 0xa0, 1000); + memset(COLORRAM, 0, 1000); + memset(COUNT, 0, 1000); + *BORDERCOLOR = 0; + *BGCOLOR = 0; + char x=20, y=12; + while(1) { + unsigned int offset = (unsigned int)y*40+x; + char cnt = ++*(COUNT+offset); + *(COLORRAM+offset) = FADE[cnt&0xf]; + char rnd = >rand(); + if(rnd & 0x80) { + if(rnd& 0x40) { + x++; + if(x==40) x=39; + } else { + x--; + if(x==0xff) x=0; + } + } else { + if(rnd & 0x40) { + y++; + if(y==25) y=24; + } else { + y--; + if(y==0xff) y=0; + } + } + while(*RASTER!=0xff) {} + } +} \ No newline at end of file diff --git a/src/test/ref/complex/polygon/polygon.asm b/src/test/ref/complex/polygon/polygon.asm index 5f592597a..df59070f4 100644 --- a/src/test/ref/complex/polygon/polygon.asm +++ b/src/test/ref/complex/polygon/polygon.asm @@ -20,12 +20,7 @@ .const BLACK = 0 .const WHITE = 1 .const RED = 2 - // Clock cycles used to start & read the cycle clock by calling clock_start() and clock() once. Can be subtracted when calculating the number of cycles used by a routine. - // To make precise cycle measurements interrupts and the display must be disabled so neither steals any cycles from the code. - .const CLOCKS_PER_INIT = $12 - // The default text color - .const CONIO_TEXTCOLOR_DEFAULT = $e - .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const DARK_GREY = $b .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f .const OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 @@ -37,7 +32,6 @@ .const OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 .const OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c // The VIC-II MOS 6567/6569 .label VICII = $d000 // Color Ram @@ -50,13 +44,6 @@ .label CIA2_TIMER_AB = $dd04 // The vector used when the KERNAL serves IRQ interrupts .label KERNEL_IRQ = $314 - // The screen width - // The screen height - // The screen bytes - // The text screen address - .label CONIO_SCREEN_TEXT = $400 - // The color screen address - .label CONIO_SCREEN_COLORS = $d800 // CIA#1 Port A: keyboard matrix columns and joystick #2 .label CONIO_CIA1_PORT_A = $dc00 // CIA#1 Port B: keyboard matrix rows and joystick #1. @@ -73,37 +60,9 @@ // The default charset address .label PETSCII = $1000 .label COSTAB = SINTAB+$40 - .label conio_cursor_x = $13 - .label conio_cursor_y = $14 - .label conio_cursor_text = $15 - .label conio_cursor_color = $17 - .label conio_textcolor = $19 - .label canvas_show_memory = $1a - .label canvas_show_flag = $1b + .label canvas_show_memory = $11 + .label canvas_show_flag = $12 __bbegin: - // conio_cursor_x = 0 - // The current cursor x-position - lda #0 - sta.z conio_cursor_x - // conio_cursor_y = 0 - // The current cursor y-position - sta.z conio_cursor_y - // conio_cursor_text = CONIO_SCREEN_TEXT - // The current cursor address - lda #CONIO_SCREEN_TEXT - sta.z conio_cursor_text+1 - // conio_cursor_color = CONIO_SCREEN_COLORS - // The current cursor address - lda #CONIO_SCREEN_COLORS - sta.z conio_cursor_color+1 - // conio_textcolor = CONIO_TEXTCOLOR_DEFAULT - // The current text color - lda #CONIO_TEXTCOLOR_DEFAULT - sta.z conio_textcolor // canvas_show_memory = toD018(SCREEN, CANVAS2) // The current canvas being rendered to the screen - in D018 format. lda #toD0181_return @@ -118,23 +77,21 @@ __bbegin: main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS1)/4&$f .const toD0182_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .label __18 = $b - .label cols = 2 + .label cols = 3 // Setup 16x16 canvas for rendering - .label screen = 4 - .label y = $13 - .label x0 = $1c - .label y0 = $1d - .label x1 = $f - .label y1 = $1e - .label x2 = $f - .label y2 = $1f - .label p0_idx = 6 - .label p1_idx = 7 - .label p2_idx = 8 + .label screen = 5 + .label y = 2 + .label x0 = $13 + .label y0 = $14 + .label x1 = $c + .label y1 = $15 + .label x2 = $c + .label y2 = $16 + .label p0_idx = 7 + .label p1_idx = 8 + .label p2_idx = 9 // The current canvas being rendered to - .label canvas = 9 - .label cyclecount = $b + .label canvas = $a // memset(CONSOLE, ' ', 40*25) // Clear the console ldx #' ' @@ -196,17 +153,17 @@ main: { // Set-up the raster IRQ jsr setup_irq // textcolor(WHITE) - // Set text color + // Set text color jsr textcolor lda #CANVAS1 sta.z canvas+1 - lda #$f0+$aa + lda #$b5+$aa sta.z p2_idx - lda #$f0+$f + lda #$b5+$f sta.z p1_idx - lda #$f0 + lda #$b5 sta.z p0_idx __b8: // clock_start() @@ -315,39 +272,6 @@ main: { sta.z canvas_show_flag // clock() jsr clock - // cyclecount = clock()-CLOCKS_PER_INIT - lda.z cyclecount - sec - sbc #CLOCKS_PER_INIT - sta.z cyclecount+1 - lda.z cyclecount+2 - sbc #>$10 - sta.z cyclecount+2 - lda.z cyclecount+3 - sbc #>CLOCKS_PER_INIT>>$10 - sta.z cyclecount+3 - // gotoxy(0,24) - jsr gotoxy - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - lda #s - sta.z cputs.s+1 - jsr cputs - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - ldx.z p0_idx - jsr printf_uchar - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - lda #s1 - sta.z cputs.s+1 - jsr cputs - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - jsr printf_ulong jmp __b8 __b2: ldx.z y @@ -388,859 +312,19 @@ main: { // for(char x=0;x<16;x++) iny jmp __b4 - s: .text "frame: " - .byte 0 - s1: .text " cycles: " - .byte 0 -} -// Print an unsigned int using a specific format -// printf_ulong(dword zp($b) uvalue) -printf_ulong: { - .const format_min_length = 6 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = $b - // printf_buffer.sign = format.sign_always?'+':0 - // Handle any sign - lda #0 - sta printf_buffer - // ultoa(uvalue, printf_buffer.digits, format.radix) - // Format number into buffer - jsr ultoa - // printf_number_buffer(printf_buffer, format) - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // Print using format - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - ldx #format_min_length - jsr printf_number_buffer - // } - rts -} -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($1f) buffer_sign, byte register(X) format_min_length, byte zp($1d) format_justify_left, byte zp($1e) format_zero_padding, byte zp($f) format_upper_case) -printf_number_buffer: { - .label __19 = $31 - .label buffer_sign = $1f - .label padding = $10 - .label format_zero_padding = $1e - .label format_justify_left = $1d - .label format_upper_case = $f - // if(format.min_length) - cpx #0 - beq __b6 - // strlen(buffer.digits) - jsr strlen - // strlen(buffer.digits) - // len = (signed char)strlen(buffer.digits) - // There is a minimum length - work out the padding - lda.z __19 - tay - // if(buffer.sign) - lda #0 - cmp.z buffer_sign - beq __b13 - // len++; - iny - __b13: - // padding = (signed char)format.min_length - len - txa - sty.z $ff - sec - sbc.z $ff - sta.z padding - // if(padding<0) - cmp #0 - bpl __b1 - __b6: - lda #0 - sta.z padding - __b1: - // if(!format.justify_left && !format.zero_padding && padding) - lda #0 - cmp.z format_justify_left - bne __b2 - cmp.z format_zero_padding - bne __b2 - cmp.z padding - bne __b8 - jmp __b2 - __b8: - // printf_padding(' ',(char)padding) - lda.z padding - sta.z printf_padding.length - lda #' ' - sta.z printf_padding.pad - jsr printf_padding - __b2: - // if(buffer.sign) - lda #0 - cmp.z buffer_sign - beq __b3 - // cputc(buffer.sign) - lda.z buffer_sign - jsr cputc - __b3: - // if(format.zero_padding && padding) - lda #0 - cmp.z format_zero_padding - beq __b4 - cmp.z padding - bne __b10 - jmp __b4 - __b10: - // printf_padding('0',(char)padding) - lda.z padding - sta.z printf_padding.length - lda #'0' - sta.z printf_padding.pad - jsr printf_padding - __b4: - // if(format.upper_case) - lda #0 - cmp.z format_upper_case - beq __b5 - // strupr(buffer.digits) - jsr strupr - __b5: - // cputs(buffer.digits) - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z cputs.s+1 - jsr cputs - // if(format.justify_left && !format.zero_padding && padding) - lda #0 - cmp.z format_justify_left - beq __breturn - cmp.z format_zero_padding - bne __breturn - cmp.z padding - bne __b12 - rts - __b12: - // printf_padding(' ',(char)padding) - lda.z padding - sta.z printf_padding.length - lda #' ' - sta.z printf_padding.pad - jsr printf_padding - __breturn: - // } - rts -} -// Print a padding char a number of times -// printf_padding(byte zp($12) pad, byte zp($11) length) -printf_padding: { - .label i = $1c - .label length = $11 - .label pad = $12 - lda #0 - sta.z i - __b1: - // for(char i=0;iCONIO_SCREEN_TEXT - sta.z memcpy.destination+1 - lda #CONIO_SCREEN_TEXT+$28 - sta.z memcpy.source+1 - jsr memcpy - // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - lda #CONIO_SCREEN_COLORS - sta.z memcpy.destination+1 - lda #CONIO_SCREEN_COLORS+$28 - sta.z memcpy.source+1 - jsr memcpy - // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - ldx #' ' - lda #CONIO_SCREEN_TEXT+$19*$28-$28 - sta.z memset.str+1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - ldx.z conio_textcolor - lda #CONIO_SCREEN_COLORS+$19*$28-$28 - sta.z memset.str+1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - // conio_cursor_text-CONIO_WIDTH - lda.z __7 - sec - sbc #<$28 - sta.z __7 - lda.z __7+1 - sbc #>$28 - sta.z __7+1 - // conio_cursor_text = conio_cursor_text-CONIO_WIDTH - // conio_cursor_color-CONIO_WIDTH - lda.z __8 - sec - sbc #<$28 - sta.z __8 - lda.z __8+1 - sbc #>$28 - sta.z __8+1 - // conio_cursor_color = conio_cursor_color-CONIO_WIDTH - // conio_cursor_y--; - dec.z conio_cursor_y - __breturn: - // } - rts -} -// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($31) str, byte register(X) c, word zp($28) num) -memset: { - .label end = $28 - .label dst = $31 - .label num = $28 - .label str = $31 - // if(num>0) - lda.z num - bne !+ - lda.z num+1 - beq __breturn - !: - // end = (char*)str + num - lda.z end - clc - adc.z str - sta.z end - lda.z end+1 - adc.z str+1 - sta.z end+1 - __b2: - // for(char* dst = str; dst!=end; dst++) - lda.z dst+1 - cmp.z end+1 - bne __b3 - lda.z dst - cmp.z end - bne __b3 - __breturn: - // } - rts - __b3: - // *dst = c - txa - ldy #0 - sta (dst),y - // for(char* dst = str; dst!=end; dst++) - inc.z dst - bne !+ - inc.z dst+1 - !: - jmp __b2 -} -// 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. -// memcpy(void* zp($31) destination, void* zp($28) source) -memcpy: { - .label src_end = $2b - .label dst = $31 - .label src = $28 - .label source = $28 - .label destination = $31 - // src_end = (char*)source+num - 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 - __b1: - // while(src!=src_end) - lda.z src+1 - cmp.z src_end+1 - bne __b2 - lda.z src - cmp.z src_end - bne __b2 - // } - rts - __b2: - // *dst++ = *src++ - ldy #0 - lda (src),y - sta (dst),y - // *dst++ = *src++; - inc.z dst - bne !+ - inc.z dst+1 - !: - inc.z src - bne !+ - inc.z src+1 - !: - jmp __b1 -} -// Output a NUL-terminated string at the current cursor position -// cputs(byte* zp($2e) s) -cputs: { - .label s = $2e - __b1: - // c=*s++ - ldy #0 - lda (s),y - // while(c=*s++) - inc.z s - bne !+ - inc.z s+1 - !: - cmp #0 - bne __b2 - // } - rts - __b2: - // cputc(c) - jsr cputc - jmp __b1 -} -// Converts a string to uppercase. -strupr: { - .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - .label src = $2e - lda #str - sta.z src+1 - __b1: - // while(*src) - ldy #0 - lda (src),y - cmp #0 - bne __b2 - // } - rts - __b2: - // toupper(*src) - ldy #0 - lda (src),y - jsr toupper - // *src = toupper(*src) - ldy #0 - sta (src),y - // src++; - inc.z src - bne !+ - inc.z src+1 - !: - jmp __b1 -} -// Convert lowercase alphabet to uppercase -// Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte register(A) ch) -toupper: { - // if(ch>='a' && ch<='z') - cmp #'a' - bcc __breturn - cmp #'z' - bcc __b1 - beq __b1 - rts - __b1: - // return ch + ('A'-'a'); - clc - adc #'A'-'a' - __breturn: - // } - rts -} -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($28) str) -strlen: { - .label len = $31 - .label str = $28 - .label return = $31 - lda #<0 - sta.z len - sta.z len+1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z str+1 - __b1: - // while(*str) - ldy #0 - lda (str),y - cmp #0 - bne __b2 - // } - rts - __b2: - // len++; - inc.z len - bne !+ - inc.z len+1 - !: - // str++; - inc.z str - bne !+ - inc.z str+1 - !: - jmp __b1 -} -// 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) -// ultoa(dword zp($b) value, byte* zp($28) buffer) -ultoa: { - .const max_digits = $a - .label digit_value = $20 - .label buffer = $28 - .label digit = $1d - .label value = $b - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - ldx #0 - txa - sta.z digit - __b1: - // for( char digit=0; digit= digit_value) - cpx #0 - bne __b5 - lda.z value+3 - cmp.z digit_value+3 - bcc !+ - bne __b5 - lda.z value+2 - cmp.z digit_value+2 - bcc !+ - bne __b5 - lda.z value+1 - cmp.z digit_value+1 - bcc !+ - bne __b5 - lda.z value - cmp.z digit_value - bcs __b5 - !: - __b4: - // for( char digit=0; digit= sub) - lda.z value+3 - cmp.z sub+3 - bcc !+ - bne __b2 - lda.z value+2 - cmp.z sub+2 - bcc !+ - bne __b2 - lda.z value+1 - cmp.z sub+1 - bcc !+ - bne __b2 - lda.z value - cmp.z sub - bcs __b2 - !: - // *buffer = DIGITS[digit] - lda DIGITS,x - ldy #0 - sta (buffer),y - // } - rts - __b2: - // digit++; - inx - // value -= sub - lda.z value - sec - sbc.z sub - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - lda.z value+2 - sbc.z sub+2 - sta.z value+2 - lda.z value+3 - sbc.z sub+3 - sta.z value+3 - jmp __b1 -} -// Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) -printf_uchar: { - .const format_min_length = 2 - .const format_justify_left = 0 - .const format_zero_padding = 1 - .const format_upper_case = 0 - // printf_buffer.sign = format.sign_always?'+':0 - // Handle any sign - lda #0 - sta printf_buffer - // uctoa(uvalue, printf_buffer.digits, format.radix) - // Format number into buffer - jsr uctoa - // printf_number_buffer(printf_buffer, format) - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // Print using format - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - ldx #format_min_length - jsr printf_number_buffer - // } - rts -} -// 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) -// uctoa(byte register(X) value, byte* zp($31) buffer) -uctoa: { - .const max_digits = 2 - .label digit_value = $24 - .label buffer = $31 - .label digit = $1e - .label started = $1f - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - lda #0 - sta.z started - sta.z digit - __b1: - // for( char digit=0; digit= digit_value) - lda #0 - cmp.z started - bne __b5 - cpx.z digit_value - bcs __b5 - __b4: - // for( char digit=0; digit= sub) - cpx.z sub - bcs __b2 - // *buffer = DIGITS[digit] - lda DIGITS,y - ldy #0 - sta (buffer),y - // } - rts - __b2: - // digit++; - iny - // value -= sub - txa - sec - sbc.z sub - tax - jmp __b1 -} -// Set the cursor to the specified position -gotoxy: { - .const x = 0 - .const y = $18 - .const offset = y*$28 - // conio_cursor_x = x - lda #x - sta.z conio_cursor_x - // conio_cursor_y = y - lda #y - sta.z conio_cursor_y - // conio_cursor_text = CONIO_SCREEN_TEXT + offset - lda #CONIO_SCREEN_TEXT+offset - sta.z conio_cursor_text+1 - // conio_cursor_color = CONIO_SCREEN_COLORS + offset - lda #CONIO_SCREEN_COLORS+offset - sta.z conio_cursor_color+1 - // } - rts } // Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). // This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() clock: { - .label return = $b - // 0xffffffff - *CIA2_TIMER_AB - lda #<$ffffffff - sec - sbc CIA2_TIMER_AB - sta.z return - lda #>$ffffffff - sbc CIA2_TIMER_AB+1 - sta.z return+1 - lda #<$ffffffff>>$10 - sbc CIA2_TIMER_AB+2 - sta.z return+2 - lda #>$ffffffff>>$10 - sbc CIA2_TIMER_AB+3 - sta.z return+3 // } rts } // EOR fill from the line buffer onto the canvas -// eorfill(byte* zp($17) canvas) +// eorfill(byte* zp($1f) canvas) eorfill: { - .label canvas = $17 - .label line_column = $15 - .label fill_column = $17 + .label canvas = $1f + .label line_column = $1c + .label fill_column = $1f lda #LINE_BUFFER @@ -1256,6 +340,8 @@ eorfill: { // eor = line_column[0] ldy #0 lda (line_column),y + // fill_column[0] = eor + sta (fill_column),y ldy #1 __b3: // for(char y=1;y<16*8;y++) @@ -1291,26 +377,28 @@ eorfill: { } // Draw a EOR friendly line between two points // Uses bresenham line drawing routine -// line(byte zp($11) x1, byte zp($12) y1, byte zp($f) x2, byte zp($10) y2) +// line(byte zp($f) x1, byte zp($10) y1, byte zp($c) x2, byte zp($d) y2) line: { - .label plot1___1 = $2a - .label plot2___1 = $2d - .label plot3___1 = $30 - .label x1 = $11 - .label y1 = $12 - .label x2 = $f - .label y2 = $10 - .label x = $11 - .label y = $12 - .label dx = $24 - .label dy = $25 - .label sx = $26 - .label sy = $27 - .label plot1_column = $28 - .label plot2_x = $11 - .label plot2_column = $2b - .label plot3_column = $2e - .label plot4_column = $31 + .label plot2___1 = $1e + .label plot5___1 = $27 + .label x1 = $f + .label y1 = $10 + .label x2 = $c + .label y2 = $d + .label x = $f + .label y = $10 + .label dx = $17 + .label dy = $18 + .label sx = $19 + .label sy = $1a + .label plot1_column = $21 + .label plot2_y = $1b + .label plot2_column = $1c + .label plot3_column = $1f + .label e1 = $e + .label plot4_column = $23 + .label plot5_column = $25 + .label plot6_column = $28 // abs_u8(x2-x1) lda.z x2 sec @@ -1355,34 +443,19 @@ line: { // if(dx > dy) lda.z dy cmp.z dx - bcc __b2 + bcs !__b2+ + jmp __b2 + !__b2: + // if(sx==sy) + // Steep slope - Y is the driver - only plot one plot per X + lda.z sx + cmp.z sy + beq plot1 // e = dy/2 + lda.z dy lsr tax - // x/8 - lda.z x - lsr - lsr - lsr - // column = plot_column[x/8] - asl - tay - lda plot_column,y - sta.z plot1_column - lda plot_column+1,y - sta.z plot1_column+1 - // x&7 - lda #7 - and.z x - sta.z plot1___1 - // column[y] |= plot_bit[x&7] - ldy.z y - lda (plot1_column),y - ldy.z plot1___1 - ora plot_bit,y - ldy.z y - sta (plot1_column),y - __b5: + __b6: // y += sy lda.z y clc @@ -1393,23 +466,18 @@ line: { clc adc.z dx tax - // if(dydy) lda.z dy stx.z $ff cmp.z $ff - bcs __b6 - // x += sx - lda.z plot2_x - clc - adc.z sx - sta.z plot2_x - // e -= dy - txa + bcs __b7 + // plot(x, y-sy) + lda.z y sec - sbc.z dy - tax + sbc.z sy + sta.z plot2_y // x/8 - lda.z plot2_x + lda.z x lsr lsr lsr @@ -1422,28 +490,30 @@ line: { sta.z plot2_column+1 // x&7 lda #7 - and.z plot2_x + and.z x sta.z plot2___1 // column[y] |= plot_bit[x&7] - ldy.z y + ldy.z plot2_y lda (plot2_column),y ldy.z plot2___1 ora plot_bit,y - ldy.z y + ldy.z plot2_y sta (plot2_column),y - __b6: + // x += sx + lda.z x + clc + adc.z sx + sta.z x + // e -= dy + txa + sec + sbc.z dy + tax + __b7: // while (y != y2) lda.z y cmp.z y2 - bne __b5 - // } - rts - __b2: - // e = dx/2 - lda.z dx - lsr - tax - __b8: + bne __b6 // x/8 lda.z x lsr @@ -1459,45 +529,73 @@ line: { // x&7 lda #7 and.z x - sta.z plot3___1 // column[y] |= plot_bit[x&7] ldy.z y + tax lda (plot3_column),y - ldy.z plot3___1 - ora plot_bit,y - ldy.z y + ora plot_bit,x sta (plot3_column),y + // } + rts + plot1: + // x/8 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + asl + tay + lda plot_column,y + sta.z plot1_column + lda plot_column+1,y + sta.z plot1_column+1 + // x&7 + lda #7 + and.z x + // column[y] |= plot_bit[x&7] + ldy.z y + tax + lda (plot1_column),y + ora plot_bit,x + sta (plot1_column),y + // if(dx==0) + lda.z dx + cmp #0 + bne __b9 + rts + __b9: + // e = dy/2 + lda.z dy + lsr + sta.z e1 + __b10: + // y += sy + lda.z y + clc + adc.z sy + sta.z y + // e += dx + lda.z e1 + clc + adc.z dx + sta.z e1 + // while(e<=dy) + lda.z dy + cmp.z e1 + bcs __b10 // x += sx lda.z x clc adc.z sx sta.z x - // e += dy - txa - clc - adc.z dy - tax - // if(dx < e) - lda.z dx - stx.z $ff - cmp.z $ff - bcs __b9 - // y += sy - tya - clc - adc.z sy - sta.z y - // e -= dx - txa + // e -= dy + lda.z e1 sec - sbc.z dx - tax - __b9: - // while (x != x2) - lda.z x - cmp.z x2 - bne __b8 + sbc.z dy + sta.z e1 // x/8 + lda.z x lsr lsr lsr @@ -1517,6 +615,90 @@ line: { lda (plot4_column),y ora plot_bit,x sta (plot4_column),y + // while (x != x2) + lda.z x + cmp.z x2 + bne __b10 + rts + __b2: + // e = dx/2 + lda.z dx + lsr + tax + plot5: + // x/8 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + asl + tay + lda plot_column,y + sta.z plot5_column + lda plot_column+1,y + sta.z plot5_column+1 + // x&7 + lda #7 + and.z x + sta.z plot5___1 + // column[y] |= plot_bit[x&7] + ldy.z y + lda (plot5_column),y + ldy.z plot5___1 + ora plot_bit,y + ldy.z y + sta (plot5_column),y + // x += sx + lda.z x + clc + adc.z sx + sta.z x + // e += dy + txa + clc + adc.z dy + tax + // if(e>dx) + lda.z dx + stx.z $ff + cmp.z $ff + bcs __b13 + // y += sy + tya + clc + adc.z sy + sta.z y + // e -= dx + txa + sec + sbc.z dx + tax + __b13: + // while (x != x2) + lda.z x + cmp.z x2 + bne plot5 + // x/8 + lsr + lsr + lsr + // column = plot_column[x/8] + asl + tay + lda plot_column,y + sta.z plot6_column + lda plot_column+1,y + sta.z plot6_column+1 + // x&7 + lda #7 + and.z x + // column[y] |= plot_bit[x&7] + ldy.z y + tax + lda (plot6_column),y + ora plot_bit,x + sta (plot6_column),y rts } // Get the sign of a 8-bit unsigned number treated as a signed number. @@ -1553,6 +735,50 @@ abs_u8: { // } rts } +// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// memset(void* zp($1f) str, byte register(X) c, word zp($1c) num) +memset: { + .label end = $1c + .label dst = $1f + .label num = $1c + .label str = $1f + // if(num>0) + lda.z num + bne !+ + lda.z num+1 + beq __breturn + !: + // end = (char*)str + num + lda.z end + clc + adc.z str + sta.z end + lda.z end+1 + adc.z str+1 + sta.z end+1 + __b2: + // for(char* dst = str; dst!=end; dst++) + lda.z dst+1 + cmp.z end+1 + bne __b3 + lda.z dst + cmp.z end + bne __b3 + __breturn: + // } + rts + __b3: + // *dst = c + txa + ldy #0 + sta (dst),y + // for(char* dst = str; dst!=end; dst++) + inc.z dst + bne !+ + inc.z dst+1 + !: + jmp __b2 +} // Reset & start the processor clock time. The value can be read using clock(). // This uses CIA #2 Timer A+B on the C64 clock_start: { @@ -1583,10 +809,6 @@ clock_start: { } // Set the color for text output. The old color setting is returned. textcolor: { - // conio_textcolor = color - lda #WHITE - sta.z conio_textcolor - // } rts } // Setup raster IRQ to change charset at different lines @@ -1622,6 +844,7 @@ setup_irq: { } // Interrupt Routine 2 irq_bottom_2: { + .const toD0181_return = (>(SCREEN&$3fff)*4)|(>LINE_BUFFER)/4&$f // VICII->BORDER_COLOR = BLACK // Change border color lda #BLACK @@ -1629,12 +852,13 @@ irq_bottom_2: { // kbhit() jsr kbhit // if(!kbhit()) + // Show the current canvas (unless a key is being pressed) cmp #0 - bne __b1 - // VICII->MEMORY = canvas_show_memory - lda.z canvas_show_memory + beq __b1 + // VICII->MEMORY = toD018(SCREEN, LINE_BUFFER) + lda #toD0181_return sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY - __b1: + __b2: // canvas_show_flag = 0 lda #0 sta.z canvas_show_flag @@ -1653,6 +877,11 @@ irq_bottom_2: { sta KERNEL_IRQ+1 // } jmp $ea31 + __b1: + // VICII->MEMORY = canvas_show_memory + lda.z canvas_show_memory + sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY + jmp __b2 } // Return true if there's a key waiting, return false if not kbhit: { @@ -1668,9 +897,9 @@ kbhit: { // Interrupt Routine 1: Just above last text line. irq_bottom_1: { .const toD0181_return = (>(CONSOLE&$3fff)*4)|(>PETSCII)/4&$f - // VICII->BORDER_COLOR = WHITE + // VICII->BORDER_COLOR = DARK_GREY // Change border color - lda #WHITE + lda #DARK_GREY sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->MEMORY = toD018(CONSOLE, PETSCII) // Show the cycle counter @@ -1692,20 +921,12 @@ irq_bottom_1: { // } jmp $ea81 } - // The digits used for numbers - DIGITS: .text "0123456789abcdef" - // Values of hexadecimal digits - RADIX_HEXADECIMAL_VALUES_CHAR: .byte $10 - // Values of decimal digits - RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a // SIN/COS tables .align $100 SINTAB: -.fill $200, 63 + 63*sin(i*2*PI/$100) +.fill $200, round(63 + 63*sin(i*2*PI/$100)) // Column offsets plot_column: .word LINE_BUFFER, LINE_BUFFER+1*$80, LINE_BUFFER+2*$80, LINE_BUFFER+3*$80, LINE_BUFFER+4*$80, LINE_BUFFER+5*$80, LINE_BUFFER+6*$80, LINE_BUFFER+7*$80, LINE_BUFFER+8*$80, LINE_BUFFER+9*$80, LINE_BUFFER+$a*$80, LINE_BUFFER+$b*$80, LINE_BUFFER+$c*$80, LINE_BUFFER+$d*$80, LINE_BUFFER+$e*$80, LINE_BUFFER+$f*$80 // The bits used for plotting a pixel plot_bit: .byte $80, $40, $20, $10, 8, 4, 2, 1 - // Buffer used for stringified number being printed - printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 diff --git a/src/test/ref/complex/polygon/polygon.cfg b/src/test/ref/complex/polygon/polygon.cfg index f61a0b4a8..31cbeb9d9 100644 --- a/src/test/ref/complex/polygon/polygon.cfg +++ b/src/test/ref/complex/polygon/polygon.cfg @@ -1,908 +1,473 @@ @begin: scope:[] from [0] phi() - to:@1 -@1: scope:[] from @begin - [1] (byte) conio_cursor_x ← (byte) 0 - [2] (byte) conio_cursor_y ← (byte) 0 - [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT - [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS - [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT to:toD0181 -toD0181: scope:[] from @1 - [6] phi() - to:@3 -@3: scope:[] from toD0181 - [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 - [8] (volatile byte) canvas_show_flag ← (byte) 0 +toD0181: scope:[] from @begin + [1] phi() to:@2 -@2: scope:[] from @3 - [9] phi() - [10] call main +@2: scope:[] from toD0181 + [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 + [3] (volatile byte) canvas_show_flag ← (byte) 0 + to:@1 +@1: scope:[] from @2 + [4] phi() + [5] call main to:@end -@end: scope:[] from @2 - [11] phi() +@end: scope:[] from @1 + [6] phi() (void()) main() -main: scope:[main] from @2 - [12] phi() - [13] call memset +main: scope:[main] from @1 + [7] phi() + [8] call memset to:main::@12 main::@12: scope:[main] from main - [14] phi() - [15] call memset + [9] phi() + [10] call memset to:main::@13 main::@13: scope:[main] from main::@12 - [16] phi() - [17] call memset + [11] phi() + [12] call memset to:main::@1 main::@1: scope:[main] from main::@13 main::@6 - [18] (byte*) main::screen#5 ← phi( main::@13/(const nomodify byte*) SCREEN+(byte) $c main::@6/(byte*) main::screen#1 ) - [18] (byte*) main::cols#5 ← phi( main::@13/(const nomodify byte*) COLS+(byte) $c main::@6/(byte*) main::cols#1 ) - [18] (byte) main::y#2 ← phi( main::@13/(byte) 0 main::@6/(byte) main::y#1 ) - [19] if((byte) main::y#2<(byte) $10) goto main::@2 + [13] (byte*) main::screen#5 ← phi( main::@13/(const nomodify byte*) SCREEN+(byte) $c main::@6/(byte*) main::screen#1 ) + [13] (byte*) main::cols#5 ← phi( main::@13/(const nomodify byte*) COLS+(byte) $c main::@6/(byte*) main::cols#1 ) + [13] (byte) main::y#2 ← phi( main::@13/(byte) 0 main::@6/(byte) main::y#1 ) + [14] if((byte) main::y#2<(byte) $10) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 - [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK - [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK - [22] call setup_irq + [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK + [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK + [17] call setup_irq to:main::@14 main::@14: scope:[main] from main::@3 - [23] phi() - [24] call textcolor + [18] phi() + [19] call textcolor to:main::@7 -main::@7: scope:[main] from main::@14 main::@26 - [25] (byte*) main::canvas#10 ← phi( main::@14/(const nomodify byte*) CANVAS1 main::@26/(byte*) main::canvas#24 ) - [25] (byte) main::p2_idx#2 ← phi( main::@14/(byte) $f0+(byte) $aa main::@26/(byte) main::p2_idx#1 ) - [25] (byte) main::p1_idx#2 ← phi( main::@14/(byte) $f0+(byte) $f main::@26/(byte) main::p1_idx#1 ) - [25] (byte) main::p0_idx#11 ← phi( main::@14/(byte) $f0 main::@26/(byte) main::p0_idx#1 ) +main::@7: scope:[main] from main::@14 main::@21 + [20] (byte*) main::canvas#10 ← phi( main::@14/(const nomodify byte*) CANVAS1 main::@21/(byte*) main::canvas#19 ) + [20] (byte) main::p2_idx#2 ← phi( main::@14/(byte) $b5+(byte) $aa main::@21/(byte) main::p2_idx#1 ) + [20] (byte) main::p1_idx#2 ← phi( main::@14/(byte) $b5+(byte) $f main::@21/(byte) main::p1_idx#1 ) + [20] (byte) main::p0_idx#2 ← phi( main::@14/(byte) $b5 main::@21/(byte) main::p0_idx#1 ) to:main::@8 main::@8: scope:[main] from main::@7 - [26] phi() - [27] call clock_start + [21] phi() + [22] call clock_start to:main::@15 main::@15: scope:[main] from main::@8 - [28] phi() - [29] call memset + [23] phi() + [24] call memset to:main::@16 main::@16: scope:[main] from main::@15 - [30] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#11) - [31] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#11) - [32] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) - [33] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) - [34] (byte) line::x1#0 ← (byte) main::x0#0 - [35] (byte) line::y1#0 ← (byte) main::y0#0 - [36] (byte) line::x2#0 ← (byte) main::x1#0 - [37] (byte) line::y2#0 ← (byte) main::y1#0 - [38] call line + [25] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2) + [26] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2) + [27] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) + [28] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) + [29] (byte) line::x1#0 ← (byte) main::x0#0 + [30] (byte) line::y1#0 ← (byte) main::y0#0 + [31] (byte) line::x2#0 ← (byte) main::x1#0 + [32] (byte) line::y2#0 ← (byte) main::y1#0 + [33] call line to:main::@17 main::@17: scope:[main] from main::@16 - [39] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) - [40] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) - [41] (byte) line::x1#1 ← (byte) main::x1#0 - [42] (byte) line::y1#1 ← (byte) main::y1#0 - [43] (byte) line::x2#1 ← (byte) main::x2#0 - [44] (byte) line::y2#1 ← (byte) main::y2#0 - [45] call line + [34] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) + [35] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) + [36] (byte) line::x1#1 ← (byte) main::x1#0 + [37] (byte) line::y1#1 ← (byte) main::y1#0 + [38] (byte) line::x2#1 ← (byte) main::x2#0 + [39] (byte) line::y2#1 ← (byte) main::y2#0 + [40] call line to:main::@18 main::@18: scope:[main] from main::@17 - [46] (byte) line::x1#2 ← (byte) main::x2#0 - [47] (byte) line::y1#2 ← (byte) main::y2#0 - [48] (byte) line::x2#2 ← (byte) main::x0#0 - [49] (byte) line::y2#2 ← (byte) main::y0#0 - [50] call line + [41] (byte) line::x1#2 ← (byte) main::x2#0 + [42] (byte) line::y1#2 ← (byte) main::y2#0 + [43] (byte) line::x2#2 ← (byte) main::x0#0 + [44] (byte) line::y2#2 ← (byte) main::y0#0 + [45] call line to:main::@19 main::@19: scope:[main] from main::@18 - [51] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#11 - [52] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 - [53] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 - [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED + [46] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#2 + [47] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 + [48] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 + [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED to:main::@9 main::@9: scope:[main] from main::@19 main::@9 - [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 + [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 to:main::@10 main::@10: scope:[main] from main::@9 - [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK - [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 - [58] call eorfill + [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK + [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 + [53] call eorfill to:main::@20 main::@20: scope:[main] from main::@10 - [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 + [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 to:main::toD0181 main::toD0181: scope:[main] from main::@20 - [60] phi() + [55] phi() to:main::toD0182 main::toD0182: scope:[main] from main::toD0181 - [61] phi() + [56] phi() to:main::@11 main::@11: scope:[main] from main::toD0182 - [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 - [63] (volatile byte) canvas_show_flag ← (byte) 1 - [64] call clock - [65] (dword) clock::return#2 ← (dword) clock::return#0 + [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 + [58] (volatile byte) canvas_show_flag ← (byte) 1 + [59] call clock to:main::@21 main::@21: scope:[main] from main::@11 - [66] (dword~) main::$18 ← (dword) clock::return#2 - [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT - [68] call gotoxy - to:main::@22 -main::@22: scope:[main] from main::@21 - [69] phi() - [70] call cputs - to:main::@23 -main::@23: scope:[main] from main::@22 - [71] (byte) printf_uchar::uvalue#0 ← (byte) main::p0_idx#1 - [72] call printf_uchar - to:main::@24 -main::@24: scope:[main] from main::@23 - [73] phi() - [74] call cputs - to:main::@25 -main::@25: scope:[main] from main::@24 - [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 - [76] call printf_ulong - to:main::@26 -main::@26: scope:[main] from main::@25 - [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 + [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 to:main::@7 main::@2: scope:[main] from main::@1 - [78] (byte) main::c#4 ← (byte) main::y#2 + [61] (byte) main::c#4 ← (byte) main::y#2 to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - [79] (byte) main::c#2 ← phi( main::@2/(byte) main::c#4 main::@5/(byte) main::c#1 ) - [79] (byte) main::x#2 ← phi( main::@2/(byte) 0 main::@5/(byte) main::x#1 ) - [80] if((byte) main::x#2<(byte) $10) goto main::@5 + [62] (byte) main::c#2 ← phi( main::@2/(byte) main::c#4 main::@5/(byte) main::c#1 ) + [62] (byte) main::x#2 ← phi( main::@2/(byte) 0 main::@5/(byte) main::x#1 ) + [63] if((byte) main::x#2<(byte) $10) goto main::@5 to:main::@6 main::@6: scope:[main] from main::@4 - [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 - [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 - [83] (byte) main::y#1 ← ++ (byte) main::y#2 + [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 + [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 + [66] (byte) main::y#1 ← ++ (byte) main::y#2 to:main::@1 main::@5: scope:[main] from main::@4 - [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE - [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 - [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 - [87] (byte) main::x#1 ← ++ (byte) main::x#2 + [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE + [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 + [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 + [70] (byte) main::x#1 ← ++ (byte) main::x#2 to:main::@4 -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from main::@25 - [88] phi() - to:printf_ulong::@1 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - [91] call ultoa - to:printf_ulong::@2 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 - [92] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [93] call printf_number_buffer - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 - [94] return - to:@return - -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_ulong::@2 - [95] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_upper_case#0 printf_ulong::@2/(const byte) printf_ulong::format_upper_case#0 ) - [95] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) - [95] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_zero_padding#0 printf_ulong::@2/(const byte) printf_ulong::format_zero_padding#0 ) - [95] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_justify_left#0 printf_ulong::@2/(const byte) printf_ulong::format_justify_left#0 ) - [95] (byte) printf_number_buffer::format_min_length#2 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_min_length#0 printf_ulong::@2/(const byte) printf_ulong::format_min_length#0 ) - [96] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 - to:printf_number_buffer::@6 -printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [97] phi() - [98] call strlen - [99] (word) strlen::return#2 ← (word) strlen::len#2 - to:printf_number_buffer::@14 -printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 - [102] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 - to:printf_number_buffer::@7 -printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [103] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 - to:printf_number_buffer::@13 -printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [104] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) - [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 - [106] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 - to:printf_number_buffer::@1 -printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [107] phi() - to:printf_number_buffer::@1 -printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [108] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) - [109] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@17 -printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [110] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@16 -printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [111] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 - to:printf_number_buffer::@2 -printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [112] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 - [113] call printf_padding - to:printf_number_buffer::@2 -printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 - to:printf_number_buffer::@9 -printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [115] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10 - [116] call cputc - to:printf_number_buffer::@3 -printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [117] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 - to:printf_number_buffer::@18 -printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [118] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 - to:printf_number_buffer::@4 -printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [119] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 - [120] call printf_padding - to:printf_number_buffer::@4 -printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [121] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 - to:printf_number_buffer::@11 -printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [122] phi() - [123] call strupr - to:printf_number_buffer::@5 -printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [124] phi() - [125] call cputs - to:printf_number_buffer::@15 -printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [126] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return - to:printf_number_buffer::@20 -printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [127] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return - to:printf_number_buffer::@19 -printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [128] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 - to:printf_number_buffer::@return -printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [129] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 - [130] call printf_padding - to:printf_number_buffer::@return -printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [131] return - to:@return - -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [132] (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) - [132] (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) - to:printf_padding::@1 -printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [133] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) - [134] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 - to:printf_padding::@return -printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - [135] return - to:@return -printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - [136] (byte) cputc::c#1 ← (byte) printf_padding::pad#5 - [137] call cputc - to:printf_padding::@3 -printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - [138] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 - to:printf_padding::@1 - -(void()) cputc((byte) cputc::c) -cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 - [139] (byte) cputc::c#3 ← phi( cputs::@2/(byte) cputc::c#0 printf_number_buffer::@9/(byte) cputc::c#2 printf_padding::@2/(byte) cputc::c#1 ) - [140] if((byte) cputc::c#3==(byte) ' -') goto cputc::@1 - to:cputc::@2 -cputc::@2: scope:[cputc] from cputc - [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 - [142] (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text - [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor - [144] (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color - [145] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x - [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return - to:cputc::@3 -cputc::@3: scope:[cputc] from cputc::@2 - [147] (byte) conio_cursor_x ← (byte) 0 - [148] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y - [149] call cscroll - to:cputc::@return -cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 - [150] return - to:@return -cputc::@1: scope:[cputc] from cputc - [151] phi() - [152] call cputln - to:cputc::@return - -(void()) cputln() -cputln: scope:[cputln] from cputc::@1 - [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x - [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 - [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 - [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 - [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 - [158] (byte) conio_cursor_x ← (byte) 0 - [159] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y - [160] call cscroll - to:cputln::@return -cputln::@return: scope:[cputln] from cputln - [161] return - to:@return - -(void()) cscroll() -cscroll: scope:[cscroll] from cputc::@3 cputln - [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return - to:cscroll::@1 -cscroll::@1: scope:[cscroll] from cscroll - [163] phi() - [164] call memcpy - to:cscroll::@2 -cscroll::@2: scope:[cscroll] from cscroll::@1 - [165] phi() - [166] call memcpy - to:cscroll::@3 -cscroll::@3: scope:[cscroll] from cscroll::@2 - [167] phi() - [168] call memset - to:cscroll::@4 -cscroll::@4: scope:[cscroll] from cscroll::@3 - [169] (byte) memset::c#1 ← (byte) conio_textcolor - [170] call memset - to:cscroll::@5 -cscroll::@5: scope:[cscroll] from cscroll::@4 - [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 - [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 - [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 - [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 - [175] (byte) conio_cursor_y ← -- (byte) conio_cursor_y - to:cscroll::@return -cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 - [176] return - to:@return - -(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) -memset: scope:[memset] from cscroll::@3 cscroll::@4 main main::@12 main::@13 main::@15 - [177] (byte) memset::c#8 ← phi( cscroll::@3/(byte) ' ' cscroll::@4/(byte) memset::c#1 main/(byte) ' ' main::@12/(byte) 0 main::@13/(const nomodify byte) BLACK main::@15/(byte) 0 ) - [177] (void*) memset::str#7 ← phi( cscroll::@3/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 cscroll::@4/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 main/(void*)(const nomodify byte*) CONSOLE main::@12/(void*)(const nomodify byte*) SCREEN main::@13/(void*)(const nomodify byte*) COLS main::@15/(void*)(const nomodify byte*) LINE_BUFFER ) - [177] (word) memset::num#6 ← phi( cscroll::@3/(byte) $28 cscroll::@4/(byte) $28 main/(word)(number) $28*(number) $19 main::@12/(word)(number) $28*(number) $19 main::@13/(word)(number) $28*(number) $19 main::@15/(word) $800 ) - [178] if((word) memset::num#6<=(byte) 0) goto memset::@return - to:memset::@1 -memset::@1: scope:[memset] from memset - [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 - [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 - to:memset::@2 -memset::@2: scope:[memset] from memset::@1 memset::@3 - [181] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) - [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 - to:memset::@return -memset::@return: scope:[memset] from memset memset::@2 - [183] return - to:@return -memset::@3: scope:[memset] from memset::@2 - [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 - [185] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 - to:memset::@2 - -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [186] (void*) memcpy::destination#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT cscroll::@2/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS ) - [186] (void*) memcpy::source#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 cscroll::@2/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 ) - [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $28 - [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 - [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 - to:memcpy::@1 -memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [190] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*) memcpy::dst#4 memcpy::@2/(byte*) memcpy::dst#1 ) - [190] (byte*) memcpy::src#2 ← phi( memcpy/(byte*) memcpy::src#4 memcpy::@2/(byte*) memcpy::src#1 ) - [191] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2 - to:memcpy::@return -memcpy::@return: scope:[memcpy] from memcpy::@1 - [192] return - to:@return -memcpy::@2: scope:[memcpy] from memcpy::@1 - [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) - [194] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - [195] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 - to:memcpy::@1 - -(void()) cputs((to_nomodify byte*) cputs::s) -cputs: scope:[cputs] from main::@22 main::@24 printf_number_buffer::@5 - [196] (to_nomodify byte*) cputs::s#5 ← phi( main::@22/(const byte*) main::s main::@24/(const byte*) main::s1 printf_number_buffer::@5/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - to:cputs::@1 -cputs::@1: scope:[cputs] from cputs cputs::@2 - [197] (to_nomodify byte*) cputs::s#4 ← phi( cputs/(to_nomodify byte*) cputs::s#5 cputs::@2/(to_nomodify byte*) cputs::s#0 ) - [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) - [199] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4 - [200] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 - to:cputs::@return -cputs::@return: scope:[cputs] from cputs::@1 - [201] return - to:@return -cputs::@2: scope:[cputs] from cputs::@1 - [202] (byte) cputc::c#0 ← (byte) cputs::c#1 - [203] call cputc - to:cputs::@1 - -(byte*()) strupr((byte*) strupr::str) -strupr: scope:[strupr] from printf_number_buffer::@11 - [204] phi() - to:strupr::@1 -strupr::@1: scope:[strupr] from strupr strupr::@3 - [205] (byte*) strupr::src#2 ← phi( strupr/(const byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) - [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 - to:strupr::@return -strupr::@return: scope:[strupr] from strupr::@1 - [207] return - to:@return -strupr::@2: scope:[strupr] from strupr::@1 - [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) - [209] call toupper - [210] (byte) toupper::return#3 ← (byte) toupper::return#2 - to:strupr::@3 -strupr::@3: scope:[strupr] from strupr::@2 - [211] (byte~) strupr::$0 ← (byte) toupper::return#3 - [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 - [213] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 - to:strupr::@1 - -(byte()) toupper((byte) toupper::ch) -toupper: scope:[toupper] from strupr::@2 - [214] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return - to:toupper::@2 -toupper::@2: scope:[toupper] from toupper - [215] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 - to:toupper::@return -toupper::@1: scope:[toupper] from toupper::@2 - [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' - to:toupper::@return -toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [217] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) - [218] return - to:@return - -(word()) strlen((byte*) strlen::str) -strlen: scope:[strlen] from printf_number_buffer::@6 - [219] phi() - to:strlen::@1 -strlen::@1: scope:[strlen] from strlen strlen::@2 - [220] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [220] (byte*) strlen::str#2 ← phi( strlen/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS strlen::@2/(byte*) strlen::str#0 ) - [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 - to:strlen::@return -strlen::@return: scope:[strlen] from strlen::@1 - [222] return - to:@return -strlen::@2: scope:[strlen] from strlen::@1 - [223] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [224] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 - to:strlen::@1 - -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -ultoa: scope:[ultoa] from printf_ulong::@1 - [225] phi() - to:ultoa::@1 -ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [226] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [226] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) - [226] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) - [226] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) - [227] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 - to:ultoa::@3 -ultoa::@3: scope:[ultoa] from ultoa::@1 - [228] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 - [229] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - [230] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 - [231] *((byte*) ultoa::buffer#3) ← (byte) 0 - to:ultoa::@return -ultoa::@return: scope:[ultoa] from ultoa::@3 - [232] return - to:@return -ultoa::@2: scope:[ultoa] from ultoa::@1 - [233] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 - [234] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) - [235] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 - to:ultoa::@7 -ultoa::@7: scope:[ultoa] from ultoa::@2 - [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 - to:ultoa::@4 -ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [237] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) - [237] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) - [237] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) - [238] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 - to:ultoa::@1 -ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - [242] call ultoa_append - [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 - to:ultoa::@6 -ultoa::@6: scope:[ultoa] from ultoa::@5 - [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - [245] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 - to:ultoa::@4 - -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -ultoa_append: scope:[ultoa_append] from ultoa::@5 - [246] phi() - to:ultoa_append::@1 -ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - [247] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - [247] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) - [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 - to:ultoa_append::@3 -ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) - to:ultoa_append::@return -ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [250] return - to:@return -ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [251] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 - to:ultoa_append::@1 - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from main::@23 - [253] phi() - to:printf_uchar::@1 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [255] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#0 - [256] call uctoa - to:printf_uchar::@2 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [257] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [258] call printf_number_buffer - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 - [259] return - to:@return - -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@1 - [260] phi() - to:uctoa::@1 -uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [261] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [261] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) - [261] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) - [261] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) - [262] if((byte) uctoa::digit#2<(const byte) uctoa::max_digits#2-(byte) 1) goto uctoa::@2 - to:uctoa::@3 -uctoa::@3: scope:[uctoa] from uctoa::@1 - [263] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [264] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [265] *((byte*) uctoa::buffer#3) ← (byte) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@3 - [266] return - to:@return -uctoa::@2: scope:[uctoa] from uctoa::@1 - [267] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) - [268] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 - to:uctoa::@7 -uctoa::@7: scope:[uctoa] from uctoa::@2 - [269] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 - to:uctoa::@4 -uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 - [270] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) - [270] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) - [270] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) - [271] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 - to:uctoa::@1 -uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 - [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [273] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [274] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [275] call uctoa_append - [276] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - to:uctoa::@6 -uctoa::@6: scope:[uctoa] from uctoa::@5 - [277] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [278] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 - to:uctoa::@4 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@5 - [279] phi() - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [280] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [280] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [281] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 - to:uctoa_append::@3 -uctoa_append::@3: scope:[uctoa_append] from uctoa_append::@1 - [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) - to:uctoa_append::@return -uctoa_append::@return: scope:[uctoa_append] from uctoa_append::@3 - [283] return - to:@return -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [284] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 - to:uctoa_append::@1 - -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -gotoxy: scope:[gotoxy] from main::@21 - [286] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy - [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 - [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 - [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 - [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 - to:gotoxy::@return -gotoxy::@return: scope:[gotoxy] from gotoxy::@1 - [291] return - to:@return - (dword()) clock() clock: scope:[clock] from main::@11 - [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) + [71] phi() to:clock::@return clock::@return: scope:[clock] from clock - [293] return + [72] return to:@return (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) eorfill: scope:[eorfill] from main::@10 - [294] phi() + [73] phi() to:eorfill::@1 eorfill::@1: scope:[eorfill] from eorfill eorfill::@5 - [295] (byte*) eorfill::fill_column#5 ← phi( eorfill/(byte*) eorfill::canvas#0 eorfill::@5/(byte*) eorfill::fill_column#1 ) - [295] (byte*) eorfill::line_column#2 ← phi( eorfill/(const nomodify byte*) LINE_BUFFER eorfill::@5/(byte*) eorfill::line_column#1 ) - [295] (byte) eorfill::x#2 ← phi( eorfill/(byte) 0 eorfill::@5/(byte) eorfill::x#1 ) - [296] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 + [74] (byte*) eorfill::fill_column#2 ← phi( eorfill/(byte*) eorfill::canvas#0 eorfill::@5/(byte*) eorfill::fill_column#1 ) + [74] (byte*) eorfill::line_column#2 ← phi( eorfill/(const nomodify byte*) LINE_BUFFER eorfill::@5/(byte*) eorfill::line_column#1 ) + [74] (byte) eorfill::x#2 ← phi( eorfill/(byte) 0 eorfill::@5/(byte) eorfill::x#1 ) + [75] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 to:eorfill::@return eorfill::@return: scope:[eorfill] from eorfill::@1 - [297] return + [76] return to:@return eorfill::@2: scope:[eorfill] from eorfill::@1 - [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) + [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) + [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 to:eorfill::@3 eorfill::@3: scope:[eorfill] from eorfill::@2 eorfill::@4 - [299] (byte) eorfill::eor#2 ← phi( eorfill::@2/(byte) eorfill::eor#0 eorfill::@4/(byte) eorfill::eor#1 ) - [299] (byte) eorfill::y#2 ← phi( eorfill::@2/(byte) 1 eorfill::@4/(byte) eorfill::y#1 ) - [300] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 + [79] (byte) eorfill::eor#2 ← phi( eorfill::@2/(byte) eorfill::eor#0 eorfill::@4/(byte) eorfill::eor#1 ) + [79] (byte) eorfill::y#2 ← phi( eorfill::@2/(byte) 1 eorfill::@4/(byte) eorfill::y#1 ) + [80] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 to:eorfill::@5 eorfill::@5: scope:[eorfill] from eorfill::@3 - [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 - [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 - [303] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 + [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 + [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 + [83] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 to:eorfill::@1 eorfill::@4: scope:[eorfill] from eorfill::@3 - [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) - [305] *((byte*) eorfill::fill_column#5 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 - [306] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 + [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) + [85] *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 + [86] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 to:eorfill::@3 (void()) line((byte*) line::canvas , (byte) line::x1 , (byte) line::y1 , (byte) line::x2 , (byte) line::y2) line: scope:[line] from main::@16 main::@17 main::@18 - [307] (byte) line::y2#10 ← phi( main::@16/(byte) line::y2#0 main::@17/(byte) line::y2#1 main::@18/(byte) line::y2#2 ) - [307] (byte) line::x2#11 ← phi( main::@16/(byte) line::x2#0 main::@17/(byte) line::x2#1 main::@18/(byte) line::x2#2 ) - [307] (byte) line::y#0 ← phi( main::@16/(byte) line::y1#0 main::@17/(byte) line::y1#1 main::@18/(byte) line::y1#2 ) - [307] (byte) line::x#0 ← phi( main::@16/(byte) line::x1#0 main::@17/(byte) line::x1#1 main::@18/(byte) line::x1#2 ) - [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 - [309] call abs_u8 - [310] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 - to:line::@12 -line::@12: scope:[line] from line - [311] (byte) line::dx#0 ← (byte) abs_u8::return#0 - [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 - [313] call abs_u8 - [314] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 - to:line::@13 -line::@13: scope:[line] from line::@12 - [315] (byte) line::dy#0 ← (byte) abs_u8::return#1 - [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 - [317] call sgn_u8 - [318] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 - to:line::@14 -line::@14: scope:[line] from line::@13 - [319] (byte) line::sx#0 ← (byte) sgn_u8::return#0 - [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 - [321] call sgn_u8 - [322] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 - to:line::@15 -line::@15: scope:[line] from line::@14 - [323] (byte) line::sy#0 ← (byte) sgn_u8::return#1 - [324] if((byte) line::sx#0!=(byte) $ff) goto line::@1 + [87] (byte) line::y2#10 ← phi( main::@16/(byte) line::y2#0 main::@17/(byte) line::y2#1 main::@18/(byte) line::y2#2 ) + [87] (byte) line::x2#15 ← phi( main::@16/(byte) line::x2#0 main::@17/(byte) line::x2#1 main::@18/(byte) line::x2#2 ) + [87] (byte) line::y#0 ← phi( main::@16/(byte) line::y1#0 main::@17/(byte) line::y1#1 main::@18/(byte) line::y1#2 ) + [87] (byte) line::x#0 ← phi( main::@16/(byte) line::x1#0 main::@17/(byte) line::x1#1 main::@18/(byte) line::x1#2 ) + [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 + [89] call abs_u8 + [90] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 + to:line::@19 +line::@19: scope:[line] from line + [91] (byte) line::dx#0 ← (byte) abs_u8::return#0 + [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 + [93] call abs_u8 + [94] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 + to:line::@20 +line::@20: scope:[line] from line::@19 + [95] (byte) line::dy#0 ← (byte) abs_u8::return#1 + [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 + [97] call sgn_u8 + [98] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 + to:line::@21 +line::@21: scope:[line] from line::@20 + [99] (byte) line::sx#0 ← (byte) sgn_u8::return#0 + [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 + [101] call sgn_u8 + [102] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 + to:line::@22 +line::@22: scope:[line] from line::@21 + [103] (byte) line::sy#0 ← (byte) sgn_u8::return#1 + [104] if((byte) line::sx#0!=(byte) $ff) goto line::@1 to:line::@3 -line::@3: scope:[line] from line::@15 - [325] (byte) line::y#1 ← ++ (byte) line::y#0 - [326] (byte) line::y2#3 ← ++ (byte) line::y2#10 +line::@3: scope:[line] from line::@22 + [105] (byte) line::y#1 ← ++ (byte) line::y#0 + [106] (byte) line::y2#3 ← ++ (byte) line::y2#10 to:line::@1 -line::@1: scope:[line] from line::@15 line::@3 - [327] (byte) line::y2#13 ← phi( line::@15/(byte) line::y2#10 line::@3/(byte) line::y2#3 ) - [327] (byte) line::y#13 ← phi( line::@15/(byte) line::y#0 line::@3/(byte) line::y#1 ) - [328] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 +line::@1: scope:[line] from line::@22 line::@3 + [107] (byte) line::y2#13 ← phi( line::@22/(byte) line::y2#10 line::@3/(byte) line::y2#3 ) + [107] (byte) line::y#17 ← phi( line::@22/(byte) line::y#0 line::@3/(byte) line::y#1 ) + [108] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 to:line::@4 line::@4: scope:[line] from line::@1 - [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 - to:line::plot1 -line::plot1: scope:[line] from line::@4 - [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 - [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 - [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) - [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 - [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) + [109] if((byte) line::sx#0==(byte) line::sy#0) goto line::plot1 to:line::@5 -line::@5: scope:[line] from line::@6 line::plot1 - [335] (byte) line::x#10 ← phi( line::@6/(byte) line::x#16 line::plot1/(byte) line::x#0 ) - [335] (byte) line::e#3 ← phi( line::@6/(byte) line::e#5 line::plot1/(byte) line::e#0 ) - [335] (byte) line::y#6 ← phi( line::@6/(byte) line::y#15 line::plot1/(byte) line::y#13 ) - [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 - [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 - [338] if((byte) line::dy#0>=(byte) line::e#1) goto line::@6 - to:line::@7 -line::@7: scope:[line] from line::@5 - [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 - [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 - to:line::plot2 -line::plot2: scope:[line] from line::@7 - [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 - [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 - [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) - [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 - [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) +line::@5: scope:[line] from line::@4 + [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 to:line::@6 -line::@6: scope:[line] from line::@5 line::plot2 - [346] (byte) line::x#16 ← phi( line::@5/(byte) line::x#10 line::plot2/(byte) line::plot2_x#0 ) - [346] (byte) line::e#5 ← phi( line::@5/(byte) line::e#1 line::plot2/(byte) line::e#2 ) - [347] if((byte) line::y#15!=(byte) line::y2#13) goto line::@5 - to:line::@return -line::@return: scope:[line] from line::@6 line::plot4 - [348] return - to:@return -line::@2: scope:[line] from line::@1 - [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 +line::@6: scope:[line] from line::@5 line::@7 + [111] (byte) line::x#15 ← phi( line::@5/(byte) line::x#0 line::@7/(byte) line::x#17 ) + [111] (byte) line::e#3 ← phi( line::@5/(byte) line::e#0 line::@7/(byte) line::e#5 ) + [111] (byte) line::y#7 ← phi( line::@5/(byte) line::y#17 line::@7/(byte) line::y#10 ) + [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 + [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 + [114] if((byte) line::e#1<=(byte) line::dy#0) goto line::@7 to:line::@8 -line::@8: scope:[line] from line::@2 line::@9 - [350] (byte) line::e1#3 ← phi( line::@2/(byte) line::e1#0 line::@9/(byte) line::e1#7 ) - [350] (byte) line::y#10 ← phi( line::@2/(byte) line::y#13 line::@9/(byte) line::y#11 ) - [350] (byte) line::x#12 ← phi( line::@2/(byte) line::x#0 line::@9/(byte) line::x#13 ) +line::@8: scope:[line] from line::@6 + [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 + to:line::plot2 +line::plot2: scope:[line] from line::@8 + [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 + [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 + [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) + [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 + [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) + to:line::@16 +line::@16: scope:[line] from line::plot2 + [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 + [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 + to:line::@7 +line::@7: scope:[line] from line::@16 line::@6 + [123] (byte) line::x#17 ← phi( line::@16/(byte) line::x#1 line::@6/(byte) line::x#15 ) + [123] (byte) line::e#5 ← phi( line::@16/(byte) line::e#2 line::@6/(byte) line::e#1 ) + [124] if((byte) line::y#10!=(byte) line::y2#13) goto line::@6 to:line::plot3 -line::plot3: scope:[line] from line::@8 - [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 - [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 - [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) - [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 - [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) - to:line::@11 -line::@11: scope:[line] from line::plot3 - [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 - [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 - [358] if((byte) line::dx#0>=(byte) line::e1#1) goto line::@9 +line::plot3: scope:[line] from line::@7 + [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 + [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 + [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) + [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 + [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) + to:line::@return +line::@return: scope:[line] from line::@15 line::@17 line::plot3 line::plot6 + [130] return + to:@return +line::plot1: scope:[line] from line::@4 + [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 + [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 + [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) + [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 + [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) + to:line::@15 +line::@15: scope:[line] from line::plot1 + [136] if((byte) line::dx#0!=(byte) 0) goto line::@9 + to:line::@return +line::@9: scope:[line] from line::@15 + [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 to:line::@10 -line::@10: scope:[line] from line::@11 - [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 - [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 - to:line::@9 -line::@9: scope:[line] from line::@10 line::@11 - [361] (byte) line::e1#7 ← phi( line::@10/(byte) line::e1#2 line::@11/(byte) line::e1#1 ) - [361] (byte) line::y#11 ← phi( line::@10/(byte) line::y#3 line::@11/(byte) line::y#10 ) - [362] if((byte) line::x#13!=(byte) line::x2#11) goto line::@8 +line::@10: scope:[line] from line::@10 line::@17 line::@9 + [138] (byte) line::x#18 ← phi( line::@9/(byte) line::x#0 line::@10/(byte) line::x#18 line::@17/(byte) line::x#19 ) + [138] (byte) line::e1#3 ← phi( line::@9/(byte) line::e1#0 line::@10/(byte) line::e1#1 line::@17/(byte) line::e1#2 ) + [138] (byte) line::y#11 ← phi( line::@9/(byte) line::y#17 line::@10/(byte) line::y#12 line::@17/(byte) line::y#12 ) + [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 + [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 + [141] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@10 + to:line::@11 +line::@11: scope:[line] from line::@10 + [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 + [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 to:line::plot4 -line::plot4: scope:[line] from line::@9 - [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 - [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 - [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) - [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 - [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) +line::plot4: scope:[line] from line::@11 + [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 + [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 + [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) + [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 + [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) + to:line::@17 +line::@17: scope:[line] from line::plot4 + [149] if((byte) line::x#19!=(byte) line::x2#15) goto line::@10 + to:line::@return +line::@2: scope:[line] from line::@1 + [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 + to:line::@12 +line::@12: scope:[line] from line::@13 line::@2 + [151] (byte) line::e2#3 ← phi( line::@13/(byte) line::e2#7 line::@2/(byte) line::e2#0 ) + [151] (byte) line::y#13 ← phi( line::@13/(byte) line::y#15 line::@2/(byte) line::y#17 ) + [151] (byte) line::x#10 ← phi( line::@13/(byte) line::x#12 line::@2/(byte) line::x#0 ) + to:line::plot5 +line::plot5: scope:[line] from line::@12 + [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 + [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 + [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) + [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 + [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) + to:line::@18 +line::@18: scope:[line] from line::plot5 + [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 + [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 + [159] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@13 + to:line::@14 +line::@14: scope:[line] from line::@18 + [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 + [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 + to:line::@13 +line::@13: scope:[line] from line::@14 line::@18 + [162] (byte) line::e2#7 ← phi( line::@14/(byte) line::e2#2 line::@18/(byte) line::e2#1 ) + [162] (byte) line::y#15 ← phi( line::@14/(byte) line::y#4 line::@18/(byte) line::y#13 ) + [163] if((byte) line::x#12!=(byte) line::x2#15) goto line::@12 + to:line::plot6 +line::plot6: scope:[line] from line::@13 + [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 + [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 + [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) + [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 + [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) to:line::@return (byte()) sgn_u8((byte) sgn_u8::u) -sgn_u8: scope:[sgn_u8] from line::@13 line::@14 - [368] (byte) sgn_u8::u#2 ← phi( line::@13/(byte) sgn_u8::u#0 line::@14/(byte) sgn_u8::u#1 ) - [369] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 - [370] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 +sgn_u8: scope:[sgn_u8] from line::@20 line::@21 + [169] (byte) sgn_u8::u#2 ← phi( line::@20/(byte) sgn_u8::u#0 line::@21/(byte) sgn_u8::u#1 ) + [170] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 + [171] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 to:sgn_u8::@return sgn_u8::@1: scope:[sgn_u8] from sgn_u8 - [371] phi() + [172] phi() to:sgn_u8::@return sgn_u8::@return: scope:[sgn_u8] from sgn_u8 sgn_u8::@1 - [372] (byte) sgn_u8::return#4 ← phi( sgn_u8::@1/(byte) -1 sgn_u8/(byte) 1 ) - [373] return + [173] (byte) sgn_u8::return#4 ← phi( sgn_u8::@1/(byte) -1 sgn_u8/(byte) 1 ) + [174] return to:@return (byte()) abs_u8((byte) abs_u8::u) -abs_u8: scope:[abs_u8] from line line::@12 - [374] (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@12/(byte) abs_u8::u#1 ) - [375] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 - [376] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 +abs_u8: scope:[abs_u8] from line line::@19 + [175] (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@19/(byte) abs_u8::u#1 ) + [176] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 + [177] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 to:abs_u8::@return abs_u8::@1: scope:[abs_u8] from abs_u8 - [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 + [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 to:abs_u8::@return abs_u8::@return: scope:[abs_u8] from abs_u8 abs_u8::@1 - [378] (byte) abs_u8::return#4 ← phi( abs_u8::@1/(byte) abs_u8::return#2 abs_u8/(byte) abs_u8::u#2 ) - [379] return + [179] (byte) abs_u8::return#4 ← phi( abs_u8::@1/(byte) abs_u8::return#2 abs_u8/(byte) abs_u8::u#2 ) + [180] return to:@return +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from main main::@12 main::@13 main::@15 + [181] (byte) memset::c#6 ← phi( main/(byte) ' ' main::@12/(byte) 0 main::@13/(const nomodify byte) BLACK main::@15/(byte) 0 ) + [181] (void*) memset::str#5 ← phi( main/(void*)(const nomodify byte*) CONSOLE main::@12/(void*)(const nomodify byte*) SCREEN main::@13/(void*)(const nomodify byte*) COLS main::@15/(void*)(const nomodify byte*) LINE_BUFFER ) + [181] (word) memset::num#4 ← phi( main/(word)(number) $28*(number) $19 main::@12/(word)(number) $28*(number) $19 main::@13/(word)(number) $28*(number) $19 main::@15/(word) $800 ) + [182] if((word) memset::num#4<=(byte) 0) goto memset::@return + to:memset::@1 +memset::@1: scope:[memset] from memset + [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 + [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 + to:memset::@2 +memset::@2: scope:[memset] from memset::@1 memset::@3 + [185] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + to:memset::@return +memset::@return: scope:[memset] from memset memset::@2 + [187] return + to:@return +memset::@3: scope:[memset] from memset::@2 + [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 + [189] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + to:memset::@2 + (void()) clock_start() clock_start: scope:[clock_start] from main::@8 - [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 - [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff - [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START + [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 + [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff + [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start - [385] return + [195] return to:@return (byte()) textcolor((byte) textcolor::color) textcolor: scope:[textcolor] from main::@14 - [386] (byte) conio_textcolor ← (const nomodify byte) WHITE + [196] phi() to:textcolor::@return textcolor::@return: scope:[textcolor] from textcolor - [387] return + [197] return to:@return (void()) setup_irq() setup_irq: scope:[setup_irq] from main::@3 asm { sei } - [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR - [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f - [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 - [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER - [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() + [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR + [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f + [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 + [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER + [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() asm { cli } to:setup_irq::@return setup_irq::@return: scope:[setup_irq] from setup_irq - [395] return + [205] return to:@return interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() irq_bottom_2: scope:[irq_bottom_2] from - [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK - [397] call kbhit - [398] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK + [207] call kbhit + [208] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + to:irq_bottom_2::@4 +irq_bottom_2::@4: scope:[irq_bottom_2] from irq_bottom_2 + [209] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 + [210] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 + to:irq_bottom_2::toD0181 +irq_bottom_2::toD0181: scope:[irq_bottom_2] from irq_bottom_2::@4 + [211] phi() to:irq_bottom_2::@3 -irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2 - [399] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 - [400] if((byte) 0!=(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 +irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2::toD0181 + [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 to:irq_bottom_2::@2 -irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@3 - [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory - to:irq_bottom_2::@1 -irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@2 irq_bottom_2::@3 - [402] (volatile byte) canvas_show_flag ← (byte) 0 - [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER - [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 - [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() +irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@1 irq_bottom_2::@3 + [213] (volatile byte) canvas_show_flag ← (byte) 0 + [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER + [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 + [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() to:irq_bottom_2::@return -irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@1 - [406] return +irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@2 + [217] return to:@return +irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@4 + [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory + to:irq_bottom_2::@2 (byte()) kbhit() kbhit: scope:[kbhit] from irq_bottom_2 - [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 - [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) + [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 + [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) to:kbhit::@return kbhit::@return: scope:[kbhit] from kbhit - [409] return + [221] return to:@return interrupt(KERNEL_MIN)(void()) irq_bottom_1() irq_bottom_1: scope:[irq_bottom_1] from - [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE + [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY to:irq_bottom_1::toD0181 irq_bottom_1::toD0181: scope:[irq_bottom_1] from irq_bottom_1 - [411] phi() + [223] phi() to:irq_bottom_1::@1 irq_bottom_1::@1: scope:[irq_bottom_1] from irq_bottom_1::toD0181 - [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 - [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER - [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM - [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() + [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 + [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER + [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM + [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() to:irq_bottom_1::@return irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1::@1 - [416] return + [228] return to:@return diff --git a/src/test/ref/complex/polygon/polygon.log b/src/test/ref/complex/polygon/polygon.log index 622477424..5ab752e85 100644 --- a/src/test/ref/complex/polygon/polygon.log +++ b/src/test/ref/complex/polygon/polygon.log @@ -4,188 +4,65 @@ 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 -Added struct type cast to parameter value list call printf_uchar (byte) main::p0_idx (struct printf_format_number){ (byte) 2, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (const byte) HEXADECIMAL } -Added struct type cast to parameter value list call printf_ulong (dword) main::cyclecount (struct printf_format_number){ (byte) 6, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx Inlined call (byte~) $0 ← call toD018 (const nomodify byte*) SCREEN (const nomodify byte*) CANVAS2 Inlined call (byte~) main::$15 ← call toD018 (const nomodify byte*) SCREEN (const nomodify byte*) CANVAS1 Inlined call (byte~) main::$16 ← call toD018 (const nomodify byte*) SCREEN (const nomodify byte*) CANVAS2 Inlined call (byte~) irq_bottom_1::$0 ← call toD018 (const nomodify byte*) CONSOLE (const nomodify byte*) PETSCII +Inlined call (byte~) irq_bottom_2::$2 ← call toD018 (const nomodify byte*) SCREEN (const nomodify byte*) LINE_BUFFER +Inlined call call plot (byte) line::x (byte) line::y +Inlined call call plot (byte) line::x (byte~) line::$15 Inlined call call plot (byte) line::x (byte) line::y Inlined call call plot (byte) line::x (byte) line::y Inlined call call plot (byte) line::x (byte) line::y Inlined call call plot (byte) line::x (byte) line::y -Eliminating unused variable with no statement (void~) main::$21 +Eliminating unused variable with no statement (struct printf_buffer_number) printf_buffer CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 -(byte()) toupper((byte) toupper::ch) -toupper: scope:[toupper] from strupr::@2 - (byte) toupper::ch#1 ← phi( strupr::@2/(byte) toupper::ch#0 ) - (bool~) toupper::$0 ← (byte) toupper::ch#1 >= (byte) 'a' - (bool~) toupper::$1 ← (byte) toupper::ch#1 <= (byte) 'z' - (bool~) toupper::$2 ← (bool~) toupper::$0 && (bool~) toupper::$1 - if((bool~) toupper::$2) goto toupper::@1 - to:toupper::@2 -toupper::@1: scope:[toupper] from toupper - (byte) toupper::ch#2 ← phi( toupper/(byte) toupper::ch#1 ) - (byte~) toupper::$3 ← (byte) toupper::ch#2 + (byte) 'A'-(byte) 'a' - (byte) toupper::return#0 ← (byte~) toupper::$3 - to:toupper::@return -toupper::@2: scope:[toupper] from toupper - (byte) toupper::ch#3 ← phi( toupper/(byte) toupper::ch#1 ) - (byte) toupper::return#1 ← (byte) toupper::ch#3 - to:toupper::@return -toupper::@return: scope:[toupper] from toupper::@1 toupper::@2 - (byte) toupper::return#4 ← phi( toupper::@1/(byte) toupper::return#0 toupper::@2/(byte) toupper::return#1 ) - (byte) toupper::return#2 ← (byte) toupper::return#4 - return - to:@return - -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 - (word) memcpy::num#2 ← phi( cscroll::@3/(word) memcpy::num#0 cscroll::@4/(word) memcpy::num#1 ) - (void*) memcpy::destination#2 ← phi( cscroll::@3/(void*) memcpy::destination#0 cscroll::@4/(void*) memcpy::destination#1 ) - (void*) memcpy::source#2 ← phi( cscroll::@3/(void*) memcpy::source#0 cscroll::@4/(void*) memcpy::source#1 ) - (byte*) memcpy::src#0 ← ((byte*)) (void*) memcpy::source#2 - (byte*) memcpy::dst#0 ← ((byte*)) (void*) memcpy::destination#2 - (byte*~) memcpy::$2 ← (byte*)(void*) memcpy::source#2 - (byte*~) memcpy::$0 ← (byte*~) memcpy::$2 + (word) memcpy::num#2 - (byte*) memcpy::src_end#0 ← (byte*~) memcpy::$0 - to:memcpy::@1 -memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - (void*) memcpy::destination#4 ← phi( memcpy/(void*) memcpy::destination#2 memcpy::@2/(void*) memcpy::destination#5 ) - (byte*) memcpy::dst#3 ← phi( memcpy/(byte*) memcpy::dst#0 memcpy::@2/(byte*) memcpy::dst#1 ) - (byte*) memcpy::src_end#1 ← phi( memcpy/(byte*) memcpy::src_end#0 memcpy::@2/(byte*) memcpy::src_end#2 ) - (byte*) memcpy::src#2 ← phi( memcpy/(byte*) memcpy::src#0 memcpy::@2/(byte*) memcpy::src#1 ) - (bool~) memcpy::$1 ← (byte*) memcpy::src#2 != (byte*) memcpy::src_end#1 - if((bool~) memcpy::$1) goto memcpy::@2 - to:memcpy::@3 -memcpy::@2: scope:[memcpy] from memcpy::@1 - (void*) memcpy::destination#5 ← phi( memcpy::@1/(void*) memcpy::destination#4 ) - (byte*) memcpy::src_end#2 ← phi( memcpy::@1/(byte*) memcpy::src_end#1 ) - (byte*) memcpy::dst#2 ← phi( memcpy::@1/(byte*) memcpy::dst#3 ) - (byte*) memcpy::src#3 ← phi( memcpy::@1/(byte*) memcpy::src#2 ) - *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#3) - (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#3 - to:memcpy::@1 -memcpy::@3: scope:[memcpy] from memcpy::@1 - (void*) memcpy::destination#3 ← phi( memcpy::@1/(void*) memcpy::destination#4 ) - (void*) memcpy::return#0 ← (void*) memcpy::destination#3 - to:memcpy::@return -memcpy::@return: scope:[memcpy] from memcpy::@3 - (void*) memcpy::return#4 ← phi( memcpy::@3/(void*) memcpy::return#0 ) - (void*) memcpy::return#1 ← (void*) memcpy::return#4 - return - to:@return - (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) -memset: scope:[memset] from cscroll::@5 cscroll::@6 main main::@13 main::@14 main::@18 - (byte) memset::c#9 ← phi( cscroll::@5/(byte) memset::c#0 cscroll::@6/(byte) memset::c#1 main/(byte) memset::c#2 main::@13/(byte) memset::c#3 main::@14/(byte) memset::c#4 main::@18/(byte) memset::c#5 ) - (void*) memset::str#8 ← phi( cscroll::@5/(void*) memset::str#0 cscroll::@6/(void*) memset::str#1 main/(void*) memset::str#2 main::@13/(void*) memset::str#3 main::@14/(void*) memset::str#4 main::@18/(void*) memset::str#5 ) - (word) memset::num#6 ← phi( cscroll::@5/(word) memset::num#0 cscroll::@6/(word) memset::num#1 main/(word) memset::num#2 main::@13/(word) memset::num#3 main::@14/(word) memset::num#4 main::@18/(word) memset::num#5 ) - (bool~) memset::$0 ← (word) memset::num#6 > (number) 0 +memset: scope:[memset] from main main::@13 main::@14 main::@18 + (byte) memset::c#7 ← phi( main/(byte) memset::c#0 main::@13/(byte) memset::c#1 main::@14/(byte) memset::c#2 main::@18/(byte) memset::c#3 ) + (void*) memset::str#6 ← phi( main/(void*) memset::str#0 main::@13/(void*) memset::str#1 main::@14/(void*) memset::str#2 main::@18/(void*) memset::str#3 ) + (word) memset::num#4 ← phi( main/(word) memset::num#0 main::@13/(word) memset::num#1 main::@14/(word) memset::num#2 main::@18/(word) memset::num#3 ) + (bool~) memset::$0 ← (word) memset::num#4 > (number) 0 (bool~) memset::$1 ← ! (bool~) memset::$0 if((bool~) memset::$1) goto memset::@1 to:memset::@2 memset::@1: scope:[memset] from memset memset::@3 - (void*) memset::str#6 ← phi( memset/(void*) memset::str#8 memset::@3/(void*) memset::str#9 ) - (void*) memset::return#0 ← (void*) memset::str#6 + (void*) memset::str#4 ← phi( memset/(void*) memset::str#6 memset::@3/(void*) memset::str#7 ) + (void*) memset::return#0 ← (void*) memset::str#4 to:memset::@return memset::@2: scope:[memset] from memset - (byte) memset::c#8 ← phi( memset/(byte) memset::c#9 ) - (word) memset::num#7 ← phi( memset/(word) memset::num#6 ) - (void*) memset::str#7 ← phi( memset/(void*) memset::str#8 ) - (byte*~) memset::$4 ← (byte*)(void*) memset::str#7 - (byte*~) memset::$2 ← (byte*~) memset::$4 + (word) memset::num#7 + (byte) memset::c#6 ← phi( memset/(byte) memset::c#7 ) + (word) memset::num#5 ← phi( memset/(word) memset::num#4 ) + (void*) memset::str#5 ← phi( memset/(void*) memset::str#6 ) + (byte*~) memset::$4 ← (byte*)(void*) memset::str#5 + (byte*~) memset::$2 ← (byte*~) memset::$4 + (word) memset::num#5 (byte*) memset::end#0 ← (byte*~) memset::$2 - (byte*) memset::dst#0 ← ((byte*)) (void*) memset::str#7 + (byte*) memset::dst#0 ← ((byte*)) (void*) memset::str#5 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 - (byte) memset::c#7 ← phi( memset::@2/(byte) memset::c#8 memset::@4/(byte) memset::c#6 ) - (void*) memset::str#9 ← phi( memset::@2/(void*) memset::str#7 memset::@4/(void*) memset::str#10 ) + (byte) memset::c#5 ← phi( memset::@2/(byte) memset::c#6 memset::@4/(byte) memset::c#4 ) + (void*) memset::str#7 ← phi( memset::@2/(void*) memset::str#5 memset::@4/(void*) memset::str#8 ) (byte*) memset::end#1 ← phi( memset::@2/(byte*) memset::end#0 memset::@4/(byte*) memset::end#2 ) (byte*) memset::dst#2 ← phi( memset::@2/(byte*) memset::dst#0 memset::@4/(byte*) memset::dst#1 ) (bool~) memset::$3 ← (byte*) memset::dst#2 != (byte*) memset::end#1 if((bool~) memset::$3) goto memset::@4 to:memset::@1 memset::@4: scope:[memset] from memset::@3 - (void*) memset::str#10 ← phi( memset::@3/(void*) memset::str#9 ) + (void*) memset::str#8 ← phi( memset::@3/(void*) memset::str#7 ) (byte*) memset::end#2 ← phi( memset::@3/(byte*) memset::end#1 ) (byte*) memset::dst#3 ← phi( memset::@3/(byte*) memset::dst#2 ) - (byte) memset::c#6 ← phi( memset::@3/(byte) memset::c#7 ) - *((byte*) memset::dst#3) ← (byte) memset::c#6 + (byte) memset::c#4 ← phi( memset::@3/(byte) memset::c#5 ) + *((byte*) memset::dst#3) ← (byte) memset::c#4 (byte*) memset::dst#1 ← ++ (byte*) memset::dst#3 to:memset::@3 memset::@return: scope:[memset] from memset::@1 - (void*) memset::return#8 ← phi( memset::@1/(void*) memset::return#0 ) - (void*) memset::return#1 ← (void*) memset::return#8 - return - to:@return - -(byte*()) strupr((byte*) strupr::str) -strupr: scope:[strupr] from printf_number_buffer::@11 - (byte*) strupr::str#1 ← phi( printf_number_buffer::@11/(byte*) strupr::str#0 ) - (byte*) strupr::src#0 ← (byte*) strupr::str#1 - to:strupr::@1 -strupr::@1: scope:[strupr] from strupr strupr::@4 - (byte*) strupr::str#3 ← phi( strupr/(byte*) strupr::str#1 strupr::@4/(byte*) strupr::str#4 ) - (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::src#0 strupr::@4/(byte*) strupr::src#1 ) - (bool~) strupr::$1 ← (number) 0 != *((byte*) strupr::src#2) - if((bool~) strupr::$1) goto strupr::@2 - to:strupr::@3 -strupr::@2: scope:[strupr] from strupr::@1 - (byte*) strupr::str#5 ← phi( strupr::@1/(byte*) strupr::str#3 ) - (byte*) strupr::src#3 ← phi( strupr::@1/(byte*) strupr::src#2 ) - (byte) toupper::ch#0 ← *((byte*) strupr::src#3) - call toupper - (byte) toupper::return#3 ← (byte) toupper::return#2 - to:strupr::@4 -strupr::@4: scope:[strupr] from strupr::@2 - (byte*) strupr::str#4 ← phi( strupr::@2/(byte*) strupr::str#5 ) - (byte*) strupr::src#4 ← phi( strupr::@2/(byte*) strupr::src#3 ) - (byte) toupper::return#5 ← phi( strupr::@2/(byte) toupper::return#3 ) - (byte~) strupr::$0 ← (byte) toupper::return#5 - *((byte*) strupr::src#4) ← (byte~) strupr::$0 - (byte*) strupr::src#1 ← ++ (byte*) strupr::src#4 - to:strupr::@1 -strupr::@3: scope:[strupr] from strupr::@1 - (byte*) strupr::str#2 ← phi( strupr::@1/(byte*) strupr::str#3 ) - (byte*) strupr::return#0 ← (byte*) strupr::str#2 - to:strupr::@return -strupr::@return: scope:[strupr] from strupr::@3 - (byte*) strupr::return#3 ← phi( strupr::@3/(byte*) strupr::return#0 ) - (byte*) strupr::return#1 ← (byte*) strupr::return#3 - return - to:@return - -(word()) strlen((byte*) strlen::str) -strlen: scope:[strlen] from printf_number_buffer::@6 - (byte*) strlen::str#4 ← phi( printf_number_buffer::@6/(byte*) strlen::str#1 ) - (word) strlen::len#0 ← (word) 0 - to:strlen::@1 -strlen::@1: scope:[strlen] from strlen strlen::@2 - (word) strlen::len#4 ← phi( strlen/(word) strlen::len#0 strlen::@2/(word) strlen::len#1 ) - (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#4 strlen::@2/(byte*) strlen::str#0 ) - (bool~) strlen::$0 ← (number) 0 != *((byte*) strlen::str#2) - if((bool~) strlen::$0) goto strlen::@2 - to:strlen::@3 -strlen::@2: scope:[strlen] from strlen::@1 - (byte*) strlen::str#3 ← phi( strlen::@1/(byte*) strlen::str#2 ) - (word) strlen::len#2 ← phi( strlen::@1/(word) strlen::len#4 ) - (word) strlen::len#1 ← ++ (word) strlen::len#2 - (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 - to:strlen::@1 -strlen::@3: scope:[strlen] from strlen::@1 - (word) strlen::len#3 ← phi( strlen::@1/(word) strlen::len#4 ) - (word) strlen::return#0 ← (word) strlen::len#3 - to:strlen::@return -strlen::@return: scope:[strlen] from strlen::@3 - (word) strlen::return#3 ← phi( strlen::@3/(word) strlen::return#0 ) - (word) strlen::return#1 ← (word) strlen::return#3 + (void*) memset::return#6 ← phi( memset::@1/(void*) memset::return#0 ) + (void*) memset::return#1 ← (void*) memset::return#6 return to:@return @@ -211,546 +88,10 @@ clock_start: scope:[clock_start] from main::@8 clock_start::@return: scope:[clock_start] from clock_start return to:@return - -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@3 - (byte*) uctoa::buffer#21 ← phi( printf_uchar::@3/(byte*) uctoa::buffer#5 ) - (byte) uctoa::value#12 ← phi( printf_uchar::@3/(byte) uctoa::value#1 ) - (byte) uctoa::radix#1 ← phi( printf_uchar::@3/(byte) uctoa::radix#0 ) - (byte) uctoa::max_digits#0 ← (byte) 0 - (byte*) uctoa::digit_values#0 ← (byte*) 0 - (bool~) uctoa::$0 ← (byte) uctoa::radix#1 == (const byte) DECIMAL - if((bool~) uctoa::$0) goto uctoa::@1 - to:uctoa::@6 -uctoa::@1: scope:[uctoa] from uctoa - (byte*) uctoa::buffer#17 ← phi( uctoa/(byte*) uctoa::buffer#21 ) - (byte) uctoa::value#8 ← phi( uctoa/(byte) uctoa::value#12 ) - (byte) uctoa::max_digits#1 ← (number) 3 - (byte*) uctoa::digit_values#1 ← (const byte*) RADIX_DECIMAL_VALUES_CHAR - to:uctoa::@5 -uctoa::@6: scope:[uctoa] from uctoa - (byte) uctoa::value#13 ← phi( uctoa/(byte) uctoa::value#12 ) - (byte*) uctoa::buffer#16 ← phi( uctoa/(byte*) uctoa::buffer#21 ) - (byte) uctoa::radix#2 ← phi( uctoa/(byte) uctoa::radix#1 ) - (bool~) uctoa::$1 ← (byte) uctoa::radix#2 == (const byte) HEXADECIMAL - if((bool~) uctoa::$1) goto uctoa::@2 - to:uctoa::@7 -uctoa::@2: scope:[uctoa] from uctoa::@6 - (byte*) uctoa::buffer#18 ← phi( uctoa::@6/(byte*) uctoa::buffer#16 ) - (byte) uctoa::value#9 ← phi( uctoa::@6/(byte) uctoa::value#13 ) - (byte) uctoa::max_digits#2 ← (number) 2 - (byte*) uctoa::digit_values#2 ← (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR - to:uctoa::@5 -uctoa::@7: scope:[uctoa] from uctoa::@6 - (byte) uctoa::value#14 ← phi( uctoa::@6/(byte) uctoa::value#13 ) - (byte*) uctoa::buffer#13 ← phi( uctoa::@6/(byte*) uctoa::buffer#16 ) - (byte) uctoa::radix#3 ← phi( uctoa::@6/(byte) uctoa::radix#2 ) - (bool~) uctoa::$2 ← (byte) uctoa::radix#3 == (const byte) OCTAL - if((bool~) uctoa::$2) goto uctoa::@3 - to:uctoa::@8 -uctoa::@3: scope:[uctoa] from uctoa::@7 - (byte*) uctoa::buffer#19 ← phi( uctoa::@7/(byte*) uctoa::buffer#13 ) - (byte) uctoa::value#10 ← phi( uctoa::@7/(byte) uctoa::value#14 ) - (byte) uctoa::max_digits#3 ← (number) 3 - (byte*) uctoa::digit_values#3 ← (const byte*) RADIX_OCTAL_VALUES_CHAR - to:uctoa::@5 -uctoa::@8: scope:[uctoa] from uctoa::@7 - (byte) uctoa::value#15 ← phi( uctoa::@7/(byte) uctoa::value#14 ) - (byte*) uctoa::buffer#10 ← phi( uctoa::@7/(byte*) uctoa::buffer#13 ) - (byte) uctoa::radix#4 ← phi( uctoa::@7/(byte) uctoa::radix#3 ) - (bool~) uctoa::$3 ← (byte) uctoa::radix#4 == (const byte) BINARY - if((bool~) uctoa::$3) goto uctoa::@4 - to:uctoa::@9 -uctoa::@4: scope:[uctoa] from uctoa::@8 - (byte*) uctoa::buffer#20 ← phi( uctoa::@8/(byte*) uctoa::buffer#10 ) - (byte) uctoa::value#11 ← phi( uctoa::@8/(byte) uctoa::value#15 ) - (byte) uctoa::max_digits#4 ← (number) 8 - (byte*) uctoa::digit_values#4 ← (const byte*) RADIX_BINARY_VALUES_CHAR - to:uctoa::@5 -uctoa::@9: scope:[uctoa] from uctoa::@8 - (byte*) uctoa::buffer#6 ← phi( uctoa::@8/(byte*) uctoa::buffer#10 ) - *((byte*) uctoa::buffer#6) ← (byte) 'e' - (byte*) uctoa::buffer#0 ← ++ (byte*) uctoa::buffer#6 - *((byte*) uctoa::buffer#0) ← (byte) 'r' - (byte*) uctoa::buffer#1 ← ++ (byte*) uctoa::buffer#0 - *((byte*) uctoa::buffer#1) ← (byte) 'r' - (byte*) uctoa::buffer#2 ← ++ (byte*) uctoa::buffer#1 - *((byte*) uctoa::buffer#2) ← (number) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@12 uctoa::@9 - return - to:@return -uctoa::@5: scope:[uctoa] from uctoa::@1 uctoa::@2 uctoa::@3 uctoa::@4 - (byte*) uctoa::buffer#15 ← phi( uctoa::@1/(byte*) uctoa::buffer#17 uctoa::@2/(byte*) uctoa::buffer#18 uctoa::@3/(byte*) uctoa::buffer#19 uctoa::@4/(byte*) uctoa::buffer#20 ) - (byte) uctoa::value#7 ← phi( uctoa::@1/(byte) uctoa::value#8 uctoa::@2/(byte) uctoa::value#9 uctoa::@3/(byte) uctoa::value#10 uctoa::@4/(byte) uctoa::value#11 ) - (byte*) uctoa::digit_values#8 ← phi( uctoa::@1/(byte*) uctoa::digit_values#1 uctoa::@2/(byte*) uctoa::digit_values#2 uctoa::@3/(byte*) uctoa::digit_values#3 uctoa::@4/(byte*) uctoa::digit_values#4 ) - (byte) uctoa::max_digits#7 ← phi( uctoa::@1/(byte) uctoa::max_digits#1 uctoa::@2/(byte) uctoa::max_digits#2 uctoa::@3/(byte) uctoa::max_digits#3 uctoa::@4/(byte) uctoa::max_digits#4 ) - (byte) uctoa::started#0 ← (byte) 0 - (byte) uctoa::digit#0 ← (byte) 0 - to:uctoa::@10 -uctoa::@10: scope:[uctoa] from uctoa::@13 uctoa::@5 - (byte*) uctoa::buffer#11 ← phi( uctoa::@13/(byte*) uctoa::buffer#14 uctoa::@5/(byte*) uctoa::buffer#15 ) - (byte) uctoa::started#3 ← phi( uctoa::@13/(byte) uctoa::started#4 uctoa::@5/(byte) uctoa::started#0 ) - (byte) uctoa::value#5 ← phi( uctoa::@13/(byte) uctoa::value#6 uctoa::@5/(byte) uctoa::value#7 ) - (byte*) uctoa::digit_values#6 ← phi( uctoa::@13/(byte*) uctoa::digit_values#7 uctoa::@5/(byte*) uctoa::digit_values#8 ) - (byte) uctoa::digit#2 ← phi( uctoa::@13/(byte) uctoa::digit#1 uctoa::@5/(byte) uctoa::digit#0 ) - (byte) uctoa::max_digits#5 ← phi( uctoa::@13/(byte) uctoa::max_digits#6 uctoa::@5/(byte) uctoa::max_digits#7 ) - (number~) uctoa::$4 ← (byte) uctoa::max_digits#5 - (number) 1 - (bool~) uctoa::$5 ← (byte) uctoa::digit#2 < (number~) uctoa::$4 - if((bool~) uctoa::$5) goto uctoa::@11 - to:uctoa::@12 -uctoa::@11: scope:[uctoa] from uctoa::@10 - (byte) uctoa::max_digits#8 ← phi( uctoa::@10/(byte) uctoa::max_digits#5 ) - (byte*) uctoa::buffer#12 ← phi( uctoa::@10/(byte*) uctoa::buffer#11 ) - (byte) uctoa::started#2 ← phi( uctoa::@10/(byte) uctoa::started#3 ) - (byte) uctoa::value#2 ← phi( uctoa::@10/(byte) uctoa::value#5 ) - (byte) uctoa::digit#3 ← phi( uctoa::@10/(byte) uctoa::digit#2 ) - (byte*) uctoa::digit_values#5 ← phi( uctoa::@10/(byte*) uctoa::digit_values#6 ) - (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#5 + (byte) uctoa::digit#3) - (bool~) uctoa::$6 ← (byte) uctoa::value#2 >= (byte) uctoa::digit_value#0 - (bool~) uctoa::$7 ← (byte) uctoa::started#2 || (bool~) uctoa::$6 - (bool~) uctoa::$8 ← ! (bool~) uctoa::$7 - if((bool~) uctoa::$8) goto uctoa::@13 - to:uctoa::@14 -uctoa::@12: scope:[uctoa] from uctoa::@10 - (byte*) uctoa::buffer#7 ← phi( uctoa::@10/(byte*) uctoa::buffer#11 ) - (byte) uctoa::value#3 ← phi( uctoa::@10/(byte) uctoa::value#5 ) - (byte~) uctoa::$10 ← (byte)(byte) uctoa::value#3 - *((byte*) uctoa::buffer#7) ← *((const byte*) DIGITS + (byte~) uctoa::$10) - (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#7 - *((byte*) uctoa::buffer#3) ← (number) 0 - to:uctoa::@return -uctoa::@13: scope:[uctoa] from uctoa::@11 uctoa::@15 - (byte*) uctoa::buffer#14 ← phi( uctoa::@11/(byte*) uctoa::buffer#12 uctoa::@15/(byte*) uctoa::buffer#4 ) - (byte) uctoa::started#4 ← phi( uctoa::@11/(byte) uctoa::started#2 uctoa::@15/(byte) uctoa::started#1 ) - (byte) uctoa::value#6 ← phi( uctoa::@11/(byte) uctoa::value#2 uctoa::@15/(byte) uctoa::value#0 ) - (byte*) uctoa::digit_values#7 ← phi( uctoa::@11/(byte*) uctoa::digit_values#5 uctoa::@15/(byte*) uctoa::digit_values#9 ) - (byte) uctoa::max_digits#6 ← phi( uctoa::@11/(byte) uctoa::max_digits#8 uctoa::@15/(byte) uctoa::max_digits#9 ) - (byte) uctoa::digit#4 ← phi( uctoa::@11/(byte) uctoa::digit#3 uctoa::@15/(byte) uctoa::digit#5 ) - (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#4 - to:uctoa::@10 -uctoa::@14: scope:[uctoa] from uctoa::@11 - (byte*) uctoa::digit_values#10 ← phi( uctoa::@11/(byte*) uctoa::digit_values#5 ) - (byte) uctoa::max_digits#10 ← phi( uctoa::@11/(byte) uctoa::max_digits#8 ) - (byte) uctoa::digit#6 ← phi( uctoa::@11/(byte) uctoa::digit#3 ) - (byte) uctoa::digit_value#1 ← phi( uctoa::@11/(byte) uctoa::digit_value#0 ) - (byte) uctoa::value#4 ← phi( uctoa::@11/(byte) uctoa::value#2 ) - (byte*) uctoa::buffer#8 ← phi( uctoa::@11/(byte*) uctoa::buffer#12 ) - (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#8 - (byte) uctoa_append::value#0 ← (byte) uctoa::value#4 - (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#1 - call uctoa_append - (byte) uctoa_append::return#0 ← (byte) uctoa_append::return#2 - to:uctoa::@15 -uctoa::@15: scope:[uctoa] from uctoa::@14 - (byte*) uctoa::digit_values#9 ← phi( uctoa::@14/(byte*) uctoa::digit_values#10 ) - (byte) uctoa::max_digits#9 ← phi( uctoa::@14/(byte) uctoa::max_digits#10 ) - (byte) uctoa::digit#5 ← phi( uctoa::@14/(byte) uctoa::digit#6 ) - (byte*) uctoa::buffer#9 ← phi( uctoa::@14/(byte*) uctoa::buffer#8 ) - (byte) uctoa_append::return#3 ← phi( uctoa::@14/(byte) uctoa_append::return#0 ) - (byte~) uctoa::$9 ← (byte) uctoa_append::return#3 - (byte) uctoa::value#0 ← (byte~) uctoa::$9 - (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#9 - (byte) uctoa::started#1 ← (number) 1 - to:uctoa::@13 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@14 - (byte*) uctoa_append::buffer#3 ← phi( uctoa::@14/(byte*) uctoa_append::buffer#0 ) - (byte) uctoa_append::sub#3 ← phi( uctoa::@14/(byte) uctoa_append::sub#0 ) - (byte) uctoa_append::value#5 ← phi( uctoa::@14/(byte) uctoa_append::value#0 ) - (byte) uctoa_append::digit#0 ← (byte) 0 - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - (byte*) uctoa_append::buffer#2 ← phi( uctoa_append/(byte*) uctoa_append::buffer#3 uctoa_append::@2/(byte*) uctoa_append::buffer#4 ) - (byte) uctoa_append::digit#4 ← phi( uctoa_append/(byte) uctoa_append::digit#0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - (byte) uctoa_append::sub#1 ← phi( uctoa_append/(byte) uctoa_append::sub#3 uctoa_append::@2/(byte) uctoa_append::sub#2 ) - (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#5 uctoa_append::@2/(byte) uctoa_append::value#1 ) - (bool~) uctoa_append::$0 ← (byte) uctoa_append::value#2 >= (byte) uctoa_append::sub#1 - if((bool~) uctoa_append::$0) goto uctoa_append::@2 - to:uctoa_append::@3 -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - (byte*) uctoa_append::buffer#4 ← phi( uctoa_append::@1/(byte*) uctoa_append::buffer#2 ) - (byte) uctoa_append::sub#2 ← phi( uctoa_append::@1/(byte) uctoa_append::sub#1 ) - (byte) uctoa_append::value#3 ← phi( uctoa_append::@1/(byte) uctoa_append::value#2 ) - (byte) uctoa_append::digit#2 ← phi( uctoa_append::@1/(byte) uctoa_append::digit#4 ) - (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#3 - (byte) uctoa_append::sub#2 - to:uctoa_append::@1 -uctoa_append::@3: scope:[uctoa_append] from uctoa_append::@1 - (byte) uctoa_append::value#4 ← phi( uctoa_append::@1/(byte) uctoa_append::value#2 ) - (byte*) uctoa_append::buffer#1 ← phi( uctoa_append::@1/(byte*) uctoa_append::buffer#2 ) - (byte) uctoa_append::digit#3 ← phi( uctoa_append::@1/(byte) uctoa_append::digit#4 ) - *((byte*) uctoa_append::buffer#1) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#3) - (byte) uctoa_append::return#1 ← (byte) uctoa_append::value#4 - to:uctoa_append::@return -uctoa_append::@return: scope:[uctoa_append] from uctoa_append::@3 - (byte) uctoa_append::return#4 ← phi( uctoa_append::@3/(byte) uctoa_append::return#1 ) - (byte) uctoa_append::return#2 ← (byte) uctoa_append::return#4 - return - to:@return - -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -ultoa: scope:[ultoa] from printf_ulong::@3 - (byte*) ultoa::buffer#21 ← phi( printf_ulong::@3/(byte*) ultoa::buffer#5 ) - (dword) ultoa::value#12 ← phi( printf_ulong::@3/(dword) ultoa::value#1 ) - (byte) ultoa::radix#1 ← phi( printf_ulong::@3/(byte) ultoa::radix#0 ) - (byte) ultoa::max_digits#0 ← (byte) 0 - (dword*) ultoa::digit_values#0 ← (dword*) 0 - (bool~) ultoa::$0 ← (byte) ultoa::radix#1 == (const byte) DECIMAL - if((bool~) ultoa::$0) goto ultoa::@1 - to:ultoa::@6 -ultoa::@1: scope:[ultoa] from ultoa - (byte*) ultoa::buffer#17 ← phi( ultoa/(byte*) ultoa::buffer#21 ) - (dword) ultoa::value#8 ← phi( ultoa/(dword) ultoa::value#12 ) - (byte) ultoa::max_digits#1 ← (number) $a - (dword*) ultoa::digit_values#1 ← (const dword*) RADIX_DECIMAL_VALUES_LONG - to:ultoa::@5 -ultoa::@6: scope:[ultoa] from ultoa - (dword) ultoa::value#13 ← phi( ultoa/(dword) ultoa::value#12 ) - (byte*) ultoa::buffer#16 ← phi( ultoa/(byte*) ultoa::buffer#21 ) - (byte) ultoa::radix#2 ← phi( ultoa/(byte) ultoa::radix#1 ) - (bool~) ultoa::$1 ← (byte) ultoa::radix#2 == (const byte) HEXADECIMAL - if((bool~) ultoa::$1) goto ultoa::@2 - to:ultoa::@7 -ultoa::@2: scope:[ultoa] from ultoa::@6 - (byte*) ultoa::buffer#18 ← phi( ultoa::@6/(byte*) ultoa::buffer#16 ) - (dword) ultoa::value#9 ← phi( ultoa::@6/(dword) ultoa::value#13 ) - (byte) ultoa::max_digits#2 ← (number) 8 - (dword*) ultoa::digit_values#2 ← (const dword*) RADIX_HEXADECIMAL_VALUES_LONG - to:ultoa::@5 -ultoa::@7: scope:[ultoa] from ultoa::@6 - (dword) ultoa::value#14 ← phi( ultoa::@6/(dword) ultoa::value#13 ) - (byte*) ultoa::buffer#13 ← phi( ultoa::@6/(byte*) ultoa::buffer#16 ) - (byte) ultoa::radix#3 ← phi( ultoa::@6/(byte) ultoa::radix#2 ) - (bool~) ultoa::$2 ← (byte) ultoa::radix#3 == (const byte) OCTAL - if((bool~) ultoa::$2) goto ultoa::@3 - to:ultoa::@8 -ultoa::@3: scope:[ultoa] from ultoa::@7 - (byte*) ultoa::buffer#19 ← phi( ultoa::@7/(byte*) ultoa::buffer#13 ) - (dword) ultoa::value#10 ← phi( ultoa::@7/(dword) ultoa::value#14 ) - (byte) ultoa::max_digits#3 ← (number) $b - (dword*) ultoa::digit_values#3 ← (const dword*) RADIX_OCTAL_VALUES_LONG - to:ultoa::@5 -ultoa::@8: scope:[ultoa] from ultoa::@7 - (dword) ultoa::value#15 ← phi( ultoa::@7/(dword) ultoa::value#14 ) - (byte*) ultoa::buffer#10 ← phi( ultoa::@7/(byte*) ultoa::buffer#13 ) - (byte) ultoa::radix#4 ← phi( ultoa::@7/(byte) ultoa::radix#3 ) - (bool~) ultoa::$3 ← (byte) ultoa::radix#4 == (const byte) BINARY - if((bool~) ultoa::$3) goto ultoa::@4 - to:ultoa::@9 -ultoa::@4: scope:[ultoa] from ultoa::@8 - (byte*) ultoa::buffer#20 ← phi( ultoa::@8/(byte*) ultoa::buffer#10 ) - (dword) ultoa::value#11 ← phi( ultoa::@8/(dword) ultoa::value#15 ) - (byte) ultoa::max_digits#4 ← (number) $20 - (dword*) ultoa::digit_values#4 ← (const dword*) RADIX_BINARY_VALUES_LONG - to:ultoa::@5 -ultoa::@9: scope:[ultoa] from ultoa::@8 - (byte*) ultoa::buffer#6 ← phi( ultoa::@8/(byte*) ultoa::buffer#10 ) - *((byte*) ultoa::buffer#6) ← (byte) 'e' - (byte*) ultoa::buffer#0 ← ++ (byte*) ultoa::buffer#6 - *((byte*) ultoa::buffer#0) ← (byte) 'r' - (byte*) ultoa::buffer#1 ← ++ (byte*) ultoa::buffer#0 - *((byte*) ultoa::buffer#1) ← (byte) 'r' - (byte*) ultoa::buffer#2 ← ++ (byte*) ultoa::buffer#1 - *((byte*) ultoa::buffer#2) ← (number) 0 - to:ultoa::@return -ultoa::@return: scope:[ultoa] from ultoa::@12 ultoa::@9 - return - to:@return -ultoa::@5: scope:[ultoa] from ultoa::@1 ultoa::@2 ultoa::@3 ultoa::@4 - (byte*) ultoa::buffer#15 ← phi( ultoa::@1/(byte*) ultoa::buffer#17 ultoa::@2/(byte*) ultoa::buffer#18 ultoa::@3/(byte*) ultoa::buffer#19 ultoa::@4/(byte*) ultoa::buffer#20 ) - (dword) ultoa::value#7 ← phi( ultoa::@1/(dword) ultoa::value#8 ultoa::@2/(dword) ultoa::value#9 ultoa::@3/(dword) ultoa::value#10 ultoa::@4/(dword) ultoa::value#11 ) - (dword*) ultoa::digit_values#8 ← phi( ultoa::@1/(dword*) ultoa::digit_values#1 ultoa::@2/(dword*) ultoa::digit_values#2 ultoa::@3/(dword*) ultoa::digit_values#3 ultoa::@4/(dword*) ultoa::digit_values#4 ) - (byte) ultoa::max_digits#7 ← phi( ultoa::@1/(byte) ultoa::max_digits#1 ultoa::@2/(byte) ultoa::max_digits#2 ultoa::@3/(byte) ultoa::max_digits#3 ultoa::@4/(byte) ultoa::max_digits#4 ) - (byte) ultoa::started#0 ← (byte) 0 - (byte) ultoa::digit#0 ← (byte) 0 - to:ultoa::@10 -ultoa::@10: scope:[ultoa] from ultoa::@13 ultoa::@5 - (byte*) ultoa::buffer#11 ← phi( ultoa::@13/(byte*) ultoa::buffer#14 ultoa::@5/(byte*) ultoa::buffer#15 ) - (byte) ultoa::started#3 ← phi( ultoa::@13/(byte) ultoa::started#4 ultoa::@5/(byte) ultoa::started#0 ) - (dword) ultoa::value#5 ← phi( ultoa::@13/(dword) ultoa::value#6 ultoa::@5/(dword) ultoa::value#7 ) - (dword*) ultoa::digit_values#6 ← phi( ultoa::@13/(dword*) ultoa::digit_values#7 ultoa::@5/(dword*) ultoa::digit_values#8 ) - (byte) ultoa::digit#2 ← phi( ultoa::@13/(byte) ultoa::digit#1 ultoa::@5/(byte) ultoa::digit#0 ) - (byte) ultoa::max_digits#5 ← phi( ultoa::@13/(byte) ultoa::max_digits#6 ultoa::@5/(byte) ultoa::max_digits#7 ) - (number~) ultoa::$4 ← (byte) ultoa::max_digits#5 - (number) 1 - (bool~) ultoa::$5 ← (byte) ultoa::digit#2 < (number~) ultoa::$4 - if((bool~) ultoa::$5) goto ultoa::@11 - to:ultoa::@12 -ultoa::@11: scope:[ultoa] from ultoa::@10 - (byte) ultoa::max_digits#8 ← phi( ultoa::@10/(byte) ultoa::max_digits#5 ) - (byte*) ultoa::buffer#12 ← phi( ultoa::@10/(byte*) ultoa::buffer#11 ) - (byte) ultoa::started#2 ← phi( ultoa::@10/(byte) ultoa::started#3 ) - (dword) ultoa::value#2 ← phi( ultoa::@10/(dword) ultoa::value#5 ) - (dword*) ultoa::digit_values#5 ← phi( ultoa::@10/(dword*) ultoa::digit_values#6 ) - (byte) ultoa::digit#3 ← phi( ultoa::@10/(byte) ultoa::digit#2 ) - (byte~) ultoa::$10 ← (byte) ultoa::digit#3 * (const byte) SIZEOF_DWORD - (dword) ultoa::digit_value#0 ← *((dword*) ultoa::digit_values#5 + (byte~) ultoa::$10) - (bool~) ultoa::$6 ← (dword) ultoa::value#2 >= (dword) ultoa::digit_value#0 - (bool~) ultoa::$7 ← (byte) ultoa::started#2 || (bool~) ultoa::$6 - (bool~) ultoa::$8 ← ! (bool~) ultoa::$7 - if((bool~) ultoa::$8) goto ultoa::@13 - to:ultoa::@14 -ultoa::@12: scope:[ultoa] from ultoa::@10 - (byte*) ultoa::buffer#7 ← phi( ultoa::@10/(byte*) ultoa::buffer#11 ) - (dword) ultoa::value#3 ← phi( ultoa::@10/(dword) ultoa::value#5 ) - (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#3 - *((byte*) ultoa::buffer#7) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#7 - *((byte*) ultoa::buffer#3) ← (number) 0 - to:ultoa::@return -ultoa::@13: scope:[ultoa] from ultoa::@11 ultoa::@15 - (byte*) ultoa::buffer#14 ← phi( ultoa::@11/(byte*) ultoa::buffer#12 ultoa::@15/(byte*) ultoa::buffer#4 ) - (byte) ultoa::started#4 ← phi( ultoa::@11/(byte) ultoa::started#2 ultoa::@15/(byte) ultoa::started#1 ) - (dword) ultoa::value#6 ← phi( ultoa::@11/(dword) ultoa::value#2 ultoa::@15/(dword) ultoa::value#0 ) - (dword*) ultoa::digit_values#7 ← phi( ultoa::@11/(dword*) ultoa::digit_values#5 ultoa::@15/(dword*) ultoa::digit_values#9 ) - (byte) ultoa::max_digits#6 ← phi( ultoa::@11/(byte) ultoa::max_digits#8 ultoa::@15/(byte) ultoa::max_digits#9 ) - (byte) ultoa::digit#4 ← phi( ultoa::@11/(byte) ultoa::digit#3 ultoa::@15/(byte) ultoa::digit#5 ) - (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#4 - to:ultoa::@10 -ultoa::@14: scope:[ultoa] from ultoa::@11 - (dword*) ultoa::digit_values#10 ← phi( ultoa::@11/(dword*) ultoa::digit_values#5 ) - (byte) ultoa::max_digits#10 ← phi( ultoa::@11/(byte) ultoa::max_digits#8 ) - (byte) ultoa::digit#6 ← phi( ultoa::@11/(byte) ultoa::digit#3 ) - (dword) ultoa::digit_value#1 ← phi( ultoa::@11/(dword) ultoa::digit_value#0 ) - (dword) ultoa::value#4 ← phi( ultoa::@11/(dword) ultoa::value#2 ) - (byte*) ultoa::buffer#8 ← phi( ultoa::@11/(byte*) ultoa::buffer#12 ) - (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#8 - (dword) ultoa_append::value#0 ← (dword) ultoa::value#4 - (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#1 - call ultoa_append - (dword) ultoa_append::return#0 ← (dword) ultoa_append::return#2 - to:ultoa::@15 -ultoa::@15: scope:[ultoa] from ultoa::@14 - (dword*) ultoa::digit_values#9 ← phi( ultoa::@14/(dword*) ultoa::digit_values#10 ) - (byte) ultoa::max_digits#9 ← phi( ultoa::@14/(byte) ultoa::max_digits#10 ) - (byte) ultoa::digit#5 ← phi( ultoa::@14/(byte) ultoa::digit#6 ) - (byte*) ultoa::buffer#9 ← phi( ultoa::@14/(byte*) ultoa::buffer#8 ) - (dword) ultoa_append::return#3 ← phi( ultoa::@14/(dword) ultoa_append::return#0 ) - (dword~) ultoa::$9 ← (dword) ultoa_append::return#3 - (dword) ultoa::value#0 ← (dword~) ultoa::$9 - (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#9 - (byte) ultoa::started#1 ← (number) 1 - to:ultoa::@13 - -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -ultoa_append: scope:[ultoa_append] from ultoa::@14 - (byte*) ultoa_append::buffer#3 ← phi( ultoa::@14/(byte*) ultoa_append::buffer#0 ) - (dword) ultoa_append::sub#3 ← phi( ultoa::@14/(dword) ultoa_append::sub#0 ) - (dword) ultoa_append::value#5 ← phi( ultoa::@14/(dword) ultoa_append::value#0 ) - (byte) ultoa_append::digit#0 ← (byte) 0 - to:ultoa_append::@1 -ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - (byte*) ultoa_append::buffer#2 ← phi( ultoa_append/(byte*) ultoa_append::buffer#3 ultoa_append::@2/(byte*) ultoa_append::buffer#4 ) - (byte) ultoa_append::digit#4 ← phi( ultoa_append/(byte) ultoa_append::digit#0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - (dword) ultoa_append::sub#1 ← phi( ultoa_append/(dword) ultoa_append::sub#3 ultoa_append::@2/(dword) ultoa_append::sub#2 ) - (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#5 ultoa_append::@2/(dword) ultoa_append::value#1 ) - (bool~) ultoa_append::$0 ← (dword) ultoa_append::value#2 >= (dword) ultoa_append::sub#1 - if((bool~) ultoa_append::$0) goto ultoa_append::@2 - to:ultoa_append::@3 -ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - (byte*) ultoa_append::buffer#4 ← phi( ultoa_append::@1/(byte*) ultoa_append::buffer#2 ) - (dword) ultoa_append::sub#2 ← phi( ultoa_append::@1/(dword) ultoa_append::sub#1 ) - (dword) ultoa_append::value#3 ← phi( ultoa_append::@1/(dword) ultoa_append::value#2 ) - (byte) ultoa_append::digit#2 ← phi( ultoa_append::@1/(byte) ultoa_append::digit#4 ) - (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#3 - (dword) ultoa_append::sub#2 - to:ultoa_append::@1 -ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - (dword) ultoa_append::value#4 ← phi( ultoa_append::@1/(dword) ultoa_append::value#2 ) - (byte*) ultoa_append::buffer#1 ← phi( ultoa_append::@1/(byte*) ultoa_append::buffer#2 ) - (byte) ultoa_append::digit#3 ← phi( ultoa_append::@1/(byte) ultoa_append::digit#4 ) - *((byte*) ultoa_append::buffer#1) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#3) - (dword) ultoa_append::return#1 ← (dword) ultoa_append::value#4 - to:ultoa_append::@return -ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - (dword) ultoa_append::return#4 ← phi( ultoa_append::@3/(dword) ultoa_append::return#1 ) - (dword) ultoa_append::return#2 ← (dword) ultoa_append::return#4 - return - to:@return @1: scope:[] from @begin - (byte) conio_cursor_x ← (byte) 0 - (byte) conio_cursor_y ← (byte) 0 - (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT - (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT - (byte) conio_scroll_enable ← (byte) 1 to:@2 -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -gotoxy: scope:[gotoxy] from cscroll::@2 main::@24 - (byte) gotoxy::x#5 ← phi( cscroll::@2/(byte) gotoxy::x#1 main::@24/(byte) gotoxy::x#2 ) - (byte) gotoxy::y#3 ← phi( cscroll::@2/(byte) gotoxy::y#1 main::@24/(byte) gotoxy::y#2 ) - (bool~) gotoxy::$0 ← (byte) gotoxy::y#3 > (number) $19 - (bool~) gotoxy::$1 ← ! (bool~) gotoxy::$0 - if((bool~) gotoxy::$1) goto gotoxy::@1 - to:gotoxy::@3 -gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 - (byte) gotoxy::y#5 ← phi( gotoxy/(byte) gotoxy::y#3 gotoxy::@3/(byte) gotoxy::y#0 ) - (byte) gotoxy::x#3 ← phi( gotoxy/(byte) gotoxy::x#5 gotoxy::@3/(byte) gotoxy::x#6 ) - (bool~) gotoxy::$2 ← (byte) gotoxy::x#3 >= (number) $28 - (bool~) gotoxy::$3 ← ! (bool~) gotoxy::$2 - if((bool~) gotoxy::$3) goto gotoxy::@2 - to:gotoxy::@4 -gotoxy::@3: scope:[gotoxy] from gotoxy - (byte) gotoxy::x#6 ← phi( gotoxy/(byte) gotoxy::x#5 ) - (byte) gotoxy::y#0 ← (number) 0 - to:gotoxy::@1 -gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 - (byte) gotoxy::y#4 ← phi( gotoxy::@1/(byte) gotoxy::y#5 gotoxy::@4/(byte) gotoxy::y#6 ) - (byte) gotoxy::x#4 ← phi( gotoxy::@1/(byte) gotoxy::x#3 gotoxy::@4/(byte) gotoxy::x#0 ) - (byte) conio_cursor_x ← (byte) gotoxy::x#4 - (byte) conio_cursor_y ← (byte) gotoxy::y#4 - (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#4 - (number~) gotoxy::$4 ← (word~) gotoxy::$8 * (number) $28 - (number~) gotoxy::$5 ← (number~) gotoxy::$4 + (byte) gotoxy::x#4 - (word) gotoxy::offset#0 ← (number~) gotoxy::$5 - (byte*~) gotoxy::$6 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 - (byte*) conio_cursor_text ← (byte*~) gotoxy::$6 - (byte*~) gotoxy::$7 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 - (byte*) conio_cursor_color ← (byte*~) gotoxy::$7 - to:gotoxy::@return -gotoxy::@4: scope:[gotoxy] from gotoxy::@1 - (byte) gotoxy::y#6 ← phi( gotoxy::@1/(byte) gotoxy::y#5 ) - (byte) gotoxy::x#0 ← (number) 0 - to:gotoxy::@2 -gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - return - to:@return - -(void()) cputc((byte) cputc::c) -cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 - (byte) cputc::c#3 ← phi( cputs::@2/(byte) cputc::c#0 printf_number_buffer::@9/(byte) cputc::c#2 printf_padding::@2/(byte) cputc::c#1 ) - (bool~) cputc::$0 ← (byte) cputc::c#3 == (byte) ' -' - if((bool~) 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 - (byte) cputc::c#4 ← phi( cputc/(byte) cputc::c#3 ) - *((byte*) conio_cursor_text) ← (byte) cputc::c#4 - (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text - *((byte*) conio_cursor_color) ← (byte) conio_textcolor - (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color - (byte) conio_cursor_x ← ++ (byte) conio_cursor_x - (bool~) cputc::$1 ← (byte) conio_cursor_x == (number) $28 - (bool~) cputc::$2 ← ! (bool~) cputc::$1 - if((bool~) cputc::$2) goto cputc::@return - to:cputc::@3 -cputc::@3: scope:[cputc] from cputc::@2 - (byte) conio_cursor_x ← (number) 0 - (byte) conio_cursor_y ← ++ (byte) conio_cursor_y - call cscroll - 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 - (number~) cputln::$0 ← (number) $28 - (byte) conio_cursor_x - (word) cputln::ln_offset#0 ← (number~) cputln::$0 - (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 - (byte*) conio_cursor_text ← (byte*~) cputln::$1 - (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 - (byte*) conio_cursor_color ← (byte*~) cputln::$2 - (byte) conio_cursor_x ← (number) 0 - (byte) conio_cursor_y ← ++ (byte) 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()) cscroll() -cscroll: scope:[cscroll] from cputc::@3 cputln - (bool~) cscroll::$0 ← (byte) conio_cursor_y == (number) $19 - (bool~) cscroll::$1 ← ! (bool~) cscroll::$0 - if((bool~) cscroll::$1) goto cscroll::@return - to:cscroll::@1 -cscroll::@1: scope:[cscroll] from cscroll - (bool~) cscroll::$9 ← (number) 0 != (byte) conio_scroll_enable - if((bool~) cscroll::$9) goto cscroll::@3 - to:cscroll::@2 -cscroll::@3: scope:[cscroll] from cscroll::@1 - (void*) memcpy::destination#0 ← (void*)(const nomodify byte*) CONIO_SCREEN_TEXT - (void*) memcpy::source#0 ← (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(number) $28 - (word) memcpy::num#0 ← (number) $19*(number) $28-(number) $28 - call memcpy - (void*) memcpy::return#2 ← (void*) memcpy::return#1 - to:cscroll::@4 -cscroll::@4: scope:[cscroll] from cscroll::@3 - (void*) memcpy::destination#1 ← (void*)(const nomodify byte*) CONIO_SCREEN_COLORS - (void*) memcpy::source#1 ← (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(number) $28 - (word) memcpy::num#1 ← (number) $19*(number) $28-(number) $28 - call memcpy - (void*) memcpy::return#3 ← (void*) memcpy::return#1 - to:cscroll::@5 -cscroll::@5: scope:[cscroll] from cscroll::@4 - (void*) memset::str#0 ← (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(number) $19*(number) $28-(number) $28 - (byte) memset::c#0 ← (byte) ' ' - (word) memset::num#0 ← (number) $28 - call memset - (void*) memset::return#2 ← (void*) memset::return#1 - to:cscroll::@6 -cscroll::@6: scope:[cscroll] from cscroll::@5 - (void*) memset::str#1 ← (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(number) $19*(number) $28-(number) $28 - (byte) memset::c#1 ← (byte) conio_textcolor - (word) memset::num#1 ← (number) $28 - call memset - (void*) memset::return#3 ← (void*) memset::return#1 - to:cscroll::@7 -cscroll::@7: scope:[cscroll] from cscroll::@6 - (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (number) $28 - (byte*) conio_cursor_text ← (byte*~) cscroll::$7 - (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (number) $28 - (byte*) conio_cursor_color ← (byte*~) cscroll::$8 - (byte) conio_cursor_y ← -- (byte) conio_cursor_y - to:cscroll::@return -cscroll::@2: scope:[cscroll] from cscroll::@1 - (byte) gotoxy::x#1 ← (number) 0 - (byte) gotoxy::y#1 ← (number) 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()) cputs((to_nomodify byte*) cputs::s) -cputs: scope:[cputs] from main::@25 main::@27 printf_number_buffer::@5 - (to_nomodify byte*) cputs::s#5 ← phi( main::@25/(to_nomodify byte*) cputs::s#2 main::@27/(to_nomodify byte*) cputs::s#3 printf_number_buffer::@5/(to_nomodify byte*) cputs::s#1 ) - (byte) cputs::c#0 ← (byte) 0 - to:cputs::@1 -cputs::@1: scope:[cputs] from cputs cputs::@3 - (to_nomodify byte*) cputs::s#4 ← phi( cputs/(to_nomodify byte*) cputs::s#5 cputs::@3/(to_nomodify byte*) cputs::s#6 ) - (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) - (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4 - (bool~) cputs::$1 ← (number) 0 != (byte) cputs::c#1 - if((bool~) cputs::$1) goto cputs::@2 - to:cputs::@return -cputs::@2: scope:[cputs] from cputs::@1 - (to_nomodify byte*) cputs::s#7 ← phi( cputs::@1/(to_nomodify byte*) cputs::s#0 ) - (byte) cputs::c#2 ← phi( cputs::@1/(byte) cputs::c#1 ) - (byte) cputc::c#0 ← (byte) cputs::c#2 - call cputc - to:cputs::@3 -cputs::@3: scope:[cputs] from cputs::@2 - (to_nomodify byte*) cputs::s#6 ← phi( cputs::@2/(to_nomodify byte*) cputs::s#7 ) - to:cputs::@1 -cputs::@return: scope:[cputs] from cputs::@1 - return - to:@return - (byte()) textcolor((byte) textcolor::color) textcolor: scope:[textcolor] from main::@16 (byte) textcolor::color#1 ← phi( main::@16/(byte) textcolor::color#0 ) @@ -775,393 +116,6 @@ kbhit::@return: scope:[kbhit] from kbhit (byte) kbhit::return#1 ← (byte) kbhit::return#3 return to:@return - -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) printf_padding::pad#1 printf_number_buffer::@12/(byte) printf_padding::pad#2 printf_number_buffer::@8/(byte) printf_padding::pad#0 ) - (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) - (byte) printf_padding::i#0 ← (byte) 0 - to:printf_padding::@1 -printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - (byte) printf_padding::pad#4 ← phi( printf_padding/(byte) printf_padding::pad#5 printf_padding::@3/(byte) printf_padding::pad#6 ) - (byte) printf_padding::length#3 ← phi( printf_padding/(byte) printf_padding::length#4 printf_padding::@3/(byte) printf_padding::length#5 ) - (byte) printf_padding::i#2 ← phi( printf_padding/(byte) printf_padding::i#0 printf_padding::@3/(byte) printf_padding::i#1 ) - (bool~) printf_padding::$0 ← (byte) printf_padding::i#2 < (byte) printf_padding::length#3 - if((bool~) printf_padding::$0) goto printf_padding::@2 - to:printf_padding::@return -printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - (byte) printf_padding::length#6 ← phi( printf_padding::@1/(byte) printf_padding::length#3 ) - (byte) printf_padding::i#4 ← phi( printf_padding::@1/(byte) printf_padding::i#2 ) - (byte) printf_padding::pad#3 ← phi( printf_padding::@1/(byte) printf_padding::pad#4 ) - (byte) cputc::c#1 ← (byte) printf_padding::pad#3 - call cputc - to:printf_padding::@3 -printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - (byte) printf_padding::pad#6 ← phi( printf_padding::@2/(byte) printf_padding::pad#3 ) - (byte) printf_padding::length#5 ← phi( printf_padding::@2/(byte) printf_padding::length#6 ) - (byte) printf_padding::i#3 ← phi( printf_padding::@2/(byte) printf_padding::i#4 ) - (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#3 - to:printf_padding::@1 -printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - return - to:@return - -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from main::@28 - (byte) printf_ulong::format_upper_case#5 ← phi( main::@28/(byte) printf_ulong::format_upper_case#0 ) - (byte) printf_ulong::format_zero_padding#5 ← phi( main::@28/(byte) printf_ulong::format_zero_padding#0 ) - (byte) printf_ulong::format_justify_left#5 ← phi( main::@28/(byte) printf_ulong::format_justify_left#0 ) - (byte) printf_ulong::format_min_length#5 ← phi( main::@28/(byte) printf_ulong::format_min_length#0 ) - (byte) printf_ulong::format_radix#5 ← phi( main::@28/(byte) printf_ulong::format_radix#0 ) - (dword) printf_ulong::uvalue#4 ← phi( main::@28/(dword) printf_ulong::uvalue#0 ) - (byte) printf_ulong::format_sign_always#1 ← phi( main::@28/(byte) printf_ulong::format_sign_always#0 ) - (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#1 - if((bool~) printf_ulong::$5) goto printf_ulong::@1 - to:printf_ulong::@2 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#5 ) - (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#5 ) - (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#1 ) - (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#5 ) - (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#5 ) - (byte) printf_ulong::format_radix#3 ← phi( printf_ulong/(byte) printf_ulong::format_radix#5 ) - (dword) printf_ulong::uvalue#2 ← phi( printf_ulong/(dword) printf_ulong::uvalue#4 ) - (byte~) printf_ulong::$1 ← (byte) '+' - to:printf_ulong::@3 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong - (byte) printf_ulong::format_upper_case#4 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#5 ) - (byte) printf_ulong::format_zero_padding#4 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#5 ) - (byte) printf_ulong::format_sign_always#5 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#1 ) - (byte) printf_ulong::format_justify_left#4 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#5 ) - (byte) printf_ulong::format_min_length#4 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#5 ) - (byte) printf_ulong::format_radix#4 ← phi( printf_ulong/(byte) printf_ulong::format_radix#5 ) - (dword) printf_ulong::uvalue#3 ← phi( printf_ulong/(dword) printf_ulong::uvalue#4 ) - (number~) printf_ulong::$0 ← (number) 0 - to:printf_ulong::@3 -printf_ulong::@3: scope:[printf_ulong] from printf_ulong::@1 printf_ulong::@2 - (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) - (number~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) - *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (number~) printf_ulong::$2 - (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#1 - (byte*) ultoa::buffer#5 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) ultoa::radix#0 ← (byte) printf_ulong::format_radix#1 - call ultoa - to:printf_ulong::@4 -printf_ulong::@4: scope:[printf_ulong] from printf_ulong::@3 - (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_radix#1 ) - (byte) printf_ulong::format_upper_case#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_upper_case#2 ) - (byte) printf_ulong::format_zero_padding#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_zero_padding#2 ) - (byte) printf_ulong::format_sign_always#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_sign_always#3 ) - (byte) printf_ulong::format_justify_left#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_justify_left#2 ) - (byte) printf_ulong::format_min_length#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_min_length#2 ) - (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - (byte*) printf_number_buffer::buffer_digits#0 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) printf_number_buffer::format_min_length#0 ← (byte) printf_ulong::format_min_length#1 - (byte) printf_number_buffer::format_justify_left#0 ← (byte) printf_ulong::format_justify_left#1 - (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#2 - (byte) printf_number_buffer::format_zero_padding#0 ← (byte) printf_ulong::format_zero_padding#1 - (byte) printf_number_buffer::format_upper_case#0 ← (byte) printf_ulong::format_upper_case#1 - (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#2 - call printf_number_buffer - to:printf_ulong::@5 -printf_ulong::@5: scope:[printf_ulong] from printf_ulong::@4 - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@5 - return - to:@return - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from main::@26 - (byte) printf_uchar::format_upper_case#5 ← phi( main::@26/(byte) printf_uchar::format_upper_case#0 ) - (byte) printf_uchar::format_zero_padding#5 ← phi( main::@26/(byte) printf_uchar::format_zero_padding#0 ) - (byte) printf_uchar::format_justify_left#5 ← phi( main::@26/(byte) printf_uchar::format_justify_left#0 ) - (byte) printf_uchar::format_min_length#5 ← phi( main::@26/(byte) printf_uchar::format_min_length#0 ) - (byte) printf_uchar::format_radix#5 ← phi( main::@26/(byte) printf_uchar::format_radix#0 ) - (byte) printf_uchar::uvalue#4 ← phi( main::@26/(byte) printf_uchar::uvalue#0 ) - (byte) printf_uchar::format_sign_always#1 ← phi( main::@26/(byte) printf_uchar::format_sign_always#0 ) - (bool~) printf_uchar::$5 ← (number) 0 != (byte) printf_uchar::format_sign_always#1 - if((bool~) printf_uchar::$5) goto printf_uchar::@1 - to:printf_uchar::@2 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - (byte) printf_uchar::format_upper_case#3 ← phi( printf_uchar/(byte) printf_uchar::format_upper_case#5 ) - (byte) printf_uchar::format_zero_padding#3 ← phi( printf_uchar/(byte) printf_uchar::format_zero_padding#5 ) - (byte) printf_uchar::format_sign_always#4 ← phi( printf_uchar/(byte) printf_uchar::format_sign_always#1 ) - (byte) printf_uchar::format_justify_left#3 ← phi( printf_uchar/(byte) printf_uchar::format_justify_left#5 ) - (byte) printf_uchar::format_min_length#3 ← phi( printf_uchar/(byte) printf_uchar::format_min_length#5 ) - (byte) printf_uchar::format_radix#3 ← phi( printf_uchar/(byte) printf_uchar::format_radix#5 ) - (byte) printf_uchar::uvalue#2 ← phi( printf_uchar/(byte) printf_uchar::uvalue#4 ) - (byte~) printf_uchar::$1 ← (byte) '+' - to:printf_uchar::@3 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar - (byte) printf_uchar::format_upper_case#4 ← phi( printf_uchar/(byte) printf_uchar::format_upper_case#5 ) - (byte) printf_uchar::format_zero_padding#4 ← phi( printf_uchar/(byte) printf_uchar::format_zero_padding#5 ) - (byte) printf_uchar::format_sign_always#5 ← phi( printf_uchar/(byte) printf_uchar::format_sign_always#1 ) - (byte) printf_uchar::format_justify_left#4 ← phi( printf_uchar/(byte) printf_uchar::format_justify_left#5 ) - (byte) printf_uchar::format_min_length#4 ← phi( printf_uchar/(byte) printf_uchar::format_min_length#5 ) - (byte) printf_uchar::format_radix#4 ← phi( printf_uchar/(byte) printf_uchar::format_radix#5 ) - (byte) printf_uchar::uvalue#3 ← phi( printf_uchar/(byte) printf_uchar::uvalue#4 ) - (number~) printf_uchar::$0 ← (number) 0 - to:printf_uchar::@3 -printf_uchar::@3: scope:[printf_uchar] from printf_uchar::@1 printf_uchar::@2 - (byte) printf_uchar::format_upper_case#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_upper_case#3 printf_uchar::@2/(byte) printf_uchar::format_upper_case#4 ) - (byte) printf_uchar::format_zero_padding#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_zero_padding#3 printf_uchar::@2/(byte) printf_uchar::format_zero_padding#4 ) - (byte) printf_uchar::format_sign_always#3 ← phi( printf_uchar::@1/(byte) printf_uchar::format_sign_always#4 printf_uchar::@2/(byte) printf_uchar::format_sign_always#5 ) - (byte) printf_uchar::format_justify_left#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_justify_left#3 printf_uchar::@2/(byte) printf_uchar::format_justify_left#4 ) - (byte) printf_uchar::format_min_length#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_min_length#3 printf_uchar::@2/(byte) printf_uchar::format_min_length#4 ) - (byte) printf_uchar::format_radix#1 ← phi( printf_uchar::@1/(byte) printf_uchar::format_radix#3 printf_uchar::@2/(byte) printf_uchar::format_radix#4 ) - (byte) printf_uchar::uvalue#1 ← phi( printf_uchar::@1/(byte) printf_uchar::uvalue#2 printf_uchar::@2/(byte) printf_uchar::uvalue#3 ) - (number~) printf_uchar::$2 ← phi( printf_uchar::@1/(byte~) printf_uchar::$1 printf_uchar::@2/(number~) printf_uchar::$0 ) - *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (number~) printf_uchar::$2 - (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#1 - (byte*) uctoa::buffer#5 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) uctoa::radix#0 ← (byte) printf_uchar::format_radix#1 - call uctoa - to:printf_uchar::@4 -printf_uchar::@4: scope:[printf_uchar] from printf_uchar::@3 - (byte) printf_uchar::format_radix#2 ← phi( printf_uchar::@3/(byte) printf_uchar::format_radix#1 ) - (byte) printf_uchar::format_upper_case#1 ← phi( printf_uchar::@3/(byte) printf_uchar::format_upper_case#2 ) - (byte) printf_uchar::format_zero_padding#1 ← phi( printf_uchar::@3/(byte) printf_uchar::format_zero_padding#2 ) - (byte) printf_uchar::format_sign_always#2 ← phi( printf_uchar::@3/(byte) printf_uchar::format_sign_always#3 ) - (byte) printf_uchar::format_justify_left#1 ← phi( printf_uchar::@3/(byte) printf_uchar::format_justify_left#2 ) - (byte) printf_uchar::format_min_length#1 ← phi( printf_uchar::@3/(byte) printf_uchar::format_min_length#2 ) - (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - (byte*) printf_number_buffer::buffer_digits#1 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) printf_number_buffer::format_min_length#1 ← (byte) printf_uchar::format_min_length#1 - (byte) printf_number_buffer::format_justify_left#1 ← (byte) printf_uchar::format_justify_left#1 - (byte) printf_number_buffer::format_sign_always#1 ← (byte) printf_uchar::format_sign_always#2 - (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_uchar::format_zero_padding#1 - (byte) printf_number_buffer::format_upper_case#1 ← (byte) printf_uchar::format_upper_case#1 - (byte) printf_number_buffer::format_radix#1 ← (byte) printf_uchar::format_radix#2 - call printf_number_buffer - to:printf_uchar::@5 -printf_uchar::@5: scope:[printf_uchar] from printf_uchar::@4 - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@5 - return - to:@return - -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@4 printf_ulong::@4 - (byte) printf_number_buffer::format_upper_case#11 ← phi( printf_uchar::@4/(byte) printf_number_buffer::format_upper_case#1 printf_ulong::@4/(byte) printf_number_buffer::format_upper_case#0 ) - (byte) printf_number_buffer::buffer_sign#8 ← phi( printf_uchar::@4/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@4/(byte) printf_number_buffer::buffer_sign#0 ) - (byte*) printf_number_buffer::buffer_digits#5 ← phi( printf_uchar::@4/(byte*) printf_number_buffer::buffer_digits#1 printf_ulong::@4/(byte*) printf_number_buffer::buffer_digits#0 ) - (byte) printf_number_buffer::format_zero_padding#5 ← phi( printf_uchar::@4/(byte) printf_number_buffer::format_zero_padding#1 printf_ulong::@4/(byte) printf_number_buffer::format_zero_padding#0 ) - (byte) printf_number_buffer::format_justify_left#4 ← phi( printf_uchar::@4/(byte) printf_number_buffer::format_justify_left#1 printf_ulong::@4/(byte) printf_number_buffer::format_justify_left#0 ) - (byte) printf_number_buffer::format_min_length#2 ← phi( printf_uchar::@4/(byte) printf_number_buffer::format_min_length#1 printf_ulong::@4/(byte) printf_number_buffer::format_min_length#0 ) - (signed byte) printf_number_buffer::padding#0 ← (signed byte) 0 - (bool~) printf_number_buffer::$26 ← (number) 0 != (byte) printf_number_buffer::format_min_length#2 - (bool~) printf_number_buffer::$0 ← ! (bool~) printf_number_buffer::$26 - if((bool~) printf_number_buffer::$0) goto printf_number_buffer::@1 - to:printf_number_buffer::@6 -printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@14 - (byte*) printf_number_buffer::buffer_digits#13 ← phi( printf_number_buffer/(byte*) printf_number_buffer::buffer_digits#5 printf_number_buffer::@13/(byte*) printf_number_buffer::buffer_digits#16 printf_number_buffer::@14/(byte*) printf_number_buffer::buffer_digits#17 ) - (byte) printf_number_buffer::format_upper_case#8 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_upper_case#11 printf_number_buffer::@13/(byte) printf_number_buffer::format_upper_case#12 printf_number_buffer::@14/(byte) printf_number_buffer::format_upper_case#13 ) - (byte) printf_number_buffer::buffer_sign#6 ← phi( printf_number_buffer/(byte) printf_number_buffer::buffer_sign#8 printf_number_buffer::@13/(byte) printf_number_buffer::buffer_sign#9 printf_number_buffer::@14/(byte) printf_number_buffer::buffer_sign#10 ) - (signed byte) printf_number_buffer::padding#3 ← phi( printf_number_buffer/(signed byte) printf_number_buffer::padding#0 printf_number_buffer::@13/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@14/(signed byte) printf_number_buffer::padding#2 ) - (byte) printf_number_buffer::format_zero_padding#2 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_zero_padding#5 printf_number_buffer::@13/(byte) printf_number_buffer::format_zero_padding#6 printf_number_buffer::@14/(byte) printf_number_buffer::format_zero_padding#7 ) - (byte) printf_number_buffer::format_justify_left#2 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_justify_left#4 printf_number_buffer::@13/(byte) printf_number_buffer::format_justify_left#5 printf_number_buffer::@14/(byte) printf_number_buffer::format_justify_left#6 ) - (bool~) printf_number_buffer::$27 ← (number) 0 != (byte) printf_number_buffer::format_justify_left#2 - (bool~) printf_number_buffer::$1 ← ! (bool~) printf_number_buffer::$27 - (bool~) printf_number_buffer::$28 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#2 - (bool~) printf_number_buffer::$2 ← ! (bool~) printf_number_buffer::$28 - (bool~) printf_number_buffer::$3 ← (bool~) printf_number_buffer::$1 && (bool~) printf_number_buffer::$2 - (bool~) printf_number_buffer::$4 ← (bool~) printf_number_buffer::$3 && (signed byte) printf_number_buffer::padding#3 - (bool~) printf_number_buffer::$5 ← ! (bool~) printf_number_buffer::$4 - if((bool~) printf_number_buffer::$5) goto printf_number_buffer::@2 - to:printf_number_buffer::@8 -printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - (byte) printf_number_buffer::format_upper_case#17 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_upper_case#11 ) - (byte) printf_number_buffer::format_zero_padding#17 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_zero_padding#5 ) - (byte) printf_number_buffer::format_justify_left#12 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_justify_left#4 ) - (byte) printf_number_buffer::format_min_length#6 ← phi( printf_number_buffer/(byte) printf_number_buffer::format_min_length#2 ) - (byte) printf_number_buffer::buffer_sign#5 ← phi( printf_number_buffer/(byte) printf_number_buffer::buffer_sign#8 ) - (byte*) printf_number_buffer::buffer_digits#2 ← phi( printf_number_buffer/(byte*) printf_number_buffer::buffer_digits#5 ) - (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#2 - call strlen - (word) strlen::return#2 ← (word) strlen::return#1 - to:printf_number_buffer::@15 -printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@6 - (byte*) printf_number_buffer::buffer_digits#19 ← phi( printf_number_buffer::@6/(byte*) printf_number_buffer::buffer_digits#2 ) - (byte) printf_number_buffer::format_upper_case#15 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::format_upper_case#17 ) - (byte) printf_number_buffer::format_zero_padding#11 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::format_zero_padding#17 ) - (byte) printf_number_buffer::format_justify_left#8 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::format_justify_left#12 ) - (byte) printf_number_buffer::format_min_length#4 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::format_min_length#6 ) - (byte) printf_number_buffer::buffer_sign#2 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::buffer_sign#5 ) - (word) strlen::return#4 ← phi( printf_number_buffer::@6/(word) strlen::return#2 ) - (word~) printf_number_buffer::$19 ← (word) strlen::return#4 - (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 - (bool~) printf_number_buffer::$29 ← (number) 0 != (byte) printf_number_buffer::buffer_sign#2 - (bool~) printf_number_buffer::$20 ← ! (bool~) printf_number_buffer::$29 - if((bool~) printf_number_buffer::$20) goto printf_number_buffer::@13 - to:printf_number_buffer::@7 -printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@15 printf_number_buffer::@7 - (byte*) printf_number_buffer::buffer_digits#16 ← phi( printf_number_buffer::@15/(byte*) printf_number_buffer::buffer_digits#19 printf_number_buffer::@7/(byte*) printf_number_buffer::buffer_digits#20 ) - (byte) printf_number_buffer::format_upper_case#12 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_upper_case#15 printf_number_buffer::@7/(byte) printf_number_buffer::format_upper_case#16 ) - (byte) printf_number_buffer::buffer_sign#9 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::buffer_sign#2 printf_number_buffer::@7/(byte) printf_number_buffer::buffer_sign#12 ) - (byte) printf_number_buffer::format_zero_padding#6 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_zero_padding#11 printf_number_buffer::@7/(byte) printf_number_buffer::format_zero_padding#12 ) - (byte) printf_number_buffer::format_justify_left#5 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_justify_left#8 printf_number_buffer::@7/(byte) printf_number_buffer::format_justify_left#9 ) - (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@15/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) - (byte) printf_number_buffer::format_min_length#3 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_min_length#4 printf_number_buffer::@7/(byte) printf_number_buffer::format_min_length#5 ) - (signed byte~) printf_number_buffer::$25 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte~) printf_number_buffer::$21 ← (signed byte~) printf_number_buffer::$25 - (signed byte) printf_number_buffer::len#2 - (signed byte) printf_number_buffer::padding#1 ← (signed byte~) printf_number_buffer::$21 - (bool~) printf_number_buffer::$22 ← (signed byte) printf_number_buffer::padding#1 < (number) 0 - (bool~) printf_number_buffer::$23 ← ! (bool~) printf_number_buffer::$22 - if((bool~) printf_number_buffer::$23) goto printf_number_buffer::@1 - to:printf_number_buffer::@14 -printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@15 - (byte*) printf_number_buffer::buffer_digits#20 ← phi( printf_number_buffer::@15/(byte*) printf_number_buffer::buffer_digits#19 ) - (byte) printf_number_buffer::format_upper_case#16 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_upper_case#15 ) - (byte) printf_number_buffer::buffer_sign#12 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::buffer_sign#2 ) - (byte) printf_number_buffer::format_zero_padding#12 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_zero_padding#11 ) - (byte) printf_number_buffer::format_justify_left#9 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_justify_left#8 ) - (byte) printf_number_buffer::format_min_length#5 ← phi( printf_number_buffer::@15/(byte) printf_number_buffer::format_min_length#4 ) - (signed byte) printf_number_buffer::len#3 ← phi( printf_number_buffer::@15/(signed byte) printf_number_buffer::len#0 ) - (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#3 - to:printf_number_buffer::@13 -printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@13 - (byte*) printf_number_buffer::buffer_digits#17 ← phi( printf_number_buffer::@13/(byte*) printf_number_buffer::buffer_digits#16 ) - (byte) printf_number_buffer::format_upper_case#13 ← phi( printf_number_buffer::@13/(byte) printf_number_buffer::format_upper_case#12 ) - (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_number_buffer::@13/(byte) printf_number_buffer::buffer_sign#9 ) - (byte) printf_number_buffer::format_zero_padding#7 ← phi( printf_number_buffer::@13/(byte) printf_number_buffer::format_zero_padding#6 ) - (byte) printf_number_buffer::format_justify_left#6 ← phi( printf_number_buffer::@13/(byte) printf_number_buffer::format_justify_left#5 ) - (signed byte) printf_number_buffer::padding#2 ← (number) 0 - to:printf_number_buffer::@1 -printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 - (byte) printf_number_buffer::format_justify_left#17 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::format_justify_left#2 printf_number_buffer::@16/(byte) printf_number_buffer::format_justify_left#19 ) - (byte*) printf_number_buffer::buffer_digits#11 ← phi( printf_number_buffer::@1/(byte*) printf_number_buffer::buffer_digits#13 printf_number_buffer::@16/(byte*) printf_number_buffer::buffer_digits#14 ) - (byte) printf_number_buffer::format_upper_case#6 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::format_upper_case#8 printf_number_buffer::@16/(byte) printf_number_buffer::format_upper_case#9 ) - (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer::@1/(signed byte) printf_number_buffer::padding#3 printf_number_buffer::@16/(signed byte) printf_number_buffer::padding#12 ) - (byte) printf_number_buffer::format_zero_padding#9 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::format_zero_padding#2 printf_number_buffer::@16/(byte) printf_number_buffer::format_zero_padding#13 ) - (byte) printf_number_buffer::buffer_sign#3 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::buffer_sign#6 printf_number_buffer::@16/(byte) printf_number_buffer::buffer_sign#7 ) - (bool~) printf_number_buffer::$30 ← (number) 0 != (byte) printf_number_buffer::buffer_sign#3 - (bool~) printf_number_buffer::$7 ← ! (bool~) printf_number_buffer::$30 - if((bool~) printf_number_buffer::$7) goto printf_number_buffer::@3 - to:printf_number_buffer::@9 -printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@1 - (byte) printf_number_buffer::format_justify_left#21 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::format_justify_left#2 ) - (byte*) printf_number_buffer::buffer_digits#18 ← phi( printf_number_buffer::@1/(byte*) printf_number_buffer::buffer_digits#13 ) - (byte) printf_number_buffer::format_upper_case#14 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::format_upper_case#8 ) - (byte) printf_number_buffer::format_zero_padding#18 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::format_zero_padding#2 ) - (byte) printf_number_buffer::buffer_sign#11 ← phi( printf_number_buffer::@1/(byte) printf_number_buffer::buffer_sign#6 ) - (signed byte) printf_number_buffer::padding#4 ← phi( printf_number_buffer::@1/(signed byte) printf_number_buffer::padding#3 ) - (byte) printf_padding::pad#0 ← (byte) ' ' - (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#4 - call printf_padding - to:printf_number_buffer::@16 -printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@8 - (byte) printf_number_buffer::format_justify_left#19 ← phi( printf_number_buffer::@8/(byte) printf_number_buffer::format_justify_left#21 ) - (byte*) printf_number_buffer::buffer_digits#14 ← phi( printf_number_buffer::@8/(byte*) printf_number_buffer::buffer_digits#18 ) - (byte) printf_number_buffer::format_upper_case#9 ← phi( printf_number_buffer::@8/(byte) printf_number_buffer::format_upper_case#14 ) - (signed byte) printf_number_buffer::padding#12 ← phi( printf_number_buffer::@8/(signed byte) printf_number_buffer::padding#4 ) - (byte) printf_number_buffer::format_zero_padding#13 ← phi( printf_number_buffer::@8/(byte) printf_number_buffer::format_zero_padding#18 ) - (byte) printf_number_buffer::buffer_sign#7 ← phi( printf_number_buffer::@8/(byte) printf_number_buffer::buffer_sign#11 ) - to:printf_number_buffer::@2 -printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@17 printf_number_buffer::@2 - (byte) printf_number_buffer::format_justify_left#14 ← phi( printf_number_buffer::@17/(byte) printf_number_buffer::format_justify_left#16 printf_number_buffer::@2/(byte) printf_number_buffer::format_justify_left#17 ) - (byte*) printf_number_buffer::buffer_digits#9 ← phi( printf_number_buffer::@17/(byte*) printf_number_buffer::buffer_digits#10 printf_number_buffer::@2/(byte*) printf_number_buffer::buffer_digits#11 ) - (byte) printf_number_buffer::format_upper_case#4 ← phi( printf_number_buffer::@17/(byte) printf_number_buffer::format_upper_case#5 printf_number_buffer::@2/(byte) printf_number_buffer::format_upper_case#6 ) - (signed byte) printf_number_buffer::padding#5 ← phi( printf_number_buffer::@17/(signed byte) printf_number_buffer::padding#9 printf_number_buffer::@2/(signed byte) printf_number_buffer::padding#10 ) - (byte) printf_number_buffer::format_zero_padding#3 ← phi( printf_number_buffer::@17/(byte) printf_number_buffer::format_zero_padding#8 printf_number_buffer::@2/(byte) printf_number_buffer::format_zero_padding#9 ) - (bool~) printf_number_buffer::$9 ← (byte) printf_number_buffer::format_zero_padding#3 && (signed byte) printf_number_buffer::padding#5 - (bool~) printf_number_buffer::$10 ← ! (bool~) printf_number_buffer::$9 - if((bool~) printf_number_buffer::$10) goto printf_number_buffer::@4 - to:printf_number_buffer::@10 -printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - (byte) printf_number_buffer::format_justify_left#20 ← phi( printf_number_buffer::@2/(byte) printf_number_buffer::format_justify_left#17 ) - (byte*) printf_number_buffer::buffer_digits#15 ← phi( printf_number_buffer::@2/(byte*) printf_number_buffer::buffer_digits#11 ) - (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_number_buffer::@2/(byte) printf_number_buffer::format_upper_case#6 ) - (signed byte) printf_number_buffer::padding#13 ← phi( printf_number_buffer::@2/(signed byte) printf_number_buffer::padding#10 ) - (byte) printf_number_buffer::format_zero_padding#14 ← phi( printf_number_buffer::@2/(byte) printf_number_buffer::format_zero_padding#9 ) - (byte) printf_number_buffer::buffer_sign#4 ← phi( printf_number_buffer::@2/(byte) printf_number_buffer::buffer_sign#3 ) - (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#4 - call cputc - to:printf_number_buffer::@17 -printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@9 - (byte) printf_number_buffer::format_justify_left#16 ← phi( printf_number_buffer::@9/(byte) printf_number_buffer::format_justify_left#20 ) - (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_number_buffer::@9/(byte*) printf_number_buffer::buffer_digits#15 ) - (byte) printf_number_buffer::format_upper_case#5 ← phi( printf_number_buffer::@9/(byte) printf_number_buffer::format_upper_case#10 ) - (signed byte) printf_number_buffer::padding#9 ← phi( printf_number_buffer::@9/(signed byte) printf_number_buffer::padding#13 ) - (byte) printf_number_buffer::format_zero_padding#8 ← phi( printf_number_buffer::@9/(byte) printf_number_buffer::format_zero_padding#14 ) - to:printf_number_buffer::@3 -printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@18 printf_number_buffer::@3 - (signed byte) printf_number_buffer::padding#15 ← phi( printf_number_buffer::@18/(signed byte) printf_number_buffer::padding#16 printf_number_buffer::@3/(signed byte) printf_number_buffer::padding#5 ) - (byte) printf_number_buffer::format_justify_left#11 ← phi( printf_number_buffer::@18/(byte) printf_number_buffer::format_justify_left#13 printf_number_buffer::@3/(byte) printf_number_buffer::format_justify_left#14 ) - (byte) printf_number_buffer::format_zero_padding#16 ← phi( printf_number_buffer::@18/(byte) printf_number_buffer::format_zero_padding#19 printf_number_buffer::@3/(byte) printf_number_buffer::format_zero_padding#3 ) - (byte*) printf_number_buffer::buffer_digits#7 ← phi( printf_number_buffer::@18/(byte*) printf_number_buffer::buffer_digits#8 printf_number_buffer::@3/(byte*) printf_number_buffer::buffer_digits#9 ) - (byte) printf_number_buffer::format_upper_case#2 ← phi( printf_number_buffer::@18/(byte) printf_number_buffer::format_upper_case#3 printf_number_buffer::@3/(byte) printf_number_buffer::format_upper_case#4 ) - (bool~) printf_number_buffer::$31 ← (number) 0 != (byte) printf_number_buffer::format_upper_case#2 - (bool~) printf_number_buffer::$12 ← ! (bool~) printf_number_buffer::$31 - if((bool~) printf_number_buffer::$12) goto printf_number_buffer::@5 - to:printf_number_buffer::@11 -printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@3 - (byte) printf_number_buffer::format_justify_left#18 ← phi( printf_number_buffer::@3/(byte) printf_number_buffer::format_justify_left#14 ) - (byte) printf_number_buffer::format_zero_padding#21 ← phi( printf_number_buffer::@3/(byte) printf_number_buffer::format_zero_padding#3 ) - (byte*) printf_number_buffer::buffer_digits#12 ← phi( printf_number_buffer::@3/(byte*) printf_number_buffer::buffer_digits#9 ) - (byte) printf_number_buffer::format_upper_case#7 ← phi( printf_number_buffer::@3/(byte) printf_number_buffer::format_upper_case#4 ) - (signed byte) printf_number_buffer::padding#6 ← phi( printf_number_buffer::@3/(signed byte) printf_number_buffer::padding#5 ) - (byte) printf_padding::pad#1 ← (byte) '0' - (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#6 - call printf_padding - to:printf_number_buffer::@18 -printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@10 - (signed byte) printf_number_buffer::padding#16 ← phi( printf_number_buffer::@10/(signed byte) printf_number_buffer::padding#6 ) - (byte) printf_number_buffer::format_justify_left#13 ← phi( printf_number_buffer::@10/(byte) printf_number_buffer::format_justify_left#18 ) - (byte) printf_number_buffer::format_zero_padding#19 ← phi( printf_number_buffer::@10/(byte) printf_number_buffer::format_zero_padding#21 ) - (byte*) printf_number_buffer::buffer_digits#8 ← phi( printf_number_buffer::@10/(byte*) printf_number_buffer::buffer_digits#12 ) - (byte) printf_number_buffer::format_upper_case#3 ← phi( printf_number_buffer::@10/(byte) printf_number_buffer::format_upper_case#7 ) - to:printf_number_buffer::@4 -printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@20 printf_number_buffer::@4 - (signed byte) printf_number_buffer::padding#11 ← phi( printf_number_buffer::@20/(signed byte) printf_number_buffer::padding#14 printf_number_buffer::@4/(signed byte) printf_number_buffer::padding#15 ) - (byte) printf_number_buffer::format_justify_left#7 ← phi( printf_number_buffer::@20/(byte) printf_number_buffer::format_justify_left#10 printf_number_buffer::@4/(byte) printf_number_buffer::format_justify_left#11 ) - (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_number_buffer::@20/(byte) printf_number_buffer::format_zero_padding#15 printf_number_buffer::@4/(byte) printf_number_buffer::format_zero_padding#16 ) - (byte*) printf_number_buffer::buffer_digits#3 ← phi( printf_number_buffer::@20/(byte*) printf_number_buffer::buffer_digits#6 printf_number_buffer::@4/(byte*) printf_number_buffer::buffer_digits#7 ) - (to_nomodify byte*) cputs::s#1 ← (byte*) printf_number_buffer::buffer_digits#3 - call cputs - to:printf_number_buffer::@19 -printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@5 - (signed byte) printf_number_buffer::padding#7 ← phi( printf_number_buffer::@5/(signed byte) printf_number_buffer::padding#11 ) - (byte) printf_number_buffer::format_justify_left#3 ← phi( printf_number_buffer::@5/(byte) printf_number_buffer::format_justify_left#7 ) - (byte) printf_number_buffer::format_zero_padding#4 ← phi( printf_number_buffer::@5/(byte) printf_number_buffer::format_zero_padding#10 ) - (bool~) printf_number_buffer::$32 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#4 - (bool~) printf_number_buffer::$14 ← ! (bool~) printf_number_buffer::$32 - (bool~) printf_number_buffer::$15 ← (byte) printf_number_buffer::format_justify_left#3 && (bool~) printf_number_buffer::$14 - (bool~) printf_number_buffer::$16 ← (bool~) printf_number_buffer::$15 && (signed byte) printf_number_buffer::padding#7 - (bool~) printf_number_buffer::$17 ← ! (bool~) printf_number_buffer::$16 - if((bool~) printf_number_buffer::$17) goto printf_number_buffer::@return - to:printf_number_buffer::@12 -printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - (signed byte) printf_number_buffer::padding#17 ← phi( printf_number_buffer::@4/(signed byte) printf_number_buffer::padding#15 ) - (byte) printf_number_buffer::format_justify_left#15 ← phi( printf_number_buffer::@4/(byte) printf_number_buffer::format_justify_left#11 ) - (byte) printf_number_buffer::format_zero_padding#20 ← phi( printf_number_buffer::@4/(byte) printf_number_buffer::format_zero_padding#16 ) - (byte*) printf_number_buffer::buffer_digits#4 ← phi( printf_number_buffer::@4/(byte*) printf_number_buffer::buffer_digits#7 ) - (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#4 - call strupr - (byte*) strupr::return#2 ← (byte*) strupr::return#1 - to:printf_number_buffer::@20 -printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@11 - (signed byte) printf_number_buffer::padding#14 ← phi( printf_number_buffer::@11/(signed byte) printf_number_buffer::padding#17 ) - (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_number_buffer::@11/(byte) printf_number_buffer::format_justify_left#15 ) - (byte) printf_number_buffer::format_zero_padding#15 ← phi( printf_number_buffer::@11/(byte) printf_number_buffer::format_zero_padding#20 ) - (byte*) printf_number_buffer::buffer_digits#6 ← phi( printf_number_buffer::@11/(byte*) printf_number_buffer::buffer_digits#4 ) - to:printf_number_buffer::@5 -printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - (signed byte) printf_number_buffer::padding#8 ← phi( printf_number_buffer::@19/(signed byte) printf_number_buffer::padding#7 ) - (byte) printf_padding::pad#2 ← (byte) ' ' - (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#8 - call printf_padding - to:printf_number_buffer::@21 -printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@12 - to:printf_number_buffer::@return -printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::@21 - return - to:@return @2: scope:[] from @1 (byte*) toD0181_screen#0 ← (const nomodify byte*) SCREEN (byte*) toD0181_gfx#0 ← (const nomodify byte*) CANVAS2 @@ -1192,25 +146,25 @@ toD0181_@return: scope:[] from toD0181 (void()) main() main: scope:[main] from @3 - (void*) memset::str#2 ← (void*)(const nomodify byte*) CONSOLE - (byte) memset::c#2 ← (byte) ' ' + (void*) memset::str#0 ← (void*)(const nomodify byte*) CONSOLE + (byte) memset::c#0 ← (byte) ' ' + (word) memset::num#0 ← (number) $28*(number) $19 + call memset + (void*) memset::return#2 ← (void*) memset::return#1 + to:main::@13 +main::@13: scope:[main] from main + (void*) memset::str#1 ← (void*)(const nomodify byte*) SCREEN + (byte) memset::c#1 ← (number) 0 + (word) memset::num#1 ← (number) $28*(number) $19 + call memset + (void*) memset::return#3 ← (void*) memset::return#1 + to:main::@14 +main::@14: scope:[main] from main::@13 + (void*) memset::str#2 ← (void*)(const nomodify byte*) COLS + (byte) memset::c#2 ← (const nomodify byte) BLACK (word) memset::num#2 ← (number) $28*(number) $19 call memset (void*) memset::return#4 ← (void*) memset::return#1 - to:main::@13 -main::@13: scope:[main] from main - (void*) memset::str#3 ← (void*)(const nomodify byte*) SCREEN - (byte) memset::c#3 ← (number) 0 - (word) memset::num#3 ← (number) $28*(number) $19 - call memset - (void*) memset::return#5 ← (void*) memset::return#1 - to:main::@14 -main::@14: scope:[main] from main::@13 - (void*) memset::str#4 ← (void*)(const nomodify byte*) COLS - (byte) memset::c#4 ← (const nomodify byte) BLACK - (word) memset::num#4 ← (number) $28*(number) $19 - call memset - (void*) memset::return#6 ← (void*) memset::return#1 to:main::@15 main::@15: scope:[main] from main::@14 (byte*) main::screen#0 ← (const nomodify byte*) SCREEN+(number) $c @@ -1242,7 +196,7 @@ main::@16: scope:[main] from main::@3 (byte) textcolor::return#2 ← (byte) textcolor::return#1 to:main::@17 main::@17: scope:[main] from main::@16 - (byte) main::p0_idx#0 ← (byte) $f0 + (byte) main::p0_idx#0 ← (byte) $b5 (number~) main::$5 ← (byte) main::p0_idx#0 + (number) $f (byte) main::p1_idx#0 ← (number~) main::$5 (number~) main::$6 ← (byte) main::p0_idx#0 + (number) $aa @@ -1277,37 +231,37 @@ main::@6: scope:[main] from main::@4 (byte*) main::screen#1 ← (byte*) main::screen#3 + (number) $28 (byte) main::y#1 ← ++ (byte) main::y#4 to:main::@1 -main::@7: scope:[main] from main::@17 main::@29 - (byte*) main::canvas#11 ← phi( main::@17/(byte*) main::canvas#0 main::@29/(byte*) main::canvas#12 ) - (byte) main::p2_idx#8 ← phi( main::@17/(byte) main::p2_idx#0 main::@29/(byte) main::p2_idx#9 ) - (byte) main::p1_idx#8 ← phi( main::@17/(byte) main::p1_idx#0 main::@29/(byte) main::p1_idx#9 ) - (byte) main::p0_idx#11 ← phi( main::@17/(byte) main::p0_idx#0 main::@29/(byte) main::p0_idx#13 ) - (bool~) main::$23 ← (number) 0 != (number) 1 - if((bool~) main::$23) goto main::@8 +main::@7: scope:[main] from main::@17 main::@24 + (byte*) main::canvas#11 ← phi( main::@17/(byte*) main::canvas#0 main::@24/(byte*) main::canvas#12 ) + (byte) main::p2_idx#8 ← phi( main::@17/(byte) main::p2_idx#0 main::@24/(byte) main::p2_idx#9 ) + (byte) main::p1_idx#8 ← phi( main::@17/(byte) main::p1_idx#0 main::@24/(byte) main::p1_idx#9 ) + (byte) main::p0_idx#8 ← phi( main::@17/(byte) main::p0_idx#0 main::@24/(byte) main::p0_idx#9 ) + (bool~) main::$21 ← (number) 0 != (number) 1 + if((bool~) main::$21) goto main::@8 to:main::@return main::@8: scope:[main] from main::@7 (byte*) main::canvas#10 ← phi( main::@7/(byte*) main::canvas#11 ) (byte) main::p2_idx#7 ← phi( main::@7/(byte) main::p2_idx#8 ) (byte) main::p1_idx#6 ← phi( main::@7/(byte) main::p1_idx#8 ) - (byte) main::p0_idx#8 ← phi( main::@7/(byte) main::p0_idx#11 ) + (byte) main::p0_idx#6 ← phi( main::@7/(byte) main::p0_idx#8 ) call clock_start to:main::@18 main::@18: scope:[main] from main::@8 (byte*) main::canvas#9 ← phi( main::@8/(byte*) main::canvas#10 ) (byte) main::p2_idx#6 ← phi( main::@8/(byte) main::p2_idx#7 ) (byte) main::p1_idx#4 ← phi( main::@8/(byte) main::p1_idx#6 ) - (byte) main::p0_idx#5 ← phi( main::@8/(byte) main::p0_idx#8 ) - (void*) memset::str#5 ← (void*)(const nomodify byte*) LINE_BUFFER - (byte) memset::c#5 ← (number) 0 - (word) memset::num#5 ← (number) $800 + (byte) main::p0_idx#4 ← phi( main::@8/(byte) main::p0_idx#6 ) + (void*) memset::str#3 ← (void*)(const nomodify byte*) LINE_BUFFER + (byte) memset::c#3 ← (number) 0 + (word) memset::num#3 ← (number) $800 call memset - (void*) memset::return#7 ← (void*) memset::return#1 + (void*) memset::return#5 ← (void*) memset::return#1 to:main::@19 main::@19: scope:[main] from main::@18 (byte*) main::canvas#8 ← phi( main::@18/(byte*) main::canvas#9 ) (byte) main::p2_idx#4 ← phi( main::@18/(byte) main::p2_idx#6 ) (byte) main::p1_idx#2 ← phi( main::@18/(byte) main::p1_idx#4 ) - (byte) main::p0_idx#2 ← phi( main::@18/(byte) main::p0_idx#5 ) + (byte) main::p0_idx#2 ← phi( main::@18/(byte) main::p0_idx#4 ) (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2) (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2) (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) @@ -1322,7 +276,7 @@ main::@19: scope:[main] from main::@18 main::@20: scope:[main] from main::@19 (byte*) main::canvas#7 ← phi( main::@19/(byte*) main::canvas#8 ) (byte) main::p1_idx#7 ← phi( main::@19/(byte) main::p1_idx#2 ) - (byte) main::p0_idx#9 ← phi( main::@19/(byte) main::p0_idx#2 ) + (byte) main::p0_idx#7 ← phi( main::@19/(byte) main::p0_idx#2 ) (byte) main::y0#2 ← phi( main::@19/(byte) main::y0#0 ) (byte) main::x0#2 ← phi( main::@19/(byte) main::x0#0 ) (byte) main::y1#1 ← phi( main::@19/(byte) main::y1#0 ) @@ -1341,7 +295,7 @@ main::@21: scope:[main] from main::@20 (byte*) main::canvas#6 ← phi( main::@20/(byte*) main::canvas#7 ) (byte) main::p2_idx#5 ← phi( main::@20/(byte) main::p2_idx#2 ) (byte) main::p1_idx#5 ← phi( main::@20/(byte) main::p1_idx#7 ) - (byte) main::p0_idx#6 ← phi( main::@20/(byte) main::p0_idx#9 ) + (byte) main::p0_idx#5 ← phi( main::@20/(byte) main::p0_idx#7 ) (byte) main::y0#1 ← phi( main::@20/(byte) main::y0#2 ) (byte) main::x0#1 ← phi( main::@20/(byte) main::x0#2 ) (byte) main::y2#1 ← phi( main::@20/(byte) main::y2#0 ) @@ -1357,24 +311,24 @@ main::@22: scope:[main] from main::@21 (byte*) main::canvas#5 ← phi( main::@21/(byte*) main::canvas#6 ) (byte) main::p2_idx#3 ← phi( main::@21/(byte) main::p2_idx#5 ) (byte) main::p1_idx#3 ← phi( main::@21/(byte) main::p1_idx#5 ) - (byte) main::p0_idx#3 ← phi( main::@21/(byte) main::p0_idx#6 ) + (byte) main::p0_idx#3 ← phi( main::@21/(byte) main::p0_idx#5 ) (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#3 (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#3 (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#3 *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED to:main::@9 main::@9: scope:[main] from main::@22 main::@9 - (byte) main::p2_idx#23 ← phi( main::@22/(byte) main::p2_idx#1 main::@9/(byte) main::p2_idx#23 ) - (byte) main::p1_idx#23 ← phi( main::@22/(byte) main::p1_idx#1 main::@9/(byte) main::p1_idx#23 ) - (byte) main::p0_idx#23 ← phi( main::@22/(byte) main::p0_idx#1 main::@9/(byte) main::p0_idx#23 ) + (byte) main::p2_idx#18 ← phi( main::@22/(byte) main::p2_idx#1 main::@9/(byte) main::p2_idx#18 ) + (byte) main::p1_idx#18 ← phi( main::@22/(byte) main::p1_idx#1 main::@9/(byte) main::p1_idx#18 ) + (byte) main::p0_idx#18 ← phi( main::@22/(byte) main::p0_idx#1 main::@9/(byte) main::p0_idx#18 ) (byte*) main::canvas#4 ← phi( main::@22/(byte*) main::canvas#5 main::@9/(byte*) main::canvas#4 ) - (bool~) main::$24 ← (number) 0 != (volatile byte) canvas_show_flag - if((bool~) main::$24) goto main::@9 + (bool~) main::$22 ← (number) 0 != (volatile byte) canvas_show_flag + if((bool~) main::$22) goto main::@9 to:main::@10 main::@10: scope:[main] from main::@9 - (byte) main::p2_idx#22 ← phi( main::@9/(byte) main::p2_idx#23 ) - (byte) main::p1_idx#22 ← phi( main::@9/(byte) main::p1_idx#23 ) - (byte) main::p0_idx#22 ← phi( main::@9/(byte) main::p0_idx#23 ) + (byte) main::p2_idx#17 ← phi( main::@9/(byte) main::p2_idx#18 ) + (byte) main::p1_idx#17 ← phi( main::@9/(byte) main::p1_idx#18 ) + (byte) main::p0_idx#17 ← phi( main::@9/(byte) main::p0_idx#18 ) (byte*) main::canvas#2 ← phi( main::@9/(byte*) main::canvas#4 ) *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK (byte*) eorfill::line_buffer#0 ← (const nomodify byte*) LINE_BUFFER @@ -1382,20 +336,20 @@ main::@10: scope:[main] from main::@9 call eorfill to:main::@23 main::@23: scope:[main] from main::@10 - (byte) main::p2_idx#21 ← phi( main::@10/(byte) main::p2_idx#22 ) - (byte) main::p1_idx#21 ← phi( main::@10/(byte) main::p1_idx#22 ) - (byte) main::p0_idx#21 ← phi( main::@10/(byte) main::p0_idx#22 ) + (byte) main::p2_idx#16 ← phi( main::@10/(byte) main::p2_idx#17 ) + (byte) main::p1_idx#16 ← phi( main::@10/(byte) main::p1_idx#17 ) + (byte) main::p0_idx#16 ← phi( main::@10/(byte) main::p0_idx#17 ) (byte*) main::canvas#3 ← phi( main::@10/(byte*) main::canvas#2 ) - (word~) main::$22 ← (byte*) main::canvas#3 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 - (byte*) main::canvas#1 ← ((byte*)) (word~) main::$22 + (word~) main::$20 ← (byte*) main::canvas#3 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 + (byte*) main::canvas#1 ← ((byte*)) (word~) main::$20 (byte*) main::toD0181_screen#0 ← (const nomodify byte*) SCREEN (byte*) main::toD0181_gfx#0 ← (const nomodify byte*) CANVAS1 to:main::toD0181 main::toD0181: scope:[main] from main::@23 - (byte*) main::canvas#23 ← phi( main::@23/(byte*) main::canvas#1 ) - (byte) main::p2_idx#20 ← phi( main::@23/(byte) main::p2_idx#21 ) - (byte) main::p1_idx#20 ← phi( main::@23/(byte) main::p1_idx#21 ) - (byte) main::p0_idx#20 ← phi( main::@23/(byte) main::p0_idx#21 ) + (byte*) main::canvas#18 ← phi( main::@23/(byte*) main::canvas#1 ) + (byte) main::p2_idx#15 ← phi( main::@23/(byte) main::p2_idx#16 ) + (byte) main::p1_idx#15 ← phi( main::@23/(byte) main::p1_idx#16 ) + (byte) main::p0_idx#15 ← phi( main::@23/(byte) main::p0_idx#16 ) (byte*) main::toD0181_gfx#1 ← phi( main::@23/(byte*) main::toD0181_gfx#0 ) (byte*) main::toD0181_screen#1 ← phi( main::@23/(byte*) main::toD0181_screen#0 ) (word~) main::toD0181_$7 ← (word)(byte*) main::toD0181_screen#1 @@ -1409,28 +363,28 @@ main::toD0181: scope:[main] from main::@23 (byte) main::toD0181_return#0 ← (number~) main::toD0181_$6 to:main::toD0181_@return main::toD0181_@return: scope:[main] from main::toD0181 - (byte*) main::canvas#22 ← phi( main::toD0181/(byte*) main::canvas#23 ) - (byte) main::p2_idx#19 ← phi( main::toD0181/(byte) main::p2_idx#20 ) - (byte) main::p1_idx#19 ← phi( main::toD0181/(byte) main::p1_idx#20 ) - (byte) main::p0_idx#19 ← phi( main::toD0181/(byte) main::p0_idx#20 ) + (byte*) main::canvas#17 ← phi( main::toD0181/(byte*) main::canvas#18 ) + (byte) main::p2_idx#14 ← phi( main::toD0181/(byte) main::p2_idx#15 ) + (byte) main::p1_idx#14 ← phi( main::toD0181/(byte) main::p1_idx#15 ) + (byte) main::p0_idx#14 ← phi( main::toD0181/(byte) main::p0_idx#15 ) (byte) main::toD0181_return#2 ← phi( main::toD0181/(byte) main::toD0181_return#0 ) (byte) main::toD0181_return#1 ← (byte) main::toD0181_return#2 to:main::@11 main::@11: scope:[main] from main::toD0181_@return - (byte*) main::canvas#21 ← phi( main::toD0181_@return/(byte*) main::canvas#22 ) - (byte) main::p2_idx#18 ← phi( main::toD0181_@return/(byte) main::p2_idx#19 ) - (byte) main::p1_idx#18 ← phi( main::toD0181_@return/(byte) main::p1_idx#19 ) - (byte) main::p0_idx#17 ← phi( main::toD0181_@return/(byte) main::p0_idx#19 ) + (byte*) main::canvas#16 ← phi( main::toD0181_@return/(byte*) main::canvas#17 ) + (byte) main::p2_idx#13 ← phi( main::toD0181_@return/(byte) main::p2_idx#14 ) + (byte) main::p1_idx#13 ← phi( main::toD0181_@return/(byte) main::p1_idx#14 ) + (byte) main::p0_idx#13 ← phi( main::toD0181_@return/(byte) main::p0_idx#14 ) (byte) main::toD0181_return#3 ← phi( main::toD0181_@return/(byte) main::toD0181_return#1 ) (byte~) main::$15 ← (byte) main::toD0181_return#3 (byte*) main::toD0182_screen#0 ← (const nomodify byte*) SCREEN (byte*) main::toD0182_gfx#0 ← (const nomodify byte*) CANVAS2 to:main::toD0182 main::toD0182: scope:[main] from main::@11 - (byte*) main::canvas#20 ← phi( main::@11/(byte*) main::canvas#21 ) - (byte) main::p2_idx#17 ← phi( main::@11/(byte) main::p2_idx#18 ) - (byte) main::p1_idx#17 ← phi( main::@11/(byte) main::p1_idx#18 ) - (byte) main::p0_idx#15 ← phi( main::@11/(byte) main::p0_idx#17 ) + (byte*) main::canvas#15 ← phi( main::@11/(byte*) main::canvas#16 ) + (byte) main::p2_idx#12 ← phi( main::@11/(byte) main::p2_idx#13 ) + (byte) main::p1_idx#12 ← phi( main::@11/(byte) main::p1_idx#13 ) + (byte) main::p0_idx#12 ← phi( main::@11/(byte) main::p0_idx#13 ) (byte*) main::toD0182_gfx#1 ← phi( main::@11/(byte*) main::toD0182_gfx#0 ) (byte*) main::toD0182_screen#1 ← phi( main::@11/(byte*) main::toD0182_screen#0 ) (word~) main::toD0182_$7 ← (word)(byte*) main::toD0182_screen#1 @@ -1444,18 +398,18 @@ main::toD0182: scope:[main] from main::@11 (byte) main::toD0182_return#0 ← (number~) main::toD0182_$6 to:main::toD0182_@return main::toD0182_@return: scope:[main] from main::toD0182 - (byte*) main::canvas#19 ← phi( main::toD0182/(byte*) main::canvas#20 ) - (byte) main::p2_idx#16 ← phi( main::toD0182/(byte) main::p2_idx#17 ) - (byte) main::p1_idx#16 ← phi( main::toD0182/(byte) main::p1_idx#17 ) - (byte) main::p0_idx#14 ← phi( main::toD0182/(byte) main::p0_idx#15 ) + (byte*) main::canvas#14 ← phi( main::toD0182/(byte*) main::canvas#15 ) + (byte) main::p2_idx#11 ← phi( main::toD0182/(byte) main::p2_idx#12 ) + (byte) main::p1_idx#11 ← phi( main::toD0182/(byte) main::p1_idx#12 ) + (byte) main::p0_idx#11 ← phi( main::toD0182/(byte) main::p0_idx#12 ) (byte) main::toD0182_return#2 ← phi( main::toD0182/(byte) main::toD0182_return#0 ) (byte) main::toD0182_return#1 ← (byte) main::toD0182_return#2 to:main::@12 main::@12: scope:[main] from main::toD0182_@return - (byte*) main::canvas#18 ← phi( main::toD0182_@return/(byte*) main::canvas#19 ) - (byte) main::p2_idx#15 ← phi( main::toD0182_@return/(byte) main::p2_idx#16 ) - (byte) main::p1_idx#15 ← phi( main::toD0182_@return/(byte) main::p1_idx#16 ) - (byte) main::p0_idx#12 ← phi( main::toD0182_@return/(byte) main::p0_idx#14 ) + (byte*) main::canvas#13 ← phi( main::toD0182_@return/(byte*) main::canvas#14 ) + (byte) main::p2_idx#10 ← phi( main::toD0182_@return/(byte) main::p2_idx#11 ) + (byte) main::p1_idx#10 ← phi( main::toD0182_@return/(byte) main::p1_idx#11 ) + (byte) main::p0_idx#10 ← phi( main::toD0182_@return/(byte) main::p0_idx#11 ) (byte) main::toD0182_return#3 ← phi( main::toD0182_@return/(byte) main::toD0182_return#1 ) (byte~) main::$16 ← (byte) main::toD0182_return#3 (byte~) main::$17 ← (byte~) main::$15 ^ (byte~) main::$16 @@ -1465,71 +419,10 @@ main::@12: scope:[main] from main::toD0182_@return (dword) clock::return#2 ← (dword) clock::return#1 to:main::@24 main::@24: scope:[main] from main::@12 - (byte*) main::canvas#17 ← phi( main::@12/(byte*) main::canvas#18 ) - (byte) main::p2_idx#14 ← phi( main::@12/(byte) main::p2_idx#15 ) - (byte) main::p1_idx#14 ← phi( main::@12/(byte) main::p1_idx#15 ) - (byte) main::p0_idx#10 ← phi( main::@12/(byte) main::p0_idx#12 ) - (dword) clock::return#4 ← phi( main::@12/(dword) clock::return#2 ) - (dword~) main::$18 ← (dword) clock::return#4 - (dword~) main::$19 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT - (dword) main::cyclecount#0 ← (dword~) main::$19 - (byte) gotoxy::x#2 ← (number) 0 - (byte) gotoxy::y#2 ← (number) $18 - call gotoxy - to:main::@25 -main::@25: scope:[main] from main::@24 - (byte*) main::canvas#16 ← phi( main::@24/(byte*) main::canvas#17 ) - (byte) main::p2_idx#13 ← phi( main::@24/(byte) main::p2_idx#14 ) - (byte) main::p1_idx#13 ← phi( main::@24/(byte) main::p1_idx#14 ) - (dword) main::cyclecount#4 ← phi( main::@24/(dword) main::cyclecount#0 ) - (byte) main::p0_idx#7 ← phi( main::@24/(byte) main::p0_idx#10 ) - (to_nomodify byte*) cputs::s#2 ← (const byte*) main::s - call cputs - to:main::@26 -main::@26: scope:[main] from main::@25 - (byte*) main::canvas#15 ← phi( main::@25/(byte*) main::canvas#16 ) - (byte) main::p2_idx#12 ← phi( main::@25/(byte) main::p2_idx#13 ) - (byte) main::p1_idx#12 ← phi( main::@25/(byte) main::p1_idx#13 ) - (dword) main::cyclecount#3 ← phi( main::@25/(dword) main::cyclecount#4 ) - (byte) main::p0_idx#4 ← phi( main::@25/(byte) main::p0_idx#7 ) - (byte) printf_uchar::uvalue#0 ← (byte) main::p0_idx#4 - (byte) printf_uchar::format_min_length#0 ← (byte) 2 - (byte) printf_uchar::format_justify_left#0 ← (byte) 0 - (byte) printf_uchar::format_sign_always#0 ← (byte) 0 - (byte) printf_uchar::format_zero_padding#0 ← (byte) 1 - (byte) printf_uchar::format_upper_case#0 ← (byte) 0 - (byte) printf_uchar::format_radix#0 ← (const byte) HEXADECIMAL - call printf_uchar - to:main::@27 -main::@27: scope:[main] from main::@26 - (byte*) main::canvas#14 ← phi( main::@26/(byte*) main::canvas#15 ) - (byte) main::p2_idx#11 ← phi( main::@26/(byte) main::p2_idx#12 ) - (byte) main::p1_idx#11 ← phi( main::@26/(byte) main::p1_idx#12 ) - (byte) main::p0_idx#18 ← phi( main::@26/(byte) main::p0_idx#4 ) - (dword) main::cyclecount#2 ← phi( main::@26/(dword) main::cyclecount#3 ) - (to_nomodify byte*) cputs::s#3 ← (const byte*) main::s1 - call cputs - to:main::@28 -main::@28: scope:[main] from main::@27 - (byte*) main::canvas#13 ← phi( main::@27/(byte*) main::canvas#14 ) - (byte) main::p2_idx#10 ← phi( main::@27/(byte) main::p2_idx#11 ) - (byte) main::p1_idx#10 ← phi( main::@27/(byte) main::p1_idx#11 ) - (byte) main::p0_idx#16 ← phi( main::@27/(byte) main::p0_idx#18 ) - (dword) main::cyclecount#1 ← phi( main::@27/(dword) main::cyclecount#2 ) - (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#1 - (byte) printf_ulong::format_min_length#0 ← (byte) 6 - (byte) printf_ulong::format_justify_left#0 ← (byte) 0 - (byte) printf_ulong::format_sign_always#0 ← (byte) 0 - (byte) printf_ulong::format_zero_padding#0 ← (byte) 0 - (byte) printf_ulong::format_upper_case#0 ← (byte) 0 - (byte) printf_ulong::format_radix#0 ← (const byte) DECIMAL - call printf_ulong - to:main::@29 -main::@29: scope:[main] from main::@28 - (byte*) main::canvas#12 ← phi( main::@28/(byte*) main::canvas#13 ) - (byte) main::p2_idx#9 ← phi( main::@28/(byte) main::p2_idx#10 ) - (byte) main::p1_idx#9 ← phi( main::@28/(byte) main::p1_idx#10 ) - (byte) main::p0_idx#13 ← phi( main::@28/(byte) main::p0_idx#16 ) + (byte*) main::canvas#12 ← phi( main::@12/(byte*) main::canvas#13 ) + (byte) main::p2_idx#9 ← phi( main::@12/(byte) main::p2_idx#10 ) + (byte) main::p1_idx#9 ← phi( main::@12/(byte) main::p1_idx#10 ) + (byte) main::p0_idx#9 ← phi( main::@12/(byte) main::p0_idx#10 ) to:main::@7 main::@return: scope:[main] from main::@7 return @@ -1551,7 +444,7 @@ setup_irq::@return: scope:[setup_irq] from setup_irq interrupt(KERNEL_MIN)(void()) irq_bottom_1() irq_bottom_1: scope:[irq_bottom_1] from - *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE + *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY (byte*) irq_bottom_1::toD0181_screen#0 ← (const nomodify byte*) CONSOLE (byte*) irq_bottom_1::toD0181_gfx#0 ← (const nomodify byte*) PETSCII to:irq_bottom_1::toD0181 @@ -1589,25 +482,50 @@ irq_bottom_2: scope:[irq_bottom_2] from *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK call kbhit (byte) kbhit::return#2 ← (byte) kbhit::return#1 - to:irq_bottom_2::@3 -irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2 + to:irq_bottom_2::@5 +irq_bottom_2::@5: scope:[irq_bottom_2] from irq_bottom_2 (byte) kbhit::return#4 ← phi( irq_bottom_2/(byte) kbhit::return#2 ) (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#4 (bool~) irq_bottom_2::$3 ← (number) 0 != (byte~) irq_bottom_2::$0 (bool~) irq_bottom_2::$1 ← ! (bool~) irq_bottom_2::$3 - (bool~) irq_bottom_2::$2 ← ! (bool~) irq_bottom_2::$1 - if((bool~) irq_bottom_2::$2) goto irq_bottom_2::@1 + if((bool~) irq_bottom_2::$1) goto irq_bottom_2::@1 + to:irq_bottom_2::@3 +irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@5 + *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory to:irq_bottom_2::@2 -irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@2 irq_bottom_2::@3 +irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2::@5 + (byte*) irq_bottom_2::toD0181_screen#0 ← (const nomodify byte*) SCREEN + (byte*) irq_bottom_2::toD0181_gfx#0 ← (const nomodify byte*) LINE_BUFFER + to:irq_bottom_2::toD0181 +irq_bottom_2::toD0181: scope:[irq_bottom_2] from irq_bottom_2::@3 + (byte*) irq_bottom_2::toD0181_gfx#1 ← phi( irq_bottom_2::@3/(byte*) irq_bottom_2::toD0181_gfx#0 ) + (byte*) irq_bottom_2::toD0181_screen#1 ← phi( irq_bottom_2::@3/(byte*) irq_bottom_2::toD0181_screen#0 ) + (word~) irq_bottom_2::toD0181_$7 ← (word)(byte*) irq_bottom_2::toD0181_screen#1 + (number~) irq_bottom_2::toD0181_$0 ← (word~) irq_bottom_2::toD0181_$7 & (number) $3fff + (number~) irq_bottom_2::toD0181_$1 ← (number~) irq_bottom_2::toD0181_$0 * (number) 4 + (number~) irq_bottom_2::toD0181_$2 ← > (number~) irq_bottom_2::toD0181_$1 + (byte~) irq_bottom_2::toD0181_$3 ← > (word)(byte*) irq_bottom_2::toD0181_gfx#1 + (number~) irq_bottom_2::toD0181_$4 ← (byte~) irq_bottom_2::toD0181_$3 / (number) 4 + (number~) irq_bottom_2::toD0181_$5 ← (number~) irq_bottom_2::toD0181_$4 & (number) $f + (number~) irq_bottom_2::toD0181_$6 ← (number~) irq_bottom_2::toD0181_$2 | (number~) irq_bottom_2::toD0181_$5 + (byte) irq_bottom_2::toD0181_return#0 ← (number~) irq_bottom_2::toD0181_$6 + to:irq_bottom_2::toD0181_@return +irq_bottom_2::toD0181_@return: scope:[irq_bottom_2] from irq_bottom_2::toD0181 + (byte) irq_bottom_2::toD0181_return#2 ← phi( irq_bottom_2::toD0181/(byte) irq_bottom_2::toD0181_return#0 ) + (byte) irq_bottom_2::toD0181_return#1 ← (byte) irq_bottom_2::toD0181_return#2 + to:irq_bottom_2::@4 +irq_bottom_2::@4: scope:[irq_bottom_2] from irq_bottom_2::toD0181_@return + (byte) irq_bottom_2::toD0181_return#3 ← phi( irq_bottom_2::toD0181_@return/(byte) irq_bottom_2::toD0181_return#1 ) + (byte~) irq_bottom_2::$2 ← (byte) irq_bottom_2::toD0181_return#3 + *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (byte~) irq_bottom_2::$2 + to:irq_bottom_2::@2 +irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@1 irq_bottom_2::@4 (volatile byte) canvas_show_flag ← (number) 0 *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(number) 8 *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() to:irq_bottom_2::@return -irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@3 - *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory - to:irq_bottom_2::@1 -irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@1 +irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@2 return to:@return @@ -1623,12 +541,12 @@ line: scope:[line] from main::@19 main::@20 main::@21 (byte) abs_u8::u#0 ← (byte~) line::$0 call abs_u8 (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 - to:line::@13 -line::@13: scope:[line] from line - (byte) line::x#21 ← phi( line/(byte) line::x#0 ) - (byte) line::y#22 ← phi( line/(byte) line::y#0 ) + to:line::@22 +line::@22: scope:[line] from line + (byte) line::x#32 ← phi( line/(byte) line::x#0 ) + (byte) line::y#33 ← phi( line/(byte) line::y#0 ) (byte) line::x1#5 ← phi( line/(byte) line::x1#3 ) - (byte) line::x2#6 ← phi( line/(byte) line::x2#3 ) + (byte) line::x2#7 ← phi( line/(byte) line::x2#3 ) (byte) line::y1#4 ← phi( line/(byte) line::y1#3 ) (byte) line::y2#4 ← phi( line/(byte) line::y2#8 ) (byte) abs_u8::return#5 ← phi( line/(byte) abs_u8::return#0 ) @@ -1638,263 +556,389 @@ line::@13: scope:[line] from line (byte) abs_u8::u#1 ← (byte~) line::$2 call abs_u8 (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 - to:line::@14 -line::@14: scope:[line] from line::@13 - (byte) line::x#20 ← phi( line::@13/(byte) line::x#21 ) - (byte) line::y#21 ← phi( line::@13/(byte) line::y#22 ) - (byte) line::dx#15 ← phi( line::@13/(byte) line::dx#0 ) - (byte) line::y1#6 ← phi( line::@13/(byte) line::y1#4 ) - (byte) line::y2#9 ← phi( line::@13/(byte) line::y2#4 ) - (byte) line::x1#4 ← phi( line::@13/(byte) line::x1#5 ) - (byte) line::x2#4 ← phi( line::@13/(byte) line::x2#6 ) - (byte) abs_u8::return#6 ← phi( line::@13/(byte) abs_u8::return#1 ) + to:line::@23 +line::@23: scope:[line] from line::@22 + (byte) line::x#31 ← phi( line::@22/(byte) line::x#32 ) + (byte) line::y#31 ← phi( line::@22/(byte) line::y#33 ) + (byte) line::dx#22 ← phi( line::@22/(byte) line::dx#0 ) + (byte) line::y1#6 ← phi( line::@22/(byte) line::y1#4 ) + (byte) line::y2#9 ← phi( line::@22/(byte) line::y2#4 ) + (byte) line::x1#4 ← phi( line::@22/(byte) line::x1#5 ) + (byte) line::x2#4 ← phi( line::@22/(byte) line::x2#7 ) + (byte) abs_u8::return#6 ← phi( line::@22/(byte) abs_u8::return#1 ) (byte~) line::$3 ← (byte) abs_u8::return#6 (byte) line::dy#0 ← (byte~) line::$3 (byte~) line::$4 ← (byte) line::x2#4 - (byte) line::x1#4 (byte) sgn_u8::u#0 ← (byte~) line::$4 call sgn_u8 (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 - to:line::@15 -line::@15: scope:[line] from line::@14 - (byte) line::x2#15 ← phi( line::@14/(byte) line::x2#4 ) - (byte) line::x#18 ← phi( line::@14/(byte) line::x#20 ) - (byte) line::y#19 ← phi( line::@14/(byte) line::y#21 ) - (byte) line::dy#11 ← phi( line::@14/(byte) line::dy#0 ) - (byte) line::dx#11 ← phi( line::@14/(byte) line::dx#15 ) - (byte) line::y1#5 ← phi( line::@14/(byte) line::y1#6 ) - (byte) line::y2#5 ← phi( line::@14/(byte) line::y2#9 ) - (byte) sgn_u8::return#5 ← phi( line::@14/(byte) sgn_u8::return#0 ) + to:line::@24 +line::@24: scope:[line] from line::@23 + (byte) line::x2#22 ← phi( line::@23/(byte) line::x2#4 ) + (byte) line::x#29 ← phi( line::@23/(byte) line::x#31 ) + (byte) line::y#25 ← phi( line::@23/(byte) line::y#31 ) + (byte) line::dy#17 ← phi( line::@23/(byte) line::dy#0 ) + (byte) line::dx#16 ← phi( line::@23/(byte) line::dx#22 ) + (byte) line::y1#5 ← phi( line::@23/(byte) line::y1#6 ) + (byte) line::y2#5 ← phi( line::@23/(byte) line::y2#9 ) + (byte) sgn_u8::return#5 ← phi( line::@23/(byte) sgn_u8::return#0 ) (byte~) line::$5 ← (byte) sgn_u8::return#5 (byte) line::sx#0 ← (byte~) line::$5 (byte~) line::$6 ← (byte) line::y2#5 - (byte) line::y1#5 (byte) sgn_u8::u#1 ← (byte~) line::$6 call sgn_u8 (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 - to:line::@16 -line::@16: scope:[line] from line::@15 - (byte) line::x2#13 ← phi( line::@15/(byte) line::x2#15 ) - (byte) line::x#14 ← phi( line::@15/(byte) line::x#18 ) - (byte) line::y2#10 ← phi( line::@15/(byte) line::y2#5 ) - (byte) line::y#12 ← phi( line::@15/(byte) line::y#19 ) - (byte) line::dy#6 ← phi( line::@15/(byte) line::dy#11 ) - (byte) line::dx#6 ← phi( line::@15/(byte) line::dx#11 ) - (byte) line::sx#1 ← phi( line::@15/(byte) line::sx#0 ) - (byte) sgn_u8::return#6 ← phi( line::@15/(byte) sgn_u8::return#1 ) + to:line::@25 +line::@25: scope:[line] from line::@24 + (byte) line::x2#19 ← phi( line::@24/(byte) line::x2#22 ) + (byte) line::x#26 ← phi( line::@24/(byte) line::x#29 ) + (byte) line::y2#10 ← phi( line::@24/(byte) line::y2#5 ) + (byte) line::y#16 ← phi( line::@24/(byte) line::y#25 ) + (byte) line::dy#9 ← phi( line::@24/(byte) line::dy#17 ) + (byte) line::dx#8 ← phi( line::@24/(byte) line::dx#16 ) + (byte) line::sx#1 ← phi( line::@24/(byte) line::sx#0 ) + (byte) sgn_u8::return#6 ← phi( line::@24/(byte) sgn_u8::return#1 ) (byte~) line::$7 ← (byte) sgn_u8::return#6 (byte) line::sy#0 ← (byte~) line::$7 (bool~) line::$8 ← (byte) line::sx#1 == (number) $ff (bool~) line::$9 ← ! (bool~) line::$8 if((bool~) line::$9) goto line::@1 to:line::@3 -line::@1: scope:[line] from line::@16 line::@3 - (byte) line::x2#12 ← phi( line::@16/(byte) line::x2#13 line::@3/(byte) line::x2#14 ) - (byte) line::y2#16 ← phi( line::@16/(byte) line::y2#10 line::@3/(byte) line::y2#3 ) - (byte) line::sx#13 ← phi( line::@16/(byte) line::sx#1 line::@3/(byte) line::sx#15 ) - (byte) line::sy#9 ← phi( line::@16/(byte) line::sy#0 line::@3/(byte) line::sy#12 ) - (byte) line::y#13 ← phi( line::@16/(byte) line::y#12 line::@3/(byte) line::y#1 ) - (byte) line::x#9 ← phi( line::@16/(byte) line::x#14 line::@3/(byte) line::x#15 ) - (byte) line::dy#1 ← phi( line::@16/(byte) line::dy#6 line::@3/(byte) line::dy#7 ) - (byte) line::dx#1 ← phi( line::@16/(byte) line::dx#6 line::@3/(byte) line::dx#7 ) +line::@1: scope:[line] from line::@25 line::@3 + (byte) line::x2#17 ← phi( line::@25/(byte) line::x2#19 line::@3/(byte) line::x2#20 ) + (byte) line::y2#17 ← phi( line::@25/(byte) line::y2#10 line::@3/(byte) line::y2#3 ) + (byte) line::y#26 ← phi( line::@25/(byte) line::y#16 line::@3/(byte) line::y#1 ) + (byte) line::x#23 ← phi( line::@25/(byte) line::x#26 line::@3/(byte) line::x#27 ) + (byte) line::sy#6 ← phi( line::@25/(byte) line::sy#0 line::@3/(byte) line::sy#12 ) + (byte) line::sx#6 ← phi( line::@25/(byte) line::sx#1 line::@3/(byte) line::sx#10 ) + (byte) line::dy#1 ← phi( line::@25/(byte) line::dy#9 line::@3/(byte) line::dy#10 ) + (byte) line::dx#1 ← phi( line::@25/(byte) line::dx#8 line::@3/(byte) line::dx#9 ) (bool~) line::$10 ← (byte) line::dx#1 > (byte) line::dy#1 if((bool~) line::$10) goto line::@2 to:line::@4 -line::@3: scope:[line] from line::@16 - (byte) line::x2#14 ← phi( line::@16/(byte) line::x2#13 ) - (byte) line::sx#15 ← phi( line::@16/(byte) line::sx#1 ) - (byte) line::sy#12 ← phi( line::@16/(byte) line::sy#0 ) - (byte) line::x#15 ← phi( line::@16/(byte) line::x#14 ) - (byte) line::dy#7 ← phi( line::@16/(byte) line::dy#6 ) - (byte) line::dx#7 ← phi( line::@16/(byte) line::dx#6 ) - (byte) line::y2#6 ← phi( line::@16/(byte) line::y2#10 ) - (byte) line::y#4 ← phi( line::@16/(byte) line::y#12 ) - (byte) line::y#1 ← ++ (byte) line::y#4 +line::@3: scope:[line] from line::@25 + (byte) line::x2#20 ← phi( line::@25/(byte) line::x2#19 ) + (byte) line::x#27 ← phi( line::@25/(byte) line::x#26 ) + (byte) line::sy#12 ← phi( line::@25/(byte) line::sy#0 ) + (byte) line::sx#10 ← phi( line::@25/(byte) line::sx#1 ) + (byte) line::dy#10 ← phi( line::@25/(byte) line::dy#9 ) + (byte) line::dx#9 ← phi( line::@25/(byte) line::dx#8 ) + (byte) line::y2#6 ← phi( line::@25/(byte) line::y2#10 ) + (byte) line::y#5 ← phi( line::@25/(byte) line::y#16 ) + (byte) line::y#1 ← ++ (byte) line::y#5 (byte) line::y2#3 ← ++ (byte) line::y2#6 to:line::@1 line::@2: scope:[line] from line::@1 - (byte) line::sy#13 ← phi( line::@1/(byte) line::sy#9 ) - (byte) line::x2#11 ← phi( line::@1/(byte) line::x2#12 ) - (byte) line::dy#14 ← phi( line::@1/(byte) line::dy#1 ) - (byte) line::sx#11 ← phi( line::@1/(byte) line::sx#13 ) - (byte) line::y#16 ← phi( line::@1/(byte) line::y#13 ) - (byte) line::x#11 ← phi( line::@1/(byte) line::x#9 ) + (byte) line::sy#23 ← phi( line::@1/(byte) line::sy#6 ) + (byte) line::x2#16 ← phi( line::@1/(byte) line::x2#17 ) + (byte) line::dy#24 ← phi( line::@1/(byte) line::dy#1 ) + (byte) line::sx#19 ← phi( line::@1/(byte) line::sx#6 ) + (byte) line::y#23 ← phi( line::@1/(byte) line::y#26 ) + (byte) line::x#20 ← phi( line::@1/(byte) line::x#23 ) (byte) line::dx#2 ← phi( line::@1/(byte) line::dx#1 ) - (number~) line::$17 ← (byte) line::dx#2 / (number) 2 - (byte) line::e1#0 ← (number~) line::$17 - to:line::@8 + (number~) line::$26 ← (byte) line::dx#2 / (number) 2 + (byte) line::e2#0 ← (number~) line::$26 + to:line::@14 line::@4: scope:[line] from line::@1 - (byte) line::sx#9 ← phi( line::@1/(byte) line::sx#13 ) - (byte) line::y2#15 ← phi( line::@1/(byte) line::y2#16 ) - (byte) line::dx#12 ← phi( line::@1/(byte) line::dx#1 ) - (byte) line::sy#6 ← phi( line::@1/(byte) line::sy#9 ) - (byte) line::y#5 ← phi( line::@1/(byte) line::y#13 ) - (byte) line::x#3 ← phi( line::@1/(byte) line::x#9 ) - (byte) line::dy#2 ← phi( line::@1/(byte) line::dy#1 ) - (number~) line::$11 ← (byte) line::dy#2 / (number) 2 - (byte) line::e#0 ← (number~) line::$11 - (byte) line::plot1_x#0 ← (byte) line::x#3 - (byte) line::plot1_y#0 ← (byte) line::y#5 + (byte) line::x2#24 ← phi( line::@1/(byte) line::x2#17 ) + (byte) line::y2#15 ← phi( line::@1/(byte) line::y2#17 ) + (byte) line::dx#18 ← phi( line::@1/(byte) line::dx#1 ) + (byte) line::dy#11 ← phi( line::@1/(byte) line::dy#1 ) + (byte) line::y#17 ← phi( line::@1/(byte) line::y#26 ) + (byte) line::x#14 ← phi( line::@1/(byte) line::x#23 ) + (byte) line::sy#1 ← phi( line::@1/(byte) line::sy#6 ) + (byte) line::sx#2 ← phi( line::@1/(byte) line::sx#6 ) + (bool~) line::$11 ← (byte) line::sx#2 == (byte) line::sy#1 + if((bool~) line::$11) goto line::@6 + to:line::@5 +line::@6: scope:[line] from line::@4 + (byte) line::x2#23 ← phi( line::@4/(byte) line::x2#24 ) + (byte) line::sx#24 ← phi( line::@4/(byte) line::sx#2 ) + (byte) line::sy#21 ← phi( line::@4/(byte) line::sy#1 ) + (byte) line::dy#22 ← phi( line::@4/(byte) line::dy#11 ) + (byte) line::dx#17 ← phi( line::@4/(byte) line::dx#18 ) + (byte) line::y#6 ← phi( line::@4/(byte) line::y#17 ) + (byte) line::x#4 ← phi( line::@4/(byte) line::x#14 ) + (byte) line::plot1_x#0 ← (byte) line::x#4 + (byte) line::plot1_y#0 ← (byte) line::y#6 to:line::plot1 -line::plot1: scope:[line] from line::@4 - (byte) line::sx#7 ← phi( line::@4/(byte) line::sx#9 ) - (byte) line::x#17 ← phi( line::@4/(byte) line::x#3 ) - (byte) line::y2#13 ← phi( line::@4/(byte) line::y2#15 ) - (byte) line::dy#9 ← phi( line::@4/(byte) line::dy#2 ) - (byte) line::dx#9 ← phi( line::@4/(byte) line::dx#12 ) - (byte) line::e#6 ← phi( line::@4/(byte) line::e#0 ) - (byte) line::sy#4 ← phi( line::@4/(byte) line::sy#6 ) - (byte) line::y#14 ← phi( line::@4/(byte) line::y#5 ) - (byte) line::plot1_y#1 ← phi( line::@4/(byte) line::plot1_y#0 ) - (byte) line::plot1_x#1 ← phi( line::@4/(byte) line::plot1_x#0 ) +line::plot1: scope:[line] from line::@6 + (byte) line::x2#21 ← phi( line::@6/(byte) line::x2#23 ) + (byte) line::sx#20 ← phi( line::@6/(byte) line::sx#24 ) + (byte) line::x#30 ← phi( line::@6/(byte) line::x#4 ) + (byte) line::sy#17 ← phi( line::@6/(byte) line::sy#21 ) + (byte) line::y#32 ← phi( line::@6/(byte) line::y#6 ) + (byte) line::dy#18 ← phi( line::@6/(byte) line::dy#22 ) + (byte) line::dx#10 ← phi( line::@6/(byte) line::dx#17 ) + (byte) line::plot1_y#1 ← phi( line::@6/(byte) line::plot1_y#0 ) + (byte) line::plot1_x#1 ← phi( line::@6/(byte) line::plot1_x#0 ) (number~) line::plot1_$0 ← (byte) line::plot1_x#1 / (number) 8 (number~) line::plot1_$2 ← (number~) line::plot1_$0 * (const byte) SIZEOF_POINTER (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (number~) line::plot1_$2) (number~) line::plot1_$1 ← (byte) line::plot1_x#1 & (number) 7 *((byte*) line::plot1_column#0 + (byte) line::plot1_y#1) ← *((byte*) line::plot1_column#0 + (byte) line::plot1_y#1) | *((const byte*) plot_bit + (number~) line::plot1_$1) - to:line::@5 -line::@5: scope:[line] from line::@6 line::plot1 - (byte) line::sx#4 ← phi( line::@6/(byte) line::sx#6 line::plot1/(byte) line::sx#7 ) - (byte) line::x#10 ← phi( line::@6/(byte) line::x#16 line::plot1/(byte) line::x#17 ) - (byte) line::y2#11 ← phi( line::@6/(byte) line::y2#7 line::plot1/(byte) line::y2#13 ) - (byte) line::dy#3 ← phi( line::@6/(byte) line::dy#8 line::plot1/(byte) line::dy#9 ) - (byte) line::dx#3 ← phi( line::@6/(byte) line::dx#8 line::plot1/(byte) line::dx#9 ) - (byte) line::e#3 ← phi( line::@6/(byte) line::e#5 line::plot1/(byte) line::e#6 ) - (byte) line::sy#1 ← phi( line::@6/(byte) line::sy#3 line::plot1/(byte) line::sy#4 ) - (byte) line::y#6 ← phi( line::@6/(byte) line::y#7 line::plot1/(byte) line::y#14 ) - (byte) line::y#2 ← (byte) line::y#6 + (byte) line::sy#1 - (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#3 - (bool~) line::$13 ← (byte) line::dy#3 < (byte) line::e#1 - (bool~) line::$14 ← ! (bool~) line::$13 - if((bool~) line::$14) goto line::@6 - to:line::@7 -line::@6: scope:[line] from line::@5 line::plot2 - (byte) line::sx#6 ← phi( line::@5/(byte) line::sx#4 line::plot2/(byte) line::sx#10 ) - (byte) line::x#16 ← phi( line::@5/(byte) line::x#10 line::plot2/(byte) line::x#19 ) - (byte) line::dy#8 ← phi( line::@5/(byte) line::dy#3 line::plot2/(byte) line::dy#12 ) - (byte) line::dx#8 ← phi( line::@5/(byte) line::dx#3 line::plot2/(byte) line::dx#13 ) - (byte) line::e#5 ← phi( line::@5/(byte) line::e#1 line::plot2/(byte) line::e#7 ) - (byte) line::sy#3 ← phi( line::@5/(byte) line::sy#1 line::plot2/(byte) line::sy#7 ) - (byte) line::y2#7 ← phi( line::@5/(byte) line::y2#11 line::plot2/(byte) line::y2#12 ) - (byte) line::y#7 ← phi( line::@5/(byte) line::y#2 line::plot2/(byte) line::y#15 ) - (bool~) line::$16 ← (byte) line::y#7 != (byte) line::y2#7 - if((bool~) line::$16) goto line::@5 + to:line::@18 +line::@18: scope:[line] from line::plot1 + (byte) line::x2#18 ← phi( line::plot1/(byte) line::x2#21 ) + (byte) line::sx#16 ← phi( line::plot1/(byte) line::sx#20 ) + (byte) line::x#28 ← phi( line::plot1/(byte) line::x#30 ) + (byte) line::sy#14 ← phi( line::plot1/(byte) line::sy#17 ) + (byte) line::y#28 ← phi( line::plot1/(byte) line::y#32 ) + (byte) line::dy#14 ← phi( line::plot1/(byte) line::dy#18 ) + (byte) line::dx#3 ← phi( line::plot1/(byte) line::dx#10 ) + (bool~) line::$20 ← (byte) line::dx#3 == (number) 0 + (bool~) line::$21 ← ! (bool~) line::$20 + if((bool~) line::$21) goto line::@11 to:line::@return -line::@7: scope:[line] from line::@5 - (byte) line::dx#16 ← phi( line::@5/(byte) line::dx#3 ) - (byte) line::sy#10 ← phi( line::@5/(byte) line::sy#1 ) - (byte) line::y2#14 ← phi( line::@5/(byte) line::y2#11 ) - (byte) line::y#8 ← phi( line::@5/(byte) line::y#2 ) - (byte) line::dy#4 ← phi( line::@5/(byte) line::dy#3 ) - (byte) line::e#4 ← phi( line::@5/(byte) line::e#1 ) - (byte) line::sx#2 ← phi( line::@5/(byte) line::sx#4 ) - (byte) line::x#4 ← phi( line::@5/(byte) line::x#10 ) - (byte) line::x#1 ← (byte) line::x#4 + (byte) line::sx#2 - (byte) line::e#2 ← (byte) line::e#4 - (byte) line::dy#4 - (byte) line::plot2_x#0 ← (byte) line::x#1 - (byte) line::plot2_y#0 ← (byte) line::y#8 +line::@5: scope:[line] from line::@4 + (byte) line::sx#21 ← phi( line::@4/(byte) line::sx#2 ) + (byte) line::x#24 ← phi( line::@4/(byte) line::x#14 ) + (byte) line::y2#13 ← phi( line::@4/(byte) line::y2#15 ) + (byte) line::dx#11 ← phi( line::@4/(byte) line::dx#18 ) + (byte) line::sy#7 ← phi( line::@4/(byte) line::sy#1 ) + (byte) line::y#18 ← phi( line::@4/(byte) line::y#17 ) + (byte) line::dy#2 ← phi( line::@4/(byte) line::dy#11 ) + (number~) line::$12 ← (byte) line::dy#2 / (number) 2 + (byte) line::e#0 ← (number~) line::$12 + to:line::@7 +line::@7: scope:[line] from line::@5 line::@8 + (byte) line::sx#15 ← phi( line::@5/(byte) line::sx#21 line::@8/(byte) line::sx#22 ) + (byte) line::x#15 ← phi( line::@5/(byte) line::x#24 line::@8/(byte) line::x#17 ) + (byte) line::y2#12 ← phi( line::@5/(byte) line::y2#13 line::@8/(byte) line::y2#7 ) + (byte) line::dy#3 ← phi( line::@5/(byte) line::dy#2 line::@8/(byte) line::dy#12 ) + (byte) line::dx#4 ← phi( line::@5/(byte) line::dx#11 line::@8/(byte) line::dx#12 ) + (byte) line::e#3 ← phi( line::@5/(byte) line::e#0 line::@8/(byte) line::e#5 ) + (byte) line::sy#2 ← phi( line::@5/(byte) line::sy#7 line::@8/(byte) line::sy#8 ) + (byte) line::y#7 ← phi( line::@5/(byte) line::y#18 line::@8/(byte) line::y#8 ) + (byte) line::y#2 ← (byte) line::y#7 + (byte) line::sy#2 + (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#4 + (bool~) line::$13 ← (byte) line::e#1 > (byte) line::dy#3 + (bool~) line::$14 ← ! (bool~) line::$13 + if((bool~) line::$14) goto line::@8 + to:line::@9 +line::@8: scope:[line] from line::@19 line::@7 + (byte) line::sx#22 ← phi( line::@19/(byte) line::sx#3 line::@7/(byte) line::sx#15 ) + (byte) line::x#17 ← phi( line::@19/(byte) line::x#1 line::@7/(byte) line::x#15 ) + (byte) line::dy#12 ← phi( line::@19/(byte) line::dy#4 line::@7/(byte) line::dy#3 ) + (byte) line::dx#12 ← phi( line::@19/(byte) line::dx#19 line::@7/(byte) line::dx#4 ) + (byte) line::e#5 ← phi( line::@19/(byte) line::e#2 line::@7/(byte) line::e#1 ) + (byte) line::sy#8 ← phi( line::@19/(byte) line::sy#13 line::@7/(byte) line::sy#2 ) + (byte) line::y2#7 ← phi( line::@19/(byte) line::y2#11 line::@7/(byte) line::y2#12 ) + (byte) line::y#8 ← phi( line::@19/(byte) line::y#19 line::@7/(byte) line::y#2 ) + (bool~) line::$17 ← (byte) line::y#8 != (byte) line::y2#7 + if((bool~) line::$17) goto line::@7 + to:line::@10 +line::@9: scope:[line] from line::@7 + (byte) line::dx#26 ← phi( line::@7/(byte) line::dx#4 ) + (byte) line::y2#16 ← phi( line::@7/(byte) line::y2#12 ) + (byte) line::dy#19 ← phi( line::@7/(byte) line::dy#3 ) + (byte) line::e#7 ← phi( line::@7/(byte) line::e#1 ) + (byte) line::sx#11 ← phi( line::@7/(byte) line::sx#15 ) + (byte) line::x#5 ← phi( line::@7/(byte) line::x#15 ) + (byte) line::sy#3 ← phi( line::@7/(byte) line::sy#2 ) + (byte) line::y#9 ← phi( line::@7/(byte) line::y#2 ) + (byte~) line::$15 ← (byte) line::y#9 - (byte) line::sy#3 + (byte) line::plot2_x#0 ← (byte) line::x#5 + (byte) line::plot2_y#0 ← (byte~) line::$15 to:line::plot2 -line::plot2: scope:[line] from line::@7 - (byte) line::sx#10 ← phi( line::@7/(byte) line::sx#2 ) - (byte) line::x#19 ← phi( line::@7/(byte) line::x#1 ) - (byte) line::dy#12 ← phi( line::@7/(byte) line::dy#4 ) - (byte) line::dx#13 ← phi( line::@7/(byte) line::dx#16 ) - (byte) line::e#7 ← phi( line::@7/(byte) line::e#2 ) - (byte) line::sy#7 ← phi( line::@7/(byte) line::sy#10 ) - (byte) line::y2#12 ← phi( line::@7/(byte) line::y2#14 ) - (byte) line::y#15 ← phi( line::@7/(byte) line::y#8 ) - (byte) line::plot2_y#1 ← phi( line::@7/(byte) line::plot2_y#0 ) - (byte) line::plot2_x#1 ← phi( line::@7/(byte) line::plot2_x#0 ) +line::plot2: scope:[line] from line::@9 + (byte) line::dx#23 ← phi( line::@9/(byte) line::dx#26 ) + (byte) line::sy#18 ← phi( line::@9/(byte) line::sy#3 ) + (byte) line::y2#14 ← phi( line::@9/(byte) line::y2#16 ) + (byte) line::y#27 ← phi( line::@9/(byte) line::y#9 ) + (byte) line::dy#13 ← phi( line::@9/(byte) line::dy#19 ) + (byte) line::e#6 ← phi( line::@9/(byte) line::e#7 ) + (byte) line::sx#7 ← phi( line::@9/(byte) line::sx#11 ) + (byte) line::x#16 ← phi( line::@9/(byte) line::x#5 ) + (byte) line::plot2_y#1 ← phi( line::@9/(byte) line::plot2_y#0 ) + (byte) line::plot2_x#1 ← phi( line::@9/(byte) line::plot2_x#0 ) (number~) line::plot2_$0 ← (byte) line::plot2_x#1 / (number) 8 (number~) line::plot2_$2 ← (number~) line::plot2_$0 * (const byte) SIZEOF_POINTER (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (number~) line::plot2_$2) (number~) line::plot2_$1 ← (byte) line::plot2_x#1 & (number) 7 *((byte*) line::plot2_column#0 + (byte) line::plot2_y#1) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#1) | *((const byte*) plot_bit + (number~) line::plot2_$1) - to:line::@6 -line::@8: scope:[line] from line::@2 line::@9 - (byte) line::sy#11 ← phi( line::@2/(byte) line::sy#13 line::@9/(byte) line::sy#14 ) - (byte) line::x2#10 ← phi( line::@2/(byte) line::x2#11 line::@9/(byte) line::x2#5 ) - (byte) line::dx#14 ← phi( line::@2/(byte) line::dx#2 line::@9/(byte) line::dx#17 ) - (byte) line::dy#13 ← phi( line::@2/(byte) line::dy#14 line::@9/(byte) line::dy#15 ) - (byte) line::e1#6 ← phi( line::@2/(byte) line::e1#0 line::@9/(byte) line::e1#7 ) - (byte) line::sx#8 ← phi( line::@2/(byte) line::sx#11 line::@9/(byte) line::sx#12 ) - (byte) line::y#9 ← phi( line::@2/(byte) line::y#16 line::@9/(byte) line::y#17 ) - (byte) line::x#5 ← phi( line::@2/(byte) line::x#11 line::@9/(byte) line::x#7 ) - (byte) line::plot3_x#0 ← (byte) line::x#5 - (byte) line::plot3_y#0 ← (byte) line::y#9 + to:line::@19 +line::@19: scope:[line] from line::plot2 + (byte) line::dx#19 ← phi( line::plot2/(byte) line::dx#23 ) + (byte) line::sy#13 ← phi( line::plot2/(byte) line::sy#18 ) + (byte) line::y2#11 ← phi( line::plot2/(byte) line::y2#14 ) + (byte) line::y#19 ← phi( line::plot2/(byte) line::y#27 ) + (byte) line::dy#4 ← phi( line::plot2/(byte) line::dy#13 ) + (byte) line::e#4 ← phi( line::plot2/(byte) line::e#6 ) + (byte) line::sx#3 ← phi( line::plot2/(byte) line::sx#7 ) + (byte) line::x#6 ← phi( line::plot2/(byte) line::x#16 ) + (byte) line::x#1 ← (byte) line::x#6 + (byte) line::sx#3 + (byte) line::e#2 ← (byte) line::e#4 - (byte) line::dy#4 + to:line::@8 +line::@10: scope:[line] from line::@8 + (byte) line::y#10 ← phi( line::@8/(byte) line::y#8 ) + (byte) line::x#7 ← phi( line::@8/(byte) line::x#17 ) + (byte) line::plot3_x#0 ← (byte) line::x#7 + (byte) line::plot3_y#0 ← (byte) line::y#10 to:line::plot3 -line::plot3: scope:[line] from line::@8 - (byte) line::sy#8 ← phi( line::@8/(byte) line::sy#11 ) - (byte) line::y#20 ← phi( line::@8/(byte) line::y#9 ) - (byte) line::x2#9 ← phi( line::@8/(byte) line::x2#10 ) - (byte) line::dx#10 ← phi( line::@8/(byte) line::dx#14 ) - (byte) line::dy#10 ← phi( line::@8/(byte) line::dy#13 ) - (byte) line::e1#5 ← phi( line::@8/(byte) line::e1#6 ) - (byte) line::sx#5 ← phi( line::@8/(byte) line::sx#8 ) - (byte) line::x#12 ← phi( line::@8/(byte) line::x#5 ) - (byte) line::plot3_y#1 ← phi( line::@8/(byte) line::plot3_y#0 ) - (byte) line::plot3_x#1 ← phi( line::@8/(byte) line::plot3_x#0 ) +line::plot3: scope:[line] from line::@10 + (byte) line::plot3_y#1 ← phi( line::@10/(byte) line::plot3_y#0 ) + (byte) line::plot3_x#1 ← phi( line::@10/(byte) line::plot3_x#0 ) (number~) line::plot3_$0 ← (byte) line::plot3_x#1 / (number) 8 (number~) line::plot3_$2 ← (number~) line::plot3_$0 * (const byte) SIZEOF_POINTER (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (number~) line::plot3_$2) (number~) line::plot3_$1 ← (byte) line::plot3_x#1 & (number) 7 *((byte*) line::plot3_column#0 + (byte) line::plot3_y#1) ← *((byte*) line::plot3_column#0 + (byte) line::plot3_y#1) | *((const byte*) plot_bit + (number~) line::plot3_$1) + to:line::@return +line::@11: scope:[line] from line::@18 + (byte) line::x2#15 ← phi( line::@18/(byte) line::x2#18 ) + (byte) line::sx#12 ← phi( line::@18/(byte) line::sx#16 ) + (byte) line::x#25 ← phi( line::@18/(byte) line::x#28 ) + (byte) line::dx#13 ← phi( line::@18/(byte) line::dx#3 ) + (byte) line::sy#9 ← phi( line::@18/(byte) line::sy#14 ) + (byte) line::y#20 ← phi( line::@18/(byte) line::y#28 ) + (byte) line::dy#5 ← phi( line::@18/(byte) line::dy#14 ) + (number~) line::$22 ← (byte) line::dy#5 / (number) 2 + (byte) line::e1#0 ← (number~) line::$22 to:line::@12 -line::@12: scope:[line] from line::plot3 - (byte) line::sy#5 ← phi( line::plot3/(byte) line::sy#8 ) - (byte) line::y#18 ← phi( line::plot3/(byte) line::y#20 ) - (byte) line::x2#8 ← phi( line::plot3/(byte) line::x2#9 ) - (byte) line::dx#4 ← phi( line::plot3/(byte) line::dx#10 ) - (byte) line::dy#5 ← phi( line::plot3/(byte) line::dy#10 ) - (byte) line::e1#3 ← phi( line::plot3/(byte) line::e1#5 ) - (byte) line::sx#3 ← phi( line::plot3/(byte) line::sx#5 ) - (byte) line::x#6 ← phi( line::plot3/(byte) line::x#12 ) - (byte) line::x#2 ← (byte) line::x#6 + (byte) line::sx#3 - (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#5 - (bool~) line::$19 ← (byte) line::dx#4 < (byte) line::e1#1 - (bool~) line::$20 ← ! (bool~) line::$19 - if((bool~) line::$20) goto line::@9 - to:line::@10 -line::@9: scope:[line] from line::@10 line::@12 - (byte) line::sy#14 ← phi( line::@10/(byte) line::sy#2 line::@12/(byte) line::sy#5 ) - (byte) line::dx#17 ← phi( line::@10/(byte) line::dx#5 line::@12/(byte) line::dx#4 ) - (byte) line::dy#15 ← phi( line::@10/(byte) line::dy#16 line::@12/(byte) line::dy#5 ) - (byte) line::e1#7 ← phi( line::@10/(byte) line::e1#2 line::@12/(byte) line::e1#1 ) - (byte) line::sx#12 ← phi( line::@10/(byte) line::sx#14 line::@12/(byte) line::sx#3 ) - (byte) line::y#17 ← phi( line::@10/(byte) line::y#3 line::@12/(byte) line::y#18 ) - (byte) line::x2#5 ← phi( line::@10/(byte) line::x2#7 line::@12/(byte) line::x2#8 ) - (byte) line::x#7 ← phi( line::@10/(byte) line::x#13 line::@12/(byte) line::x#2 ) - (bool~) line::$21 ← (byte) line::x#7 != (byte) line::x2#5 - if((bool~) line::$21) goto line::@8 - to:line::@11 -line::@10: scope:[line] from line::@12 - (byte) line::dy#16 ← phi( line::@12/(byte) line::dy#5 ) - (byte) line::sx#14 ← phi( line::@12/(byte) line::sx#3 ) - (byte) line::x2#7 ← phi( line::@12/(byte) line::x2#8 ) - (byte) line::x#13 ← phi( line::@12/(byte) line::x#2 ) - (byte) line::dx#5 ← phi( line::@12/(byte) line::dx#4 ) +line::@return: scope:[line] from line::@18 line::@20 line::plot3 line::plot6 + return + to:@return +line::@12: scope:[line] from line::@11 line::@12 line::@20 + (byte) line::x2#13 ← phi( line::@11/(byte) line::x2#15 line::@12/(byte) line::x2#13 line::@20/(byte) line::x2#5 ) + (byte) line::sx#8 ← phi( line::@11/(byte) line::sx#12 line::@12/(byte) line::sx#8 line::@20/(byte) line::sx#13 ) + (byte) line::x#18 ← phi( line::@11/(byte) line::x#25 line::@12/(byte) line::x#18 line::@20/(byte) line::x#9 ) + (byte) line::dy#6 ← phi( line::@11/(byte) line::dy#5 line::@12/(byte) line::dy#6 line::@20/(byte) line::dy#15 ) + (byte) line::dx#5 ← phi( line::@11/(byte) line::dx#13 line::@12/(byte) line::dx#5 line::@20/(byte) line::dx#14 ) + (byte) line::e1#3 ← phi( line::@11/(byte) line::e1#0 line::@12/(byte) line::e1#1 line::@20/(byte) line::e1#5 ) + (byte) line::sy#4 ← phi( line::@11/(byte) line::sy#9 line::@12/(byte) line::sy#4 line::@20/(byte) line::sy#10 ) + (byte) line::y#11 ← phi( line::@11/(byte) line::y#20 line::@12/(byte) line::y#3 line::@20/(byte) line::y#21 ) + (byte) line::y#3 ← (byte) line::y#11 + (byte) line::sy#4 + (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#5 + (bool~) line::$23 ← (byte) line::e1#1 <= (byte) line::dy#6 + if((bool~) line::$23) goto line::@12 + to:line::@13 +line::@13: scope:[line] from line::@12 + (byte) line::dx#24 ← phi( line::@12/(byte) line::dx#5 ) + (byte) line::sy#19 ← phi( line::@12/(byte) line::sy#4 ) + (byte) line::x2#11 ← phi( line::@12/(byte) line::x2#13 ) + (byte) line::y#12 ← phi( line::@12/(byte) line::y#3 ) + (byte) line::dy#7 ← phi( line::@12/(byte) line::dy#6 ) (byte) line::e1#4 ← phi( line::@12/(byte) line::e1#1 ) - (byte) line::sy#2 ← phi( line::@12/(byte) line::sy#5 ) - (byte) line::y#10 ← phi( line::@12/(byte) line::y#18 ) - (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#2 - (byte) line::e1#2 ← (byte) line::e1#4 - (byte) line::dx#5 - to:line::@9 -line::@11: scope:[line] from line::@9 - (byte) line::y#11 ← phi( line::@9/(byte) line::y#17 ) - (byte) line::x#8 ← phi( line::@9/(byte) line::x#7 ) - (byte) line::plot4_x#0 ← (byte) line::x#8 - (byte) line::plot4_y#0 ← (byte) line::y#11 + (byte) line::sx#4 ← phi( line::@12/(byte) line::sx#8 ) + (byte) line::x#8 ← phi( line::@12/(byte) line::x#18 ) + (byte) line::x#2 ← (byte) line::x#8 + (byte) line::sx#4 + (byte) line::e1#2 ← (byte) line::e1#4 - (byte) line::dy#7 + (byte) line::plot4_x#0 ← (byte) line::x#2 + (byte) line::plot4_y#0 ← (byte) line::y#12 to:line::plot4 -line::plot4: scope:[line] from line::@11 - (byte) line::plot4_y#1 ← phi( line::@11/(byte) line::plot4_y#0 ) - (byte) line::plot4_x#1 ← phi( line::@11/(byte) line::plot4_x#0 ) +line::plot4: scope:[line] from line::@13 + (byte) line::sx#17 ← phi( line::@13/(byte) line::sx#4 ) + (byte) line::dy#20 ← phi( line::@13/(byte) line::dy#7 ) + (byte) line::dx#20 ← phi( line::@13/(byte) line::dx#24 ) + (byte) line::e1#6 ← phi( line::@13/(byte) line::e1#2 ) + (byte) line::sy#15 ← phi( line::@13/(byte) line::sy#19 ) + (byte) line::y#29 ← phi( line::@13/(byte) line::y#12 ) + (byte) line::x2#8 ← phi( line::@13/(byte) line::x2#11 ) + (byte) line::x#19 ← phi( line::@13/(byte) line::x#2 ) + (byte) line::plot4_y#1 ← phi( line::@13/(byte) line::plot4_y#0 ) + (byte) line::plot4_x#1 ← phi( line::@13/(byte) line::plot4_x#0 ) (number~) line::plot4_$0 ← (byte) line::plot4_x#1 / (number) 8 (number~) line::plot4_$2 ← (number~) line::plot4_$0 * (const byte) SIZEOF_POINTER (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (number~) line::plot4_$2) (number~) line::plot4_$1 ← (byte) line::plot4_x#1 & (number) 7 *((byte*) line::plot4_column#0 + (byte) line::plot4_y#1) ← *((byte*) line::plot4_column#0 + (byte) line::plot4_y#1) | *((const byte*) plot_bit + (number~) line::plot4_$1) + to:line::@20 +line::@20: scope:[line] from line::plot4 + (byte) line::sx#13 ← phi( line::plot4/(byte) line::sx#17 ) + (byte) line::dy#15 ← phi( line::plot4/(byte) line::dy#20 ) + (byte) line::dx#14 ← phi( line::plot4/(byte) line::dx#20 ) + (byte) line::e1#5 ← phi( line::plot4/(byte) line::e1#6 ) + (byte) line::sy#10 ← phi( line::plot4/(byte) line::sy#15 ) + (byte) line::y#21 ← phi( line::plot4/(byte) line::y#29 ) + (byte) line::x2#5 ← phi( line::plot4/(byte) line::x2#8 ) + (byte) line::x#9 ← phi( line::plot4/(byte) line::x#19 ) + (bool~) line::$25 ← (byte) line::x#9 != (byte) line::x2#5 + if((bool~) line::$25) goto line::@12 + to:line::@return +line::@14: scope:[line] from line::@15 line::@2 + (byte) line::sy#20 ← phi( line::@15/(byte) line::sy#22 line::@2/(byte) line::sy#23 ) + (byte) line::x2#14 ← phi( line::@15/(byte) line::x2#6 line::@2/(byte) line::x2#16 ) + (byte) line::dx#21 ← phi( line::@15/(byte) line::dx#25 line::@2/(byte) line::dx#2 ) + (byte) line::dy#21 ← phi( line::@15/(byte) line::dy#23 line::@2/(byte) line::dy#24 ) + (byte) line::e2#6 ← phi( line::@15/(byte) line::e2#7 line::@2/(byte) line::e2#0 ) + (byte) line::sx#14 ← phi( line::@15/(byte) line::sx#18 line::@2/(byte) line::sx#19 ) + (byte) line::y#13 ← phi( line::@15/(byte) line::y#22 line::@2/(byte) line::y#23 ) + (byte) line::x#10 ← phi( line::@15/(byte) line::x#12 line::@2/(byte) line::x#20 ) + (byte) line::plot5_x#0 ← (byte) line::x#10 + (byte) line::plot5_y#0 ← (byte) line::y#13 + to:line::plot5 +line::plot5: scope:[line] from line::@14 + (byte) line::sy#16 ← phi( line::@14/(byte) line::sy#20 ) + (byte) line::y#30 ← phi( line::@14/(byte) line::y#13 ) + (byte) line::x2#12 ← phi( line::@14/(byte) line::x2#14 ) + (byte) line::dx#15 ← phi( line::@14/(byte) line::dx#21 ) + (byte) line::dy#16 ← phi( line::@14/(byte) line::dy#21 ) + (byte) line::e2#5 ← phi( line::@14/(byte) line::e2#6 ) + (byte) line::sx#9 ← phi( line::@14/(byte) line::sx#14 ) + (byte) line::x#21 ← phi( line::@14/(byte) line::x#10 ) + (byte) line::plot5_y#1 ← phi( line::@14/(byte) line::plot5_y#0 ) + (byte) line::plot5_x#1 ← phi( line::@14/(byte) line::plot5_x#0 ) + (number~) line::plot5_$0 ← (byte) line::plot5_x#1 / (number) 8 + (number~) line::plot5_$2 ← (number~) line::plot5_$0 * (const byte) SIZEOF_POINTER + (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (number~) line::plot5_$2) + (number~) line::plot5_$1 ← (byte) line::plot5_x#1 & (number) 7 + *((byte*) line::plot5_column#0 + (byte) line::plot5_y#1) ← *((byte*) line::plot5_column#0 + (byte) line::plot5_y#1) | *((const byte*) plot_bit + (number~) line::plot5_$1) + to:line::@21 +line::@21: scope:[line] from line::plot5 + (byte) line::sy#11 ← phi( line::plot5/(byte) line::sy#16 ) + (byte) line::y#24 ← phi( line::plot5/(byte) line::y#30 ) + (byte) line::x2#10 ← phi( line::plot5/(byte) line::x2#12 ) + (byte) line::dx#6 ← phi( line::plot5/(byte) line::dx#15 ) + (byte) line::dy#8 ← phi( line::plot5/(byte) line::dy#16 ) + (byte) line::e2#3 ← phi( line::plot5/(byte) line::e2#5 ) + (byte) line::sx#5 ← phi( line::plot5/(byte) line::sx#9 ) + (byte) line::x#11 ← phi( line::plot5/(byte) line::x#21 ) + (byte) line::x#3 ← (byte) line::x#11 + (byte) line::sx#5 + (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#8 + (bool~) line::$28 ← (byte) line::e2#1 > (byte) line::dx#6 + (bool~) line::$29 ← ! (bool~) line::$28 + if((bool~) line::$29) goto line::@15 + to:line::@16 +line::@15: scope:[line] from line::@16 line::@21 + (byte) line::sy#22 ← phi( line::@16/(byte) line::sy#5 line::@21/(byte) line::sy#11 ) + (byte) line::dx#25 ← phi( line::@16/(byte) line::dx#7 line::@21/(byte) line::dx#6 ) + (byte) line::dy#23 ← phi( line::@16/(byte) line::dy#25 line::@21/(byte) line::dy#8 ) + (byte) line::e2#7 ← phi( line::@16/(byte) line::e2#2 line::@21/(byte) line::e2#1 ) + (byte) line::sx#18 ← phi( line::@16/(byte) line::sx#23 line::@21/(byte) line::sx#5 ) + (byte) line::y#22 ← phi( line::@16/(byte) line::y#4 line::@21/(byte) line::y#24 ) + (byte) line::x2#6 ← phi( line::@16/(byte) line::x2#9 line::@21/(byte) line::x2#10 ) + (byte) line::x#12 ← phi( line::@16/(byte) line::x#22 line::@21/(byte) line::x#3 ) + (bool~) line::$30 ← (byte) line::x#12 != (byte) line::x2#6 + if((bool~) line::$30) goto line::@14 + to:line::@17 +line::@16: scope:[line] from line::@21 + (byte) line::dy#25 ← phi( line::@21/(byte) line::dy#8 ) + (byte) line::sx#23 ← phi( line::@21/(byte) line::sx#5 ) + (byte) line::x2#9 ← phi( line::@21/(byte) line::x2#10 ) + (byte) line::x#22 ← phi( line::@21/(byte) line::x#3 ) + (byte) line::dx#7 ← phi( line::@21/(byte) line::dx#6 ) + (byte) line::e2#4 ← phi( line::@21/(byte) line::e2#1 ) + (byte) line::sy#5 ← phi( line::@21/(byte) line::sy#11 ) + (byte) line::y#14 ← phi( line::@21/(byte) line::y#24 ) + (byte) line::y#4 ← (byte) line::y#14 + (byte) line::sy#5 + (byte) line::e2#2 ← (byte) line::e2#4 - (byte) line::dx#7 + to:line::@15 +line::@17: scope:[line] from line::@15 + (byte) line::y#15 ← phi( line::@15/(byte) line::y#22 ) + (byte) line::x#13 ← phi( line::@15/(byte) line::x#12 ) + (byte) line::plot6_x#0 ← (byte) line::x#13 + (byte) line::plot6_y#0 ← (byte) line::y#15 + to:line::plot6 +line::plot6: scope:[line] from line::@17 + (byte) line::plot6_y#1 ← phi( line::@17/(byte) line::plot6_y#0 ) + (byte) line::plot6_x#1 ← phi( line::@17/(byte) line::plot6_x#0 ) + (number~) line::plot6_$0 ← (byte) line::plot6_x#1 / (number) 8 + (number~) line::plot6_$2 ← (number~) line::plot6_$0 * (const byte) SIZEOF_POINTER + (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (number~) line::plot6_$2) + (number~) line::plot6_$1 ← (byte) line::plot6_x#1 & (number) 7 + *((byte*) line::plot6_column#0 + (byte) line::plot6_y#1) ← *((byte*) line::plot6_column#0 + (byte) line::plot6_y#1) | *((const byte*) plot_bit + (number~) line::plot6_$1) to:line::@return -line::@return: scope:[line] from line::@6 line::plot4 - return - to:@return (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) eorfill: scope:[eorfill] from main::@10 @@ -1905,7 +949,7 @@ eorfill: scope:[eorfill] from main::@10 (byte) eorfill::x#0 ← (byte) 0 to:eorfill::@1 eorfill::@1: scope:[eorfill] from eorfill eorfill::@5 - (byte*) eorfill::fill_column#6 ← phi( eorfill/(byte*) eorfill::fill_column#0 eorfill::@5/(byte*) eorfill::fill_column#1 ) + (byte*) eorfill::fill_column#5 ← phi( eorfill/(byte*) eorfill::fill_column#0 eorfill::@5/(byte*) eorfill::fill_column#1 ) (byte*) eorfill::line_column#5 ← phi( eorfill/(byte*) eorfill::line_column#0 eorfill::@5/(byte*) eorfill::line_column#1 ) (byte) eorfill::x#2 ← phi( eorfill/(byte) eorfill::x#0 eorfill::@5/(byte) eorfill::x#1 ) (bool~) eorfill::$0 ← (byte) eorfill::x#2 < (number) $10 @@ -1913,14 +957,15 @@ eorfill::@1: scope:[eorfill] from eorfill eorfill::@5 to:eorfill::@return eorfill::@2: scope:[eorfill] from eorfill::@1 (byte) eorfill::x#5 ← phi( eorfill::@1/(byte) eorfill::x#2 ) - (byte*) eorfill::fill_column#5 ← phi( eorfill::@1/(byte*) eorfill::fill_column#6 ) + (byte*) eorfill::fill_column#2 ← phi( eorfill::@1/(byte*) eorfill::fill_column#5 ) (byte*) eorfill::line_column#2 ← phi( eorfill::@1/(byte*) eorfill::line_column#5 ) (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2 + (number) 0) + *((byte*) eorfill::fill_column#2 + (number) 0) ← (byte) eorfill::eor#0 (byte) eorfill::y#0 ← (byte) 1 to:eorfill::@3 eorfill::@3: scope:[eorfill] from eorfill::@2 eorfill::@4 (byte) eorfill::x#4 ← phi( eorfill::@2/(byte) eorfill::x#5 eorfill::@4/(byte) eorfill::x#6 ) - (byte*) eorfill::fill_column#4 ← phi( eorfill::@2/(byte*) eorfill::fill_column#5 eorfill::@4/(byte*) eorfill::fill_column#2 ) + (byte*) eorfill::fill_column#6 ← phi( eorfill::@2/(byte*) eorfill::fill_column#2 eorfill::@4/(byte*) eorfill::fill_column#3 ) (byte*) eorfill::line_column#6 ← phi( eorfill::@2/(byte*) eorfill::line_column#2 eorfill::@4/(byte*) eorfill::line_column#3 ) (byte) eorfill::eor#3 ← phi( eorfill::@2/(byte) eorfill::eor#0 eorfill::@4/(byte) eorfill::eor#1 ) (byte) eorfill::y#2 ← phi( eorfill::@2/(byte) eorfill::y#0 eorfill::@4/(byte) eorfill::y#1 ) @@ -1929,20 +974,20 @@ eorfill::@3: scope:[eorfill] from eorfill::@2 eorfill::@4 to:eorfill::@5 eorfill::@4: scope:[eorfill] from eorfill::@3 (byte) eorfill::x#6 ← phi( eorfill::@3/(byte) eorfill::x#4 ) - (byte*) eorfill::fill_column#2 ← phi( eorfill::@3/(byte*) eorfill::fill_column#4 ) + (byte*) eorfill::fill_column#3 ← phi( eorfill::@3/(byte*) eorfill::fill_column#6 ) (byte) eorfill::y#3 ← phi( eorfill::@3/(byte) eorfill::y#2 ) (byte*) eorfill::line_column#3 ← phi( eorfill::@3/(byte*) eorfill::line_column#6 ) (byte) eorfill::eor#2 ← phi( eorfill::@3/(byte) eorfill::eor#3 ) (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#3 + (byte) eorfill::y#3) - *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#3) ← (byte) eorfill::eor#1 + *((byte*) eorfill::fill_column#3 + (byte) eorfill::y#3) ← (byte) eorfill::eor#1 (byte) eorfill::y#1 ← ++ (byte) eorfill::y#3 to:eorfill::@3 eorfill::@5: scope:[eorfill] from eorfill::@3 (byte) eorfill::x#3 ← phi( eorfill::@3/(byte) eorfill::x#4 ) - (byte*) eorfill::fill_column#3 ← phi( eorfill::@3/(byte*) eorfill::fill_column#4 ) + (byte*) eorfill::fill_column#4 ← phi( eorfill::@3/(byte*) eorfill::fill_column#6 ) (byte*) eorfill::line_column#4 ← phi( eorfill::@3/(byte*) eorfill::line_column#6 ) (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#4 + (number) $10*(number) 8 - (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#3 + (number) $10*(number) 8 + (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#4 + (number) $10*(number) 8 (byte) eorfill::x#1 ← ++ (byte) eorfill::x#3 to:eorfill::@1 eorfill::@return: scope:[eorfill] from eorfill::@1 @@ -1950,8 +995,8 @@ eorfill::@return: scope:[eorfill] from eorfill::@1 to:@return (byte()) abs_u8((byte) abs_u8::u) -abs_u8: scope:[abs_u8] from line line::@13 - (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@13/(byte) abs_u8::u#1 ) +abs_u8: scope:[abs_u8] from line line::@22 + (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@22/(byte) abs_u8::u#1 ) (number~) abs_u8::$0 ← (byte) abs_u8::u#2 & (number) $80 (bool~) abs_u8::$2 ← (number) 0 != (number~) abs_u8::$0 if((bool~) abs_u8::$2) goto abs_u8::@1 @@ -1972,8 +1017,8 @@ abs_u8::@return: scope:[abs_u8] from abs_u8::@1 abs_u8::@2 to:@return (byte()) sgn_u8((byte) sgn_u8::u) -sgn_u8: scope:[sgn_u8] from line::@14 line::@15 - (byte) sgn_u8::u#2 ← phi( line::@14/(byte) sgn_u8::u#0 line::@15/(byte) sgn_u8::u#1 ) +sgn_u8: scope:[sgn_u8] from line::@23 line::@24 + (byte) sgn_u8::u#2 ← phi( line::@23/(byte) sgn_u8::u#0 line::@24/(byte) sgn_u8::u#1 ) (number~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (number) $80 (bool~) sgn_u8::$1 ← (number) 0 != (number~) sgn_u8::$0 if((bool~) sgn_u8::$1) goto sgn_u8::@1 @@ -2005,7 +1050,6 @@ SYMBOL TABLE SSA (label) @5 (label) @begin (label) @end -(const byte) BINARY = (number) 2 (const nomodify byte) BLACK = (byte) 0 (const nomodify byte) BORDER_YPOS_BOTTOM = (byte) $fa (const nomodify byte*) CANVAS1 = (byte*)(number) $3000 @@ -2019,18 +1063,13 @@ SYMBOL TABLE SSA (const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS = (byte) 0 (const nomodify byte) CIA_TIMER_CONTROL_START = (byte) 1 (const nomodify byte) CIA_TIMER_CONTROL_STOP = (byte) 0 -(const nomodify dword) CLOCKS_PER_INIT = (dword) $12 (const nomodify byte*) COLS = (byte*)(number) $d800 (const nomodify byte*) CONIO_CIA1_PORT_A = (byte*)(number) $dc00 (const nomodify byte*) CONIO_CIA1_PORT_B = (byte*)(number) $dc01 -(const nomodify byte*) CONIO_SCREEN_COLORS = (byte*)(number) $d800 -(const nomodify byte*) CONIO_SCREEN_TEXT = (byte*)(number) $400 (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT = (byte) $e (const nomodify byte*) CONSOLE = (byte*)(number) $400 (const byte*) COSTAB = (const byte*) SINTAB+(number) $40 -(const byte) DECIMAL = (number) $a -(const byte*) DIGITS[] = (byte*) "0123456789abcdef"z -(const byte) HEXADECIMAL = (number) $10 +(const nomodify byte) DARK_GREY = (byte) $b (const nomodify byte) IRQ_RASTER = (byte) 1 (const nomodify void()**) KERNEL_IRQ = (void()**)(number) $314 (const nomodify byte*) LINE_BUFFER = (byte*)(number) $2000 @@ -2118,7 +1157,6 @@ SYMBOL TABLE SSA (byte) MOS6581_SID::POT_X (byte) MOS6581_SID::POT_Y (byte) MOS6581_SID::VOLUME_FILTER_MODE -(const byte) OCTAL = (number) 8 (const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = (byte) $d (const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = (byte) $e (const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = (byte) $f @@ -2129,26 +1167,15 @@ SYMBOL TABLE SSA (const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = (byte) $19 (const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY = (byte) $18 (const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER = (byte) $12 -(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1 -(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = (byte) 0 (const nomodify byte*) PETSCII = (byte*)(number) $1000 (const byte) RADIX::BINARY = (number) 2 (const byte) RADIX::DECIMAL = (number) $a (const byte) RADIX::HEXADECIMAL = (number) $10 (const byte) RADIX::OCTAL = (number) 8 -(const byte*) RADIX_BINARY_VALUES_CHAR[] = { (byte) $80, (byte) $40, (byte) $20, (byte) $10, (byte) 8, (byte) 4, (byte) 2 } -(const dword*) RADIX_BINARY_VALUES_LONG[] = { (dword) $80000000, (dword) $40000000, (dword) $20000000, (dword) $10000000, (dword) $8000000, (dword) $4000000, (dword) $2000000, (dword) $1000000, (dword) $800000, (dword) $400000, (dword) $200000, (dword) $100000, (dword) $80000, (dword) $40000, (dword) $20000, (dword) $10000, (dword) $8000, (dword) $4000, (dword) $2000, (dword) $1000, (dword) $800, (dword) $400, (dword) $200, (dword) $100, (dword) $80, (dword) $40, (dword) $20, (dword) $10, (dword) 8, (dword) 4, (dword) 2 } -(const byte*) RADIX_DECIMAL_VALUES_CHAR[] = { (byte) $64, (byte) $a } -(const dword*) RADIX_DECIMAL_VALUES_LONG[] = { (dword) $3b9aca00, (dword) $5f5e100, (dword) $989680, (dword) $f4240, (dword) $186a0, (dword) $2710, (dword) $3e8, (dword) $64, (dword) $a } -(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR[] = { (byte) $10 } -(const dword*) RADIX_HEXADECIMAL_VALUES_LONG[] = { (dword) $10000000, (dword) $1000000, (dword) $100000, (dword) $10000, (dword) $1000, (dword) $100, (dword) $10 } -(const byte*) RADIX_OCTAL_VALUES_CHAR[] = { (byte) $40, (byte) 8 } -(const dword*) RADIX_OCTAL_VALUES_LONG[] = { (dword) $40000000, (dword) $8000000, (dword) $1000000, (dword) $200000, (dword) $40000, (dword) $8000, (dword) $1000, (dword) $200, (dword) $40, (dword) 8 } (const nomodify byte) RED = (byte) 2 (const nomodify byte*) SCREEN = (byte*)(number) $2c00 -(const byte*) SINTAB[(number) $140] = kickasm {{ .fill $200, 63 + 63*sin(i*2*PI/$100) +(const byte*) SINTAB[(number) $140] = kickasm {{ .fill $200, round(63 + 63*sin(i*2*PI/$100)) }} -(const byte) SIZEOF_DWORD = (byte) 4 (const byte) SIZEOF_POINTER = (byte) 2 (const nomodify struct MOS6569_VICII*) VICII = (struct MOS6569_VICII*)(number) $d000 (const nomodify byte) WHITE = (byte) 1 @@ -2184,73 +1211,9 @@ SYMBOL TABLE SSA (dword) clock::return#1 (dword) clock::return#2 (dword) clock::return#3 -(dword) clock::return#4 (void()) clock_start() (label) clock_start::@return -(byte*) conio_cursor_color loadstore -(byte*) conio_cursor_text loadstore -(byte) conio_cursor_x loadstore -(byte) conio_cursor_y loadstore -(byte) conio_scroll_enable loadstore (byte) conio_textcolor loadstore -(void()) cputc((byte) cputc::c) -(bool~) cputc::$0 -(bool~) cputc::$1 -(bool~) cputc::$2 -(label) cputc::@1 -(label) cputc::@2 -(label) cputc::@3 -(label) cputc::@4 -(label) cputc::@5 -(label) cputc::@return -(byte) cputc::c -(byte) cputc::c#0 -(byte) cputc::c#1 -(byte) cputc::c#2 -(byte) cputc::c#3 -(byte) cputc::c#4 -(void()) cputln() -(number~) cputln::$0 -(byte*~) cputln::$1 -(byte*~) cputln::$2 -(label) cputln::@1 -(label) cputln::@return -(word) cputln::ln_offset -(word) cputln::ln_offset#0 -(void()) cputs((to_nomodify byte*) cputs::s) -(bool~) cputs::$1 -(label) cputs::@1 -(label) cputs::@2 -(label) cputs::@3 -(label) cputs::@return -(byte) cputs::c -(byte) cputs::c#0 -(byte) cputs::c#1 -(byte) cputs::c#2 -(to_nomodify byte*) cputs::s -(to_nomodify byte*) cputs::s#0 -(to_nomodify byte*) cputs::s#1 -(to_nomodify byte*) cputs::s#2 -(to_nomodify byte*) cputs::s#3 -(to_nomodify byte*) cputs::s#4 -(to_nomodify byte*) cputs::s#5 -(to_nomodify byte*) cputs::s#6 -(to_nomodify byte*) cputs::s#7 -(void()) cscroll() -(bool~) cscroll::$0 -(bool~) cscroll::$1 -(byte*~) cscroll::$7 -(byte*~) cscroll::$8 -(bool~) cscroll::$9 -(label) cscroll::@1 -(label) cscroll::@2 -(label) cscroll::@3 -(label) cscroll::@4 -(label) cscroll::@5 -(label) cscroll::@6 -(label) cscroll::@7 -(label) cscroll::@8 -(label) cscroll::@return (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) (bool~) eorfill::$0 (bool~) eorfill::$1 @@ -2300,39 +1263,6 @@ SYMBOL TABLE SSA (byte) eorfill::y#1 (byte) eorfill::y#2 (byte) eorfill::y#3 -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -(bool~) gotoxy::$0 -(bool~) gotoxy::$1 -(bool~) gotoxy::$2 -(bool~) gotoxy::$3 -(number~) gotoxy::$4 -(number~) gotoxy::$5 -(byte*~) gotoxy::$6 -(byte*~) gotoxy::$7 -(word~) gotoxy::$8 -(label) gotoxy::@1 -(label) gotoxy::@2 -(label) gotoxy::@3 -(label) gotoxy::@4 -(label) gotoxy::@return -(word) gotoxy::offset -(word) gotoxy::offset#0 -(byte) gotoxy::x -(byte) gotoxy::x#0 -(byte) gotoxy::x#1 -(byte) gotoxy::x#2 -(byte) gotoxy::x#3 -(byte) gotoxy::x#4 -(byte) gotoxy::x#5 -(byte) gotoxy::x#6 -(byte) gotoxy::y -(byte) gotoxy::y#0 -(byte) gotoxy::y#1 -(byte) gotoxy::y#2 -(byte) gotoxy::y#3 -(byte) gotoxy::y#4 -(byte) gotoxy::y#5 -(byte) gotoxy::y#6 interrupt(KERNEL_MIN)(void()) irq_bottom_1() (byte~) irq_bottom_1::$0 (label) irq_bottom_1::@1 @@ -2361,12 +1291,35 @@ interrupt(KERNEL_MIN)(void()) irq_bottom_1() interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte~) irq_bottom_2::$0 (bool~) irq_bottom_2::$1 -(bool~) irq_bottom_2::$2 +(byte~) irq_bottom_2::$2 (bool~) irq_bottom_2::$3 (label) irq_bottom_2::@1 (label) irq_bottom_2::@2 (label) irq_bottom_2::@3 +(label) irq_bottom_2::@4 +(label) irq_bottom_2::@5 (label) irq_bottom_2::@return +(label) irq_bottom_2::toD0181 +(number~) irq_bottom_2::toD0181_$0 +(number~) irq_bottom_2::toD0181_$1 +(number~) irq_bottom_2::toD0181_$2 +(byte~) irq_bottom_2::toD0181_$3 +(number~) irq_bottom_2::toD0181_$4 +(number~) irq_bottom_2::toD0181_$5 +(number~) irq_bottom_2::toD0181_$6 +(word~) irq_bottom_2::toD0181_$7 +(label) irq_bottom_2::toD0181_@return +(byte*) irq_bottom_2::toD0181_gfx +(byte*) irq_bottom_2::toD0181_gfx#0 +(byte*) irq_bottom_2::toD0181_gfx#1 +(byte) irq_bottom_2::toD0181_return +(byte) irq_bottom_2::toD0181_return#0 +(byte) irq_bottom_2::toD0181_return#1 +(byte) irq_bottom_2::toD0181_return#2 +(byte) irq_bottom_2::toD0181_return#3 +(byte*) irq_bottom_2::toD0181_screen +(byte*) irq_bottom_2::toD0181_screen#0 +(byte*) irq_bottom_2::toD0181_screen#1 (byte()) kbhit() (byte~) kbhit::$0 (label) kbhit::@return @@ -2380,16 +1333,23 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte~) line::$0 (byte~) line::$1 (bool~) line::$10 -(number~) line::$11 +(bool~) line::$11 +(number~) line::$12 (bool~) line::$13 (bool~) line::$14 -(bool~) line::$16 -(number~) line::$17 -(bool~) line::$19 +(byte~) line::$15 +(bool~) line::$17 (byte~) line::$2 (bool~) line::$20 (bool~) line::$21 +(number~) line::$22 +(bool~) line::$23 +(bool~) line::$25 +(number~) line::$26 +(bool~) line::$28 +(bool~) line::$29 (byte~) line::$3 +(bool~) line::$30 (byte~) line::$4 (byte~) line::$5 (byte~) line::$6 @@ -2404,7 +1364,16 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) line::@14 (label) line::@15 (label) line::@16 +(label) line::@17 +(label) line::@18 +(label) line::@19 (label) line::@2 +(label) line::@20 +(label) line::@21 +(label) line::@22 +(label) line::@23 +(label) line::@24 +(label) line::@25 (label) line::@3 (label) line::@4 (label) line::@5 @@ -2428,7 +1397,16 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::dx#15 (byte) line::dx#16 (byte) line::dx#17 +(byte) line::dx#18 +(byte) line::dx#19 (byte) line::dx#2 +(byte) line::dx#20 +(byte) line::dx#21 +(byte) line::dx#22 +(byte) line::dx#23 +(byte) line::dx#24 +(byte) line::dx#25 +(byte) line::dx#26 (byte) line::dx#3 (byte) line::dx#4 (byte) line::dx#5 @@ -2446,7 +1424,16 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::dy#14 (byte) line::dy#15 (byte) line::dy#16 +(byte) line::dy#17 +(byte) line::dy#18 +(byte) line::dy#19 (byte) line::dy#2 +(byte) line::dy#20 +(byte) line::dy#21 +(byte) line::dy#22 +(byte) line::dy#23 +(byte) line::dy#24 +(byte) line::dy#25 (byte) line::dy#3 (byte) line::dy#4 (byte) line::dy#5 @@ -2471,7 +1458,15 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::e1#4 (byte) line::e1#5 (byte) line::e1#6 -(byte) line::e1#7 +(byte) line::e2 +(byte) line::e2#0 +(byte) line::e2#1 +(byte) line::e2#2 +(byte) line::e2#3 +(byte) line::e2#4 +(byte) line::e2#5 +(byte) line::e2#6 +(byte) line::e2#7 (label) line::plot1 (number~) line::plot1_$0 (number~) line::plot1_$1 @@ -2520,6 +1515,30 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::plot4_y (byte) line::plot4_y#0 (byte) line::plot4_y#1 +(label) line::plot5 +(number~) line::plot5_$0 +(number~) line::plot5_$1 +(number~) line::plot5_$2 +(byte*) line::plot5_column +(byte*) line::plot5_column#0 +(byte) line::plot5_x +(byte) line::plot5_x#0 +(byte) line::plot5_x#1 +(byte) line::plot5_y +(byte) line::plot5_y#0 +(byte) line::plot5_y#1 +(label) line::plot6 +(number~) line::plot6_$0 +(number~) line::plot6_$1 +(number~) line::plot6_$2 +(byte*) line::plot6_column +(byte*) line::plot6_column#0 +(byte) line::plot6_x +(byte) line::plot6_x#0 +(byte) line::plot6_x#1 +(byte) line::plot6_y +(byte) line::plot6_y#0 +(byte) line::plot6_y#1 (byte) line::sx (byte) line::sx#0 (byte) line::sx#1 @@ -2529,7 +1548,16 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::sx#13 (byte) line::sx#14 (byte) line::sx#15 +(byte) line::sx#16 +(byte) line::sx#17 +(byte) line::sx#18 +(byte) line::sx#19 (byte) line::sx#2 +(byte) line::sx#20 +(byte) line::sx#21 +(byte) line::sx#22 +(byte) line::sx#23 +(byte) line::sx#24 (byte) line::sx#3 (byte) line::sx#4 (byte) line::sx#5 @@ -2545,7 +1573,16 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::sy#12 (byte) line::sy#13 (byte) line::sy#14 +(byte) line::sy#15 +(byte) line::sy#16 +(byte) line::sy#17 +(byte) line::sy#18 +(byte) line::sy#19 (byte) line::sy#2 +(byte) line::sy#20 +(byte) line::sy#21 +(byte) line::sy#22 +(byte) line::sy#23 (byte) line::sy#3 (byte) line::sy#4 (byte) line::sy#5 @@ -2569,7 +1606,18 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::x#2 (byte) line::x#20 (byte) line::x#21 +(byte) line::x#22 +(byte) line::x#23 +(byte) line::x#24 +(byte) line::x#25 +(byte) line::x#26 +(byte) line::x#27 +(byte) line::x#28 +(byte) line::x#29 (byte) line::x#3 +(byte) line::x#30 +(byte) line::x#31 +(byte) line::x#32 (byte) line::x#4 (byte) line::x#5 (byte) line::x#6 @@ -2592,7 +1640,16 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::x2#13 (byte) line::x2#14 (byte) line::x2#15 +(byte) line::x2#16 +(byte) line::x2#17 +(byte) line::x2#18 +(byte) line::x2#19 (byte) line::x2#2 +(byte) line::x2#20 +(byte) line::x2#21 +(byte) line::x2#22 +(byte) line::x2#23 +(byte) line::x2#24 (byte) line::x2#3 (byte) line::x2#4 (byte) line::x2#5 @@ -2617,7 +1674,18 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::y#20 (byte) line::y#21 (byte) line::y#22 +(byte) line::y#23 +(byte) line::y#24 +(byte) line::y#25 +(byte) line::y#26 +(byte) line::y#27 +(byte) line::y#28 +(byte) line::y#29 (byte) line::y#3 +(byte) line::y#30 +(byte) line::y#31 +(byte) line::y#32 +(byte) line::y#33 (byte) line::y#4 (byte) line::y#5 (byte) line::y#6 @@ -2642,6 +1710,7 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::y2#14 (byte) line::y2#15 (byte) line::y2#16 +(byte) line::y2#17 (byte) line::y2#2 (byte) line::y2#3 (byte) line::y2#4 @@ -2654,11 +1723,9 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte~) main::$15 (byte~) main::$16 (byte~) main::$17 -(dword~) main::$18 -(dword~) main::$19 -(word~) main::$22 -(bool~) main::$23 -(bool~) main::$24 +(word~) main::$20 +(bool~) main::$21 +(bool~) main::$22 (number~) main::$5 (number~) main::$6 (bool~) main::$7 @@ -2680,11 +1747,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) main::@22 (label) main::@23 (label) main::@24 -(label) main::@25 -(label) main::@26 -(label) main::@27 -(label) main::@28 -(label) main::@29 (label) main::@3 (label) main::@4 (label) main::@5 @@ -2710,12 +1772,7 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte*) main::canvas#16 (byte*) main::canvas#17 (byte*) main::canvas#18 -(byte*) main::canvas#19 (byte*) main::canvas#2 -(byte*) main::canvas#20 -(byte*) main::canvas#21 -(byte*) main::canvas#22 -(byte*) main::canvas#23 (byte*) main::canvas#3 (byte*) main::canvas#4 (byte*) main::canvas#5 @@ -2731,12 +1788,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte*) main::cols#4 (byte*) main::cols#5 (byte*) main::cols#6 -(dword) main::cyclecount -(dword) main::cyclecount#0 -(dword) main::cyclecount#1 -(dword) main::cyclecount#2 -(dword) main::cyclecount#3 -(dword) main::cyclecount#4 (byte) main::p0_idx (byte) main::p0_idx#0 (byte) main::p0_idx#1 @@ -2749,12 +1800,7 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::p0_idx#16 (byte) main::p0_idx#17 (byte) main::p0_idx#18 -(byte) main::p0_idx#19 (byte) main::p0_idx#2 -(byte) main::p0_idx#20 -(byte) main::p0_idx#21 -(byte) main::p0_idx#22 -(byte) main::p0_idx#23 (byte) main::p0_idx#3 (byte) main::p0_idx#4 (byte) main::p0_idx#5 @@ -2774,12 +1820,7 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::p1_idx#16 (byte) main::p1_idx#17 (byte) main::p1_idx#18 -(byte) main::p1_idx#19 (byte) main::p1_idx#2 -(byte) main::p1_idx#20 -(byte) main::p1_idx#21 -(byte) main::p1_idx#22 -(byte) main::p1_idx#23 (byte) main::p1_idx#3 (byte) main::p1_idx#4 (byte) main::p1_idx#5 @@ -2799,12 +1840,7 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::p2_idx#16 (byte) main::p2_idx#17 (byte) main::p2_idx#18 -(byte) main::p2_idx#19 (byte) main::p2_idx#2 -(byte) main::p2_idx#20 -(byte) main::p2_idx#21 -(byte) main::p2_idx#22 -(byte) main::p2_idx#23 (byte) main::p2_idx#3 (byte) main::p2_idx#4 (byte) main::p2_idx#5 @@ -2812,8 +1848,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::p2_idx#7 (byte) main::p2_idx#8 (byte) main::p2_idx#9 -(const byte*) main::s[(byte) 8] = (byte*) "frame: " -(const byte*) main::s1[(byte) $a] = (byte*) " cycles: " (byte*) main::screen (byte*) main::screen#0 (byte*) main::screen#1 @@ -2897,49 +1931,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::y2 (byte) main::y2#0 (byte) main::y2#1 -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -(byte*~) memcpy::$0 -(bool~) memcpy::$1 -(byte*~) memcpy::$2 -(label) memcpy::@1 -(label) memcpy::@2 -(label) memcpy::@3 -(label) memcpy::@return -(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 -(byte*) memcpy::dst -(byte*) memcpy::dst#0 -(byte*) memcpy::dst#1 -(byte*) memcpy::dst#2 -(byte*) memcpy::dst#3 -(word) memcpy::num -(word) memcpy::num#0 -(word) memcpy::num#1 -(word) 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 -(byte*) memcpy::src -(byte*) memcpy::src#0 -(byte*) memcpy::src#1 -(byte*) memcpy::src#2 -(byte*) memcpy::src#3 -(byte*) memcpy::src_end -(byte*) memcpy::src_end#0 -(byte*) memcpy::src_end#1 -(byte*) memcpy::src_end#2 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) (bool~) memset::$0 (bool~) memset::$1 @@ -2960,8 +1951,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) memset::c#5 (byte) memset::c#6 (byte) memset::c#7 -(byte) memset::c#8 -(byte) memset::c#9 (byte*) memset::dst (byte*) memset::dst#0 (byte*) memset::dst#1 @@ -2978,8 +1967,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (word) memset::num#3 (word) memset::num#4 (word) memset::num#5 -(word) memset::num#6 -(word) memset::num#7 (void*) memset::return (void*) memset::return#0 (void*) memset::return#1 @@ -2988,12 +1975,9 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (void*) memset::return#4 (void*) memset::return#5 (void*) memset::return#6 -(void*) memset::return#7 -(void*) memset::return#8 (void*) memset::str (void*) memset::str#0 (void*) memset::str#1 -(void*) memset::str#10 (void*) memset::str#2 (void*) memset::str#3 (void*) memset::str#4 @@ -3001,10 +1985,8 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (void*) memset::str#6 (void*) memset::str#7 (void*) memset::str#8 -(void*) memset::str#9 (const byte*) plot_bit[(number) 8] = { (byte) $80, (byte) $40, (byte) $20, (byte) $10, (byte) 8, (byte) 4, (byte) 2, (byte) 1 } (const byte**) plot_column[(number) $10] = { (const nomodify byte*) LINE_BUFFER+(number) 0, (const nomodify byte*) LINE_BUFFER+(number) 1*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 2*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 3*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 4*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 5*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 6*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 7*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 8*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) 9*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) $a*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) $b*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) $c*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) $d*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) $e*(number) $80, (const nomodify byte*) LINE_BUFFER+(number) $f*(number) $80 } -(struct printf_buffer_number) printf_buffer loadstore = {} (const byte*) printf_buffer_number::digits[(number) $b] = { fill( $b, 0) } (byte) printf_buffer_number::sign (byte) printf_format_number::justify_left @@ -3015,345 +1997,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -(bool~) printf_number_buffer::$0 -(bool~) printf_number_buffer::$1 -(bool~) printf_number_buffer::$10 -(bool~) printf_number_buffer::$12 -(bool~) printf_number_buffer::$14 -(bool~) printf_number_buffer::$15 -(bool~) printf_number_buffer::$16 -(bool~) printf_number_buffer::$17 -(word~) printf_number_buffer::$19 -(bool~) printf_number_buffer::$2 -(bool~) printf_number_buffer::$20 -(signed byte~) printf_number_buffer::$21 -(bool~) printf_number_buffer::$22 -(bool~) printf_number_buffer::$23 -(signed byte~) printf_number_buffer::$25 -(bool~) printf_number_buffer::$26 -(bool~) printf_number_buffer::$27 -(bool~) printf_number_buffer::$28 -(bool~) printf_number_buffer::$29 -(bool~) printf_number_buffer::$3 -(bool~) printf_number_buffer::$30 -(bool~) printf_number_buffer::$31 -(bool~) printf_number_buffer::$32 -(bool~) printf_number_buffer::$4 -(bool~) printf_number_buffer::$5 -(bool~) printf_number_buffer::$7 -(bool~) printf_number_buffer::$9 -(label) printf_number_buffer::@1 -(label) printf_number_buffer::@10 -(label) printf_number_buffer::@11 -(label) printf_number_buffer::@12 -(label) printf_number_buffer::@13 -(label) printf_number_buffer::@14 -(label) printf_number_buffer::@15 -(label) printf_number_buffer::@16 -(label) printf_number_buffer::@17 -(label) printf_number_buffer::@18 -(label) printf_number_buffer::@19 -(label) printf_number_buffer::@2 -(label) printf_number_buffer::@20 -(label) printf_number_buffer::@21 -(label) printf_number_buffer::@3 -(label) printf_number_buffer::@4 -(label) printf_number_buffer::@5 -(label) printf_number_buffer::@6 -(label) printf_number_buffer::@7 -(label) printf_number_buffer::@8 -(label) printf_number_buffer::@9 -(label) printf_number_buffer::@return -(struct printf_buffer_number) printf_number_buffer::buffer -(byte*) printf_number_buffer::buffer_digits -(byte*) printf_number_buffer::buffer_digits#0 -(byte*) printf_number_buffer::buffer_digits#1 -(byte*) printf_number_buffer::buffer_digits#10 -(byte*) printf_number_buffer::buffer_digits#11 -(byte*) printf_number_buffer::buffer_digits#12 -(byte*) printf_number_buffer::buffer_digits#13 -(byte*) printf_number_buffer::buffer_digits#14 -(byte*) printf_number_buffer::buffer_digits#15 -(byte*) printf_number_buffer::buffer_digits#16 -(byte*) printf_number_buffer::buffer_digits#17 -(byte*) printf_number_buffer::buffer_digits#18 -(byte*) printf_number_buffer::buffer_digits#19 -(byte*) printf_number_buffer::buffer_digits#2 -(byte*) printf_number_buffer::buffer_digits#20 -(byte*) printf_number_buffer::buffer_digits#3 -(byte*) printf_number_buffer::buffer_digits#4 -(byte*) printf_number_buffer::buffer_digits#5 -(byte*) printf_number_buffer::buffer_digits#6 -(byte*) printf_number_buffer::buffer_digits#7 -(byte*) printf_number_buffer::buffer_digits#8 -(byte*) printf_number_buffer::buffer_digits#9 -(byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 -(byte) printf_number_buffer::buffer_sign#1 -(byte) printf_number_buffer::buffer_sign#10 -(byte) printf_number_buffer::buffer_sign#11 -(byte) printf_number_buffer::buffer_sign#12 -(byte) printf_number_buffer::buffer_sign#2 -(byte) printf_number_buffer::buffer_sign#3 -(byte) printf_number_buffer::buffer_sign#4 -(byte) printf_number_buffer::buffer_sign#5 -(byte) printf_number_buffer::buffer_sign#6 -(byte) printf_number_buffer::buffer_sign#7 -(byte) printf_number_buffer::buffer_sign#8 -(byte) printf_number_buffer::buffer_sign#9 -(struct printf_format_number) printf_number_buffer::format -(byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#0 -(byte) printf_number_buffer::format_justify_left#1 -(byte) printf_number_buffer::format_justify_left#10 -(byte) printf_number_buffer::format_justify_left#11 -(byte) printf_number_buffer::format_justify_left#12 -(byte) printf_number_buffer::format_justify_left#13 -(byte) printf_number_buffer::format_justify_left#14 -(byte) printf_number_buffer::format_justify_left#15 -(byte) printf_number_buffer::format_justify_left#16 -(byte) printf_number_buffer::format_justify_left#17 -(byte) printf_number_buffer::format_justify_left#18 -(byte) printf_number_buffer::format_justify_left#19 -(byte) printf_number_buffer::format_justify_left#2 -(byte) printf_number_buffer::format_justify_left#20 -(byte) printf_number_buffer::format_justify_left#21 -(byte) printf_number_buffer::format_justify_left#3 -(byte) printf_number_buffer::format_justify_left#4 -(byte) printf_number_buffer::format_justify_left#5 -(byte) printf_number_buffer::format_justify_left#6 -(byte) printf_number_buffer::format_justify_left#7 -(byte) printf_number_buffer::format_justify_left#8 -(byte) printf_number_buffer::format_justify_left#9 -(byte) printf_number_buffer::format_min_length -(byte) printf_number_buffer::format_min_length#0 -(byte) printf_number_buffer::format_min_length#1 -(byte) printf_number_buffer::format_min_length#2 -(byte) printf_number_buffer::format_min_length#3 -(byte) printf_number_buffer::format_min_length#4 -(byte) printf_number_buffer::format_min_length#5 -(byte) printf_number_buffer::format_min_length#6 -(byte) printf_number_buffer::format_radix -(byte) printf_number_buffer::format_radix#0 -(byte) printf_number_buffer::format_radix#1 -(byte) printf_number_buffer::format_sign_always -(byte) printf_number_buffer::format_sign_always#0 -(byte) printf_number_buffer::format_sign_always#1 -(byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#0 -(byte) printf_number_buffer::format_upper_case#1 -(byte) printf_number_buffer::format_upper_case#10 -(byte) printf_number_buffer::format_upper_case#11 -(byte) printf_number_buffer::format_upper_case#12 -(byte) printf_number_buffer::format_upper_case#13 -(byte) printf_number_buffer::format_upper_case#14 -(byte) printf_number_buffer::format_upper_case#15 -(byte) printf_number_buffer::format_upper_case#16 -(byte) printf_number_buffer::format_upper_case#17 -(byte) printf_number_buffer::format_upper_case#2 -(byte) printf_number_buffer::format_upper_case#3 -(byte) printf_number_buffer::format_upper_case#4 -(byte) printf_number_buffer::format_upper_case#5 -(byte) printf_number_buffer::format_upper_case#6 -(byte) printf_number_buffer::format_upper_case#7 -(byte) printf_number_buffer::format_upper_case#8 -(byte) printf_number_buffer::format_upper_case#9 -(byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#0 -(byte) printf_number_buffer::format_zero_padding#1 -(byte) printf_number_buffer::format_zero_padding#10 -(byte) printf_number_buffer::format_zero_padding#11 -(byte) printf_number_buffer::format_zero_padding#12 -(byte) printf_number_buffer::format_zero_padding#13 -(byte) printf_number_buffer::format_zero_padding#14 -(byte) printf_number_buffer::format_zero_padding#15 -(byte) printf_number_buffer::format_zero_padding#16 -(byte) printf_number_buffer::format_zero_padding#17 -(byte) printf_number_buffer::format_zero_padding#18 -(byte) printf_number_buffer::format_zero_padding#19 -(byte) printf_number_buffer::format_zero_padding#2 -(byte) printf_number_buffer::format_zero_padding#20 -(byte) printf_number_buffer::format_zero_padding#21 -(byte) printf_number_buffer::format_zero_padding#3 -(byte) printf_number_buffer::format_zero_padding#4 -(byte) printf_number_buffer::format_zero_padding#5 -(byte) printf_number_buffer::format_zero_padding#6 -(byte) printf_number_buffer::format_zero_padding#7 -(byte) printf_number_buffer::format_zero_padding#8 -(byte) printf_number_buffer::format_zero_padding#9 -(signed byte) printf_number_buffer::len -(signed byte) printf_number_buffer::len#0 -(signed byte) printf_number_buffer::len#1 -(signed byte) printf_number_buffer::len#2 -(signed byte) printf_number_buffer::len#3 -(signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#0 -(signed byte) printf_number_buffer::padding#1 -(signed byte) printf_number_buffer::padding#10 -(signed byte) printf_number_buffer::padding#11 -(signed byte) printf_number_buffer::padding#12 -(signed byte) printf_number_buffer::padding#13 -(signed byte) printf_number_buffer::padding#14 -(signed byte) printf_number_buffer::padding#15 -(signed byte) printf_number_buffer::padding#16 -(signed byte) printf_number_buffer::padding#17 -(signed byte) printf_number_buffer::padding#2 -(signed byte) printf_number_buffer::padding#3 -(signed byte) printf_number_buffer::padding#4 -(signed byte) printf_number_buffer::padding#5 -(signed byte) printf_number_buffer::padding#6 -(signed byte) printf_number_buffer::padding#7 -(signed byte) printf_number_buffer::padding#8 -(signed byte) printf_number_buffer::padding#9 -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -(bool~) printf_padding::$0 -(label) printf_padding::@1 -(label) printf_padding::@2 -(label) printf_padding::@3 -(label) printf_padding::@return -(byte) printf_padding::i -(byte) printf_padding::i#0 -(byte) printf_padding::i#1 -(byte) printf_padding::i#2 -(byte) printf_padding::i#3 -(byte) printf_padding::i#4 -(byte) printf_padding::length -(byte) printf_padding::length#0 -(byte) printf_padding::length#1 -(byte) printf_padding::length#2 -(byte) printf_padding::length#3 -(byte) printf_padding::length#4 -(byte) printf_padding::length#5 -(byte) printf_padding::length#6 -(byte) printf_padding::pad -(byte) printf_padding::pad#0 -(byte) printf_padding::pad#1 -(byte) printf_padding::pad#2 -(byte) printf_padding::pad#3 -(byte) printf_padding::pad#4 -(byte) printf_padding::pad#5 -(byte) printf_padding::pad#6 -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -(number~) printf_uchar::$0 -(byte~) printf_uchar::$1 -(number~) printf_uchar::$2 -(bool~) printf_uchar::$5 -(label) printf_uchar::@1 -(label) printf_uchar::@2 -(label) printf_uchar::@3 -(label) printf_uchar::@4 -(label) printf_uchar::@5 -(label) printf_uchar::@return -(struct printf_format_number) printf_uchar::format -(byte) printf_uchar::format_justify_left -(byte) printf_uchar::format_justify_left#0 -(byte) printf_uchar::format_justify_left#1 -(byte) printf_uchar::format_justify_left#2 -(byte) printf_uchar::format_justify_left#3 -(byte) printf_uchar::format_justify_left#4 -(byte) printf_uchar::format_justify_left#5 -(byte) printf_uchar::format_min_length -(byte) printf_uchar::format_min_length#0 -(byte) printf_uchar::format_min_length#1 -(byte) printf_uchar::format_min_length#2 -(byte) printf_uchar::format_min_length#3 -(byte) printf_uchar::format_min_length#4 -(byte) printf_uchar::format_min_length#5 -(byte) printf_uchar::format_radix -(byte) printf_uchar::format_radix#0 -(byte) printf_uchar::format_radix#1 -(byte) printf_uchar::format_radix#2 -(byte) printf_uchar::format_radix#3 -(byte) printf_uchar::format_radix#4 -(byte) printf_uchar::format_radix#5 -(byte) printf_uchar::format_sign_always -(byte) printf_uchar::format_sign_always#0 -(byte) printf_uchar::format_sign_always#1 -(byte) printf_uchar::format_sign_always#2 -(byte) printf_uchar::format_sign_always#3 -(byte) printf_uchar::format_sign_always#4 -(byte) printf_uchar::format_sign_always#5 -(byte) printf_uchar::format_upper_case -(byte) printf_uchar::format_upper_case#0 -(byte) printf_uchar::format_upper_case#1 -(byte) printf_uchar::format_upper_case#2 -(byte) printf_uchar::format_upper_case#3 -(byte) printf_uchar::format_upper_case#4 -(byte) printf_uchar::format_upper_case#5 -(byte) printf_uchar::format_zero_padding -(byte) printf_uchar::format_zero_padding#0 -(byte) printf_uchar::format_zero_padding#1 -(byte) printf_uchar::format_zero_padding#2 -(byte) printf_uchar::format_zero_padding#3 -(byte) printf_uchar::format_zero_padding#4 -(byte) printf_uchar::format_zero_padding#5 -(byte) printf_uchar::uvalue -(byte) printf_uchar::uvalue#0 -(byte) printf_uchar::uvalue#1 -(byte) printf_uchar::uvalue#2 -(byte) printf_uchar::uvalue#3 -(byte) printf_uchar::uvalue#4 -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -(number~) printf_ulong::$0 -(byte~) printf_ulong::$1 -(number~) printf_ulong::$2 -(bool~) printf_ulong::$5 -(label) printf_ulong::@1 -(label) printf_ulong::@2 -(label) printf_ulong::@3 -(label) printf_ulong::@4 -(label) printf_ulong::@5 -(label) printf_ulong::@return -(struct printf_format_number) printf_ulong::format -(byte) printf_ulong::format_justify_left -(byte) printf_ulong::format_justify_left#0 -(byte) printf_ulong::format_justify_left#1 -(byte) printf_ulong::format_justify_left#2 -(byte) printf_ulong::format_justify_left#3 -(byte) printf_ulong::format_justify_left#4 -(byte) printf_ulong::format_justify_left#5 -(byte) printf_ulong::format_min_length -(byte) printf_ulong::format_min_length#0 -(byte) printf_ulong::format_min_length#1 -(byte) printf_ulong::format_min_length#2 -(byte) printf_ulong::format_min_length#3 -(byte) printf_ulong::format_min_length#4 -(byte) printf_ulong::format_min_length#5 -(byte) printf_ulong::format_radix -(byte) printf_ulong::format_radix#0 -(byte) printf_ulong::format_radix#1 -(byte) printf_ulong::format_radix#2 -(byte) printf_ulong::format_radix#3 -(byte) printf_ulong::format_radix#4 -(byte) printf_ulong::format_radix#5 -(byte) printf_ulong::format_sign_always -(byte) printf_ulong::format_sign_always#0 -(byte) printf_ulong::format_sign_always#1 -(byte) printf_ulong::format_sign_always#2 -(byte) printf_ulong::format_sign_always#3 -(byte) printf_ulong::format_sign_always#4 -(byte) printf_ulong::format_sign_always#5 -(byte) printf_ulong::format_upper_case -(byte) printf_ulong::format_upper_case#0 -(byte) printf_ulong::format_upper_case#1 -(byte) printf_ulong::format_upper_case#2 -(byte) printf_ulong::format_upper_case#3 -(byte) printf_ulong::format_upper_case#4 -(byte) printf_ulong::format_upper_case#5 -(byte) printf_ulong::format_zero_padding -(byte) printf_ulong::format_zero_padding#0 -(byte) printf_ulong::format_zero_padding#1 -(byte) printf_ulong::format_zero_padding#2 -(byte) printf_ulong::format_zero_padding#3 -(byte) printf_ulong::format_zero_padding#4 -(byte) printf_ulong::format_zero_padding#5 -(dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 -(dword) printf_ulong::uvalue#1 -(dword) printf_ulong::uvalue#2 -(dword) printf_ulong::uvalue#3 -(dword) printf_ulong::uvalue#4 (void()) setup_irq() (label) setup_irq::@return (byte()) sgn_u8((byte) sgn_u8::u) @@ -3375,56 +2018,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) sgn_u8::u#0 (byte) sgn_u8::u#1 (byte) sgn_u8::u#2 -(word()) strlen((byte*) strlen::str) -(bool~) strlen::$0 -(label) strlen::@1 -(label) strlen::@2 -(label) strlen::@3 -(label) strlen::@return -(word) strlen::len -(word) strlen::len#0 -(word) strlen::len#1 -(word) strlen::len#2 -(word) strlen::len#3 -(word) strlen::len#4 -(word) strlen::return -(word) strlen::return#0 -(word) strlen::return#1 -(word) strlen::return#2 -(word) strlen::return#3 -(word) strlen::return#4 -(byte*) strlen::str -(byte*) strlen::str#0 -(byte*) strlen::str#1 -(byte*) strlen::str#2 -(byte*) strlen::str#3 -(byte*) strlen::str#4 -(byte*()) strupr((byte*) strupr::str) -(byte~) strupr::$0 -(bool~) strupr::$1 -(label) strupr::@1 -(label) strupr::@2 -(label) strupr::@3 -(label) strupr::@4 -(label) strupr::@return -(byte*) strupr::return -(byte*) strupr::return#0 -(byte*) strupr::return#1 -(byte*) strupr::return#2 -(byte*) strupr::return#3 -(byte*) strupr::src -(byte*) strupr::src#0 -(byte*) strupr::src#1 -(byte*) strupr::src#2 -(byte*) strupr::src#3 -(byte*) strupr::src#4 -(byte*) strupr::str -(byte*) strupr::str#0 -(byte*) strupr::str#1 -(byte*) strupr::str#2 -(byte*) strupr::str#3 -(byte*) strupr::str#4 -(byte*) strupr::str#5 (byte()) textcolor((byte) textcolor::color) (label) textcolor::@return (byte) textcolor::color @@ -3458,329 +2051,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte*) toD0181_screen (byte*) toD0181_screen#0 (byte*) toD0181_screen#1 -(byte()) toupper((byte) toupper::ch) -(bool~) toupper::$0 -(bool~) toupper::$1 -(bool~) toupper::$2 -(byte~) toupper::$3 -(label) toupper::@1 -(label) toupper::@2 -(label) toupper::@return -(byte) toupper::ch -(byte) toupper::ch#0 -(byte) toupper::ch#1 -(byte) toupper::ch#2 -(byte) toupper::ch#3 -(byte) toupper::return -(byte) toupper::return#0 -(byte) toupper::return#1 -(byte) toupper::return#2 -(byte) toupper::return#3 -(byte) toupper::return#4 -(byte) toupper::return#5 -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -(bool~) uctoa::$0 -(bool~) uctoa::$1 -(byte~) uctoa::$10 -(bool~) uctoa::$2 -(bool~) uctoa::$3 -(number~) uctoa::$4 -(bool~) uctoa::$5 -(bool~) uctoa::$6 -(bool~) uctoa::$7 -(bool~) uctoa::$8 -(byte~) uctoa::$9 -(label) uctoa::@1 -(label) uctoa::@10 -(label) uctoa::@11 -(label) uctoa::@12 -(label) uctoa::@13 -(label) uctoa::@14 -(label) uctoa::@15 -(label) uctoa::@2 -(label) uctoa::@3 -(label) uctoa::@4 -(label) uctoa::@5 -(label) uctoa::@6 -(label) uctoa::@7 -(label) uctoa::@8 -(label) uctoa::@9 -(label) uctoa::@return -(byte*) uctoa::buffer -(byte*) uctoa::buffer#0 -(byte*) uctoa::buffer#1 -(byte*) uctoa::buffer#10 -(byte*) uctoa::buffer#11 -(byte*) uctoa::buffer#12 -(byte*) uctoa::buffer#13 -(byte*) uctoa::buffer#14 -(byte*) uctoa::buffer#15 -(byte*) uctoa::buffer#16 -(byte*) uctoa::buffer#17 -(byte*) uctoa::buffer#18 -(byte*) uctoa::buffer#19 -(byte*) uctoa::buffer#2 -(byte*) uctoa::buffer#20 -(byte*) uctoa::buffer#21 -(byte*) uctoa::buffer#3 -(byte*) uctoa::buffer#4 -(byte*) uctoa::buffer#5 -(byte*) uctoa::buffer#6 -(byte*) uctoa::buffer#7 -(byte*) uctoa::buffer#8 -(byte*) uctoa::buffer#9 -(byte) uctoa::digit -(byte) uctoa::digit#0 -(byte) uctoa::digit#1 -(byte) uctoa::digit#2 -(byte) uctoa::digit#3 -(byte) uctoa::digit#4 -(byte) uctoa::digit#5 -(byte) uctoa::digit#6 -(byte) uctoa::digit_value -(byte) uctoa::digit_value#0 -(byte) uctoa::digit_value#1 -(byte*) uctoa::digit_values -(byte*) uctoa::digit_values#0 -(byte*) uctoa::digit_values#1 -(byte*) uctoa::digit_values#10 -(byte*) uctoa::digit_values#2 -(byte*) uctoa::digit_values#3 -(byte*) uctoa::digit_values#4 -(byte*) uctoa::digit_values#5 -(byte*) uctoa::digit_values#6 -(byte*) uctoa::digit_values#7 -(byte*) uctoa::digit_values#8 -(byte*) uctoa::digit_values#9 -(byte) uctoa::max_digits -(byte) uctoa::max_digits#0 -(byte) uctoa::max_digits#1 -(byte) uctoa::max_digits#10 -(byte) uctoa::max_digits#2 -(byte) uctoa::max_digits#3 -(byte) uctoa::max_digits#4 -(byte) uctoa::max_digits#5 -(byte) uctoa::max_digits#6 -(byte) uctoa::max_digits#7 -(byte) uctoa::max_digits#8 -(byte) uctoa::max_digits#9 -(byte) uctoa::radix -(byte) uctoa::radix#0 -(byte) uctoa::radix#1 -(byte) uctoa::radix#2 -(byte) uctoa::radix#3 -(byte) uctoa::radix#4 -(byte) uctoa::started -(byte) uctoa::started#0 -(byte) uctoa::started#1 -(byte) uctoa::started#2 -(byte) uctoa::started#3 -(byte) uctoa::started#4 -(byte) uctoa::value -(byte) uctoa::value#0 -(byte) uctoa::value#1 -(byte) uctoa::value#10 -(byte) uctoa::value#11 -(byte) uctoa::value#12 -(byte) uctoa::value#13 -(byte) uctoa::value#14 -(byte) uctoa::value#15 -(byte) uctoa::value#2 -(byte) uctoa::value#3 -(byte) uctoa::value#4 -(byte) uctoa::value#5 -(byte) uctoa::value#6 -(byte) uctoa::value#7 -(byte) uctoa::value#8 -(byte) uctoa::value#9 -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -(bool~) uctoa_append::$0 -(label) uctoa_append::@1 -(label) uctoa_append::@2 -(label) uctoa_append::@3 -(label) uctoa_append::@return -(byte*) uctoa_append::buffer -(byte*) uctoa_append::buffer#0 -(byte*) uctoa_append::buffer#1 -(byte*) uctoa_append::buffer#2 -(byte*) uctoa_append::buffer#3 -(byte*) uctoa_append::buffer#4 -(byte) uctoa_append::digit -(byte) uctoa_append::digit#0 -(byte) uctoa_append::digit#1 -(byte) uctoa_append::digit#2 -(byte) uctoa_append::digit#3 -(byte) uctoa_append::digit#4 -(byte) uctoa_append::return -(byte) uctoa_append::return#0 -(byte) uctoa_append::return#1 -(byte) uctoa_append::return#2 -(byte) uctoa_append::return#3 -(byte) uctoa_append::return#4 -(byte) uctoa_append::sub -(byte) uctoa_append::sub#0 -(byte) uctoa_append::sub#1 -(byte) uctoa_append::sub#2 -(byte) uctoa_append::sub#3 -(byte) uctoa_append::value -(byte) uctoa_append::value#0 -(byte) uctoa_append::value#1 -(byte) uctoa_append::value#2 -(byte) uctoa_append::value#3 -(byte) uctoa_append::value#4 -(byte) uctoa_append::value#5 -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -(bool~) ultoa::$0 -(bool~) ultoa::$1 -(byte~) ultoa::$10 -(byte~) ultoa::$11 -(bool~) ultoa::$2 -(bool~) ultoa::$3 -(number~) ultoa::$4 -(bool~) ultoa::$5 -(bool~) ultoa::$6 -(bool~) ultoa::$7 -(bool~) ultoa::$8 -(dword~) ultoa::$9 -(label) ultoa::@1 -(label) ultoa::@10 -(label) ultoa::@11 -(label) ultoa::@12 -(label) ultoa::@13 -(label) ultoa::@14 -(label) ultoa::@15 -(label) ultoa::@2 -(label) ultoa::@3 -(label) ultoa::@4 -(label) ultoa::@5 -(label) ultoa::@6 -(label) ultoa::@7 -(label) ultoa::@8 -(label) ultoa::@9 -(label) ultoa::@return -(byte*) ultoa::buffer -(byte*) ultoa::buffer#0 -(byte*) ultoa::buffer#1 -(byte*) ultoa::buffer#10 -(byte*) ultoa::buffer#11 -(byte*) ultoa::buffer#12 -(byte*) ultoa::buffer#13 -(byte*) ultoa::buffer#14 -(byte*) ultoa::buffer#15 -(byte*) ultoa::buffer#16 -(byte*) ultoa::buffer#17 -(byte*) ultoa::buffer#18 -(byte*) ultoa::buffer#19 -(byte*) ultoa::buffer#2 -(byte*) ultoa::buffer#20 -(byte*) ultoa::buffer#21 -(byte*) ultoa::buffer#3 -(byte*) ultoa::buffer#4 -(byte*) ultoa::buffer#5 -(byte*) ultoa::buffer#6 -(byte*) ultoa::buffer#7 -(byte*) ultoa::buffer#8 -(byte*) ultoa::buffer#9 -(byte) ultoa::digit -(byte) ultoa::digit#0 -(byte) ultoa::digit#1 -(byte) ultoa::digit#2 -(byte) ultoa::digit#3 -(byte) ultoa::digit#4 -(byte) ultoa::digit#5 -(byte) ultoa::digit#6 -(dword) ultoa::digit_value -(dword) ultoa::digit_value#0 -(dword) ultoa::digit_value#1 -(dword*) ultoa::digit_values -(dword*) ultoa::digit_values#0 -(dword*) ultoa::digit_values#1 -(dword*) ultoa::digit_values#10 -(dword*) ultoa::digit_values#2 -(dword*) ultoa::digit_values#3 -(dword*) ultoa::digit_values#4 -(dword*) ultoa::digit_values#5 -(dword*) ultoa::digit_values#6 -(dword*) ultoa::digit_values#7 -(dword*) ultoa::digit_values#8 -(dword*) ultoa::digit_values#9 -(byte) ultoa::max_digits -(byte) ultoa::max_digits#0 -(byte) ultoa::max_digits#1 -(byte) ultoa::max_digits#10 -(byte) ultoa::max_digits#2 -(byte) ultoa::max_digits#3 -(byte) ultoa::max_digits#4 -(byte) ultoa::max_digits#5 -(byte) ultoa::max_digits#6 -(byte) ultoa::max_digits#7 -(byte) ultoa::max_digits#8 -(byte) ultoa::max_digits#9 -(byte) ultoa::radix -(byte) ultoa::radix#0 -(byte) ultoa::radix#1 -(byte) ultoa::radix#2 -(byte) ultoa::radix#3 -(byte) ultoa::radix#4 -(byte) ultoa::started -(byte) ultoa::started#0 -(byte) ultoa::started#1 -(byte) ultoa::started#2 -(byte) ultoa::started#3 -(byte) ultoa::started#4 -(dword) ultoa::value -(dword) ultoa::value#0 -(dword) ultoa::value#1 -(dword) ultoa::value#10 -(dword) ultoa::value#11 -(dword) ultoa::value#12 -(dword) ultoa::value#13 -(dword) ultoa::value#14 -(dword) ultoa::value#15 -(dword) ultoa::value#2 -(dword) ultoa::value#3 -(dword) ultoa::value#4 -(dword) ultoa::value#5 -(dword) ultoa::value#6 -(dword) ultoa::value#7 -(dword) ultoa::value#8 -(dword) ultoa::value#9 -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -(bool~) ultoa_append::$0 -(label) ultoa_append::@1 -(label) ultoa_append::@2 -(label) ultoa_append::@3 -(label) ultoa_append::@return -(byte*) ultoa_append::buffer -(byte*) ultoa_append::buffer#0 -(byte*) ultoa_append::buffer#1 -(byte*) ultoa_append::buffer#2 -(byte*) ultoa_append::buffer#3 -(byte*) ultoa_append::buffer#4 -(byte) ultoa_append::digit -(byte) ultoa_append::digit#0 -(byte) ultoa_append::digit#1 -(byte) ultoa_append::digit#2 -(byte) ultoa_append::digit#3 -(byte) ultoa_append::digit#4 -(dword) ultoa_append::return -(dword) ultoa_append::return#0 -(dword) ultoa_append::return#1 -(dword) ultoa_append::return#2 -(dword) ultoa_append::return#3 -(dword) ultoa_append::return#4 -(dword) ultoa_append::sub -(dword) ultoa_append::sub#0 -(dword) ultoa_append::sub#1 -(dword) ultoa_append::sub#2 -(dword) ultoa_append::sub#3 -(dword) ultoa_append::value -(dword) ultoa_append::value#0 -(dword) ultoa_append::value#1 -(dword) ultoa_append::value#2 -(dword) ultoa_append::value#3 -(dword) ultoa_append::value#4 -(dword) ultoa_append::value#5 Adding number conversion cast (unumber) 0 in Adding number conversion cast (unumber) 1*$80 in @@ -3799,103 +2069,11 @@ Adding number conversion cast (unumber) $d*$80 in Adding number conversion cast (unumber) $e*$80 in Adding number conversion cast (unumber) $f*$80 in Adding number conversion cast (unumber) $40 in -Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#6 > (number) 0 -Adding number conversion cast (unumber) 0 in (bool~) strupr::$1 ← (number) 0 != *((byte*) strupr::src#2) -Adding number conversion cast (unumber) 0 in (bool~) strlen::$0 ← (number) 0 != *((byte*) strlen::str#2) +Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#4 > (number) 0 Adding number conversion cast (unumber) $ffffffff in (number~) clock::$0 ← (number) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) Adding number conversion cast (unumber) clock::$0 in (number~) clock::$0 ← (unumber)(number) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) Adding number conversion cast (unumber) $ffffffff in *((const nomodify dword*) CIA2_TIMER_AB) ← (number) $ffffffff -Adding number conversion cast (unumber) 3 in (byte) uctoa::max_digits#1 ← (number) 3 -Adding number conversion cast (unumber) 2 in (byte) uctoa::max_digits#2 ← (number) 2 -Adding number conversion cast (unumber) 3 in (byte) uctoa::max_digits#3 ← (number) 3 -Adding number conversion cast (unumber) 8 in (byte) uctoa::max_digits#4 ← (number) 8 -Adding number conversion cast (unumber) 0 in *((byte*) uctoa::buffer#2) ← (number) 0 -Adding number conversion cast (unumber) 1 in (number~) uctoa::$4 ← (byte) uctoa::max_digits#5 - (number) 1 -Adding number conversion cast (unumber) uctoa::$4 in (number~) uctoa::$4 ← (byte) uctoa::max_digits#5 - (unumber)(number) 1 -Adding number conversion cast (unumber) 0 in *((byte*) uctoa::buffer#3) ← (number) 0 -Adding number conversion cast (unumber) 1 in (byte) uctoa::started#1 ← (number) 1 -Adding number conversion cast (unumber) $a in (byte) ultoa::max_digits#1 ← (number) $a -Adding number conversion cast (unumber) 8 in (byte) ultoa::max_digits#2 ← (number) 8 -Adding number conversion cast (unumber) $b in (byte) ultoa::max_digits#3 ← (number) $b -Adding number conversion cast (unumber) $20 in (byte) ultoa::max_digits#4 ← (number) $20 -Adding number conversion cast (unumber) 0 in *((byte*) ultoa::buffer#2) ← (number) 0 -Adding number conversion cast (unumber) 1 in (number~) ultoa::$4 ← (byte) ultoa::max_digits#5 - (number) 1 -Adding number conversion cast (unumber) ultoa::$4 in (number~) ultoa::$4 ← (byte) ultoa::max_digits#5 - (unumber)(number) 1 -Adding number conversion cast (unumber) 0 in *((byte*) ultoa::buffer#3) ← (number) 0 -Adding number conversion cast (unumber) 1 in (byte) ultoa::started#1 ← (number) 1 -Adding number conversion cast (unumber) $19 in (bool~) gotoxy::$0 ← (byte) gotoxy::y#3 > (number) $19 -Adding number conversion cast (unumber) $28 in (bool~) gotoxy::$2 ← (byte) gotoxy::x#3 >= (number) $28 -Adding number conversion cast (unumber) 0 in (byte) gotoxy::y#0 ← (number) 0 -Adding number conversion cast (unumber) $28 in (number~) gotoxy::$4 ← (word~) gotoxy::$8 * (number) $28 -Adding number conversion cast (unumber) gotoxy::$4 in (number~) gotoxy::$4 ← (word~) gotoxy::$8 * (unumber)(number) $28 -Adding number conversion cast (unumber) gotoxy::$5 in (number~) gotoxy::$5 ← (unumber~) gotoxy::$4 + (byte) gotoxy::x#4 -Adding number conversion cast (unumber) 0 in (byte) gotoxy::x#0 ← (number) 0 -Adding number conversion cast (unumber) $28 in (bool~) cputc::$1 ← (byte) conio_cursor_x == (number) $28 -Adding number conversion cast (unumber) 0 in (byte) conio_cursor_x ← (number) 0 -Adding number conversion cast (unumber) $28 in (number~) cputln::$0 ← (number) $28 - (byte) conio_cursor_x -Adding number conversion cast (unumber) cputln::$0 in (number~) cputln::$0 ← (unumber)(number) $28 - (byte) conio_cursor_x -Adding number conversion cast (unumber) 0 in (byte) conio_cursor_x ← (number) 0 -Adding number conversion cast (unumber) $19 in (bool~) cscroll::$0 ← (byte) conio_cursor_y == (number) $19 -Adding number conversion cast (unumber) 0 in (bool~) cscroll::$9 ← (number) 0 != (byte) conio_scroll_enable -Adding number conversion cast (unumber) $28 in (void*) memcpy::source#0 ← (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(number) $28 -Adding number conversion cast (unumber) $19*$28-$28 in (word) memcpy::num#0 ← (number) $19*(number) $28-(number) $28 -Adding number conversion cast (unumber) $28 in (void*) memcpy::source#1 ← (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(number) $28 -Adding number conversion cast (unumber) $19*$28-$28 in (word) memcpy::num#1 ← (number) $19*(number) $28-(number) $28 -Adding number conversion cast (unumber) $28 in (void*) memset::str#0 ← (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(number) $19*(number) $28-(number) $28 -Adding number conversion cast (unumber) $19*$28 in (void*) memset::str#0 ← (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(number) $19*(number) $28-(unumber)(number) $28 -Adding number conversion cast (unumber) $28 in (word) memset::num#0 ← (number) $28 -Adding number conversion cast (unumber) $28 in (void*) memset::str#1 ← (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(number) $19*(number) $28-(number) $28 -Adding number conversion cast (unumber) $19*$28 in (void*) memset::str#1 ← (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(number) $19*(number) $28-(unumber)(number) $28 -Adding number conversion cast (unumber) $28 in (word) memset::num#1 ← (number) $28 -Adding number conversion cast (unumber) $28 in (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (number) $28 -Adding number conversion cast (unumber) $28 in (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (number) $28 -Adding number conversion cast (unumber) 0 in (byte) gotoxy::x#1 ← (number) 0 -Adding number conversion cast (unumber) 0 in (byte) gotoxy::y#1 ← (number) 0 -Adding number conversion cast (unumber) 0 in (bool~) cputs::$1 ← (number) 0 != (byte) cputs::c#1 Adding number conversion cast (unumber) 0 in *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (number) 0 -Adding number conversion cast (unumber) 0 in (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#1 -Adding number conversion cast (unumber) printf_ulong::$2 in (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) - (number~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) -Adding number conversion cast (unumber) printf_ulong::$0 in (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) - (unumber~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) -Adding number conversion cast (unumber) 0 in (bool~) printf_uchar::$5 ← (number) 0 != (byte) printf_uchar::format_sign_always#1 -Adding number conversion cast (unumber) printf_uchar::$2 in (byte) printf_uchar::format_upper_case#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_upper_case#3 printf_uchar::@2/(byte) printf_uchar::format_upper_case#4 ) - (byte) printf_uchar::format_zero_padding#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_zero_padding#3 printf_uchar::@2/(byte) printf_uchar::format_zero_padding#4 ) - (byte) printf_uchar::format_sign_always#3 ← phi( printf_uchar::@1/(byte) printf_uchar::format_sign_always#4 printf_uchar::@2/(byte) printf_uchar::format_sign_always#5 ) - (byte) printf_uchar::format_justify_left#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_justify_left#3 printf_uchar::@2/(byte) printf_uchar::format_justify_left#4 ) - (byte) printf_uchar::format_min_length#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_min_length#3 printf_uchar::@2/(byte) printf_uchar::format_min_length#4 ) - (byte) printf_uchar::format_radix#1 ← phi( printf_uchar::@1/(byte) printf_uchar::format_radix#3 printf_uchar::@2/(byte) printf_uchar::format_radix#4 ) - (byte) printf_uchar::uvalue#1 ← phi( printf_uchar::@1/(byte) printf_uchar::uvalue#2 printf_uchar::@2/(byte) printf_uchar::uvalue#3 ) - (number~) printf_uchar::$2 ← phi( printf_uchar::@1/(byte~) printf_uchar::$1 printf_uchar::@2/(number~) printf_uchar::$0 ) -Adding number conversion cast (unumber) printf_uchar::$0 in (byte) printf_uchar::format_upper_case#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_upper_case#3 printf_uchar::@2/(byte) printf_uchar::format_upper_case#4 ) - (byte) printf_uchar::format_zero_padding#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_zero_padding#3 printf_uchar::@2/(byte) printf_uchar::format_zero_padding#4 ) - (byte) printf_uchar::format_sign_always#3 ← phi( printf_uchar::@1/(byte) printf_uchar::format_sign_always#4 printf_uchar::@2/(byte) printf_uchar::format_sign_always#5 ) - (byte) printf_uchar::format_justify_left#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_justify_left#3 printf_uchar::@2/(byte) printf_uchar::format_justify_left#4 ) - (byte) printf_uchar::format_min_length#2 ← phi( printf_uchar::@1/(byte) printf_uchar::format_min_length#3 printf_uchar::@2/(byte) printf_uchar::format_min_length#4 ) - (byte) printf_uchar::format_radix#1 ← phi( printf_uchar::@1/(byte) printf_uchar::format_radix#3 printf_uchar::@2/(byte) printf_uchar::format_radix#4 ) - (byte) printf_uchar::uvalue#1 ← phi( printf_uchar::@1/(byte) printf_uchar::uvalue#2 printf_uchar::@2/(byte) printf_uchar::uvalue#3 ) - (unumber~) printf_uchar::$2 ← phi( printf_uchar::@1/(byte~) printf_uchar::$1 printf_uchar::@2/(number~) printf_uchar::$0 ) -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$26 ← (number) 0 != (byte) printf_number_buffer::format_min_length#2 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$27 ← (number) 0 != (byte) printf_number_buffer::format_justify_left#2 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$28 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#2 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$29 ← (number) 0 != (byte) printf_number_buffer::buffer_sign#2 -Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$22 ← (signed byte) printf_number_buffer::padding#1 < (number) 0 -Adding number conversion cast (snumber) 0 in (signed byte) printf_number_buffer::padding#2 ← (number) 0 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$30 ← (number) 0 != (byte) printf_number_buffer::buffer_sign#3 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$31 ← (number) 0 != (byte) printf_number_buffer::format_upper_case#2 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$32 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#4 Adding number conversion cast (unumber) $3fff in (number~) toD0181_$0 ← (word~) toD0181_$7 & (number) $3fff Adding number conversion cast (unumber) toD0181_$0 in (number~) toD0181_$0 ← (word~) toD0181_$7 & (unumber)(number) $3fff Adding number conversion cast (unumber) 4 in (number~) toD0181_$1 ← (unumber~) toD0181_$0 * (number) 4 @@ -3906,10 +2084,10 @@ Adding number conversion cast (unumber) toD0181_$4 in (number~) toD0181_$4 ← ( Adding number conversion cast (unumber) $f in (number~) toD0181_$5 ← (unumber~) toD0181_$4 & (number) $f Adding number conversion cast (unumber) toD0181_$5 in (number~) toD0181_$5 ← (unumber~) toD0181_$4 & (unumber)(number) $f Adding number conversion cast (unumber) toD0181_$6 in (number~) toD0181_$6 ← (unumber~) toD0181_$2 | (unumber~) toD0181_$5 +Adding number conversion cast (unumber) $28*$19 in (word) memset::num#0 ← (number) $28*(number) $19 +Adding number conversion cast (unumber) 0 in (byte) memset::c#1 ← (number) 0 +Adding number conversion cast (unumber) $28*$19 in (word) memset::num#1 ← (number) $28*(number) $19 Adding number conversion cast (unumber) $28*$19 in (word) memset::num#2 ← (number) $28*(number) $19 -Adding number conversion cast (unumber) 0 in (byte) memset::c#3 ← (number) 0 -Adding number conversion cast (unumber) $28*$19 in (word) memset::num#3 ← (number) $28*(number) $19 -Adding number conversion cast (unumber) $28*$19 in (word) memset::num#4 ← (number) $28*(number) $19 Adding number conversion cast (unumber) $c in (byte*) main::screen#0 ← (const nomodify byte*) SCREEN+(number) $c Adding number conversion cast (unumber) $c in (byte*) main::cols#0 ← (const nomodify byte*) COLS+(number) $c Adding number conversion cast (unumber) $10 in (bool~) main::$7 ← (byte) main::y#2 < (number) $10 @@ -3921,9 +2099,9 @@ Adding number conversion cast (unumber) $10 in (bool~) main::$8 ← (byte) main: Adding number conversion cast (unumber) $10 in (byte) main::c#1 ← (byte) main::c#2 + (number) $10 Adding number conversion cast (unumber) $28 in (byte*) main::cols#1 ← (byte*) main::cols#3 + (number) $28 Adding number conversion cast (unumber) $28 in (byte*) main::screen#1 ← (byte*) main::screen#3 + (number) $28 -Adding number conversion cast (unumber) 0 in (byte) memset::c#5 ← (number) 0 -Adding number conversion cast (unumber) $800 in (word) memset::num#5 ← (number) $800 -Adding number conversion cast (unumber) 0 in (bool~) main::$24 ← (number) 0 != (volatile byte) canvas_show_flag +Adding number conversion cast (unumber) 0 in (byte) memset::c#3 ← (number) 0 +Adding number conversion cast (unumber) $800 in (word) memset::num#3 ← (number) $800 +Adding number conversion cast (unumber) 0 in (bool~) main::$22 ← (number) 0 != (volatile byte) canvas_show_flag Adding number conversion cast (unumber) $3fff in (number~) main::toD0181_$0 ← (word~) main::toD0181_$7 & (number) $3fff Adding number conversion cast (unumber) main::toD0181_$0 in (number~) main::toD0181_$0 ← (word~) main::toD0181_$7 & (unumber)(number) $3fff Adding number conversion cast (unumber) 4 in (number~) main::toD0181_$1 ← (unumber~) main::toD0181_$0 * (number) 4 @@ -3945,8 +2123,6 @@ Adding number conversion cast (unumber) $f in (number~) main::toD0182_$5 ← (un Adding number conversion cast (unumber) main::toD0182_$5 in (number~) main::toD0182_$5 ← (unumber~) main::toD0182_$4 & (unumber)(number) $f Adding number conversion cast (unumber) main::toD0182_$6 in (number~) main::toD0182_$6 ← (unumber~) main::toD0182_$2 | (unumber~) main::toD0182_$5 Adding number conversion cast (unumber) 1 in (volatile byte) canvas_show_flag ← (number) 1 -Adding number conversion cast (unumber) 0 in (byte) gotoxy::x#2 ← (number) 0 -Adding number conversion cast (unumber) $18 in (byte) gotoxy::y#2 ← (number) $18 Adding number conversion cast (unumber) $7f in *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (number) $7f Adding number conversion cast (unumber) BORDER_YPOS_BOTTOM-8 in *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(number) 8 Adding number conversion cast (unumber) 8 in *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← ((unumber)) (const nomodify byte) BORDER_YPOS_BOTTOM-(number) 8 @@ -3961,19 +2137,30 @@ Adding number conversion cast (unumber) $f in (number~) irq_bottom_1::toD0181_$5 Adding number conversion cast (unumber) irq_bottom_1::toD0181_$5 in (number~) irq_bottom_1::toD0181_$5 ← (unumber~) irq_bottom_1::toD0181_$4 & (unumber)(number) $f Adding number conversion cast (unumber) irq_bottom_1::toD0181_$6 in (number~) irq_bottom_1::toD0181_$6 ← (unumber~) irq_bottom_1::toD0181_$2 | (unumber~) irq_bottom_1::toD0181_$5 Adding number conversion cast (unumber) 0 in (bool~) irq_bottom_2::$3 ← (number) 0 != (byte~) irq_bottom_2::$0 +Adding number conversion cast (unumber) $3fff in (number~) irq_bottom_2::toD0181_$0 ← (word~) irq_bottom_2::toD0181_$7 & (number) $3fff +Adding number conversion cast (unumber) irq_bottom_2::toD0181_$0 in (number~) irq_bottom_2::toD0181_$0 ← (word~) irq_bottom_2::toD0181_$7 & (unumber)(number) $3fff +Adding number conversion cast (unumber) 4 in (number~) irq_bottom_2::toD0181_$1 ← (unumber~) irq_bottom_2::toD0181_$0 * (number) 4 +Adding number conversion cast (unumber) irq_bottom_2::toD0181_$1 in (number~) irq_bottom_2::toD0181_$1 ← (unumber~) irq_bottom_2::toD0181_$0 * (unumber)(number) 4 +Adding number conversion cast (unumber) irq_bottom_2::toD0181_$2 in (number~) irq_bottom_2::toD0181_$2 ← > (unumber~) irq_bottom_2::toD0181_$1 +Adding number conversion cast (unumber) 4 in (number~) irq_bottom_2::toD0181_$4 ← (byte~) irq_bottom_2::toD0181_$3 / (number) 4 +Adding number conversion cast (unumber) irq_bottom_2::toD0181_$4 in (number~) irq_bottom_2::toD0181_$4 ← (byte~) irq_bottom_2::toD0181_$3 / (unumber)(number) 4 +Adding number conversion cast (unumber) $f in (number~) irq_bottom_2::toD0181_$5 ← (unumber~) irq_bottom_2::toD0181_$4 & (number) $f +Adding number conversion cast (unumber) irq_bottom_2::toD0181_$5 in (number~) irq_bottom_2::toD0181_$5 ← (unumber~) irq_bottom_2::toD0181_$4 & (unumber)(number) $f +Adding number conversion cast (unumber) irq_bottom_2::toD0181_$6 in (number~) irq_bottom_2::toD0181_$6 ← (unumber~) irq_bottom_2::toD0181_$2 | (unumber~) irq_bottom_2::toD0181_$5 Adding number conversion cast (unumber) 0 in (volatile byte) canvas_show_flag ← (number) 0 Adding number conversion cast (unumber) BORDER_YPOS_BOTTOM-8 in *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(number) 8 Adding number conversion cast (unumber) 8 in *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← ((unumber)) (const nomodify byte) BORDER_YPOS_BOTTOM-(number) 8 Adding number conversion cast (unumber) $ff in (bool~) line::$8 ← (byte) line::sx#1 == (number) $ff -Adding number conversion cast (unumber) 2 in (number~) line::$17 ← (byte) line::dx#2 / (number) 2 -Adding number conversion cast (unumber) line::$17 in (number~) line::$17 ← (byte) line::dx#2 / (unumber)(number) 2 -Adding number conversion cast (unumber) 2 in (number~) line::$11 ← (byte) line::dy#2 / (number) 2 -Adding number conversion cast (unumber) line::$11 in (number~) line::$11 ← (byte) line::dy#2 / (unumber)(number) 2 +Adding number conversion cast (unumber) 2 in (number~) line::$26 ← (byte) line::dx#2 / (number) 2 +Adding number conversion cast (unumber) line::$26 in (number~) line::$26 ← (byte) line::dx#2 / (unumber)(number) 2 Adding number conversion cast (unumber) 8 in (number~) line::plot1_$0 ← (byte) line::plot1_x#1 / (number) 8 Adding number conversion cast (unumber) line::plot1_$0 in (number~) line::plot1_$0 ← (byte) line::plot1_x#1 / (unumber)(number) 8 Adding number conversion cast (unumber) line::plot1_$2 in (number~) line::plot1_$2 ← (unumber~) line::plot1_$0 * (const byte) SIZEOF_POINTER Adding number conversion cast (unumber) 7 in (number~) line::plot1_$1 ← (byte) line::plot1_x#1 & (number) 7 Adding number conversion cast (unumber) line::plot1_$1 in (number~) line::plot1_$1 ← (byte) line::plot1_x#1 & (unumber)(number) 7 +Adding number conversion cast (unumber) 0 in (bool~) line::$20 ← (byte) line::dx#3 == (number) 0 +Adding number conversion cast (unumber) 2 in (number~) line::$12 ← (byte) line::dy#2 / (number) 2 +Adding number conversion cast (unumber) line::$12 in (number~) line::$12 ← (byte) line::dy#2 / (unumber)(number) 2 Adding number conversion cast (unumber) 8 in (number~) line::plot2_$0 ← (byte) line::plot2_x#1 / (number) 8 Adding number conversion cast (unumber) line::plot2_$0 in (number~) line::plot2_$0 ← (byte) line::plot2_x#1 / (unumber)(number) 8 Adding number conversion cast (unumber) line::plot2_$2 in (number~) line::plot2_$2 ← (unumber~) line::plot2_$0 * (const byte) SIZEOF_POINTER @@ -3984,16 +2171,29 @@ Adding number conversion cast (unumber) line::plot3_$0 in (number~) line::plot3_ Adding number conversion cast (unumber) line::plot3_$2 in (number~) line::plot3_$2 ← (unumber~) line::plot3_$0 * (const byte) SIZEOF_POINTER Adding number conversion cast (unumber) 7 in (number~) line::plot3_$1 ← (byte) line::plot3_x#1 & (number) 7 Adding number conversion cast (unumber) line::plot3_$1 in (number~) line::plot3_$1 ← (byte) line::plot3_x#1 & (unumber)(number) 7 +Adding number conversion cast (unumber) 2 in (number~) line::$22 ← (byte) line::dy#5 / (number) 2 +Adding number conversion cast (unumber) line::$22 in (number~) line::$22 ← (byte) line::dy#5 / (unumber)(number) 2 Adding number conversion cast (unumber) 8 in (number~) line::plot4_$0 ← (byte) line::plot4_x#1 / (number) 8 Adding number conversion cast (unumber) line::plot4_$0 in (number~) line::plot4_$0 ← (byte) line::plot4_x#1 / (unumber)(number) 8 Adding number conversion cast (unumber) line::plot4_$2 in (number~) line::plot4_$2 ← (unumber~) line::plot4_$0 * (const byte) SIZEOF_POINTER Adding number conversion cast (unumber) 7 in (number~) line::plot4_$1 ← (byte) line::plot4_x#1 & (number) 7 Adding number conversion cast (unumber) line::plot4_$1 in (number~) line::plot4_$1 ← (byte) line::plot4_x#1 & (unumber)(number) 7 +Adding number conversion cast (unumber) 8 in (number~) line::plot5_$0 ← (byte) line::plot5_x#1 / (number) 8 +Adding number conversion cast (unumber) line::plot5_$0 in (number~) line::plot5_$0 ← (byte) line::plot5_x#1 / (unumber)(number) 8 +Adding number conversion cast (unumber) line::plot5_$2 in (number~) line::plot5_$2 ← (unumber~) line::plot5_$0 * (const byte) SIZEOF_POINTER +Adding number conversion cast (unumber) 7 in (number~) line::plot5_$1 ← (byte) line::plot5_x#1 & (number) 7 +Adding number conversion cast (unumber) line::plot5_$1 in (number~) line::plot5_$1 ← (byte) line::plot5_x#1 & (unumber)(number) 7 +Adding number conversion cast (unumber) 8 in (number~) line::plot6_$0 ← (byte) line::plot6_x#1 / (number) 8 +Adding number conversion cast (unumber) line::plot6_$0 in (number~) line::plot6_$0 ← (byte) line::plot6_x#1 / (unumber)(number) 8 +Adding number conversion cast (unumber) line::plot6_$2 in (number~) line::plot6_$2 ← (unumber~) line::plot6_$0 * (const byte) SIZEOF_POINTER +Adding number conversion cast (unumber) 7 in (number~) line::plot6_$1 ← (byte) line::plot6_x#1 & (number) 7 +Adding number conversion cast (unumber) line::plot6_$1 in (number~) line::plot6_$1 ← (byte) line::plot6_x#1 & (unumber)(number) 7 Adding number conversion cast (unumber) $10 in (bool~) eorfill::$0 ← (byte) eorfill::x#2 < (number) $10 Adding number conversion cast (unumber) 0 in (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2 + (number) 0) +Adding number conversion cast (unumber) 0 in *((byte*) eorfill::fill_column#2 + (number) 0) ← (byte) eorfill::eor#0 Adding number conversion cast (unumber) $10*8 in (bool~) eorfill::$1 ← (byte) eorfill::y#2 < (number) $10*(number) 8 Adding number conversion cast (unumber) $10*8 in (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#4 + (number) $10*(number) 8 -Adding number conversion cast (unumber) $10*8 in (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#3 + (number) $10*(number) 8 +Adding number conversion cast (unumber) $10*8 in (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#4 + (number) $10*(number) 8 Adding number conversion cast (unumber) $80 in (number~) abs_u8::$0 ← (byte) abs_u8::u#2 & (number) $80 Adding number conversion cast (unumber) abs_u8::$0 in (number~) abs_u8::$0 ← (byte) abs_u8::u#2 & (unumber)(number) $80 Adding number conversion cast (unumber) 0 in (bool~) abs_u8::$2 ← (number) 0 != (unumber~) abs_u8::$0 @@ -4003,51 +2203,17 @@ Adding number conversion cast (unumber) 0 in (bool~) sgn_u8::$1 ← (number) 0 ! Adding number conversion cast (unumber) -1 in (byte) sgn_u8::return#2 ← (number) -1 Adding number conversion cast (unumber) 1 in (byte) sgn_u8::return#3 ← (number) 1 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) 0 in (unumber~) printf_ulong::$0 ← (number) 0 -Adding number conversion cast (unumber) 0 in (unumber~) printf_uchar::$0 ← (number) 0 -Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast (byte*) memcpy::src#0 ← (byte*)(void*) memcpy::source#2 -Inlining cast (byte*) memcpy::dst#0 ← (byte*)(void*) memcpy::destination#2 -Inlining cast (byte*) memset::dst#0 ← (byte*)(void*) memset::str#7 +Inlining cast (byte*) memset::dst#0 ← (byte*)(void*) memset::str#5 Inlining cast *((const nomodify dword*) CIA2_TIMER_AB) ← (unumber)(number) $ffffffff -Inlining cast (byte) uctoa::max_digits#1 ← (unumber)(number) 3 -Inlining cast (byte) uctoa::max_digits#2 ← (unumber)(number) 2 -Inlining cast (byte) uctoa::max_digits#3 ← (unumber)(number) 3 -Inlining cast (byte) uctoa::max_digits#4 ← (unumber)(number) 8 -Inlining cast *((byte*) uctoa::buffer#2) ← (unumber)(number) 0 -Inlining cast *((byte*) uctoa::buffer#3) ← (unumber)(number) 0 -Inlining cast (byte) uctoa::started#1 ← (unumber)(number) 1 -Inlining cast (byte) ultoa::max_digits#1 ← (unumber)(number) $a -Inlining cast (byte) ultoa::max_digits#2 ← (unumber)(number) 8 -Inlining cast (byte) ultoa::max_digits#3 ← (unumber)(number) $b -Inlining cast (byte) ultoa::max_digits#4 ← (unumber)(number) $20 -Inlining cast *((byte*) ultoa::buffer#2) ← (unumber)(number) 0 -Inlining cast *((byte*) ultoa::buffer#3) ← (unumber)(number) 0 -Inlining cast (byte) ultoa::started#1 ← (unumber)(number) 1 -Inlining cast (byte) gotoxy::y#0 ← (unumber)(number) 0 -Inlining cast (byte) gotoxy::x#0 ← (unumber)(number) 0 -Inlining cast (byte) conio_cursor_x ← (unumber)(number) 0 -Inlining cast (byte) conio_cursor_x ← (unumber)(number) 0 -Inlining cast (word) memcpy::num#0 ← (unumber)(number) $19*(number) $28-(number) $28 -Inlining cast (word) memcpy::num#1 ← (unumber)(number) $19*(number) $28-(number) $28 -Inlining cast (word) memset::num#0 ← (unumber)(number) $28 -Inlining cast (word) memset::num#1 ← (unumber)(number) $28 -Inlining cast (byte) gotoxy::x#1 ← (unumber)(number) 0 -Inlining cast (byte) gotoxy::y#1 ← (unumber)(number) 0 Inlining cast *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (unumber)(number) 0 -Inlining cast (unumber~) printf_ulong::$0 ← (unumber)(number) 0 -Inlining cast (unumber~) printf_uchar::$0 ← (unumber)(number) 0 -Inlining cast (signed byte) printf_number_buffer::padding#2 ← (snumber)(number) 0 +Inlining cast (word) memset::num#0 ← (unumber)(number) $28*(number) $19 +Inlining cast (byte) memset::c#1 ← (unumber)(number) 0 +Inlining cast (word) memset::num#1 ← (unumber)(number) $28*(number) $19 Inlining cast (word) memset::num#2 ← (unumber)(number) $28*(number) $19 Inlining cast (byte) memset::c#3 ← (unumber)(number) 0 -Inlining cast (word) memset::num#3 ← (unumber)(number) $28*(number) $19 -Inlining cast (word) memset::num#4 ← (unumber)(number) $28*(number) $19 -Inlining cast (byte) memset::c#5 ← (unumber)(number) 0 -Inlining cast (word) memset::num#5 ← (unumber)(number) $800 -Inlining cast (byte*) main::canvas#1 ← (byte*)(word~) main::$22 +Inlining cast (word) memset::num#3 ← (unumber)(number) $800 +Inlining cast (byte*) main::canvas#1 ← (byte*)(word~) main::$20 Inlining cast (volatile byte) canvas_show_flag ← (unumber)(number) 1 -Inlining cast (byte) gotoxy::x#2 ← (unumber)(number) 0 -Inlining cast (byte) gotoxy::y#2 ← (unumber)(number) $18 Inlining cast *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (unumber)(const nomodify byte) BORDER_YPOS_BOTTOM-(unumber)(number) 8 Inlining cast (volatile byte) canvas_show_flag ← (unumber)(number) 0 Inlining cast *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (unumber)(const nomodify byte) BORDER_YPOS_BOTTOM-(unumber)(number) 8 @@ -4060,8 +2226,6 @@ Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 Simplifying constant pointer cast (dword*) 56580 Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 Simplifying constant pointer cast (byte*) 56320 Simplifying constant pointer cast (byte*) 56321 Simplifying constant pointer cast (byte*) 8192 @@ -4073,62 +2237,8 @@ Simplifying constant pointer cast (byte*) 4096 Simplifying constant integer cast 0 Simplifying constant integer cast $40 Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 Simplifying constant integer cast $ffffffff Simplifying constant integer cast $ffffffff -Simplifying constant integer cast 3 -Simplifying constant integer cast 2 -Simplifying constant integer cast 3 -Simplifying constant integer cast 8 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast (byte) uctoa::value#3 -Simplifying constant integer cast 0 -Simplifying constant integer cast 1 -Simplifying constant integer cast $a -Simplifying constant integer cast 8 -Simplifying constant integer cast $b -Simplifying constant integer cast $20 -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 0 -Simplifying constant integer cast $28 -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 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $3fff Simplifying constant integer cast 4 @@ -4156,8 +2266,6 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast $18 Simplifying constant integer cast $7f Simplifying constant integer cast (const nomodify byte) BORDER_YPOS_BOTTOM-(unumber)(number) 8 Simplifying constant integer cast 8 @@ -4166,22 +2274,33 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 0 +Simplifying constant integer cast $3fff +Simplifying constant integer cast 4 +Simplifying constant integer cast 4 +Simplifying constant integer cast $f Simplifying constant integer cast 0 Simplifying constant integer cast (const nomodify byte) BORDER_YPOS_BOTTOM-(unumber)(number) 8 Simplifying constant integer cast 8 Simplifying constant integer cast $ff Simplifying constant integer cast 2 +Simplifying constant integer cast 8 +Simplifying constant integer cast 7 +Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 8 Simplifying constant integer cast 7 Simplifying constant integer cast 8 Simplifying constant integer cast 7 +Simplifying constant integer cast 2 +Simplifying constant integer cast 8 +Simplifying constant integer cast 7 Simplifying constant integer cast 8 Simplifying constant integer cast 7 Simplifying constant integer cast 8 Simplifying constant integer cast 7 Simplifying constant integer cast $10 Simplifying constant integer cast 0 +Simplifying constant integer cast 0 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Simplifying constant integer cast $80 @@ -4192,61 +2311,8 @@ Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $40 Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 Finalized unsigned number type (dword) $ffffffff Finalized unsigned number type (dword) $ffffffff -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (word) $3fff Finalized unsigned number type (byte) 4 @@ -4274,8 +2340,6 @@ Finalized unsigned number type (byte) 4 Finalized unsigned number type (byte) 4 Finalized unsigned number type (byte) $f Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $18 Finalized unsigned number type (byte) $7f Finalized unsigned number type (byte) 8 Finalized unsigned number type (word) $3fff @@ -4283,21 +2347,32 @@ Finalized unsigned number type (byte) 4 Finalized unsigned number type (byte) 4 Finalized unsigned number type (byte) $f Finalized unsigned number type (byte) 0 +Finalized unsigned number type (word) $3fff +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) $f Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $ff Finalized unsigned number type (byte) 2 +Finalized unsigned number type (byte) 8 +Finalized unsigned number type (byte) 7 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 2 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 7 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 7 +Finalized unsigned number type (byte) 2 +Finalized unsigned number type (byte) 8 +Finalized unsigned number type (byte) 7 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 7 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 7 Finalized unsigned number type (byte) $10 Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $80 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $80 @@ -4306,15 +2381,6 @@ Finalized unsigned number type (byte) -1 Finalized unsigned number type (byte) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to dword in (unumber~) clock::$0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) -Inferred type updated to byte in (unumber~) uctoa::$4 ← (byte) uctoa::max_digits#5 - (byte) 1 -Inferred type updated to byte in (unumber~) ultoa::$4 ← (byte) ultoa::max_digits#5 - (byte) 1 -Inferred type updated to word in (unumber~) gotoxy::$4 ← (word~) gotoxy::$8 * (byte) $28 -Inferred type updated to word in (unumber~) gotoxy::$5 ← (word~) gotoxy::$4 + (byte) gotoxy::x#4 -Inferred type updated to byte in (unumber~) cputln::$0 ← (byte) $28 - (byte) conio_cursor_x -Inferred type updated to byte in (unumber~) printf_ulong::$0 ← (byte) 0 -Inferred type updated to byte for (unumber~) printf_ulong::$2 -Inferred type updated to byte in (unumber~) printf_uchar::$0 ← (byte) 0 -Inferred type updated to byte for (unumber~) printf_uchar::$2 Inferred type updated to word in (unumber~) toD0181_$0 ← (word~) toD0181_$7 & (word) $3fff Inferred type updated to word in (unumber~) toD0181_$1 ← (word~) toD0181_$0 * (byte) 4 Inferred type updated to byte in (unumber~) toD0181_$2 ← > (word~) toD0181_$1 @@ -4341,176 +2407,55 @@ Inferred type updated to byte in (unumber~) irq_bottom_1::toD0181_$2 ← > (word Inferred type updated to byte in (unumber~) irq_bottom_1::toD0181_$4 ← (byte~) irq_bottom_1::toD0181_$3 / (byte) 4 Inferred type updated to byte in (unumber~) irq_bottom_1::toD0181_$5 ← (byte~) irq_bottom_1::toD0181_$4 & (byte) $f Inferred type updated to byte in (unumber~) irq_bottom_1::toD0181_$6 ← (byte~) irq_bottom_1::toD0181_$2 | (byte~) irq_bottom_1::toD0181_$5 -Inferred type updated to byte in (unumber~) line::$17 ← (byte) line::dx#2 / (byte) 2 -Inferred type updated to byte in (unumber~) line::$11 ← (byte) line::dy#2 / (byte) 2 +Inferred type updated to word in (unumber~) irq_bottom_2::toD0181_$0 ← (word~) irq_bottom_2::toD0181_$7 & (word) $3fff +Inferred type updated to word in (unumber~) irq_bottom_2::toD0181_$1 ← (word~) irq_bottom_2::toD0181_$0 * (byte) 4 +Inferred type updated to byte in (unumber~) irq_bottom_2::toD0181_$2 ← > (word~) irq_bottom_2::toD0181_$1 +Inferred type updated to byte in (unumber~) irq_bottom_2::toD0181_$4 ← (byte~) irq_bottom_2::toD0181_$3 / (byte) 4 +Inferred type updated to byte in (unumber~) irq_bottom_2::toD0181_$5 ← (byte~) irq_bottom_2::toD0181_$4 & (byte) $f +Inferred type updated to byte in (unumber~) irq_bottom_2::toD0181_$6 ← (byte~) irq_bottom_2::toD0181_$2 | (byte~) irq_bottom_2::toD0181_$5 +Inferred type updated to byte in (unumber~) line::$26 ← (byte) line::dx#2 / (byte) 2 Inferred type updated to byte in (unumber~) line::plot1_$0 ← (byte) line::plot1_x#1 / (byte) 8 Inferred type updated to byte in (unumber~) line::plot1_$2 ← (byte~) line::plot1_$0 * (const byte) SIZEOF_POINTER Inferred type updated to byte in (unumber~) line::plot1_$1 ← (byte) line::plot1_x#1 & (byte) 7 +Inferred type updated to byte in (unumber~) line::$12 ← (byte) line::dy#2 / (byte) 2 Inferred type updated to byte in (unumber~) line::plot2_$0 ← (byte) line::plot2_x#1 / (byte) 8 Inferred type updated to byte in (unumber~) line::plot2_$2 ← (byte~) line::plot2_$0 * (const byte) SIZEOF_POINTER Inferred type updated to byte in (unumber~) line::plot2_$1 ← (byte) line::plot2_x#1 & (byte) 7 Inferred type updated to byte in (unumber~) line::plot3_$0 ← (byte) line::plot3_x#1 / (byte) 8 Inferred type updated to byte in (unumber~) line::plot3_$2 ← (byte~) line::plot3_$0 * (const byte) SIZEOF_POINTER Inferred type updated to byte in (unumber~) line::plot3_$1 ← (byte) line::plot3_x#1 & (byte) 7 +Inferred type updated to byte in (unumber~) line::$22 ← (byte) line::dy#5 / (byte) 2 Inferred type updated to byte in (unumber~) line::plot4_$0 ← (byte) line::plot4_x#1 / (byte) 8 Inferred type updated to byte in (unumber~) line::plot4_$2 ← (byte~) line::plot4_$0 * (const byte) SIZEOF_POINTER Inferred type updated to byte in (unumber~) line::plot4_$1 ← (byte) line::plot4_x#1 & (byte) 7 +Inferred type updated to byte in (unumber~) line::plot5_$0 ← (byte) line::plot5_x#1 / (byte) 8 +Inferred type updated to byte in (unumber~) line::plot5_$2 ← (byte~) line::plot5_$0 * (const byte) SIZEOF_POINTER +Inferred type updated to byte in (unumber~) line::plot5_$1 ← (byte) line::plot5_x#1 & (byte) 7 +Inferred type updated to byte in (unumber~) line::plot6_$0 ← (byte) line::plot6_x#1 / (byte) 8 +Inferred type updated to byte in (unumber~) line::plot6_$2 ← (byte~) line::plot6_$0 * (const byte) SIZEOF_POINTER +Inferred type updated to byte in (unumber~) line::plot6_$1 ← (byte) line::plot6_x#1 & (byte) 7 Inferred type updated to byte in (unumber~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 Inferred type updated to byte in (unumber~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -Inversing boolean not [33] (bool~) memset::$1 ← (word) memset::num#6 <= (byte) 0 from [32] (bool~) memset::$0 ← (word) memset::num#6 > (byte) 0 -Inversing boolean not [262] (bool~) gotoxy::$1 ← (byte) gotoxy::y#3 <= (byte) $19 from [261] (bool~) gotoxy::$0 ← (byte) gotoxy::y#3 > (byte) $19 -Inversing boolean not [266] (bool~) gotoxy::$3 ← (byte) gotoxy::x#3 < (byte) $28 from [265] (bool~) gotoxy::$2 ← (byte) gotoxy::x#3 >= (byte) $28 -Inversing boolean not [295] (bool~) cputc::$2 ← (byte) conio_cursor_x != (byte) $28 from [294] (bool~) cputc::$1 ← (byte) conio_cursor_x == (byte) $28 -Inversing boolean not [312] (bool~) cscroll::$1 ← (byte) conio_cursor_y != (byte) $19 from [311] (bool~) cscroll::$0 ← (byte) conio_cursor_y == (byte) $19 -Inversing boolean not [432] (bool~) printf_number_buffer::$0 ← (byte) 0 == (byte) printf_number_buffer::format_min_length#2 from [431] (bool~) printf_number_buffer::$26 ← (byte) 0 != (byte) printf_number_buffer::format_min_length#2 -Inversing boolean not [436] (bool~) printf_number_buffer::$1 ← (byte) 0 == (byte) printf_number_buffer::format_justify_left#2 from [435] (bool~) printf_number_buffer::$27 ← (byte) 0 != (byte) printf_number_buffer::format_justify_left#2 -Inversing boolean not [438] (bool~) printf_number_buffer::$2 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#2 from [437] (bool~) printf_number_buffer::$28 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#2 -Inversing boolean not [451] (bool~) printf_number_buffer::$20 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#2 from [450] (bool~) printf_number_buffer::$29 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#2 -Inversing boolean not [458] (bool~) printf_number_buffer::$23 ← (signed byte) printf_number_buffer::padding#1 >= (signed byte) 0 from [457] (bool~) printf_number_buffer::$22 ← (signed byte) printf_number_buffer::padding#1 < (signed byte) 0 -Inversing boolean not [466] (bool~) printf_number_buffer::$7 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#3 from [465] (bool~) printf_number_buffer::$30 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#3 -Inversing boolean not [483] (bool~) printf_number_buffer::$12 ← (byte) 0 == (byte) printf_number_buffer::format_upper_case#2 from [482] (bool~) printf_number_buffer::$31 ← (byte) 0 != (byte) printf_number_buffer::format_upper_case#2 -Inversing boolean not [495] (bool~) printf_number_buffer::$14 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#4 from [494] (bool~) printf_number_buffer::$32 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#4 -Inversing boolean not [736] (bool~) irq_bottom_2::$1 ← (byte) 0 == (byte~) irq_bottom_2::$0 from [735] (bool~) irq_bottom_2::$3 ← (byte) 0 != (byte~) irq_bottom_2::$0 -Inversing boolean not [737] (bool~) irq_bottom_2::$2 ← (byte) 0 != (byte~) irq_bottom_2::$0 from [736] (bool~) irq_bottom_2::$1 ← (byte) 0 == (byte~) irq_bottom_2::$0 -Inversing boolean not [777] (bool~) line::$9 ← (byte) line::sx#1 != (byte) $ff from [776] (bool~) line::$8 ← (byte) line::sx#1 == (byte) $ff -Inversing boolean not [803] (bool~) line::$14 ← (byte) line::dy#3 >= (byte) line::e#1 from [802] (bool~) line::$13 ← (byte) line::dy#3 < (byte) line::e#1 -Inversing boolean not [832] (bool~) line::$20 ← (byte) line::dx#4 >= (byte) line::e1#1 from [831] (bool~) line::$19 ← (byte) line::dx#4 < (byte) line::e1#1 +Inversing boolean not [2] (bool~) memset::$1 ← (word) memset::num#4 <= (byte) 0 from [1] (bool~) memset::$0 ← (word) memset::num#4 > (byte) 0 +Inversing boolean not [240] (bool~) irq_bottom_2::$1 ← (byte) 0 == (byte~) irq_bottom_2::$0 from [239] (bool~) irq_bottom_2::$3 ← (byte) 0 != (byte~) irq_bottom_2::$0 +Inversing boolean not [297] (bool~) line::$9 ← (byte) line::sx#1 != (byte) $ff from [296] (bool~) line::$8 ← (byte) line::sx#1 == (byte) $ff +Inversing boolean not [322] (bool~) line::$21 ← (byte) line::dx#3 != (byte) 0 from [321] (bool~) line::$20 ← (byte) line::dx#3 == (byte) 0 +Inversing boolean not [331] (bool~) line::$14 ← (byte) line::e#1 <= (byte) line::dy#3 from [330] (bool~) line::$13 ← (byte) line::e#1 > (byte) line::dy#3 +Inversing boolean not [394] (bool~) line::$29 ← (byte) line::e2#1 <= (byte) line::dx#6 from [393] (bool~) line::$28 ← (byte) line::e2#1 > (byte) line::dx#6 Successful SSA optimization Pass2UnaryNotSimplification -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#2 toD0181_return#1 toD0181_return#3 $0 canvas_show_memory -Alias toupper::ch#1 = toupper::ch#2 toupper::ch#3 toupper::return#1 -Alias toupper::return#0 = toupper::$3 -Alias toupper::return#2 = toupper::return#4 -Alias memcpy::src_end#0 = memcpy::$0 -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#6 memset::return#8 memset::return#1 -Alias memset::str#7 = memset::str#8 -Alias memset::num#6 = memset::num#7 -Alias memset::c#8 = memset::c#9 -Alias memset::end#0 = memset::$2 +Alias memset::return#0 = memset::str#4 memset::return#6 memset::return#1 +Alias memset::str#5 = memset::str#6 +Alias memset::num#4 = memset::num#5 Alias memset::c#6 = memset::c#7 +Alias memset::end#0 = memset::$2 +Alias memset::c#4 = memset::c#5 Alias memset::dst#2 = memset::dst#3 Alias memset::end#1 = memset::end#2 -Alias memset::str#10 = memset::str#9 -Alias strupr::src#0 = strupr::str#1 -Alias strupr::src#2 = strupr::src#3 strupr::src#4 -Alias strupr::str#2 = strupr::str#5 strupr::str#3 strupr::str#4 strupr::return#0 strupr::return#3 strupr::return#1 -Alias toupper::return#3 = toupper::return#5 -Alias strlen::len#2 = strlen::len#4 strlen::len#3 strlen::return#0 strlen::return#3 strlen::return#1 -Alias strlen::str#2 = strlen::str#3 +Alias memset::str#7 = memset::str#8 Alias clock::return#0 = clock::$0 clock::return#3 clock::return#1 -Alias uctoa::value#10 = uctoa::value#8 uctoa::value#12 uctoa::value#13 uctoa::value#9 uctoa::value#14 uctoa::value#15 uctoa::value#11 -Alias uctoa::buffer#10 = uctoa::buffer#17 uctoa::buffer#21 uctoa::buffer#16 uctoa::buffer#18 uctoa::buffer#13 uctoa::buffer#19 uctoa::buffer#20 uctoa::buffer#6 -Alias uctoa::radix#1 = uctoa::radix#2 uctoa::radix#3 uctoa::radix#4 -Alias uctoa::digit_values#10 = uctoa::digit_values#5 uctoa::digit_values#6 uctoa::digit_values#9 -Alias uctoa::digit#2 = uctoa::digit#3 uctoa::digit#6 uctoa::digit#5 -Alias uctoa::value#2 = uctoa::value#5 uctoa::value#3 uctoa::$10 uctoa::value#4 -Alias uctoa::started#2 = uctoa::started#3 -Alias uctoa::buffer#11 = uctoa::buffer#12 uctoa::buffer#7 uctoa::buffer#8 uctoa::buffer#9 -Alias uctoa::max_digits#10 = uctoa::max_digits#8 uctoa::max_digits#5 uctoa::max_digits#9 -Alias uctoa::digit_value#0 = uctoa::digit_value#1 -Alias uctoa_append::return#0 = uctoa_append::return#3 -Alias uctoa::value#0 = uctoa::$9 -Alias uctoa_append::digit#2 = uctoa_append::digit#4 uctoa_append::digit#3 -Alias uctoa_append::value#2 = uctoa_append::value#3 uctoa_append::value#4 uctoa_append::return#1 uctoa_append::return#4 uctoa_append::return#2 -Alias uctoa_append::sub#1 = uctoa_append::sub#2 -Alias uctoa_append::buffer#1 = uctoa_append::buffer#4 uctoa_append::buffer#2 -Alias ultoa::value#10 = ultoa::value#8 ultoa::value#12 ultoa::value#13 ultoa::value#9 ultoa::value#14 ultoa::value#15 ultoa::value#11 -Alias ultoa::buffer#10 = ultoa::buffer#17 ultoa::buffer#21 ultoa::buffer#16 ultoa::buffer#18 ultoa::buffer#13 ultoa::buffer#19 ultoa::buffer#20 ultoa::buffer#6 -Alias ultoa::radix#1 = ultoa::radix#2 ultoa::radix#3 ultoa::radix#4 -Alias ultoa::digit#2 = ultoa::digit#3 ultoa::digit#6 ultoa::digit#5 -Alias ultoa::digit_values#10 = ultoa::digit_values#5 ultoa::digit_values#6 ultoa::digit_values#9 -Alias ultoa::value#2 = ultoa::value#5 ultoa::value#3 ultoa::value#4 -Alias ultoa::started#2 = ultoa::started#3 -Alias ultoa::buffer#11 = ultoa::buffer#12 ultoa::buffer#7 ultoa::buffer#8 ultoa::buffer#9 -Alias ultoa::max_digits#10 = ultoa::max_digits#8 ultoa::max_digits#5 ultoa::max_digits#9 -Alias ultoa::digit_value#0 = ultoa::digit_value#1 -Alias ultoa_append::return#0 = ultoa_append::return#3 -Alias ultoa::value#0 = ultoa::$9 -Alias ultoa_append::digit#2 = ultoa_append::digit#4 ultoa_append::digit#3 -Alias ultoa_append::value#2 = ultoa_append::value#3 ultoa_append::value#4 ultoa_append::return#1 ultoa_append::return#4 ultoa_append::return#2 -Alias ultoa_append::sub#1 = ultoa_append::sub#2 -Alias ultoa_append::buffer#1 = ultoa_append::buffer#4 ultoa_append::buffer#2 -Alias gotoxy::x#5 = gotoxy::x#6 -Alias gotoxy::offset#0 = gotoxy::$5 -Alias gotoxy::y#5 = gotoxy::y#6 -Alias cputc::c#3 = cputc::c#4 -Alias cputln::ln_offset#0 = cputln::$0 -Alias cputs::c#1 = cputs::c#2 -Alias cputs::s#0 = cputs::s#7 cputs::s#6 Alias textcolor::return#0 = textcolor::old#0 textcolor::return#3 textcolor::return#1 Alias kbhit::return#0 = kbhit::$0 kbhit::return#3 kbhit::return#1 -Alias printf_padding::pad#3 = printf_padding::pad#4 printf_padding::pad#6 -Alias printf_padding::i#2 = printf_padding::i#4 printf_padding::i#3 -Alias printf_padding::length#3 = printf_padding::length#6 printf_padding::length#5 -Alias printf_ulong::uvalue#2 = printf_ulong::uvalue#4 printf_ulong::uvalue#3 -Alias printf_ulong::format_radix#3 = printf_ulong::format_radix#5 printf_ulong::format_radix#4 -Alias printf_ulong::format_min_length#3 = printf_ulong::format_min_length#5 printf_ulong::format_min_length#4 -Alias printf_ulong::format_justify_left#3 = printf_ulong::format_justify_left#5 printf_ulong::format_justify_left#4 -Alias printf_ulong::format_sign_always#1 = printf_ulong::format_sign_always#4 printf_ulong::format_sign_always#5 -Alias printf_ulong::format_zero_padding#3 = printf_ulong::format_zero_padding#5 printf_ulong::format_zero_padding#4 -Alias printf_ulong::format_upper_case#3 = printf_ulong::format_upper_case#5 printf_ulong::format_upper_case#4 -Alias printf_ulong::format_min_length#1 = printf_ulong::format_min_length#2 -Alias printf_ulong::format_justify_left#1 = printf_ulong::format_justify_left#2 -Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#3 -Alias printf_ulong::format_zero_padding#1 = printf_ulong::format_zero_padding#2 -Alias printf_ulong::format_upper_case#1 = printf_ulong::format_upper_case#2 -Alias printf_ulong::format_radix#1 = printf_ulong::format_radix#2 -Alias printf_uchar::uvalue#2 = printf_uchar::uvalue#4 printf_uchar::uvalue#3 -Alias printf_uchar::format_radix#3 = printf_uchar::format_radix#5 printf_uchar::format_radix#4 -Alias printf_uchar::format_min_length#3 = printf_uchar::format_min_length#5 printf_uchar::format_min_length#4 -Alias printf_uchar::format_justify_left#3 = printf_uchar::format_justify_left#5 printf_uchar::format_justify_left#4 -Alias printf_uchar::format_sign_always#1 = printf_uchar::format_sign_always#4 printf_uchar::format_sign_always#5 -Alias printf_uchar::format_zero_padding#3 = printf_uchar::format_zero_padding#5 printf_uchar::format_zero_padding#4 -Alias printf_uchar::format_upper_case#3 = printf_uchar::format_upper_case#5 printf_uchar::format_upper_case#4 -Alias printf_uchar::format_min_length#1 = printf_uchar::format_min_length#2 -Alias printf_uchar::format_justify_left#1 = printf_uchar::format_justify_left#2 -Alias printf_uchar::format_sign_always#2 = printf_uchar::format_sign_always#3 -Alias printf_uchar::format_zero_padding#1 = printf_uchar::format_zero_padding#2 -Alias printf_uchar::format_upper_case#1 = printf_uchar::format_upper_case#2 -Alias printf_uchar::format_radix#1 = printf_uchar::format_radix#2 -Alias printf_number_buffer::buffer_digits#19 = printf_number_buffer::buffer_digits#2 printf_number_buffer::buffer_digits#5 printf_number_buffer::buffer_digits#20 -Alias printf_number_buffer::buffer_sign#12 = printf_number_buffer::buffer_sign#5 printf_number_buffer::buffer_sign#8 printf_number_buffer::buffer_sign#2 -Alias printf_number_buffer::format_min_length#2 = printf_number_buffer::format_min_length#6 printf_number_buffer::format_min_length#4 printf_number_buffer::format_min_length#5 -Alias printf_number_buffer::format_justify_left#12 = printf_number_buffer::format_justify_left#4 printf_number_buffer::format_justify_left#8 printf_number_buffer::format_justify_left#9 -Alias printf_number_buffer::format_zero_padding#11 = printf_number_buffer::format_zero_padding#17 printf_number_buffer::format_zero_padding#5 printf_number_buffer::format_zero_padding#12 -Alias printf_number_buffer::format_upper_case#11 = printf_number_buffer::format_upper_case#17 printf_number_buffer::format_upper_case#15 printf_number_buffer::format_upper_case#16 -Alias strlen::return#2 = strlen::return#4 -Alias printf_number_buffer::padding#1 = printf_number_buffer::$21 -Alias printf_number_buffer::len#0 = printf_number_buffer::len#3 -Alias printf_number_buffer::format_justify_left#5 = printf_number_buffer::format_justify_left#6 -Alias printf_number_buffer::format_zero_padding#6 = printf_number_buffer::format_zero_padding#7 -Alias printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#9 -Alias printf_number_buffer::format_upper_case#12 = printf_number_buffer::format_upper_case#13 -Alias printf_number_buffer::buffer_digits#16 = printf_number_buffer::buffer_digits#17 -Alias printf_number_buffer::padding#12 = printf_number_buffer::padding#4 printf_number_buffer::padding#3 -Alias printf_number_buffer::buffer_sign#11 = printf_number_buffer::buffer_sign#6 printf_number_buffer::buffer_sign#7 -Alias printf_number_buffer::format_zero_padding#13 = printf_number_buffer::format_zero_padding#18 printf_number_buffer::format_zero_padding#2 -Alias printf_number_buffer::format_upper_case#14 = printf_number_buffer::format_upper_case#8 printf_number_buffer::format_upper_case#9 -Alias printf_number_buffer::buffer_digits#13 = printf_number_buffer::buffer_digits#18 printf_number_buffer::buffer_digits#14 -Alias printf_number_buffer::format_justify_left#19 = printf_number_buffer::format_justify_left#21 printf_number_buffer::format_justify_left#2 -Alias printf_number_buffer::buffer_sign#3 = printf_number_buffer::buffer_sign#4 -Alias printf_number_buffer::format_zero_padding#14 = printf_number_buffer::format_zero_padding#9 printf_number_buffer::format_zero_padding#8 -Alias printf_number_buffer::padding#10 = printf_number_buffer::padding#13 printf_number_buffer::padding#9 -Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#6 printf_number_buffer::format_upper_case#5 -Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#15 printf_number_buffer::buffer_digits#11 -Alias printf_number_buffer::format_justify_left#16 = printf_number_buffer::format_justify_left#20 printf_number_buffer::format_justify_left#17 -Alias printf_number_buffer::padding#16 = printf_number_buffer::padding#6 printf_number_buffer::padding#5 -Alias printf_number_buffer::format_upper_case#3 = printf_number_buffer::format_upper_case#7 printf_number_buffer::format_upper_case#4 -Alias printf_number_buffer::buffer_digits#12 = printf_number_buffer::buffer_digits#9 printf_number_buffer::buffer_digits#8 -Alias printf_number_buffer::format_zero_padding#19 = printf_number_buffer::format_zero_padding#21 printf_number_buffer::format_zero_padding#3 -Alias printf_number_buffer::format_justify_left#13 = printf_number_buffer::format_justify_left#18 printf_number_buffer::format_justify_left#14 -Alias printf_number_buffer::format_zero_padding#10 = printf_number_buffer::format_zero_padding#4 -Alias printf_number_buffer::format_justify_left#3 = printf_number_buffer::format_justify_left#7 -Alias printf_number_buffer::padding#11 = printf_number_buffer::padding#7 printf_number_buffer::padding#8 -Alias printf_number_buffer::buffer_digits#4 = printf_number_buffer::buffer_digits#7 printf_number_buffer::buffer_digits#6 -Alias printf_number_buffer::format_zero_padding#15 = printf_number_buffer::format_zero_padding#20 printf_number_buffer::format_zero_padding#16 -Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#15 printf_number_buffer::format_justify_left#11 -Alias printf_number_buffer::padding#14 = printf_number_buffer::padding#17 printf_number_buffer::padding#15 Alias toD0181_screen#0 = toD0181_screen#1 Alias toD0181_gfx#0 = toD0181_gfx#1 Alias main::y#2 = main::y#3 main::c#0 @@ -4523,7 +2468,7 @@ Alias main::x#2 = main::x#3 Alias main::c#2 = main::c#3 Alias main::screen#2 = main::screen#4 main::screen#3 Alias main::y#4 = main::y#6 main::y#5 -Alias main::p0_idx#11 = main::p0_idx#8 main::p0_idx#5 main::p0_idx#2 main::p0_idx#9 main::p0_idx#6 main::p0_idx#3 +Alias main::p0_idx#2 = main::p0_idx#6 main::p0_idx#8 main::p0_idx#4 main::p0_idx#7 main::p0_idx#5 main::p0_idx#3 Alias main::p1_idx#2 = main::p1_idx#6 main::p1_idx#8 main::p1_idx#4 main::p1_idx#7 main::p1_idx#5 main::p1_idx#3 Alias main::p2_idx#2 = main::p2_idx#7 main::p2_idx#8 main::p2_idx#6 main::p2_idx#4 main::p2_idx#5 main::p2_idx#3 Alias main::canvas#10 = main::canvas#11 main::canvas#9 main::canvas#8 main::canvas#7 main::canvas#6 main::canvas#5 @@ -4534,203 +2479,123 @@ Alias main::y0#0 = main::y0#2 main::y0#1 Alias main::x2#0 = main::x2#1 Alias main::y2#0 = main::y2#1 Alias main::canvas#2 = main::canvas#4 main::canvas#3 -Alias main::p0_idx#10 = main::p0_idx#22 main::p0_idx#23 main::p0_idx#21 main::p0_idx#20 main::p0_idx#19 main::p0_idx#17 main::p0_idx#15 main::p0_idx#14 main::p0_idx#12 main::p0_idx#7 main::p0_idx#4 main::p0_idx#18 main::p0_idx#16 main::p0_idx#13 -Alias main::p1_idx#10 = main::p1_idx#22 main::p1_idx#23 main::p1_idx#21 main::p1_idx#20 main::p1_idx#19 main::p1_idx#18 main::p1_idx#17 main::p1_idx#16 main::p1_idx#15 main::p1_idx#14 main::p1_idx#13 main::p1_idx#12 main::p1_idx#11 main::p1_idx#9 -Alias main::p2_idx#10 = main::p2_idx#22 main::p2_idx#23 main::p2_idx#21 main::p2_idx#20 main::p2_idx#19 main::p2_idx#18 main::p2_idx#17 main::p2_idx#16 main::p2_idx#15 main::p2_idx#14 main::p2_idx#13 main::p2_idx#12 main::p2_idx#11 main::p2_idx#9 +Alias main::p0_idx#10 = main::p0_idx#17 main::p0_idx#18 main::p0_idx#16 main::p0_idx#15 main::p0_idx#14 main::p0_idx#13 main::p0_idx#12 main::p0_idx#11 main::p0_idx#9 +Alias main::p1_idx#10 = main::p1_idx#17 main::p1_idx#18 main::p1_idx#16 main::p1_idx#15 main::p1_idx#14 main::p1_idx#13 main::p1_idx#12 main::p1_idx#11 main::p1_idx#9 +Alias main::p2_idx#10 = main::p2_idx#17 main::p2_idx#18 main::p2_idx#16 main::p2_idx#15 main::p2_idx#14 main::p2_idx#13 main::p2_idx#12 main::p2_idx#11 main::p2_idx#9 Alias main::toD0181_screen#0 = main::toD0181_screen#1 Alias main::toD0181_gfx#0 = main::toD0181_gfx#1 -Alias main::canvas#1 = main::canvas#23 main::canvas#22 main::canvas#21 main::canvas#20 main::canvas#19 main::canvas#18 main::canvas#17 main::canvas#16 main::canvas#15 main::canvas#14 main::canvas#13 main::canvas#12 +Alias main::canvas#1 = main::canvas#18 main::canvas#17 main::canvas#16 main::canvas#15 main::canvas#14 main::canvas#13 main::canvas#12 Alias main::toD0181_return#0 = main::toD0181_$6 main::toD0181_return#2 main::toD0181_return#1 main::toD0181_return#3 main::$15 Alias main::toD0182_screen#0 = main::toD0182_screen#1 Alias main::toD0182_gfx#0 = main::toD0182_gfx#1 Alias main::toD0182_return#0 = main::toD0182_$6 main::toD0182_return#2 main::toD0182_return#1 main::toD0182_return#3 main::$16 -Alias clock::return#2 = clock::return#4 -Alias main::cyclecount#0 = main::$19 main::cyclecount#4 main::cyclecount#3 main::cyclecount#2 main::cyclecount#1 Alias irq_bottom_1::toD0181_screen#0 = irq_bottom_1::toD0181_screen#1 Alias irq_bottom_1::toD0181_gfx#0 = irq_bottom_1::toD0181_gfx#1 Alias irq_bottom_1::toD0181_return#0 = irq_bottom_1::toD0181_$6 irq_bottom_1::toD0181_return#2 irq_bottom_1::toD0181_return#1 irq_bottom_1::toD0181_return#3 irq_bottom_1::$0 Alias kbhit::return#2 = kbhit::return#4 -Alias line::x#0 = line::x1#3 line::x1#5 line::x#21 line::x1#4 line::x#20 line::x#18 line::x#14 line::x#15 -Alias line::y#0 = line::y1#3 line::y1#4 line::y#22 line::y1#6 line::y#21 line::y1#5 line::y#19 line::y#12 line::y#4 +Alias irq_bottom_2::toD0181_screen#0 = irq_bottom_2::toD0181_screen#1 +Alias irq_bottom_2::toD0181_gfx#0 = irq_bottom_2::toD0181_gfx#1 +Alias irq_bottom_2::toD0181_return#0 = irq_bottom_2::toD0181_$6 irq_bottom_2::toD0181_return#2 irq_bottom_2::toD0181_return#1 irq_bottom_2::toD0181_return#3 irq_bottom_2::$2 +Alias line::x#0 = line::x1#3 line::x1#5 line::x#32 line::x1#4 line::x#31 line::x#29 line::x#26 line::x#27 +Alias line::y#0 = line::y1#3 line::y1#4 line::y#33 line::y1#6 line::y#31 line::y1#5 line::y#25 line::y#16 line::y#5 Alias abs_u8::u#0 = line::$0 Alias abs_u8::return#0 = abs_u8::return#5 Alias line::y2#10 = line::y2#4 line::y2#8 line::y2#9 line::y2#5 line::y2#6 -Alias line::x2#13 = line::x2#6 line::x2#3 line::x2#4 line::x2#15 line::x2#14 -Alias line::dx#0 = line::$1 line::dx#15 line::dx#11 line::dx#6 line::dx#7 +Alias line::x2#19 = line::x2#7 line::x2#3 line::x2#4 line::x2#22 line::x2#20 +Alias line::dx#0 = line::$1 line::dx#22 line::dx#16 line::dx#8 line::dx#9 Alias abs_u8::u#1 = line::$2 Alias abs_u8::return#1 = abs_u8::return#6 -Alias line::dy#0 = line::$3 line::dy#11 line::dy#6 line::dy#7 +Alias line::dy#0 = line::$3 line::dy#17 line::dy#9 line::dy#10 Alias sgn_u8::u#0 = line::$4 Alias sgn_u8::return#0 = sgn_u8::return#5 -Alias line::sx#0 = line::$5 line::sx#1 line::sx#15 +Alias line::sx#0 = line::$5 line::sx#1 line::sx#10 Alias sgn_u8::u#1 = line::$6 Alias sgn_u8::return#1 = sgn_u8::return#6 Alias line::sy#0 = line::$7 line::sy#12 -Alias line::dx#1 = line::dx#2 line::dx#12 line::dx#9 -Alias line::x#11 = line::x#9 line::x#3 line::plot1_x#0 line::plot1_x#1 line::x#17 -Alias line::y#13 = line::y#16 line::y#5 line::plot1_y#0 line::plot1_y#1 line::y#14 -Alias line::sx#11 = line::sx#13 line::sx#9 line::sx#7 -Alias line::dy#1 = line::dy#14 line::dy#2 line::dy#9 -Alias line::x2#11 = line::x2#12 -Alias line::sy#13 = line::sy#9 line::sy#6 line::sy#4 -Alias line::e1#0 = line::$17 -Alias line::y2#13 = line::y2#15 line::y2#16 -Alias line::e#0 = line::$11 line::e#6 -Alias line::x#10 = line::x#4 -Alias line::sx#10 = line::sx#2 line::sx#4 -Alias line::e#1 = line::e#4 -Alias line::dy#12 = line::dy#4 line::dy#3 -Alias line::y#15 = line::y#8 line::y#2 line::plot2_y#0 line::plot2_y#1 -Alias line::y2#11 = line::y2#14 line::y2#12 -Alias line::sy#1 = line::sy#10 line::sy#7 -Alias line::dx#13 = line::dx#16 line::dx#3 -Alias line::plot2_x#0 = line::x#1 line::plot2_x#1 line::x#19 -Alias line::e#2 = line::e#7 -Alias line::x#12 = line::plot3_x#0 line::x#5 line::plot3_x#1 line::x#6 -Alias line::y#10 = line::plot3_y#0 line::y#9 line::plot3_y#1 line::y#20 line::y#18 -Alias line::sx#14 = line::sx#5 line::sx#8 line::sx#3 -Alias line::e1#3 = line::e1#5 line::e1#6 -Alias line::dy#10 = line::dy#13 line::dy#5 line::dy#16 -Alias line::dx#10 = line::dx#14 line::dx#4 line::dx#5 -Alias line::x2#10 = line::x2#9 line::x2#8 line::x2#7 -Alias line::sy#11 = line::sy#8 line::sy#5 line::sy#2 +Alias line::dx#1 = line::dx#2 line::dx#18 line::dx#17 line::dx#10 line::dx#3 line::dx#11 line::dx#13 +Alias line::x#14 = line::x#20 line::x#23 line::x#4 line::plot1_x#0 line::plot1_x#1 line::x#30 line::x#28 line::x#24 line::x#25 +Alias line::y#17 = line::y#23 line::y#26 line::y#6 line::plot1_y#0 line::plot1_y#1 line::y#32 line::y#28 line::y#18 line::y#20 +Alias line::sx#12 = line::sx#19 line::sx#6 line::sx#2 line::sx#24 line::sx#20 line::sx#16 line::sx#21 +Alias line::dy#1 = line::dy#24 line::dy#11 line::dy#22 line::dy#18 line::dy#14 line::dy#2 line::dy#5 +Alias line::x2#15 = line::x2#16 line::x2#17 line::x2#24 line::x2#23 line::x2#21 line::x2#18 +Alias line::sy#1 = line::sy#23 line::sy#6 line::sy#21 line::sy#17 line::sy#14 line::sy#7 line::sy#9 +Alias line::e2#0 = line::$26 +Alias line::y2#13 = line::y2#15 line::y2#17 +Alias line::e#0 = line::$12 +Alias line::y#19 = line::y#9 line::y#2 line::y#27 +Alias line::sy#13 = line::sy#3 line::sy#2 line::sy#18 +Alias line::x#15 = line::x#5 line::plot2_x#0 line::plot2_x#1 line::x#16 line::x#6 +Alias line::sx#11 = line::sx#15 line::sx#7 line::sx#3 +Alias line::e#1 = line::e#7 line::e#6 line::e#4 +Alias line::dy#13 = line::dy#19 line::dy#3 line::dy#4 +Alias line::y2#11 = line::y2#16 line::y2#12 line::y2#14 +Alias line::dx#19 = line::dx#26 line::dx#4 line::dx#23 +Alias line::plot2_y#0 = line::$15 line::plot2_y#1 +Alias line::x#17 = line::x#7 line::plot3_x#0 line::plot3_x#1 +Alias line::y#10 = line::y#8 line::plot3_y#0 line::plot3_y#1 +Alias line::e1#0 = line::$22 +Alias line::x#18 = line::x#8 +Alias line::sx#13 = line::sx#4 line::sx#8 line::sx#17 Alias line::e1#1 = line::e1#4 -Alias line::x#13 = line::x#2 -Alias line::x#7 = line::x#8 line::plot4_x#0 line::plot4_x#1 -Alias line::y#11 = line::y#17 line::plot4_y#0 line::plot4_y#1 +Alias line::dy#15 = line::dy#7 line::dy#6 line::dy#20 +Alias line::y#12 = line::y#3 line::plot4_y#0 line::plot4_y#1 line::y#29 line::y#21 +Alias line::x2#11 = line::x2#13 line::x2#8 line::x2#5 +Alias line::sy#10 = line::sy#19 line::sy#4 line::sy#15 +Alias line::dx#14 = line::dx#24 line::dx#5 line::dx#20 +Alias line::x#19 = line::plot4_x#0 line::x#2 line::plot4_x#1 line::x#9 +Alias line::e1#2 = line::e1#6 line::e1#5 +Alias line::x#10 = line::plot5_x#0 line::plot5_x#1 line::x#21 line::x#11 +Alias line::y#13 = line::plot5_y#0 line::plot5_y#1 line::y#30 line::y#24 line::y#14 +Alias line::sx#14 = line::sx#9 line::sx#5 line::sx#23 +Alias line::e2#3 = line::e2#5 line::e2#6 +Alias line::dy#16 = line::dy#21 line::dy#8 line::dy#25 +Alias line::dx#15 = line::dx#21 line::dx#6 line::dx#7 +Alias line::x2#10 = line::x2#12 line::x2#14 line::x2#9 +Alias line::sy#11 = line::sy#16 line::sy#20 line::sy#5 +Alias line::e2#1 = line::e2#4 +Alias line::x#22 = line::x#3 +Alias line::x#12 = line::x#13 line::plot6_x#0 line::plot6_x#1 +Alias line::y#15 = line::y#22 line::plot6_y#0 line::plot6_y#1 Alias eorfill::line_column#0 = eorfill::line_buffer#1 Alias eorfill::fill_column#0 = eorfill::canvas#1 Alias eorfill::line_column#2 = eorfill::line_column#5 -Alias eorfill::fill_column#5 = eorfill::fill_column#6 +Alias eorfill::fill_column#2 = eorfill::fill_column#5 Alias eorfill::x#2 = eorfill::x#5 Alias eorfill::eor#2 = eorfill::eor#3 Alias eorfill::line_column#3 = eorfill::line_column#6 eorfill::line_column#4 Alias eorfill::y#2 = eorfill::y#3 -Alias eorfill::fill_column#2 = eorfill::fill_column#4 eorfill::fill_column#3 +Alias eorfill::fill_column#3 = eorfill::fill_column#6 eorfill::fill_column#4 Alias eorfill::x#3 = eorfill::x#6 eorfill::x#4 Alias abs_u8::u#2 = abs_u8::u#3 abs_u8::u#4 abs_u8::return#3 Alias abs_u8::return#2 = abs_u8::$1 Alias abs_u8::return#4 = abs_u8::return#7 Alias sgn_u8::return#4 = sgn_u8::return#7 Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#2 toD0181_return#1 toD0181_return#3 $0 canvas_show_memory -Alias uctoa::value#10 = uctoa::value#7 -Alias uctoa::buffer#10 = uctoa::buffer#15 -Alias uctoa::digit#2 = uctoa::digit#4 -Alias uctoa::max_digits#10 = uctoa::max_digits#6 -Alias uctoa::digit_values#10 = uctoa::digit_values#7 -Alias ultoa::value#10 = ultoa::value#7 -Alias ultoa::buffer#10 = ultoa::buffer#15 -Alias ultoa::digit#2 = ultoa::digit#4 -Alias ultoa::max_digits#10 = ultoa::max_digits#6 -Alias ultoa::digit_values#10 = ultoa::digit_values#7 -Alias gotoxy::x#3 = gotoxy::x#5 -Alias gotoxy::y#4 = gotoxy::y#5 -Alias printf_ulong::uvalue#1 = printf_ulong::uvalue#2 -Alias printf_ulong::format_radix#1 = printf_ulong::format_radix#3 -Alias printf_ulong::format_min_length#1 = printf_ulong::format_min_length#3 -Alias printf_ulong::format_justify_left#1 = printf_ulong::format_justify_left#3 -Alias printf_ulong::format_sign_always#1 = printf_ulong::format_sign_always#2 -Alias printf_ulong::format_zero_padding#1 = printf_ulong::format_zero_padding#3 -Alias printf_ulong::format_upper_case#1 = printf_ulong::format_upper_case#3 -Alias printf_uchar::uvalue#1 = printf_uchar::uvalue#2 -Alias printf_uchar::format_radix#1 = printf_uchar::format_radix#3 -Alias printf_uchar::format_min_length#1 = printf_uchar::format_min_length#3 -Alias printf_uchar::format_justify_left#1 = printf_uchar::format_justify_left#3 -Alias printf_uchar::format_sign_always#1 = printf_uchar::format_sign_always#2 -Alias printf_uchar::format_zero_padding#1 = printf_uchar::format_zero_padding#3 -Alias printf_uchar::format_upper_case#1 = printf_uchar::format_upper_case#3 -Alias printf_number_buffer::format_min_length#2 = printf_number_buffer::format_min_length#3 -Alias printf_number_buffer::format_justify_left#12 = printf_number_buffer::format_justify_left#5 -Alias printf_number_buffer::format_zero_padding#11 = printf_number_buffer::format_zero_padding#6 -Alias printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#12 -Alias printf_number_buffer::format_upper_case#11 = printf_number_buffer::format_upper_case#12 -Alias printf_number_buffer::buffer_digits#16 = printf_number_buffer::buffer_digits#19 -Alias printf_number_buffer::buffer_sign#11 = printf_number_buffer::buffer_sign#3 -Alias printf_number_buffer::format_zero_padding#10 = printf_number_buffer::format_zero_padding#14 printf_number_buffer::format_zero_padding#13 printf_number_buffer::format_zero_padding#19 printf_number_buffer::format_zero_padding#15 -Alias printf_number_buffer::padding#10 = printf_number_buffer::padding#12 printf_number_buffer::padding#16 printf_number_buffer::padding#14 printf_number_buffer::padding#11 -Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#14 printf_number_buffer::format_upper_case#3 printf_number_buffer::format_upper_case#2 -Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#13 printf_number_buffer::buffer_digits#12 printf_number_buffer::buffer_digits#4 printf_number_buffer::buffer_digits#3 -Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#16 printf_number_buffer::format_justify_left#19 printf_number_buffer::format_justify_left#13 printf_number_buffer::format_justify_left#3 Alias line::dx#0 = line::dx#1 Alias line::dy#0 = line::dy#1 -Alias line::x#0 = line::x#11 -Alias line::sy#0 = line::sy#13 -Alias line::sx#0 = line::sx#11 -Alias line::x2#11 = line::x2#13 -Alias line::y#15 = line::y#7 +Alias line::sx#0 = line::sx#12 +Alias line::sy#0 = line::sy#1 +Alias line::x#0 = line::x#14 +Alias line::x2#15 = line::x2#19 +Alias line::y#10 = line::y#19 Alias line::y2#11 = line::y2#7 -Alias line::sy#1 = line::sy#3 -Alias line::dx#13 = line::dx#8 -Alias line::dy#12 = line::dy#8 -Alias line::sx#10 = line::sx#6 -Alias line::x#13 = line::x#7 -Alias line::x2#10 = line::x2#5 -Alias line::sx#12 = line::sx#14 -Alias line::dy#10 = line::dy#15 -Alias line::dx#10 = line::dx#17 -Alias line::sy#11 = line::sy#14 +Alias line::sy#13 = line::sy#8 +Alias line::dx#12 = line::dx#19 +Alias line::dy#12 = line::dy#13 +Alias line::sx#11 = line::sx#22 +Alias line::x#12 = line::x#22 +Alias line::x2#10 = line::x2#6 +Alias line::sx#14 = line::sx#18 +Alias line::dy#16 = line::dy#23 +Alias line::dx#15 = line::dx#25 +Alias line::sy#11 = line::sy#22 Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#2 toD0181_return#1 toD0181_return#3 $0 canvas_show_memory -Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#12 -Alias printf_number_buffer::format_zero_padding#10 = printf_number_buffer::format_zero_padding#11 -Alias printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#11 -Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#11 -Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#16 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 -Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#2 toD0181_return#1 toD0181_return#3 $0 canvas_show_memory -Identical Phi Values (byte) toupper::ch#1 (byte) toupper::ch#0 -Identical Phi Values (byte*) memcpy::src_end#1 (byte*) memcpy::src_end#0 -Identical Phi Values (void*) memcpy::destination#3 (void*) memcpy::destination#2 Identical Phi Values (byte*) memset::end#1 (byte*) memset::end#0 -Identical Phi Values (void*) memset::str#10 (void*) memset::str#7 -Identical Phi Values (byte) memset::c#6 (byte) memset::c#8 -Identical Phi Values (byte*) strupr::src#0 (byte*) strupr::str#0 -Identical Phi Values (byte*) strupr::str#2 (byte*) strupr::src#0 -Identical Phi Values (byte*) strlen::str#4 (byte*) strlen::str#1 -Identical Phi Values (byte) uctoa::radix#1 (byte) uctoa::radix#0 -Identical Phi Values (byte) uctoa::value#10 (byte) uctoa::value#1 -Identical Phi Values (byte*) uctoa::buffer#10 (byte*) uctoa::buffer#5 -Identical Phi Values (byte) uctoa::max_digits#10 (byte) uctoa::max_digits#7 -Identical Phi Values (byte*) uctoa::digit_values#10 (byte*) uctoa::digit_values#8 -Identical Phi Values (byte) uctoa_append::value#5 (byte) uctoa_append::value#0 -Identical Phi Values (byte) uctoa_append::sub#3 (byte) uctoa_append::sub#0 -Identical Phi Values (byte*) uctoa_append::buffer#3 (byte*) uctoa_append::buffer#0 -Identical Phi Values (byte) uctoa_append::sub#1 (byte) uctoa_append::sub#3 -Identical Phi Values (byte*) uctoa_append::buffer#1 (byte*) uctoa_append::buffer#3 -Identical Phi Values (byte) ultoa::radix#1 (byte) ultoa::radix#0 -Identical Phi Values (dword) ultoa::value#10 (dword) ultoa::value#1 -Identical Phi Values (byte*) ultoa::buffer#10 (byte*) ultoa::buffer#5 -Identical Phi Values (byte) ultoa::max_digits#10 (byte) ultoa::max_digits#7 -Identical Phi Values (dword*) ultoa::digit_values#10 (dword*) ultoa::digit_values#8 -Identical Phi Values (dword) ultoa_append::value#5 (dword) ultoa_append::value#0 -Identical Phi Values (dword) ultoa_append::sub#3 (dword) ultoa_append::sub#0 -Identical Phi Values (byte*) ultoa_append::buffer#3 (byte*) ultoa_append::buffer#0 -Identical Phi Values (dword) ultoa_append::sub#1 (dword) ultoa_append::sub#3 -Identical Phi Values (byte*) ultoa_append::buffer#1 (byte*) ultoa_append::buffer#3 +Identical Phi Values (void*) memset::str#7 (void*) memset::str#5 +Identical Phi Values (byte) memset::c#4 (byte) memset::c#6 Identical Phi Values (byte) textcolor::color#1 (byte) textcolor::color#0 -Identical Phi Values (byte) printf_padding::length#3 (byte) printf_padding::length#4 -Identical Phi Values (byte) printf_padding::pad#3 (byte) printf_padding::pad#5 -Identical Phi Values (byte) printf_ulong::format_sign_always#1 (byte) printf_ulong::format_sign_always#0 -Identical Phi Values (dword) printf_ulong::uvalue#1 (dword) printf_ulong::uvalue#0 -Identical Phi Values (byte) printf_ulong::format_radix#1 (byte) printf_ulong::format_radix#0 -Identical Phi Values (byte) printf_ulong::format_min_length#1 (byte) printf_ulong::format_min_length#0 -Identical Phi Values (byte) printf_ulong::format_justify_left#1 (byte) printf_ulong::format_justify_left#0 -Identical Phi Values (byte) printf_ulong::format_zero_padding#1 (byte) printf_ulong::format_zero_padding#0 -Identical Phi Values (byte) printf_ulong::format_upper_case#1 (byte) printf_ulong::format_upper_case#0 -Identical Phi Values (byte) printf_uchar::format_sign_always#1 (byte) printf_uchar::format_sign_always#0 -Identical Phi Values (byte) printf_uchar::uvalue#1 (byte) printf_uchar::uvalue#0 -Identical Phi Values (byte) printf_uchar::format_radix#1 (byte) printf_uchar::format_radix#0 -Identical Phi Values (byte) printf_uchar::format_min_length#1 (byte) printf_uchar::format_min_length#0 -Identical Phi Values (byte) printf_uchar::format_justify_left#1 (byte) printf_uchar::format_justify_left#0 -Identical Phi Values (byte) printf_uchar::format_zero_padding#1 (byte) printf_uchar::format_zero_padding#0 -Identical Phi Values (byte) printf_uchar::format_upper_case#1 (byte) printf_uchar::format_upper_case#0 Identical Phi Values (byte) toD0181_return#2 (byte) toD0181_return#0 Identical Phi Values (byte) toD0181_return#3 (byte) toD0181_return#1 Identical Phi Values (byte*) main::cols#2 (byte*) main::cols#5 @@ -4740,180 +2605,76 @@ Identical Phi Values (byte*) main::canvas#2 (byte*) main::canvas#10 Identical Phi Values (byte) main::p0_idx#10 (byte) main::p0_idx#1 Identical Phi Values (byte) main::p1_idx#10 (byte) main::p1_idx#1 Identical Phi Values (byte) main::p2_idx#10 (byte) main::p2_idx#1 -Identical Phi Values (byte) line::sy#1 (byte) line::sy#0 -Identical Phi Values (byte) line::dx#13 (byte) line::dx#0 +Identical Phi Values (byte) line::sy#13 (byte) line::sy#0 +Identical Phi Values (byte) line::dx#12 (byte) line::dx#0 Identical Phi Values (byte) line::dy#12 (byte) line::dy#0 Identical Phi Values (byte) line::y2#11 (byte) line::y2#13 -Identical Phi Values (byte) line::sx#10 (byte) line::sx#0 -Identical Phi Values (byte) line::sx#12 (byte) line::sx#0 -Identical Phi Values (byte) line::dy#10 (byte) line::dy#0 -Identical Phi Values (byte) line::dx#10 (byte) line::dx#0 -Identical Phi Values (byte) line::x2#10 (byte) line::x2#11 +Identical Phi Values (byte) line::sx#11 (byte) line::sx#0 +Identical Phi Values (byte) line::sy#10 (byte) line::sy#0 +Identical Phi Values (byte) line::dx#14 (byte) line::dx#0 +Identical Phi Values (byte) line::dy#15 (byte) line::dy#0 +Identical Phi Values (byte) line::sx#13 (byte) line::sx#0 +Identical Phi Values (byte) line::x2#11 (byte) line::x2#15 +Identical Phi Values (byte) line::sx#14 (byte) line::sx#0 +Identical Phi Values (byte) line::dy#16 (byte) line::dy#0 +Identical Phi Values (byte) line::dx#15 (byte) line::dx#0 +Identical Phi Values (byte) line::x2#10 (byte) line::x2#15 Identical Phi Values (byte) line::sy#11 (byte) line::sy#0 Identical Phi Values (byte*) eorfill::line_column#0 (byte*) eorfill::line_buffer#0 Identical Phi Values (byte*) eorfill::fill_column#0 (byte*) eorfill::canvas#0 Identical Phi Values (byte*) eorfill::line_column#3 (byte*) eorfill::line_column#2 -Identical Phi Values (byte*) eorfill::fill_column#2 (byte*) eorfill::fill_column#5 +Identical Phi Values (byte*) eorfill::fill_column#3 (byte*) eorfill::fill_column#2 Identical Phi Values (byte) eorfill::x#3 (byte) eorfill::x#2 Successful SSA optimization Pass2IdenticalPhiElimination -Identical Phi Values (void*) memset::return#0 (void*) memset::str#7 +Identical Phi Values (void*) memset::return#0 (void*) memset::str#5 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition (bool~) memcpy::$1 [15] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2 -Simple Condition (bool~) memset::$1 [22] if((word) memset::num#6<=(byte) 0) goto memset::@1 -Simple Condition (bool~) memset::$3 [29] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@4 -Simple Condition (bool~) strupr::$1 [36] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -Simple Condition (bool~) strlen::$0 [48] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -Simple Condition (bool~) uctoa::$0 [64] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -Simple Condition (bool~) uctoa::$1 [68] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@2 -Simple Condition (bool~) uctoa::$2 [72] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@3 -Simple Condition (bool~) uctoa::$3 [76] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@4 -Simple Condition (bool~) uctoa::$5 [93] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@11 -Simple Condition (bool~) uctoa_append::$0 [116] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -Simple Condition (bool~) ultoa::$0 [125] if((byte) ultoa::radix#0==(const byte) DECIMAL) goto ultoa::@1 -Simple Condition (bool~) ultoa::$1 [129] if((byte) ultoa::radix#0==(const byte) HEXADECIMAL) goto ultoa::@2 -Simple Condition (bool~) ultoa::$2 [133] if((byte) ultoa::radix#0==(const byte) OCTAL) goto ultoa::@3 -Simple Condition (bool~) ultoa::$3 [137] if((byte) ultoa::radix#0==(const byte) BINARY) goto ultoa::@4 -Simple Condition (bool~) ultoa::$5 [154] if((byte) ultoa::digit#2<(byte~) ultoa::$4) goto ultoa::@11 -Simple Condition (bool~) ultoa_append::$0 [179] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -Simple Condition (bool~) gotoxy::$1 [192] if((byte) gotoxy::y#3<=(byte) $19) goto gotoxy::@1 -Simple Condition (bool~) gotoxy::$3 [195] if((byte) gotoxy::x#3<(byte) $28) goto gotoxy::@2 -Simple Condition (bool~) cputc::$0 [211] if((byte) cputc::c#3==(byte) ' -') goto cputc::@1 -Simple Condition (bool~) cputc::$2 [219] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return -Simple Condition (bool~) cscroll::$1 [234] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return -Simple Condition (bool~) cscroll::$9 [236] if((byte) 0!=(byte) conio_scroll_enable) goto cscroll::@3 -Simple Condition (bool~) cputs::$1 [272] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -Simple Condition (bool~) printf_padding::$0 [287] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 -Simple Condition (bool~) printf_ulong::$5 [294] if((byte) 0!=(byte) printf_ulong::format_sign_always#0) goto printf_ulong::@1 -Simple Condition (bool~) printf_uchar::$5 [315] if((byte) 0!=(byte) printf_uchar::format_sign_always#0) goto printf_uchar::@1 -Simple Condition (bool~) printf_number_buffer::$0 [337] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -Simple Condition (bool~) printf_number_buffer::$20 [351] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -Simple Condition (bool~) printf_number_buffer::$23 [356] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@1 -Simple Condition (bool~) printf_number_buffer::$7 [360] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -Simple Condition (bool~) printf_number_buffer::$12 [370] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -Simple Condition (bool~) main::$7 [425] if((byte) main::y#2<(byte) $10) goto main::@2 -Simple Condition (bool~) main::$8 [439] if((byte) main::x#2<(byte) $10) goto main::@5 -Simple Condition (bool~) main::$23 [449] if((number) 0!=(number) 1) goto main::@8 -Simple Condition (bool~) main::$24 [486] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -Simple Condition (bool~) irq_bottom_2::$2 [573] if((byte) 0!=(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -Simple Condition (bool~) line::$9 [598] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -Simple Condition (bool~) line::$10 [601] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -Simple Condition (bool~) line::$14 [615] if((byte) line::dy#0>=(byte) line::e#1) goto line::@6 -Simple Condition (bool~) line::$16 [618] if((byte) line::y#15!=(byte) line::y2#13) goto line::@5 -Simple Condition (bool~) line::$20 [635] if((byte) line::dx#0>=(byte) line::e1#1) goto line::@9 -Simple Condition (bool~) line::$21 [638] if((byte) line::x#13!=(byte) line::x2#11) goto line::@8 -Simple Condition (bool~) eorfill::$0 [651] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 -Simple Condition (bool~) eorfill::$1 [656] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -Simple Condition (bool~) abs_u8::$2 [667] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -Simple Condition (bool~) sgn_u8::$1 [674] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 +Simple Condition (bool~) memset::$1 [2] if((word) memset::num#4<=(byte) 0) goto memset::@1 +Simple Condition (bool~) memset::$3 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@4 +Simple Condition (bool~) main::$7 [66] if((byte) main::y#2<(byte) $10) goto main::@2 +Simple Condition (bool~) main::$8 [80] if((byte) main::x#2<(byte) $10) goto main::@5 +Simple Condition (bool~) main::$21 [90] if((number) 0!=(number) 1) goto main::@8 +Simple Condition (bool~) main::$22 [127] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 +Simple Condition (bool~) irq_bottom_2::$1 [189] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 +Simple Condition (bool~) line::$9 [225] if((byte) line::sx#0!=(byte) $ff) goto line::@1 +Simple Condition (bool~) line::$10 [228] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 +Simple Condition (bool~) line::$11 [233] if((byte) line::sx#0==(byte) line::sy#0) goto line::@6 +Simple Condition (bool~) line::$21 [240] if((byte) line::dx#0!=(byte) 0) goto line::@11 +Simple Condition (bool~) line::$14 [246] if((byte) line::e#1<=(byte) line::dy#0) goto line::@8 +Simple Condition (bool~) line::$17 [249] if((byte) line::y#10!=(byte) line::y2#13) goto line::@7 +Simple Condition (bool~) line::$23 [269] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@12 +Simple Condition (bool~) line::$25 [278] if((byte) line::x#19!=(byte) line::x2#15) goto line::@12 +Simple Condition (bool~) line::$29 [288] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@15 +Simple Condition (bool~) line::$30 [291] if((byte) line::x#12!=(byte) line::x2#15) goto line::@14 +Simple Condition (bool~) eorfill::$0 [303] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 +Simple Condition (bool~) eorfill::$1 [309] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 +Simple Condition (bool~) abs_u8::$2 [320] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 +Simple Condition (bool~) sgn_u8::$1 [327] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Rewriting && if()-condition to two if()s [3] (bool~) toupper::$2 ← (bool~) toupper::$0 && (bool~) toupper::$1 -Rewriting ! if()-condition to reversed if() [97] (bool~) uctoa::$8 ← ! (bool~) uctoa::$7 -Rewriting || if()-condition to two if()s [96] (bool~) uctoa::$7 ← (byte) uctoa::started#2 || (bool~) uctoa::$6 -Rewriting ! if()-condition to reversed if() [159] (bool~) ultoa::$8 ← ! (bool~) ultoa::$7 -Rewriting || if()-condition to two if()s [158] (bool~) ultoa::$7 ← (byte) ultoa::started#2 || (bool~) ultoa::$6 -Rewriting ! if()-condition to reversed if() [343] (bool~) printf_number_buffer::$5 ← ! (bool~) printf_number_buffer::$4 -Rewriting && if()-condition to two if()s [342] (bool~) printf_number_buffer::$4 ← (bool~) printf_number_buffer::$3 && (signed byte) printf_number_buffer::padding#10 -Rewriting && if()-condition to two if()s [341] (bool~) printf_number_buffer::$3 ← (bool~) printf_number_buffer::$1 && (bool~) printf_number_buffer::$2 -Rewriting ! if()-condition to reversed if() [365] (bool~) printf_number_buffer::$10 ← ! (bool~) printf_number_buffer::$9 -Rewriting && if()-condition to two if()s [364] (bool~) printf_number_buffer::$9 ← (byte) printf_number_buffer::format_zero_padding#10 && (signed byte) printf_number_buffer::padding#10 -Rewriting ! if()-condition to reversed if() [379] (bool~) printf_number_buffer::$17 ← ! (bool~) printf_number_buffer::$16 -Rewriting && if()-condition to two if()s [378] (bool~) printf_number_buffer::$16 ← (bool~) printf_number_buffer::$15 && (signed byte) printf_number_buffer::padding#10 -Rewriting && if()-condition to two if()s [377] (bool~) printf_number_buffer::$15 ← (byte) printf_number_buffer::format_justify_left#10 && (bool~) printf_number_buffer::$14 -Successful SSA optimization Pass2ConditionalAndOrRewriting -Warning! Adding boolean cast to non-boolean condition (byte) uctoa::started#2 -Warning! Adding boolean cast to non-boolean condition (byte) ultoa::started#2 -Warning! Adding boolean cast to non-boolean condition (byte) printf_number_buffer::format_zero_padding#10 -Warning! Adding boolean cast to non-boolean condition (byte) printf_number_buffer::format_justify_left#10 -Warning! Adding boolean cast to non-boolean condition (signed byte) printf_number_buffer::padding#10 -Warning! Adding boolean cast to non-boolean condition (signed byte) printf_number_buffer::padding#10 -Warning! Adding boolean cast to non-boolean condition (signed byte) printf_number_buffer::padding#10 -Constant right-side identified [239] (word) memcpy::num#0 ← (unumber)(number) $19*(number) $28-(number) $28 -Constant right-side identified [244] (word) memcpy::num#1 ← (unumber)(number) $19*(number) $28-(number) $28 -Constant right-side identified [407] (word) memset::num#2 ← (unumber)(number) $28*(number) $19 -Constant right-side identified [412] (word) memset::num#3 ← (unumber)(number) $28*(number) $19 -Constant right-side identified [417] (word) memset::num#4 ← (unumber)(number) $28*(number) $19 +Constant right-side identified [48] (word) memset::num#0 ← (unumber)(number) $28*(number) $19 +Constant right-side identified [53] (word) memset::num#1 ← (unumber)(number) $28*(number) $19 +Constant right-side identified [58] (word) memset::num#2 ← (unumber)(number) $28*(number) $19 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant (const word) strlen::len#0 = 0 -Constant (const byte) uctoa::max_digits#0 = 0 -Constant (const byte*) uctoa::digit_values#0 = (byte*) 0 -Constant (const byte) uctoa::max_digits#1 = 3 -Constant (const byte*) uctoa::digit_values#1 = RADIX_DECIMAL_VALUES_CHAR -Constant (const byte) uctoa::max_digits#2 = 2 -Constant (const byte*) uctoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES_CHAR -Constant (const byte) uctoa::max_digits#3 = 3 -Constant (const byte*) uctoa::digit_values#3 = RADIX_OCTAL_VALUES_CHAR -Constant (const byte) uctoa::max_digits#4 = 8 -Constant (const byte*) uctoa::digit_values#4 = RADIX_BINARY_VALUES_CHAR -Constant (const byte) uctoa::started#0 = 0 -Constant (const byte) uctoa::digit#0 = 0 -Constant (const byte) uctoa::started#1 = 1 -Constant (const byte) uctoa_append::digit#0 = 0 -Constant (const byte) ultoa::max_digits#0 = 0 -Constant (const dword*) ultoa::digit_values#0 = (dword*) 0 -Constant (const byte) ultoa::max_digits#1 = $a -Constant (const dword*) ultoa::digit_values#1 = RADIX_DECIMAL_VALUES_LONG -Constant (const byte) ultoa::max_digits#2 = 8 -Constant (const dword*) ultoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES_LONG -Constant (const byte) ultoa::max_digits#3 = $b -Constant (const dword*) ultoa::digit_values#3 = RADIX_OCTAL_VALUES_LONG -Constant (const byte) ultoa::max_digits#4 = $20 -Constant (const dword*) ultoa::digit_values#4 = RADIX_BINARY_VALUES_LONG -Constant (const byte) ultoa::started#0 = 0 -Constant (const byte) ultoa::digit#0 = 0 -Constant (const byte) ultoa::started#1 = 1 -Constant (const byte) ultoa_append::digit#0 = 0 -Constant (const byte) gotoxy::y#0 = 0 -Constant (const byte) gotoxy::x#0 = 0 -Constant (const void*) memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant (const void*) memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 -Constant (const word) memcpy::num#0 = (unumber)$19*$28-$28 -Constant (const void*) memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant (const void*) memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 -Constant (const word) memcpy::num#1 = (unumber)$19*$28-$28 -Constant (const void*) memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 -Constant (const byte) memset::c#0 = ' ' -Constant (const word) memset::num#0 = $28 -Constant (const void*) memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 -Constant (const word) memset::num#1 = $28 -Constant (const byte) gotoxy::x#1 = 0 -Constant (const byte) gotoxy::y#1 = 0 -Constant (const byte) cputs::c#0 = 0 -Constant (const byte) printf_padding::i#0 = 0 -Constant (const byte) printf_ulong::$1 = '+' -Constant (const byte) printf_ulong::$0 = 0 -Constant (const byte*) ultoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant (const byte*) printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant (const byte) printf_uchar::$1 = '+' -Constant (const byte) printf_uchar::$0 = 0 -Constant (const byte*) uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant (const byte*) printf_number_buffer::buffer_digits#1 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant (const signed byte) printf_number_buffer::padding#0 = 0 -Constant (const signed byte) printf_number_buffer::padding#2 = 0 -Constant (const byte) printf_padding::pad#0 = ' ' -Constant (const byte) printf_padding::pad#1 = '0' -Constant (const byte) printf_padding::pad#2 = ' ' Constant (const byte*) toD0181_screen#0 = SCREEN Constant (const byte*) toD0181_gfx#0 = CANVAS2 -Constant (const void*) memset::str#2 = (void*)CONSOLE -Constant (const byte) memset::c#2 = ' ' +Constant (const void*) memset::str#0 = (void*)CONSOLE +Constant (const byte) memset::c#0 = ' ' +Constant (const word) memset::num#0 = (unumber)$28*$19 +Constant (const void*) memset::str#1 = (void*)SCREEN +Constant (const byte) memset::c#1 = 0 +Constant (const word) memset::num#1 = (unumber)$28*$19 +Constant (const void*) memset::str#2 = (void*)COLS +Constant (const byte) memset::c#2 = BLACK Constant (const word) memset::num#2 = (unumber)$28*$19 -Constant (const void*) memset::str#3 = (void*)SCREEN -Constant (const byte) memset::c#3 = 0 -Constant (const word) memset::num#3 = (unumber)$28*$19 -Constant (const void*) memset::str#4 = (void*)COLS -Constant (const byte) memset::c#4 = BLACK -Constant (const word) memset::num#4 = (unumber)$28*$19 Constant (const byte*) main::screen#0 = SCREEN+$c Constant (const byte*) main::cols#0 = COLS+$c Constant (const byte) main::y#0 = 0 Constant (const byte) main::x#0 = 0 Constant (const byte) textcolor::color#0 = WHITE -Constant (const byte) main::p0_idx#0 = $f0 +Constant (const byte) main::p0_idx#0 = $b5 Constant (const byte*) main::canvas#0 = CANVAS1 -Constant (const void*) memset::str#5 = (void*)LINE_BUFFER -Constant (const byte) memset::c#5 = 0 -Constant (const word) memset::num#5 = $800 +Constant (const void*) memset::str#3 = (void*)LINE_BUFFER +Constant (const byte) memset::c#3 = 0 +Constant (const word) memset::num#3 = $800 Constant (const byte*) line::canvas#0 = LINE_BUFFER Constant (const byte*) line::canvas#1 = LINE_BUFFER Constant (const byte*) line::canvas#2 = LINE_BUFFER @@ -4922,243 +2683,79 @@ Constant (const byte*) main::toD0181_screen#0 = SCREEN Constant (const byte*) main::toD0181_gfx#0 = CANVAS1 Constant (const byte*) main::toD0182_screen#0 = SCREEN Constant (const byte*) main::toD0182_gfx#0 = CANVAS2 -Constant (const byte) gotoxy::x#2 = 0 -Constant (const byte) gotoxy::y#2 = $18 -Constant (const to_nomodify byte*) cputs::s#2 = main::s -Constant (const byte) printf_uchar::format_min_length#0 = 2 -Constant (const byte) printf_uchar::format_justify_left#0 = 0 -Constant (const byte) printf_uchar::format_sign_always#0 = 0 -Constant (const byte) printf_uchar::format_zero_padding#0 = 1 -Constant (const byte) printf_uchar::format_upper_case#0 = 0 -Constant (const byte) printf_uchar::format_radix#0 = HEXADECIMAL -Constant (const to_nomodify byte*) cputs::s#3 = main::s1 -Constant (const byte) printf_ulong::format_min_length#0 = 6 -Constant (const byte) printf_ulong::format_justify_left#0 = 0 -Constant (const byte) printf_ulong::format_sign_always#0 = 0 -Constant (const byte) printf_ulong::format_zero_padding#0 = 0 -Constant (const byte) printf_ulong::format_upper_case#0 = 0 -Constant (const byte) printf_ulong::format_radix#0 = DECIMAL Constant (const byte*) irq_bottom_1::toD0181_screen#0 = CONSOLE Constant (const byte*) irq_bottom_1::toD0181_gfx#0 = PETSCII +Constant (const byte*) irq_bottom_2::toD0181_screen#0 = SCREEN +Constant (const byte*) irq_bottom_2::toD0181_gfx#0 = LINE_BUFFER Constant (const byte) eorfill::x#0 = 0 Constant (const byte) eorfill::y#0 = 1 Constant (const byte) sgn_u8::return#2 = -1 Constant (const byte) sgn_u8::return#3 = 1 -Constant (const byte) conio_scroll_enable = 1 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte) ultoa::radix#0 = printf_ulong::format_radix#0 -Constant (const byte) printf_number_buffer::format_min_length#0 = printf_ulong::format_min_length#0 -Constant (const byte) printf_number_buffer::format_justify_left#0 = printf_ulong::format_justify_left#0 -Constant (const byte) printf_number_buffer::format_sign_always#0 = printf_ulong::format_sign_always#0 -Constant (const byte) printf_number_buffer::format_zero_padding#0 = printf_ulong::format_zero_padding#0 -Constant (const byte) printf_number_buffer::format_upper_case#0 = printf_ulong::format_upper_case#0 -Constant (const byte) printf_number_buffer::format_radix#0 = printf_ulong::format_radix#0 -Constant (const byte) uctoa::radix#0 = printf_uchar::format_radix#0 -Constant (const byte) printf_number_buffer::format_min_length#1 = printf_uchar::format_min_length#0 -Constant (const byte) printf_number_buffer::format_justify_left#1 = printf_uchar::format_justify_left#0 -Constant (const byte) printf_number_buffer::format_sign_always#1 = printf_uchar::format_sign_always#0 -Constant (const byte) printf_number_buffer::format_zero_padding#1 = printf_uchar::format_zero_padding#0 -Constant (const byte) printf_number_buffer::format_upper_case#1 = printf_uchar::format_upper_case#0 -Constant (const byte) printf_number_buffer::format_radix#1 = printf_uchar::format_radix#0 Constant (const word) toD0181_$7 = (word)toD0181_screen#0 Constant (const word) main::toD0181_$7 = (word)main::toD0181_screen#0 Constant (const word) main::toD0182_$7 = (word)main::toD0182_screen#0 Constant (const word) irq_bottom_1::toD0181_$7 = (word)irq_bottom_1::toD0181_screen#0 +Constant (const word) irq_bottom_2::toD0181_$7 = (word)irq_bottom_2::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)toD0181_gfx#0 in [394] (byte~) toD0181_$3 ← > (word)(const byte*) toD0181_gfx#0 -Constant value identified (word)main::toD0181_gfx#0 in [499] (byte~) main::toD0181_$3 ← > (word)(const byte*) main::toD0181_gfx#0 -Constant value identified (word)main::toD0182_gfx#0 in [509] (byte~) main::toD0182_$3 ← > (word)(const byte*) main::toD0182_gfx#0 -Constant value identified (word)irq_bottom_1::toD0181_gfx#0 in [559] (byte~) irq_bottom_1::toD0181_$3 ← > (word)(const byte*) irq_bottom_1::toD0181_gfx#0 +Constant value identified (word)toD0181_gfx#0 in [35] (byte~) toD0181_$3 ← > (word)(const byte*) toD0181_gfx#0 +Constant value identified (word)main::toD0181_gfx#0 in [140] (byte~) main::toD0181_$3 ← > (word)(const byte*) main::toD0181_gfx#0 +Constant value identified (word)main::toD0182_gfx#0 in [150] (byte~) main::toD0182_$3 ← > (word)(const byte*) main::toD0182_gfx#0 +Constant value identified (word)irq_bottom_1::toD0181_gfx#0 in [175] (byte~) irq_bottom_1::toD0181_$3 ← > (word)(const byte*) irq_bottom_1::toD0181_gfx#0 +Constant value identified (word)irq_bottom_2::toD0181_gfx#0 in [197] (byte~) irq_bottom_2::toD0181_$3 ← > (word)(const byte*) irq_bottom_2::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues -if() condition always false - eliminating [64] if((const byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -if() condition always true - replacing block destination [68] if((const byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@2 -if() condition always false - eliminating [72] if((const byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@3 -if() condition always false - eliminating [76] if((const byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@4 -if() condition always true - replacing block destination [125] if((const byte) ultoa::radix#0==(const byte) DECIMAL) goto ultoa::@1 -if() condition always false - eliminating [129] if((const byte) ultoa::radix#0==(const byte) HEXADECIMAL) goto ultoa::@2 -if() condition always false - eliminating [133] if((const byte) ultoa::radix#0==(const byte) OCTAL) goto ultoa::@3 -if() condition always false - eliminating [137] if((const byte) ultoa::radix#0==(const byte) BINARY) goto ultoa::@4 -if() condition always true - replacing block destination [236] if((byte) 0!=(const byte) conio_scroll_enable) goto cscroll::@3 -if() condition always false - eliminating [294] if((byte) 0!=(const byte) printf_ulong::format_sign_always#0) goto printf_ulong::@1 -if() condition always false - eliminating [315] if((byte) 0!=(const byte) printf_uchar::format_sign_always#0) goto printf_uchar::@1 -if() condition always true - replacing block destination [449] if((number) 0!=(number) 1) goto main::@8 +if() condition always true - replacing block destination [90] if((number) 0!=(number) 1) goto main::@8 Successful SSA optimization Pass2ConstantIfs -Rewriting conditional comparison [192] if((byte) gotoxy::y#3<=(byte) $19) goto gotoxy::@1 -Simplifying constant evaluating to zero (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES in [54] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying constant evaluating to zero (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS in [55] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying constant evaluating to zero (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES in [15] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying constant evaluating to zero (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS in [16] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_STOP|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero LINE_BUFFER in -Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [55] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (byte) 0|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [57] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [58] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying expression containing zero (byte*)&printf_buffer in [298] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_ulong::$2 -Simplifying expression containing zero (byte*)&printf_buffer in [303] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) -Simplifying expression containing zero (byte*)&printf_buffer in [319] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_uchar::$2 -Simplifying expression containing zero (byte*)&printf_buffer in [324] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) -Simplifying expression containing zero eorfill::line_column#2 in [652] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2 + (byte) 0) +Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [16] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (byte) 0|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [18] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [19] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS|(const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying expression containing zero eorfill::line_column#2 in [304] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2 + (byte) 0) +Simplifying expression containing zero eorfill::fill_column#2 in [305] *((byte*) eorfill::fill_column#2 + (byte) 0) ← (byte) eorfill::eor#0 Successful SSA optimization PassNSimplifyExpressionWithZero -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [58] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [19] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable (void*) memcpy::return#2 and assignment [163] (void*) memcpy::return#2 ← (void*) memcpy::destination#2 -Eliminating unused variable (void*) memcpy::return#3 and assignment [165] (void*) memcpy::return#3 ← (void*) memcpy::destination#2 -Eliminating unused variable (void*) memset::return#2 and assignment [167] (void*) memset::return#2 ← (void*) memset::str#7 -Eliminating unused variable (void*) memset::return#3 and assignment [170] (void*) memset::return#3 ← (void*) memset::str#7 -Eliminating unused variable (byte*) strupr::return#2 and assignment [247] (byte*) strupr::return#2 ← (byte*) strupr::str#0 -Eliminating unused variable (void*) memset::return#4 and assignment [264] (void*) memset::return#4 ← (void*) memset::str#7 -Eliminating unused variable (void*) memset::return#5 and assignment [266] (void*) memset::return#5 ← (void*) memset::str#7 -Eliminating unused variable (void*) memset::return#6 and assignment [268] (void*) memset::return#6 ← (void*) memset::str#7 -Eliminating unused variable (byte) textcolor::return#2 and assignment [275] (byte) textcolor::return#2 ← (byte) textcolor::return#0 -Eliminating unused variable (void*) memset::return#7 and assignment [290] (void*) memset::return#7 ← (void*) memset::str#7 +Eliminating unused variable (void*) memset::return#2 and assignment [38] (void*) memset::return#2 ← (void*) memset::str#5 +Eliminating unused variable (void*) memset::return#3 and assignment [40] (void*) memset::return#3 ← (void*) memset::str#5 +Eliminating unused variable (void*) memset::return#4 and assignment [42] (void*) memset::return#4 ← (void*) memset::str#5 +Eliminating unused variable (byte) textcolor::return#2 and assignment [49] (byte) textcolor::return#2 ← (byte) textcolor::return#0 +Eliminating unused variable (void*) memset::return#5 and assignment [64] (void*) memset::return#5 ← (void*) memset::str#5 +Eliminating unused variable (dword) clock::return#2 and assignment [114] (dword) clock::return#2 ← (dword) clock::return#0 Eliminating unused constant (const nomodify byte) CIA_TIMER_CONTROL_STOP Eliminating unused constant (const nomodify byte) CIA_TIMER_CONTROL_CONTINUOUS Eliminating unused constant (const nomodify byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES -Eliminating unused constant (const byte) BINARY -Eliminating unused constant (const byte) OCTAL -Eliminating unused constant (const byte) uctoa::max_digits#0 -Eliminating unused constant (const byte*) uctoa::digit_values#0 -Eliminating unused constant (const byte) uctoa::radix#0 -Eliminating unused constant (const byte) ultoa::max_digits#0 -Eliminating unused constant (const dword*) ultoa::digit_values#0 -Eliminating unused constant (const byte) ultoa::radix#0 -Eliminating unused constant (const byte) cputs::c#0 -Eliminating unused constant (const byte) printf_number_buffer::format_sign_always#0 -Eliminating unused constant (const byte) printf_number_buffer::format_radix#0 -Eliminating unused constant (const byte) printf_number_buffer::format_sign_always#1 -Eliminating unused constant (const byte) printf_number_buffer::format_radix#1 Eliminating unused constant (const byte*) line::canvas#0 Eliminating unused constant (const byte*) line::canvas#1 Eliminating unused constant (const byte*) line::canvas#2 -Eliminating unused constant (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN -Eliminating unused constant (const byte) conio_scroll_enable Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused variable (byte) textcolor::return#0 and assignment [182] (byte) textcolor::return#0 ← (byte) conio_textcolor -Eliminating unused constant (const byte) printf_ulong::format_sign_always#0 -Eliminating unused constant (const byte) printf_ulong::format_radix#0 -Eliminating unused constant (const byte) printf_uchar::format_sign_always#0 -Eliminating unused constant (const byte) printf_uchar::format_radix#0 +Eliminating unused variable (dword) clock::return#0 and assignment [10] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) +Eliminating unused variable (byte) textcolor::return#0 and assignment [19] (byte) textcolor::return#0 ← (byte) conio_textcolor Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused constant (const byte) DECIMAL -Eliminating unused constant (const byte) HEXADECIMAL +Eliminating unused variable (byte) conio_textcolor and assignment [17] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT +Eliminating unused variable conio_textcolor(null) and assignment [18] conio_textcolor(null) ← (const byte) textcolor::color#0 +Successful SSA optimization PassNEliminateUnusedVars +Eliminating unused constant (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT +Eliminating unused constant (const byte) textcolor::color#0 Successful SSA optimization PassNEliminateUnusedVars -Eliminating variable (byte*) uctoa::buffer#0 from unused block uctoa::@9 -Eliminating variable (byte*) uctoa::buffer#1 from unused block uctoa::@9 -Eliminating variable (byte*) uctoa::buffer#2 from unused block uctoa::@9 -Eliminating variable (byte*) ultoa::buffer#0 from unused block ultoa::@9 -Eliminating variable (byte*) ultoa::buffer#1 from unused block ultoa::@9 -Eliminating variable (byte*) ultoa::buffer#2 from unused block ultoa::@9 -Removing PHI-reference to removed block (uctoa::@1) in block uctoa::@5 -Removing PHI-reference to removed block (uctoa::@1) in block uctoa::@5 -Removing unused block uctoa::@1 -Removing unused block uctoa::@7 -Removing PHI-reference to removed block (uctoa::@3) in block uctoa::@5 -Removing PHI-reference to removed block (uctoa::@3) in block uctoa::@5 -Removing unused block uctoa::@3 -Removing unused block uctoa::@8 -Removing PHI-reference to removed block (uctoa::@4) in block uctoa::@5 -Removing PHI-reference to removed block (uctoa::@4) in block uctoa::@5 -Removing unused block uctoa::@4 -Removing unused block uctoa::@9 -Removing unused block ultoa::@6 -Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 -Removing unused block ultoa::@2 -Removing unused block ultoa::@7 -Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 -Removing unused block ultoa::@3 -Removing unused block ultoa::@8 -Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 -Removing unused block ultoa::@4 -Removing unused block ultoa::@9 -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 -Removing PHI-reference to removed block (printf_ulong::@1) in block printf_ulong::@3 -Removing unused block printf_ulong::@1 -Removing PHI-reference to removed block (printf_uchar::@1) in block printf_uchar::@3 -Removing unused block printf_uchar::@1 Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks -Adding number conversion cast (unumber) 0 in (bool~) uctoa::$11 ← (number) 0 != (byte) uctoa::started#2 -Adding number conversion cast (unumber) 0 in (bool~) ultoa::$12 ← (number) 0 != (byte) ultoa::started#2 -Adding number conversion cast (unumber) $19+1 in if((byte) gotoxy::y#3<(byte) $19+(number) 1) goto gotoxy::@1 -Adding number conversion cast (unumber) 1 in if((byte) gotoxy::y#3<(unumber)(byte) $19+(number) 1) goto gotoxy::@1 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$33 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#10 -Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$34 ← (number) 0 != (byte) printf_number_buffer::format_justify_left#10 -Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$35 ← (number) 0 != (signed byte) printf_number_buffer::padding#10 -Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$36 ← (number) 0 != (signed byte) printf_number_buffer::padding#10 -Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$37 ← (number) 0 != (signed byte) printf_number_buffer::padding#10 -Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast (byte) $19+(unumber)(number) 1 -Simplifying constant integer cast 1 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Simplifying constant integer cast 0 -Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Successful SSA optimization PassNFinalizeNumberTypeConversions -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#1 $0 canvas_show_memory -Identical Phi Values (byte) uctoa::max_digits#7 (const byte) uctoa::max_digits#2 -Identical Phi Values (byte*) uctoa::digit_values#8 (const byte*) uctoa::digit_values#2 -Identical Phi Values (byte) ultoa::max_digits#7 (const byte) ultoa::max_digits#1 -Identical Phi Values (dword*) ultoa::digit_values#8 (const dword*) ultoa::digit_values#1 -Identical Phi Values (byte) gotoxy::y#3 (const byte) gotoxy::y#2 -Identical Phi Values (byte) gotoxy::x#3 (const byte) gotoxy::x#2 -Identical Phi Values (byte~) printf_ulong::$2 (const byte) printf_ulong::$0 -Identical Phi Values (byte~) printf_uchar::$2 (const byte) printf_uchar::$0 -Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition (bool~) toupper::$0 [2] if((byte) toupper::ch#0>=(byte) 'a') goto toupper::@3 -Simple Condition (bool~) uctoa::$11 [57] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@14 -Simple Condition (bool~) ultoa::$12 [85] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@14 -Simple Condition (bool~) printf_number_buffer::$1 [198] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@23 -Simple Condition (bool~) printf_number_buffer::$33 [214] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 -Simple Condition (bool~) printf_number_buffer::$34 [224] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@26 -Simple Condition (bool~) toupper::$1 [441] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -Simple Condition (bool~) uctoa::$6 [442] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@14 -Simple Condition (bool~) ultoa::$6 [443] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@14 -Simple Condition (bool~) printf_number_buffer::$35 [445] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -Simple Condition (bool~) printf_number_buffer::$2 [446] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@22 -Simple Condition (bool~) printf_number_buffer::$36 [448] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -Simple Condition (bool~) printf_number_buffer::$37 [450] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -Simple Condition (bool~) printf_number_buffer::$14 [451] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@25 -Successful SSA optimization Pass2ConditionalJumpSimplification -Negating conditional jump and destination [2] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@2 -Negating conditional jump and destination [198] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [214] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -Negating conditional jump and destination [224] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -Negating conditional jump and destination [446] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [451] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -Successful SSA optimization Pass2ConditionalJumpSequenceImprovement -Constant right-side identified [52] (byte~) uctoa::$4 ← (const byte) uctoa::max_digits#2 - (byte) 1 -Constant right-side identified [79] (byte~) ultoa::$4 ← (const byte) ultoa::max_digits#1 - (byte) 1 -Constant right-side identified [230] (word~) toD0181_$0 ← (const word) toD0181_$7 & (word) $3fff -Constant right-side identified [233] (byte~) toD0181_$3 ← > (word)(const byte*) toD0181_gfx#0 -Constant right-side identified [251] (byte) main::p1_idx#0 ← (const byte) main::p0_idx#0 + (byte) $f -Constant right-side identified [252] (byte) main::p2_idx#0 ← (const byte) main::p0_idx#0 + (byte) $aa -Constant right-side identified [296] (word~) main::toD0181_$0 ← (const word) main::toD0181_$7 & (word) $3fff -Constant right-side identified [299] (byte~) main::toD0181_$3 ← > (word)(const byte*) main::toD0181_gfx#0 -Constant right-side identified [303] (word~) main::toD0182_$0 ← (const word) main::toD0182_$7 & (word) $3fff -Constant right-side identified [306] (byte~) main::toD0182_$3 ← > (word)(const byte*) main::toD0182_gfx#0 -Constant right-side identified [333] (word~) irq_bottom_1::toD0181_$0 ← (const word) irq_bottom_1::toD0181_$7 & (word) $3fff -Constant right-side identified [336] (byte~) irq_bottom_1::toD0181_$3 ← > (word)(const byte*) irq_bottom_1::toD0181_gfx#0 +Constant right-side identified [21] (word~) toD0181_$0 ← (const word) toD0181_$7 & (word) $3fff +Constant right-side identified [24] (byte~) toD0181_$3 ← > (word)(const byte*) toD0181_gfx#0 +Constant right-side identified [42] (byte) main::p1_idx#0 ← (const byte) main::p0_idx#0 + (byte) $f +Constant right-side identified [43] (byte) main::p2_idx#0 ← (const byte) main::p0_idx#0 + (byte) $aa +Constant right-side identified [87] (word~) main::toD0181_$0 ← (const word) main::toD0181_$7 & (word) $3fff +Constant right-side identified [90] (byte~) main::toD0181_$3 ← > (word)(const byte*) main::toD0181_gfx#0 +Constant right-side identified [94] (word~) main::toD0182_$0 ← (const word) main::toD0182_$7 & (word) $3fff +Constant right-side identified [97] (byte~) main::toD0182_$3 ← > (word)(const byte*) main::toD0182_gfx#0 +Constant right-side identified [114] (word~) irq_bottom_1::toD0181_$0 ← (const word) irq_bottom_1::toD0181_$7 & (word) $3fff +Constant right-side identified [117] (byte~) irq_bottom_1::toD0181_$3 ← > (word)(const byte*) irq_bottom_1::toD0181_gfx#0 +Constant right-side identified [132] (word~) irq_bottom_2::toD0181_$0 ← (const word) irq_bottom_2::toD0181_$7 & (word) $3fff +Constant right-side identified [135] (byte~) irq_bottom_2::toD0181_$3 ← > (word)(const byte*) irq_bottom_2::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant (const byte) uctoa::$4 = uctoa::max_digits#2-1 -Constant (const byte) ultoa::$4 = ultoa::max_digits#1-1 Constant (const word) toD0181_$0 = toD0181_$7&$3fff Constant (const byte) toD0181_$3 = >(word)toD0181_gfx#0 Constant (const byte) main::p1_idx#0 = main::p0_idx#0+$f @@ -5169,56 +2766,21 @@ Constant (const word) main::toD0182_$0 = main::toD0182_$7&$3fff Constant (const byte) main::toD0182_$3 = >(word)main::toD0182_gfx#0 Constant (const word) irq_bottom_1::toD0181_$0 = irq_bottom_1::toD0181_$7&$3fff Constant (const byte) irq_bottom_1::toD0181_$3 = >(word)irq_bottom_1::toD0181_gfx#0 +Constant (const word) irq_bottom_2::toD0181_$0 = irq_bottom_2::toD0181_$7&$3fff +Constant (const byte) irq_bottom_2::toD0181_$3 = >(word)irq_bottom_2::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [111] if((const byte) gotoxy::y#2<(byte) $19+(byte) 1) goto gotoxy::@1 -if() condition always true - replacing block destination [113] if((const byte) gotoxy::x#2<(byte) $28) goto gotoxy::@2 -Successful SSA optimization Pass2ConstantIfs -Eliminating unused constant (const byte) uctoa::max_digits#1 -Eliminating unused constant (const byte*) uctoa::digit_values#1 -Eliminating unused constant (const byte) uctoa::max_digits#3 -Eliminating unused constant (const byte*) uctoa::digit_values#3 -Eliminating unused constant (const byte) uctoa::max_digits#4 -Eliminating unused constant (const byte*) uctoa::digit_values#4 -Eliminating unused constant (const byte) ultoa::max_digits#2 -Eliminating unused constant (const dword*) ultoa::digit_values#2 -Eliminating unused constant (const byte) ultoa::max_digits#3 -Eliminating unused constant (const dword*) ultoa::digit_values#3 -Eliminating unused constant (const byte) ultoa::max_digits#4 -Eliminating unused constant (const dword*) ultoa::digit_values#4 -Eliminating unused constant (const byte) gotoxy::x#1 -Eliminating unused constant (const byte) gotoxy::y#1 -Eliminating unused constant (const byte) printf_ulong::$1 -Eliminating unused constant (const byte) printf_uchar::$1 -Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused constant (const byte*) RADIX_BINARY_VALUES_CHAR -Eliminating unused constant (const byte*) RADIX_OCTAL_VALUES_CHAR -Eliminating unused constant (const byte*) RADIX_DECIMAL_VALUES_CHAR -Eliminating unused constant (const dword*) RADIX_BINARY_VALUES_LONG -Eliminating unused constant (const dword*) RADIX_OCTAL_VALUES_LONG -Eliminating unused constant (const dword*) RADIX_HEXADECIMAL_VALUES_LONG -Successful SSA optimization PassNEliminateUnusedVars -Removing PHI-reference to removed block (gotoxy::@3) in block gotoxy::@1 -Removing unused block gotoxy::@3 -Removing PHI-reference to removed block (gotoxy::@4) in block gotoxy::@2 -Removing unused block gotoxy::@4 -Successful SSA optimization Pass2EliminateUnusedBlocks -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#1 $0 canvas_show_memory -Identical Phi Values (byte) gotoxy::y#4 (const byte) gotoxy::y#2 -Identical Phi Values (byte) gotoxy::x#4 (const byte) gotoxy::x#2 -Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [104] (word~) gotoxy::$8 ← (word)(const byte) gotoxy::y#2 -Constant right-side identified [210] (word~) toD0181_$1 ← (const word) toD0181_$0 * (byte) 4 -Constant right-side identified [212] (byte~) toD0181_$4 ← (const byte) toD0181_$3 / (byte) 4 -Constant right-side identified [272] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 * (byte) 4 -Constant right-side identified [274] (byte~) main::toD0181_$4 ← (const byte) main::toD0181_$3 / (byte) 4 -Constant right-side identified [277] (word~) main::toD0182_$1 ← (const word) main::toD0182_$0 * (byte) 4 -Constant right-side identified [279] (byte~) main::toD0182_$4 ← (const byte) main::toD0182_$3 / (byte) 4 -Constant right-side identified [305] (word~) irq_bottom_1::toD0181_$1 ← (const word) irq_bottom_1::toD0181_$0 * (byte) 4 -Constant right-side identified [307] (byte~) irq_bottom_1::toD0181_$4 ← (const byte) irq_bottom_1::toD0181_$3 / (byte) 4 +Constant right-side identified [21] (word~) toD0181_$1 ← (const word) toD0181_$0 * (byte) 4 +Constant right-side identified [23] (byte~) toD0181_$4 ← (const byte) toD0181_$3 / (byte) 4 +Constant right-side identified [83] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 * (byte) 4 +Constant right-side identified [85] (byte~) main::toD0181_$4 ← (const byte) main::toD0181_$3 / (byte) 4 +Constant right-side identified [88] (word~) main::toD0182_$1 ← (const word) main::toD0182_$0 * (byte) 4 +Constant right-side identified [90] (byte~) main::toD0182_$4 ← (const byte) main::toD0182_$3 / (byte) 4 +Constant right-side identified [106] (word~) irq_bottom_1::toD0181_$1 ← (const word) irq_bottom_1::toD0181_$0 * (byte) 4 +Constant right-side identified [108] (byte~) irq_bottom_1::toD0181_$4 ← (const byte) irq_bottom_1::toD0181_$3 / (byte) 4 +Constant right-side identified [122] (word~) irq_bottom_2::toD0181_$1 ← (const word) irq_bottom_2::toD0181_$0 * (byte) 4 +Constant right-side identified [124] (byte~) irq_bottom_2::toD0181_$4 ← (const byte) irq_bottom_2::toD0181_$3 / (byte) 4 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant (const word) gotoxy::$8 = (word)gotoxy::y#2 Constant (const word) toD0181_$1 = toD0181_$0*4 Constant (const byte) toD0181_$4 = toD0181_$3/4 Constant (const word) main::toD0181_$1 = main::toD0181_$0*4 @@ -5227,31 +2789,21 @@ Constant (const word) main::toD0182_$1 = main::toD0182_$0*4 Constant (const byte) main::toD0182_$4 = main::toD0182_$3/4 Constant (const word) irq_bottom_1::toD0181_$1 = irq_bottom_1::toD0181_$0*4 Constant (const byte) irq_bottom_1::toD0181_$4 = irq_bottom_1::toD0181_$3/4 +Constant (const word) irq_bottom_2::toD0181_$1 = irq_bottom_2::toD0181_$0*4 +Constant (const byte) irq_bottom_2::toD0181_$4 = irq_bottom_2::toD0181_$3/4 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero gotoxy::$4 in [106] (word) gotoxy::offset#0 ← (word~) gotoxy::$4 + (const byte) gotoxy::x#2 -Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused constant (const byte) gotoxy::y#0 -Eliminating unused constant (const byte) gotoxy::x#0 -Successful SSA optimization PassNEliminateUnusedVars -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#1 $0 canvas_show_memory -Alias gotoxy::offset#0 = gotoxy::$4 -Successful SSA optimization Pass2AliasElimination -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 -Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#1 $0 canvas_show_memory -Constant right-side identified [102] (word) gotoxy::offset#0 ← (const word) gotoxy::$8 * (byte) $28 -Constant right-side identified [206] (byte~) toD0181_$2 ← > (const word) toD0181_$1 -Constant right-side identified [207] (byte~) toD0181_$5 ← (const byte) toD0181_$4 & (byte) $f -Constant right-side identified [266] (byte~) main::toD0181_$2 ← > (const word) main::toD0181_$1 -Constant right-side identified [267] (byte~) main::toD0181_$5 ← (const byte) main::toD0181_$4 & (byte) $f -Constant right-side identified [269] (byte~) main::toD0182_$2 ← > (const word) main::toD0182_$1 -Constant right-side identified [270] (byte~) main::toD0182_$5 ← (const byte) main::toD0182_$4 & (byte) $f -Constant right-side identified [295] (byte~) irq_bottom_1::toD0181_$2 ← > (const word) irq_bottom_1::toD0181_$1 -Constant right-side identified [296] (byte~) irq_bottom_1::toD0181_$5 ← (const byte) irq_bottom_1::toD0181_$4 & (byte) $f +Constant right-side identified [21] (byte~) toD0181_$2 ← > (const word) toD0181_$1 +Constant right-side identified [22] (byte~) toD0181_$5 ← (const byte) toD0181_$4 & (byte) $f +Constant right-side identified [81] (byte~) main::toD0181_$2 ← > (const word) main::toD0181_$1 +Constant right-side identified [82] (byte~) main::toD0181_$5 ← (const byte) main::toD0181_$4 & (byte) $f +Constant right-side identified [84] (byte~) main::toD0182_$2 ← > (const word) main::toD0182_$1 +Constant right-side identified [85] (byte~) main::toD0182_$5 ← (const byte) main::toD0182_$4 & (byte) $f +Constant right-side identified [100] (byte~) irq_bottom_1::toD0181_$2 ← > (const word) irq_bottom_1::toD0181_$1 +Constant right-side identified [101] (byte~) irq_bottom_1::toD0181_$5 ← (const byte) irq_bottom_1::toD0181_$4 & (byte) $f +Constant right-side identified [114] (byte~) irq_bottom_2::toD0181_$2 ← > (const word) irq_bottom_2::toD0181_$1 +Constant right-side identified [115] (byte~) irq_bottom_2::toD0181_$5 ← (const byte) irq_bottom_2::toD0181_$4 & (byte) $f Successful SSA optimization Pass2ConstantRValueConsolidation -Constant (const word) gotoxy::offset#0 = gotoxy::$8*$28 Constant (const byte) toD0181_$2 = >toD0181_$1 Constant (const byte) toD0181_$5 = toD0181_$4&$f Constant (const byte) main::toD0181_$2 = >main::toD0181_$1 @@ -5260,23 +2812,21 @@ Constant (const byte) main::toD0182_$2 = >main::toD0182_$1 Constant (const byte) main::toD0182_$5 = main::toD0182_$4&$f Constant (const byte) irq_bottom_1::toD0181_$2 = >irq_bottom_1::toD0181_$1 Constant (const byte) irq_bottom_1::toD0181_$5 = irq_bottom_1::toD0181_$4&$f +Constant (const byte) irq_bottom_2::toD0181_$2 = >irq_bottom_2::toD0181_$1 +Constant (const byte) irq_bottom_2::toD0181_$5 = irq_bottom_2::toD0181_$4&$f Successful SSA optimization Pass2ConstantIdentification -Alias candidate removed (volatile)conio_cursor_text = gotoxy::$6 cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = gotoxy::$7 cputln::$2 cscroll::$8 Alias candidate removed (volatile)toD0181_return#0 = toD0181_$6 toD0181_return#1 $0 canvas_show_memory -Constant right-side identified [102] (byte*~) gotoxy::$6 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (const word) gotoxy::offset#0 -Constant right-side identified [104] (byte*~) gotoxy::$7 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (const word) gotoxy::offset#0 -Constant right-side identified [205] (byte~) toD0181_$6 ← (const byte) toD0181_$2 | (const byte) toD0181_$5 -Constant right-side identified [263] (byte) main::toD0181_return#0 ← (const byte) main::toD0181_$2 | (const byte) main::toD0181_$5 -Constant right-side identified [264] (byte) main::toD0182_return#0 ← (const byte) main::toD0182_$2 | (const byte) main::toD0182_$5 -Constant right-side identified [288] (byte) irq_bottom_1::toD0181_return#0 ← (const byte) irq_bottom_1::toD0181_$2 | (const byte) irq_bottom_1::toD0181_$5 +Constant right-side identified [21] (byte~) toD0181_$6 ← (const byte) toD0181_$2 | (const byte) toD0181_$5 +Constant right-side identified [79] (byte) main::toD0181_return#0 ← (const byte) main::toD0181_$2 | (const byte) main::toD0181_$5 +Constant right-side identified [80] (byte) main::toD0182_return#0 ← (const byte) main::toD0182_$2 | (const byte) main::toD0182_$5 +Constant right-side identified [94] (byte) irq_bottom_1::toD0181_return#0 ← (const byte) irq_bottom_1::toD0181_$2 | (const byte) irq_bottom_1::toD0181_$5 +Constant right-side identified [106] (byte) irq_bottom_2::toD0181_return#0 ← (const byte) irq_bottom_2::toD0181_$2 | (const byte) irq_bottom_2::toD0181_$5 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant (const byte*) gotoxy::$6 = CONIO_SCREEN_TEXT+gotoxy::offset#0 -Constant (const byte*) gotoxy::$7 = CONIO_SCREEN_COLORS+gotoxy::offset#0 Constant (const byte) toD0181_$6 = toD0181_$2|toD0181_$5 Constant (const byte) main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Constant (const byte) main::toD0182_return#0 = main::toD0182_$2|main::toD0182_$5 Constant (const byte) irq_bottom_1::toD0181_return#0 = irq_bottom_1::toD0181_$2|irq_bottom_1::toD0181_$5 +Constant (const byte) irq_bottom_2::toD0181_return#0 = irq_bottom_2::toD0181_$2|irq_bottom_2::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) toD0181_return#0 = toD0181_$6 Successful SSA optimization Pass2ConstantIdentification @@ -5284,45 +2834,36 @@ Constant (const byte) toD0181_return#1 = toD0181_return#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) $0 = toD0181_return#1 Successful SSA optimization Pass2ConstantIdentification -Alias candidate removed (volatile)conio_cursor_text = cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = cputln::$2 cscroll::$8 -Constant right-side identified [257] (byte~) main::$17 ← (const byte) main::toD0181_return#0 ^ (const byte) main::toD0182_return#0 +Constant right-side identified [75] (byte~) main::$17 ← (const byte) main::toD0181_return#0 ^ (const byte) main::toD0182_return#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) main::$17 = main::toD0181_return#0^main::toD0182_return#0 Successful SSA optimization Pass2ConstantIdentification -Alias candidate removed (volatile)conio_cursor_text = cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = cputln::$2 cscroll::$8 -Inlining Noop Cast [5] (byte*) memcpy::src#0 ← (byte*)(void*) memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [6] (byte*) memcpy::dst#0 ← (byte*)(void*) memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [7] (byte*~) memcpy::$2 ← (byte*)(void*) memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [17] (byte*~) memset::$4 ← (byte*)(void*) memset::str#7 keeping memset::str#7 -Inlining Noop Cast [19] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#7 keeping memset::str#7 -Inlining Noop Cast [182] (signed byte~) printf_number_buffer::$25 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 keeping printf_number_buffer::format_min_length#2 +Inlining Noop Cast [2] (byte*~) memset::$4 ← (byte*)(void*) memset::str#5 keeping memset::str#5 +Inlining Noop Cast [4] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#5 keeping memset::str#5 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [256] (byte*) main::canvas#1 ← (byte*)(word~) main::$22 keeping main::canvas#1 +Inlining Noop Cast [74] (byte*) main::canvas#1 ← (byte*)(word~) main::$20 keeping main::canvas#1 Successful SSA optimization Pass2NopCastInlining -Rewriting multiplication to use shift [73] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 * (const byte) SIZEOF_DWORD -Rewriting division to use shift [317] (byte) line::e1#0 ← (byte) line::dx#0 / (byte) 2 -Rewriting division to use shift [318] (byte) line::e#0 ← (byte) line::dy#0 / (byte) 2 -Rewriting division to use shift [319] (byte~) line::plot1_$0 ← (byte) line::x#0 / (byte) 8 -Rewriting multiplication to use shift [320] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 * (const byte) SIZEOF_POINTER -Rewriting division to use shift [332] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 / (byte) 8 -Rewriting multiplication to use shift [333] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 * (const byte) SIZEOF_POINTER -Rewriting division to use shift [338] (byte~) line::plot3_$0 ← (byte) line::x#12 / (byte) 8 -Rewriting multiplication to use shift [339] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 * (const byte) SIZEOF_POINTER -Rewriting division to use shift [350] (byte~) line::plot4_$0 ← (byte) line::x#13 / (byte) 8 -Rewriting multiplication to use shift [351] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 * (const byte) SIZEOF_POINTER +Rewriting division to use shift [126] (byte) line::e2#0 ← (byte) line::dx#0 / (byte) 2 +Rewriting division to use shift [128] (byte~) line::plot1_$0 ← (byte) line::x#0 / (byte) 8 +Rewriting multiplication to use shift [129] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 * (const byte) SIZEOF_POINTER +Rewriting division to use shift [134] (byte) line::e#0 ← (byte) line::dy#0 / (byte) 2 +Rewriting division to use shift [142] (byte~) line::plot2_$0 ← (byte) line::x#15 / (byte) 8 +Rewriting multiplication to use shift [143] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 * (const byte) SIZEOF_POINTER +Rewriting division to use shift [149] (byte~) line::plot3_$0 ← (byte) line::x#17 / (byte) 8 +Rewriting multiplication to use shift [150] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 * (const byte) SIZEOF_POINTER +Rewriting division to use shift [154] (byte) line::e1#0 ← (byte) line::dy#0 / (byte) 2 +Rewriting division to use shift [162] (byte~) line::plot4_$0 ← (byte) line::x#19 / (byte) 8 +Rewriting multiplication to use shift [163] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 * (const byte) SIZEOF_POINTER +Rewriting division to use shift [169] (byte~) line::plot5_$0 ← (byte) line::x#10 / (byte) 8 +Rewriting multiplication to use shift [170] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 * (const byte) SIZEOF_POINTER +Rewriting division to use shift [181] (byte~) line::plot6_$0 ← (byte) line::x#12 / (byte) 8 +Rewriting multiplication to use shift [182] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 * (const byte) SIZEOF_POINTER Successful SSA optimization Pass2MultiplyToShiftRewriting -Inlining constant with var siblings (const void*) memcpy::destination#0 -Inlining constant with var siblings (const void*) memcpy::source#0 -Inlining constant with var siblings (const word) memcpy::num#0 -Inlining constant with var siblings (const void*) memcpy::destination#1 -Inlining constant with var siblings (const void*) memcpy::source#1 -Inlining constant with var siblings (const word) memcpy::num#1 Inlining constant with var siblings (const void*) memset::str#0 Inlining constant with var siblings (const byte) memset::c#0 Inlining constant with var siblings (const word) memset::num#0 Inlining constant with var siblings (const void*) memset::str#1 +Inlining constant with var siblings (const byte) memset::c#1 Inlining constant with var siblings (const word) memset::num#1 Inlining constant with var siblings (const void*) memset::str#2 Inlining constant with var siblings (const byte) memset::c#2 @@ -5330,41 +2871,6 @@ Inlining constant with var siblings (const word) memset::num#2 Inlining constant with var siblings (const void*) memset::str#3 Inlining constant with var siblings (const byte) memset::c#3 Inlining constant with var siblings (const word) memset::num#3 -Inlining constant with var siblings (const void*) memset::str#4 -Inlining constant with var siblings (const byte) memset::c#4 -Inlining constant with var siblings (const word) memset::num#4 -Inlining constant with var siblings (const void*) memset::str#5 -Inlining constant with var siblings (const byte) memset::c#5 -Inlining constant with var siblings (const word) memset::num#5 -Inlining constant with var siblings (const word) strlen::len#0 -Inlining constant with var siblings (const byte) uctoa::started#0 -Inlining constant with var siblings (const byte) uctoa::digit#0 -Inlining constant with var siblings (const byte) uctoa::started#1 -Inlining constant with var siblings (const byte*) uctoa::buffer#5 -Inlining constant with var siblings (const byte) uctoa_append::digit#0 -Inlining constant with var siblings (const byte) ultoa::started#0 -Inlining constant with var siblings (const byte) ultoa::digit#0 -Inlining constant with var siblings (const byte) ultoa::started#1 -Inlining constant with var siblings (const byte*) ultoa::buffer#5 -Inlining constant with var siblings (const byte) ultoa_append::digit#0 -Inlining constant with var siblings (const to_nomodify byte*) cputs::s#2 -Inlining constant with var siblings (const to_nomodify byte*) cputs::s#3 -Inlining constant with var siblings (const byte) printf_padding::i#0 -Inlining constant with var siblings (const byte) printf_padding::pad#0 -Inlining constant with var siblings (const byte) printf_padding::pad#1 -Inlining constant with var siblings (const byte) printf_padding::pad#2 -Inlining constant with var siblings (const byte*) printf_number_buffer::buffer_digits#0 -Inlining constant with var siblings (const byte*) printf_number_buffer::buffer_digits#1 -Inlining constant with var siblings (const signed byte) printf_number_buffer::padding#0 -Inlining constant with var siblings (const signed byte) printf_number_buffer::padding#2 -Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#1 -Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#1 -Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#1 -Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#1 Inlining constant with var siblings (const byte*) main::screen#0 Inlining constant with var siblings (const byte*) main::cols#0 Inlining constant with var siblings (const byte) main::y#0 @@ -5379,41 +2885,53 @@ Inlining constant with var siblings (const byte) sgn_u8::return#2 Inlining constant with var siblings (const byte) sgn_u8::return#3 Inlining constant with different constant siblings (const byte) toD0181_return#1 Constant inlined irq_bottom_1::toD0181_$7 = (word)(const nomodify byte*) CONSOLE -Constant inlined cputs::s#3 = (const byte*) main::s1 -Constant inlined printf_number_buffer::format_justify_left#0 = (const byte) printf_ulong::format_justify_left#0 +Constant inlined irq_bottom_2::toD0181_$7 = (word)(const nomodify byte*) SCREEN +Constant inlined irq_bottom_1::toD0181_screen#0 = (const nomodify byte*) CONSOLE Constant inlined irq_bottom_1::toD0181_$4 = >(word)(const nomodify byte*) PETSCII/(byte) 4 -Constant inlined printf_number_buffer::buffer_digits#0 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined irq_bottom_1::toD0181_$5 = >(word)(const nomodify byte*) PETSCII/(byte) 4&(byte) $f -Constant inlined printf_number_buffer::buffer_digits#1 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined cputs::s#2 = (const byte*) main::s -Constant inlined printf_number_buffer::format_justify_left#1 = (const byte) printf_uchar::format_justify_left#0 -Constant inlined strlen::len#0 = (word) 0 -Constant inlined main::p2_idx#0 = (byte) $f0+(byte) $aa +Constant inlined toD0181_gfx#0 = (const nomodify byte*) CANVAS2 +Constant inlined irq_bottom_2::toD0181_$4 = >(word)(const nomodify byte*) LINE_BUFFER/(byte) 4 +Constant inlined memset::num#3 = (word) $800 +Constant inlined irq_bottom_2::toD0181_$3 = >(word)(const nomodify byte*) LINE_BUFFER +Constant inlined memset::num#2 = (word)(number) $28*(number) $19 +Constant inlined irq_bottom_2::toD0181_gfx#0 = (const nomodify byte*) LINE_BUFFER +Constant inlined irq_bottom_2::toD0181_$5 = >(word)(const nomodify byte*) LINE_BUFFER/(byte) 4&(byte) $f +Constant inlined main::toD0182_$4 = >(word)(const nomodify byte*) CANVAS2/(byte) 4 +Constant inlined main::toD0182_$5 = >(word)(const nomodify byte*) CANVAS2/(byte) 4&(byte) $f +Constant inlined memset::num#1 = (word)(number) $28*(number) $19 +Constant inlined main::toD0182_$7 = (word)(const nomodify byte*) SCREEN +Constant inlined memset::num#0 = (word)(number) $28*(number) $19 +Constant inlined $0 = (const byte) toD0181_return#0 +Constant inlined main::toD0182_$0 = (word)(const nomodify byte*) SCREEN&(word) $3fff +Constant inlined main::toD0182_$1 = (word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 +Constant inlined main::toD0182_$2 = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 +Constant inlined main::toD0182_$3 = >(word)(const nomodify byte*) CANVAS2 +Constant inlined main::p2_idx#0 = (byte) $b5+(byte) $aa Constant inlined main::$17 = (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 +Constant inlined toD0181_screen#0 = (const nomodify byte*) SCREEN Constant inlined toD0181_return#1 = (const byte) toD0181_return#0 -Constant inlined uctoa::digit#0 = (byte) 0 Constant inlined main::toD0181_$7 = (word)(const nomodify byte*) SCREEN +Constant inlined main::toD0182_gfx#0 = (const nomodify byte*) CANVAS2 +Constant inlined main::cols#0 = (const nomodify byte*) COLS+(byte) $c +Constant inlined main::p1_idx#0 = (byte) $b5+(byte) $f Constant inlined main::toD0181_$2 = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 Constant inlined main::toD0181_$1 = (word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 Constant inlined main::toD0181_$0 = (word)(const nomodify byte*) SCREEN&(word) $3fff -Constant inlined memcpy::source#0 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 +Constant inlined main::y#0 = (byte) 0 Constant inlined main::toD0181_$5 = >(word)(const nomodify byte*) CANVAS1/(byte) 4&(byte) $f Constant inlined main::toD0181_$4 = >(word)(const nomodify byte*) CANVAS1/(byte) 4 Constant inlined main::toD0181_$3 = >(word)(const nomodify byte*) CANVAS1 -Constant inlined memset::c#5 = (byte) 0 -Constant inlined ultoa::digit#0 = (byte) 0 Constant inlined irq_bottom_1::toD0181_gfx#0 = (const nomodify byte*) PETSCII +Constant inlined eorfill::x#0 = (byte) 0 Constant inlined memset::c#0 = (byte) ' ' -Constant inlined memset::c#2 = (byte) ' ' +Constant inlined memset::c#1 = (byte) 0 +Constant inlined memset::c#2 = (const nomodify byte) BLACK Constant inlined memset::c#3 = (byte) 0 -Constant inlined memset::c#4 = (const nomodify byte) BLACK Constant inlined main::screen#0 = (const nomodify byte*) SCREEN+(byte) $c Constant inlined main::toD0181_screen#0 = (const nomodify byte*) SCREEN -Constant inlined uctoa::$4 = (const byte) uctoa::max_digits#2-(byte) 1 -Constant inlined uctoa::digit_values#2 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR -Constant inlined printf_uchar::$0 = (byte) 0 -Constant inlined memcpy::destination#0 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT -Constant inlined memcpy::destination#1 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS +Constant inlined main::toD0181_gfx#0 = (const nomodify byte*) CANVAS1 +Constant inlined sgn_u8::return#3 = (byte) 1 +Constant inlined sgn_u8::return#2 = (byte) -1 Constant inlined toD0181_$0 = (word)(const nomodify byte*) SCREEN&(word) $3fff Constant inlined toD0181_$1 = (word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 Constant inlined toD0181_$2 = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 @@ -5421,110 +2939,37 @@ Constant inlined toD0181_$3 = >(word)(const nomodify byte*) CANVAS2 Constant inlined toD0181_$4 = >(word)(const nomodify byte*) CANVAS2/(byte) 4 Constant inlined toD0181_$5 = >(word)(const nomodify byte*) CANVAS2/(byte) 4&(byte) $f Constant inlined toD0181_$6 = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) CANVAS2/(byte) 4&(byte) $f -Constant inlined textcolor::color#0 = (const nomodify byte) WHITE Constant inlined toD0181_$7 = (word)(const nomodify byte*) SCREEN -Constant inlined printf_number_buffer::format_min_length#0 = (const byte) printf_ulong::format_min_length#0 -Constant inlined printf_number_buffer::format_min_length#1 = (const byte) printf_uchar::format_min_length#0 -Constant inlined printf_padding::pad#0 = (byte) ' ' -Constant inlined printf_padding::i#0 = (byte) 0 -Constant inlined printf_padding::pad#1 = (byte) '0' -Constant inlined printf_padding::pad#2 = (byte) ' ' -Constant inlined printf_ulong::$0 = (byte) 0 +Constant inlined memset::str#2 = (void*)(const nomodify byte*) COLS +Constant inlined memset::str#1 = (void*)(const nomodify byte*) SCREEN +Constant inlined memset::str#0 = (void*)(const nomodify byte*) CONSOLE +Constant inlined memset::str#3 = (void*)(const nomodify byte*) LINE_BUFFER Constant inlined main::x#0 = (byte) 0 -Constant inlined uctoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined main::canvas#0 = (const nomodify byte*) CANVAS1 -Constant inlined main::p0_idx#0 = (byte) $f0 -Constant inlined ultoa_append::digit#0 = (byte) 0 -Constant inlined ultoa::digit_values#1 = (const dword*) RADIX_DECIMAL_VALUES_LONG +Constant inlined main::toD0182_screen#0 = (const nomodify byte*) SCREEN +Constant inlined eorfill::y#0 = (byte) 1 +Constant inlined irq_bottom_2::toD0181_$0 = (word)(const nomodify byte*) SCREEN&(word) $3fff +Constant inlined main::p0_idx#0 = (byte) $b5 +Constant inlined irq_bottom_2::toD0181_$2 = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 Constant inlined eorfill::line_buffer#0 = (const nomodify byte*) LINE_BUFFER +Constant inlined irq_bottom_2::toD0181_$1 = (word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 Constant inlined irq_bottom_1::toD0181_$2 = >(word)(const nomodify byte*) CONSOLE&(word) $3fff*(byte) 4 Constant inlined irq_bottom_1::toD0181_$3 = >(word)(const nomodify byte*) PETSCII Constant inlined irq_bottom_1::toD0181_$0 = (word)(const nomodify byte*) CONSOLE&(word) $3fff +Constant inlined irq_bottom_2::toD0181_screen#0 = (const nomodify byte*) SCREEN Constant inlined irq_bottom_1::toD0181_$1 = (word)(const nomodify byte*) CONSOLE&(word) $3fff*(byte) 4 -Constant inlined uctoa_append::digit#0 = (byte) 0 -Constant inlined irq_bottom_1::toD0181_screen#0 = (const nomodify byte*) CONSOLE -Constant inlined toD0181_gfx#0 = (const nomodify byte*) CANVAS2 -Constant inlined memset::num#3 = (word)(number) $28*(number) $19 -Constant inlined memset::num#2 = (word)(number) $28*(number) $19 -Constant inlined memset::num#5 = (word) $800 -Constant inlined memset::num#4 = (word)(number) $28*(number) $19 -Constant inlined main::toD0182_$4 = >(word)(const nomodify byte*) CANVAS2/(byte) 4 -Constant inlined main::toD0182_$5 = >(word)(const nomodify byte*) CANVAS2/(byte) 4&(byte) $f -Constant inlined memset::num#1 = (byte) $28 -Constant inlined main::toD0182_$7 = (word)(const nomodify byte*) SCREEN -Constant inlined memset::num#0 = (byte) $28 -Constant inlined $0 = (const byte) toD0181_return#0 -Constant inlined main::toD0182_$0 = (word)(const nomodify byte*) SCREEN&(word) $3fff -Constant inlined main::toD0182_$1 = (word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 -Constant inlined main::toD0182_$2 = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4 -Constant inlined main::toD0182_$3 = >(word)(const nomodify byte*) CANVAS2 -Constant inlined toD0181_screen#0 = (const nomodify byte*) SCREEN -Constant inlined printf_number_buffer::padding#2 = (signed byte) 0 -Constant inlined main::toD0182_gfx#0 = (const nomodify byte*) CANVAS2 -Constant inlined main::cols#0 = (const nomodify byte*) COLS+(byte) $c -Constant inlined main::p1_idx#0 = (byte) $f0+(byte) $f -Constant inlined ultoa::started#1 = (byte) 1 -Constant inlined main::y#0 = (byte) 0 -Constant inlined eorfill::x#0 = (byte) 0 -Constant inlined printf_number_buffer::padding#0 = (signed byte) 0 -Constant inlined main::toD0181_gfx#0 = (const nomodify byte*) CANVAS1 -Constant inlined uctoa::started#0 = (byte) 0 -Constant inlined sgn_u8::return#3 = (byte) 1 -Constant inlined uctoa::started#1 = (byte) 1 -Constant inlined sgn_u8::return#2 = (byte) -1 -Constant inlined memcpy::source#1 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 -Constant inlined ultoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined printf_number_buffer::format_upper_case#1 = (const byte) printf_uchar::format_upper_case#0 -Constant inlined ultoa::started#0 = (byte) 0 -Constant inlined printf_number_buffer::format_upper_case#0 = (const byte) printf_ulong::format_upper_case#0 -Constant inlined printf_number_buffer::format_zero_padding#0 = (const byte) printf_ulong::format_zero_padding#0 -Constant inlined memset::str#2 = (void*)(const nomodify byte*) CONSOLE -Constant inlined memset::str#1 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 -Constant inlined printf_number_buffer::format_zero_padding#1 = (const byte) printf_uchar::format_zero_padding#0 -Constant inlined memset::str#0 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 -Constant inlined memset::str#5 = (void*)(const nomodify byte*) LINE_BUFFER -Constant inlined gotoxy::$8 = (word)(const byte) gotoxy::y#2 -Constant inlined memset::str#4 = (void*)(const nomodify byte*) COLS -Constant inlined memset::str#3 = (void*)(const nomodify byte*) SCREEN -Constant inlined gotoxy::$6 = (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 -Constant inlined gotoxy::$7 = (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 -Constant inlined ultoa::$4 = (const byte) ultoa::max_digits#1-(byte) 1 -Constant inlined memcpy::num#1 = (word)(number) $19*(number) $28-(number) $28 -Constant inlined memcpy::num#0 = (word)(number) $19*(number) $28-(number) $28 -Constant inlined main::toD0182_screen#0 = (const nomodify byte*) SCREEN -Constant inlined eorfill::y#0 = (byte) 1 Successful SSA optimization Pass2ConstantInlining -Alias candidate removed (volatile)conio_cursor_text = cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = cputln::$2 cscroll::$8 -Identical Phi Values (word) memcpy::num#2 (word)(number) $19*(number) $28-(number) $28 -Identical Phi Values (byte*) printf_number_buffer::buffer_digits#10 (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Successful SSA optimization Pass2IdenticalPhiElimination -Constant (const byte*) strlen::str#1 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant (const to_nomodify byte*) cputs::s#1 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant (const byte*) strupr::str#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Successful SSA optimization Pass2ConstantIdentification -Eliminating unused constant (const byte) SIZEOF_DWORD Eliminating unused constant (const byte) SIZEOF_POINTER Successful SSA optimization PassNEliminateUnusedVars -Inlining constant with var siblings (const byte*) strlen::str#1 -Inlining constant with var siblings (const to_nomodify byte*) cputs::s#1 -Constant inlined cputs::s#1 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined strlen::str#1 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Successful SSA optimization Pass2ConstantInlining -Alias candidate removed (volatile)conio_cursor_text = cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = cputln::$2 cscroll::$8 -Alias candidate removed (volatile)conio_cursor_text = cputln::$1 cscroll::$7 -Alias candidate removed (volatile)conio_cursor_color = cputln::$2 cscroll::$8 -Added new block during phi lifting uctoa::@17(between uctoa::@16 and uctoa::@13) -Added new block during phi lifting ultoa::@17(between ultoa::@16 and ultoa::@13) -Added new block during phi lifting printf_number_buffer::@27(between printf_number_buffer::@13 and printf_number_buffer::@1) -Added new block during phi lifting printf_number_buffer::@28(between printf_number_buffer::@15 and printf_number_buffer::@13) -Added new block during phi lifting line::@17(between line::@16 and line::@1) -Added new block during phi lifting line::@18(between line::@6 and line::@5) -Added new block during phi lifting line::@19(between line::@5 and line::@6) -Added new block during phi lifting line::@20(between line::@9 and line::@8) -Added new block during phi lifting line::@21(between line::@12 and line::@9) +Added new block during phi lifting line::@26(between line::@25 and line::@1) +Added new block during phi lifting line::@27(between line::@8 and line::@7) +Added new block during phi lifting line::@28(between line::@7 and line::@8) +Added new block during phi lifting line::@29(between line::@12 and line::@12) +Added new block during phi lifting line::@30(between line::@20 and line::@12) +Added new block during phi lifting line::@31(between line::@15 and line::@14) +Added new block during phi lifting line::@32(between line::@21 and line::@15) Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 Adding NOP phi() at start of @2 Adding NOP phi() at start of toD0181 Adding NOP phi() at start of toD0181_@return @@ -5544,175 +2989,96 @@ Adding NOP phi() at start of main::toD0181_@return Adding NOP phi() at start of main::@11 Adding NOP phi() at start of main::toD0182 Adding NOP phi() at start of main::toD0182_@return -Adding NOP phi() at start of main::@25 -Adding NOP phi() at start of main::@27 -Adding NOP phi() at start of printf_ulong -Adding NOP phi() at start of printf_ulong::@2 -Adding NOP phi() at start of printf_ulong::@5 -Adding NOP phi() at start of printf_number_buffer::@6 -Adding NOP phi() at start of printf_number_buffer::@14 -Adding NOP phi() at start of printf_number_buffer::@17 -Adding NOP phi() at start of printf_number_buffer::@11 -Adding NOP phi() at start of printf_number_buffer::@20 -Adding NOP phi() at start of printf_number_buffer::@5 -Adding NOP phi() at start of printf_number_buffer::@21 -Adding NOP phi() at start of printf_number_buffer::@18 -Adding NOP phi() at start of printf_number_buffer::@16 -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 memset::@1 -Adding NOP phi() at start of memcpy::@3 -Adding NOP phi() at start of strupr -Adding NOP phi() at start of strupr::@3 -Adding NOP phi() at start of strlen -Adding NOP phi() at start of strlen::@3 -Adding NOP phi() at start of ultoa -Adding NOP phi() at start of ultoa::@1 -Adding NOP phi() at start of printf_uchar -Adding NOP phi() at start of printf_uchar::@2 -Adding NOP phi() at start of printf_uchar::@5 -Adding NOP phi() at start of uctoa -Adding NOP phi() at start of uctoa::@6 -Adding NOP phi() at start of uctoa::@2 -Adding NOP phi() at start of gotoxy -Adding NOP phi() at start of gotoxy::@1 -Adding NOP phi() at start of line::@11 +Adding NOP phi() at start of clock +Adding NOP phi() at start of line::@10 +Adding NOP phi() at start of line::@6 +Adding NOP phi() at start of line::@17 Adding NOP phi() at start of sgn_u8::@2 Adding NOP phi() at start of sgn_u8::@1 +Adding NOP phi() at start of memset::@1 +Adding NOP phi() at start of textcolor +Adding NOP phi() at start of irq_bottom_2::@3 +Adding NOP phi() at start of irq_bottom_2::toD0181 +Adding NOP phi() at start of irq_bottom_2::toD0181_@return Adding NOP phi() at start of irq_bottom_1::toD0181 Adding NOP phi() at start of irq_bottom_1::toD0181_@return CALL GRAPH -Calls in [] to main:12 -Calls in [main] to memset:16 memset:18 memset:20 setup_irq:26 textcolor:28 clock_start:32 memset:34 line:47 line:58 line:67 eorfill:75 clock:84 gotoxy:88 cputs:90 printf_uchar:92 cputs:94 printf_ulong:96 -Calls in [printf_ulong] to ultoa:120 printf_number_buffer:123 -Calls in [printf_number_buffer] to strlen:129 cputc:147 strupr:153 cputs:156 printf_padding:163 printf_padding:167 printf_padding:171 -Calls in [printf_padding] to cputc:181 -Calls in [cputc] to cscroll:194 cputln:198 -Calls in [cputln] to cscroll:207 -Calls in [cscroll] to memcpy:213 memcpy:215 memset:217 memset:220 -Calls in [cputs] to cputc:260 -Calls in [strupr] to toupper:268 -Calls in [ultoa] to ultoa_append:316 -Calls in [printf_uchar] to uctoa:335 printf_number_buffer:338 -Calls in [uctoa] to uctoa_append:366 -Calls in [line] to abs_u8:412 abs_u8:417 sgn_u8:422 sgn_u8:427 -Calls in [irq_bottom_2] to kbhit:531 +Calls in [] to main:8 +Calls in [main] to memset:12 memset:14 memset:16 setup_irq:22 textcolor:24 clock_start:28 memset:30 line:43 line:54 line:63 eorfill:71 clock:80 +Calls in [line] to abs_u8:125 abs_u8:130 sgn_u8:135 sgn_u8:140 +Calls in [irq_bottom_2] to kbhit:287 -Created 77 initial phi equivalence classes -Coalesced [43] line::x#22 ← line::x1#0 -Coalesced [44] line::y#23 ← line::y1#0 -Coalesced [45] line::x2#16 ← line::x2#0 -Coalesced [46] line::y2#17 ← line::y2#0 -Coalesced [54] line::x#23 ← line::x1#1 -Coalesced [55] line::y#24 ← line::y1#1 -Coalesced [56] line::x2#17 ← line::x2#1 -Coalesced [57] line::y2#18 ← line::y2#1 -Coalesced [63] line::x#24 ← line::x1#2 -Coalesced [64] line::y#25 ← line::y1#2 -Coalesced [65] line::x2#18 ← line::x2#2 -Coalesced [66] line::y2#19 ← line::y2#2 -Coalesced [97] main::p0_idx#24 ← main::p0_idx#1 -Coalesced [98] main::p1_idx#24 ← main::p1_idx#1 -Coalesced [99] main::p2_idx#24 ← main::p2_idx#1 -Not coalescing [101] main::c#4 ← main::y#2 -Coalesced [107] main::y#7 ← main::y#1 -Coalesced [108] main::cols#7 ← main::cols#1 -Coalesced [109] main::screen#7 ← main::screen#1 -Coalesced [114] main::x#4 ← main::x#1 -Coalesced [115] main::c#5 ← main::c#1 -Coalesced [122] printf_number_buffer::buffer_sign#14 ← printf_number_buffer::buffer_sign#0 -Coalesced [135] printf_number_buffer::len#5 ← printf_number_buffer::len#1 -Coalesced [146] cputc::c#6 ← cputc::c#2 -Coalesced [162] printf_padding::length#8 ← printf_padding::length#2 -Coalesced [166] printf_padding::length#7 ← printf_padding::length#1 -Coalesced [170] printf_padding::length#9 ← printf_padding::length#0 -Coalesced [173] printf_number_buffer::padding#18 ← printf_number_buffer::padding#1 -Coalesced [174] printf_number_buffer::len#4 ← printf_number_buffer::len#0 -Coalesced [180] cputc::c#7 ← cputc::c#1 -Coalesced [183] printf_padding::i#5 ← printf_padding::i#1 -Coalesced [219] memset::c#10 ← memset::c#1 -Coalesced [237] memset::dst#5 ← memset::dst#1 -Coalesced [249] memcpy::src#5 ← memcpy::src#1 -Coalesced [250] memcpy::dst#5 ← memcpy::dst#1 -Coalesced [252] cputs::s#8 ← cputs::s#5 -Coalesced [259] cputc::c#5 ← cputc::c#0 -Coalesced [261] cputs::s#9 ← cputs::s#0 -Coalesced [273] strupr::src#5 ← strupr::src#1 -Coalesced [276] toupper::return#7 ← toupper::ch#0 -Coalesced [280] toupper::return#6 ← toupper::return#0 -Coalesced [288] strlen::str#5 ← strlen::str#0 -Coalesced [289] strlen::len#5 ← strlen::len#1 -Coalesced [292] ultoa::value#17 ← ultoa::value#1 -Coalesced [304] ultoa::value#18 ← ultoa::value#2 -Coalesced [305] ultoa::started#6 ← ultoa::started#2 -Coalesced [306] ultoa::buffer#23 ← ultoa::buffer#11 -Coalesced [309] ultoa::digit#7 ← ultoa::digit#1 -Coalesced (already) [310] ultoa::value#16 ← ultoa::value#6 -Coalesced (already) [311] ultoa::started#5 ← ultoa::started#4 -Coalesced (already) [312] ultoa::buffer#22 ← ultoa::buffer#14 -Coalesced [320] ultoa::value#19 ← ultoa::value#0 -Coalesced [321] ultoa::buffer#24 ← ultoa::buffer#4 -Coalesced [322] ultoa_append::value#6 ← ultoa_append::value#0 -Coalesced [329] ultoa_append::value#7 ← ultoa_append::value#1 -Coalesced [330] ultoa_append::digit#5 ← ultoa_append::digit#1 -Coalesced [337] printf_number_buffer::buffer_sign#13 ← printf_number_buffer::buffer_sign#1 -Coalesced [344] uctoa::value#17 ← uctoa::value#1 -Coalesced [354] uctoa::value#18 ← uctoa::value#2 -Coalesced [355] uctoa::started#6 ← uctoa::started#2 -Coalesced [356] uctoa::buffer#23 ← uctoa::buffer#11 -Coalesced [359] uctoa::digit#7 ← uctoa::digit#1 -Coalesced (already) [360] uctoa::value#16 ← uctoa::value#6 -Coalesced (already) [361] uctoa::started#5 ← uctoa::started#4 -Coalesced (already) [362] uctoa::buffer#22 ← uctoa::buffer#14 -Coalesced [370] uctoa::value#19 ← uctoa::value#0 -Coalesced [371] uctoa::buffer#24 ← uctoa::buffer#4 -Coalesced [372] uctoa_append::value#6 ← uctoa_append::value#0 -Coalesced [379] uctoa_append::value#7 ← uctoa_append::value#1 -Coalesced [380] uctoa_append::digit#5 ← uctoa_append::digit#1 -Coalesced [390] eorfill::fill_column#7 ← eorfill::canvas#0 -Coalesced [395] eorfill::eor#4 ← eorfill::eor#0 -Coalesced [401] eorfill::x#7 ← eorfill::x#1 -Coalesced [402] eorfill::line_column#7 ← eorfill::line_column#1 -Coalesced [403] eorfill::fill_column#8 ← eorfill::fill_column#1 -Coalesced [407] eorfill::y#4 ← eorfill::y#1 -Coalesced [408] eorfill::eor#5 ← eorfill::eor#1 -Coalesced [411] abs_u8::u#5 ← abs_u8::u#0 -Coalesced [416] abs_u8::u#6 ← abs_u8::u#1 -Coalesced [421] sgn_u8::u#3 ← sgn_u8::u#0 -Coalesced [426] sgn_u8::u#4 ← sgn_u8::u#1 -Coalesced [433] line::y#27 ← line::y#1 -Coalesced [434] line::y2#21 ← line::y2#3 -Coalesced [443] line::y#29 ← line::y#13 -Coalesced [444] line::e#9 ← line::e#0 -Coalesced [445] line::x#26 ← line::x#0 -Coalesced [457] line::e#11 ← line::e#2 -Coalesced [458] line::x#28 ← line::plot2_x#0 -Coalesced [462] line::y#28 ← line::y#15 -Coalesced [463] line::e#8 ← line::e#5 -Coalesced [464] line::x#25 ← line::x#16 -Coalesced [465] line::e#10 ← line::e#1 -Coalesced (already) [466] line::x#27 ← line::x#10 -Coalesced [468] line::x#29 ← line::x#0 -Coalesced [469] line::y#30 ← line::y#13 -Coalesced [470] line::e1#8 ← line::e1#0 -Coalesced [482] line::y#32 ← line::y#3 -Coalesced [483] line::e1#10 ← line::e1#2 -Coalesced [492] line::x#30 ← line::x#13 -Coalesced [493] line::y#31 ← line::y#11 -Coalesced [494] line::e1#9 ← line::e1#7 -Coalesced (already) [495] line::y#33 ← line::y#10 -Coalesced [496] line::e1#11 ← line::e1#1 -Coalesced [497] line::y#26 ← line::y#0 -Coalesced [498] line::y2#20 ← line::y2#10 -Coalesced [509] abs_u8::return#9 ← abs_u8::u#2 -Coalesced [513] abs_u8::return#8 ← abs_u8::return#2 -Coalesced down to 59 phi equivalence classes +Created 41 initial phi equivalence classes +Coalesced [39] line::x#33 ← line::x1#0 +Coalesced [40] line::y#34 ← line::y1#0 +Coalesced [41] line::x2#25 ← line::x2#0 +Coalesced [42] line::y2#18 ← line::y2#0 +Coalesced [50] line::x#34 ← line::x1#1 +Coalesced [51] line::y#35 ← line::y1#1 +Coalesced [52] line::x2#26 ← line::x2#1 +Coalesced [53] line::y2#19 ← line::y2#1 +Coalesced [59] line::x#35 ← line::x1#2 +Coalesced [60] line::y#36 ← line::y1#2 +Coalesced [61] line::x2#27 ← line::x2#2 +Coalesced [62] line::y2#20 ← line::y2#2 +Coalesced [81] main::p0_idx#19 ← main::p0_idx#1 +Coalesced [82] main::p1_idx#19 ← main::p1_idx#1 +Coalesced [83] main::p2_idx#19 ← main::p2_idx#1 +Not coalescing [85] main::c#4 ← main::y#2 +Coalesced [91] main::y#7 ← main::y#1 +Coalesced [92] main::cols#7 ← main::cols#1 +Coalesced [93] main::screen#7 ← main::screen#1 +Coalesced [98] main::x#4 ← main::x#1 +Coalesced [99] main::c#5 ← main::c#1 +Coalesced [102] eorfill::fill_column#7 ← eorfill::canvas#0 +Coalesced [108] eorfill::eor#4 ← eorfill::eor#0 +Coalesced [114] eorfill::x#7 ← eorfill::x#1 +Coalesced [115] eorfill::line_column#7 ← eorfill::line_column#1 +Coalesced [116] eorfill::fill_column#8 ← eorfill::fill_column#1 +Coalesced [120] eorfill::y#4 ← eorfill::y#1 +Coalesced [121] eorfill::eor#5 ← eorfill::eor#1 +Coalesced [124] abs_u8::u#5 ← abs_u8::u#0 +Coalesced [129] abs_u8::u#6 ← abs_u8::u#1 +Coalesced [134] sgn_u8::u#3 ← sgn_u8::u#0 +Coalesced [139] sgn_u8::u#4 ← sgn_u8::u#1 +Coalesced [146] line::y#38 ← line::y#1 +Coalesced [147] line::y2#22 ← line::y2#3 +Coalesced [152] line::y#39 ← line::y#17 +Coalesced [153] line::e#8 ← line::e#0 +Coalesced [154] line::x#36 ← line::x#0 +Coalesced [167] line::e#10 ← line::e#2 +Coalesced [168] line::x#38 ← line::x#1 +Coalesced [178] line::y#40 ← line::y#10 +Coalesced [179] line::e#9 ← line::e#5 +Coalesced [180] line::x#37 ← line::x#17 +Coalesced [181] line::e#11 ← line::e#1 +Coalesced (already) [182] line::x#39 ← line::x#15 +Coalesced [191] line::y#41 ← line::y#17 +Coalesced [192] line::e1#7 ← line::e1#0 +Coalesced [193] line::x#40 ← line::x#0 +Coalesced [206] line::y#43 ← line::y#12 +Coalesced [207] line::e1#9 ← line::e1#2 +Coalesced [208] line::x#42 ← line::x#19 +Coalesced (already) [209] line::y#42 ← line::y#12 +Coalesced [210] line::e1#8 ← line::e1#1 +Coalesced (already) [211] line::x#41 ← line::x#18 +Coalesced [213] line::x#44 ← line::x#0 +Coalesced [214] line::y#45 ← line::y#17 +Coalesced [215] line::e2#9 ← line::e2#0 +Coalesced [227] line::y#46 ← line::y#4 +Coalesced [228] line::e2#10 ← line::e2#2 +Coalesced [237] line::x#43 ← line::x#12 +Coalesced [238] line::y#44 ← line::y#15 +Coalesced [239] line::e2#8 ← line::e2#7 +Coalesced (already) [240] line::y#47 ← line::y#13 +Coalesced [241] line::e2#11 ← line::e2#1 +Coalesced [242] line::y#37 ← line::y#0 +Coalesced [243] line::y2#21 ← line::y2#10 +Coalesced [254] abs_u8::return#9 ← abs_u8::u#2 +Coalesced [258] abs_u8::return#8 ← abs_u8::return#2 +Coalesced [269] memset::dst#5 ← memset::dst#1 +Coalesced down to 28 phi equivalence classes +Culled Empty Block (label) @1 Culled Empty Block (label) @2 Culled Empty Block (label) toD0181_@return Culled Empty Block (label) @5 @@ -5721,83 +3087,27 @@ Culled Empty Block (label) main::@17 Culled Empty Block (label) main::toD0181_@return Culled Empty Block (label) main::@11 Culled Empty Block (label) main::toD0182_@return -Culled Empty Block (label) printf_ulong::@2 -Culled Empty Block (label) printf_ulong::@5 -Culled Empty Block (label) printf_number_buffer::@14 -Culled Empty Block (label) printf_number_buffer::@17 -Culled Empty Block (label) printf_number_buffer::@20 -Culled Empty Block (label) printf_number_buffer::@21 -Culled Empty Block (label) printf_number_buffer::@18 -Culled Empty Block (label) printf_number_buffer::@16 -Culled Empty Block (label) printf_number_buffer::@28 -Culled Empty Block (label) cputc::@5 -Culled Empty Block (label) cputc::@4 -Culled Empty Block (label) cputln::@1 -Culled Empty Block (label) cscroll::@1 -Culled Empty Block (label) memset::@1 -Culled Empty Block (label) memcpy::@3 -Culled Empty Block (label) cputs::@3 -Culled Empty Block (label) strupr::@3 -Culled Empty Block (label) toupper::@2 -Culled Empty Block (label) strlen::@3 -Culled Empty Block (label) ultoa::@1 -Culled Empty Block (label) ultoa::@5 -Culled Empty Block (label) ultoa::@17 -Culled Empty Block (label) printf_uchar::@2 -Culled Empty Block (label) printf_uchar::@5 -Culled Empty Block (label) uctoa::@6 -Culled Empty Block (label) uctoa::@2 -Culled Empty Block (label) uctoa::@5 -Culled Empty Block (label) uctoa::@17 -Culled Empty Block (label) gotoxy::@1 -Culled Empty Block (label) line::@18 -Culled Empty Block (label) line::@19 -Culled Empty Block (label) line::@11 -Culled Empty Block (label) line::@20 -Culled Empty Block (label) line::@21 +Culled Empty Block (label) line::@10 +Culled Empty Block (label) line::@27 +Culled Empty Block (label) line::@28 +Culled Empty Block (label) line::@6 +Culled Empty Block (label) line::@30 +Culled Empty Block (label) line::@29 Culled Empty Block (label) line::@17 +Culled Empty Block (label) line::@31 +Culled Empty Block (label) line::@32 +Culled Empty Block (label) line::@26 Culled Empty Block (label) sgn_u8::@2 Culled Empty Block (label) abs_u8::@2 +Culled Empty Block (label) memset::@1 +Culled Empty Block (label) irq_bottom_2::@3 +Culled Empty Block (label) irq_bottom_2::toD0181_@return Culled Empty Block (label) irq_bottom_1::toD0181_@return -Renumbering block @3 to @2 -Renumbering block @4 to @3 -Renumbering block toupper::@3 to toupper::@2 +Renumbering block @3 to @1 +Renumbering block @4 to @2 Renumbering block memset::@2 to memset::@1 Renumbering block memset::@3 to memset::@2 Renumbering block memset::@4 to memset::@3 -Renumbering block strupr::@4 to strupr::@3 -Renumbering block uctoa::@10 to uctoa::@1 -Renumbering block uctoa::@11 to uctoa::@2 -Renumbering block uctoa::@12 to uctoa::@3 -Renumbering block uctoa::@13 to uctoa::@4 -Renumbering block uctoa::@14 to uctoa::@5 -Renumbering block uctoa::@15 to uctoa::@6 -Renumbering block uctoa::@16 to uctoa::@7 -Renumbering block ultoa::@10 to ultoa::@1 -Renumbering block ultoa::@11 to ultoa::@2 -Renumbering block ultoa::@12 to ultoa::@3 -Renumbering block ultoa::@13 to ultoa::@4 -Renumbering block ultoa::@14 to ultoa::@5 -Renumbering block ultoa::@15 to ultoa::@6 -Renumbering block ultoa::@16 to ultoa::@7 -Renumbering block gotoxy::@2 to gotoxy::@1 -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 printf_ulong::@3 to printf_ulong::@1 -Renumbering block printf_ulong::@4 to printf_ulong::@2 -Renumbering block printf_uchar::@3 to printf_uchar::@1 -Renumbering block printf_uchar::@4 to printf_uchar::@2 -Renumbering block printf_number_buffer::@15 to printf_number_buffer::@14 -Renumbering block printf_number_buffer::@19 to printf_number_buffer::@15 -Renumbering block printf_number_buffer::@22 to printf_number_buffer::@16 -Renumbering block printf_number_buffer::@23 to printf_number_buffer::@17 -Renumbering block printf_number_buffer::@24 to printf_number_buffer::@18 -Renumbering block printf_number_buffer::@25 to printf_number_buffer::@19 -Renumbering block printf_number_buffer::@26 to printf_number_buffer::@20 -Renumbering block printf_number_buffer::@27 to printf_number_buffer::@21 Renumbering block main::@12 to main::@11 Renumbering block main::@13 to main::@12 Renumbering block main::@14 to main::@13 @@ -5809,19 +3119,28 @@ Renumbering block main::@21 to main::@18 Renumbering block main::@22 to main::@19 Renumbering block main::@23 to main::@20 Renumbering block main::@24 to main::@21 -Renumbering block main::@25 to main::@22 -Renumbering block main::@26 to main::@23 -Renumbering block main::@27 to main::@24 -Renumbering block main::@28 to main::@25 -Renumbering block main::@29 to main::@26 -Renumbering block line::@12 to line::@11 -Renumbering block line::@13 to line::@12 -Renumbering block line::@14 to line::@13 -Renumbering block line::@15 to line::@14 -Renumbering block line::@16 to line::@15 +Renumbering block irq_bottom_2::@4 to irq_bottom_2::@3 +Renumbering block irq_bottom_2::@5 to irq_bottom_2::@4 +Renumbering block line::@7 to line::@6 +Renumbering block line::@8 to line::@7 +Renumbering block line::@9 to line::@8 +Renumbering block line::@11 to line::@9 +Renumbering block line::@12 to line::@10 +Renumbering block line::@13 to line::@11 +Renumbering block line::@14 to line::@12 +Renumbering block line::@15 to line::@13 +Renumbering block line::@16 to line::@14 +Renumbering block line::@18 to line::@15 +Renumbering block line::@19 to line::@16 +Renumbering block line::@20 to line::@17 +Renumbering block line::@21 to line::@18 +Renumbering block line::@22 to line::@19 +Renumbering block line::@23 to line::@20 +Renumbering block line::@24 to line::@21 +Renumbering block line::@25 to line::@22 Adding NOP phi() at start of @begin Adding NOP phi() at start of toD0181 -Adding NOP phi() at start of @2 +Adding NOP phi() at start of @1 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@12 @@ -5831,951 +3150,488 @@ Adding NOP phi() at start of main::@8 Adding NOP phi() at start of main::@15 Adding NOP phi() at start of main::toD0181 Adding NOP phi() at start of main::toD0182 -Adding NOP phi() at start of main::@22 -Adding NOP phi() at start of main::@24 -Adding NOP phi() at start of printf_ulong -Adding NOP phi() at start of printf_number_buffer::@6 -Adding NOP phi() at start of printf_number_buffer::@21 -Adding NOP phi() at start of printf_number_buffer::@11 -Adding NOP phi() at start of printf_number_buffer::@5 -Adding NOP phi() at start of cputc::@1 -Adding NOP phi() at start of cscroll::@1 -Adding NOP phi() at start of cscroll::@2 -Adding NOP phi() at start of cscroll::@3 -Adding NOP phi() at start of strupr -Adding NOP phi() at start of strlen -Adding NOP phi() at start of ultoa -Adding NOP phi() at start of ultoa_append -Adding NOP phi() at start of printf_uchar -Adding NOP phi() at start of uctoa -Adding NOP phi() at start of uctoa_append -Adding NOP phi() at start of gotoxy +Adding NOP phi() at start of clock Adding NOP phi() at start of eorfill Adding NOP phi() at start of sgn_u8::@1 +Adding NOP phi() at start of textcolor +Adding NOP phi() at start of irq_bottom_2::toD0181 Adding NOP phi() at start of irq_bottom_1::toD0181 FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() - to:@1 -@1: scope:[] from @begin - [1] (byte) conio_cursor_x ← (byte) 0 - [2] (byte) conio_cursor_y ← (byte) 0 - [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT - [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS - [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT to:toD0181 -toD0181: scope:[] from @1 - [6] phi() - to:@3 -@3: scope:[] from toD0181 - [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 - [8] (volatile byte) canvas_show_flag ← (byte) 0 +toD0181: scope:[] from @begin + [1] phi() to:@2 -@2: scope:[] from @3 - [9] phi() - [10] call main +@2: scope:[] from toD0181 + [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 + [3] (volatile byte) canvas_show_flag ← (byte) 0 + to:@1 +@1: scope:[] from @2 + [4] phi() + [5] call main to:@end -@end: scope:[] from @2 - [11] phi() +@end: scope:[] from @1 + [6] phi() (void()) main() -main: scope:[main] from @2 - [12] phi() - [13] call memset +main: scope:[main] from @1 + [7] phi() + [8] call memset to:main::@12 main::@12: scope:[main] from main - [14] phi() - [15] call memset + [9] phi() + [10] call memset to:main::@13 main::@13: scope:[main] from main::@12 - [16] phi() - [17] call memset + [11] phi() + [12] call memset to:main::@1 main::@1: scope:[main] from main::@13 main::@6 - [18] (byte*) main::screen#5 ← phi( main::@13/(const nomodify byte*) SCREEN+(byte) $c main::@6/(byte*) main::screen#1 ) - [18] (byte*) main::cols#5 ← phi( main::@13/(const nomodify byte*) COLS+(byte) $c main::@6/(byte*) main::cols#1 ) - [18] (byte) main::y#2 ← phi( main::@13/(byte) 0 main::@6/(byte) main::y#1 ) - [19] if((byte) main::y#2<(byte) $10) goto main::@2 + [13] (byte*) main::screen#5 ← phi( main::@13/(const nomodify byte*) SCREEN+(byte) $c main::@6/(byte*) main::screen#1 ) + [13] (byte*) main::cols#5 ← phi( main::@13/(const nomodify byte*) COLS+(byte) $c main::@6/(byte*) main::cols#1 ) + [13] (byte) main::y#2 ← phi( main::@13/(byte) 0 main::@6/(byte) main::y#1 ) + [14] if((byte) main::y#2<(byte) $10) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 - [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK - [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK - [22] call setup_irq + [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK + [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK + [17] call setup_irq to:main::@14 main::@14: scope:[main] from main::@3 - [23] phi() - [24] call textcolor + [18] phi() + [19] call textcolor to:main::@7 -main::@7: scope:[main] from main::@14 main::@26 - [25] (byte*) main::canvas#10 ← phi( main::@14/(const nomodify byte*) CANVAS1 main::@26/(byte*) main::canvas#24 ) - [25] (byte) main::p2_idx#2 ← phi( main::@14/(byte) $f0+(byte) $aa main::@26/(byte) main::p2_idx#1 ) - [25] (byte) main::p1_idx#2 ← phi( main::@14/(byte) $f0+(byte) $f main::@26/(byte) main::p1_idx#1 ) - [25] (byte) main::p0_idx#11 ← phi( main::@14/(byte) $f0 main::@26/(byte) main::p0_idx#1 ) +main::@7: scope:[main] from main::@14 main::@21 + [20] (byte*) main::canvas#10 ← phi( main::@14/(const nomodify byte*) CANVAS1 main::@21/(byte*) main::canvas#19 ) + [20] (byte) main::p2_idx#2 ← phi( main::@14/(byte) $b5+(byte) $aa main::@21/(byte) main::p2_idx#1 ) + [20] (byte) main::p1_idx#2 ← phi( main::@14/(byte) $b5+(byte) $f main::@21/(byte) main::p1_idx#1 ) + [20] (byte) main::p0_idx#2 ← phi( main::@14/(byte) $b5 main::@21/(byte) main::p0_idx#1 ) to:main::@8 main::@8: scope:[main] from main::@7 - [26] phi() - [27] call clock_start + [21] phi() + [22] call clock_start to:main::@15 main::@15: scope:[main] from main::@8 - [28] phi() - [29] call memset + [23] phi() + [24] call memset to:main::@16 main::@16: scope:[main] from main::@15 - [30] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#11) - [31] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#11) - [32] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) - [33] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) - [34] (byte) line::x1#0 ← (byte) main::x0#0 - [35] (byte) line::y1#0 ← (byte) main::y0#0 - [36] (byte) line::x2#0 ← (byte) main::x1#0 - [37] (byte) line::y2#0 ← (byte) main::y1#0 - [38] call line + [25] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2) + [26] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2) + [27] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) + [28] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) + [29] (byte) line::x1#0 ← (byte) main::x0#0 + [30] (byte) line::y1#0 ← (byte) main::y0#0 + [31] (byte) line::x2#0 ← (byte) main::x1#0 + [32] (byte) line::y2#0 ← (byte) main::y1#0 + [33] call line to:main::@17 main::@17: scope:[main] from main::@16 - [39] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) - [40] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) - [41] (byte) line::x1#1 ← (byte) main::x1#0 - [42] (byte) line::y1#1 ← (byte) main::y1#0 - [43] (byte) line::x2#1 ← (byte) main::x2#0 - [44] (byte) line::y2#1 ← (byte) main::y2#0 - [45] call line + [34] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) + [35] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) + [36] (byte) line::x1#1 ← (byte) main::x1#0 + [37] (byte) line::y1#1 ← (byte) main::y1#0 + [38] (byte) line::x2#1 ← (byte) main::x2#0 + [39] (byte) line::y2#1 ← (byte) main::y2#0 + [40] call line to:main::@18 main::@18: scope:[main] from main::@17 - [46] (byte) line::x1#2 ← (byte) main::x2#0 - [47] (byte) line::y1#2 ← (byte) main::y2#0 - [48] (byte) line::x2#2 ← (byte) main::x0#0 - [49] (byte) line::y2#2 ← (byte) main::y0#0 - [50] call line + [41] (byte) line::x1#2 ← (byte) main::x2#0 + [42] (byte) line::y1#2 ← (byte) main::y2#0 + [43] (byte) line::x2#2 ← (byte) main::x0#0 + [44] (byte) line::y2#2 ← (byte) main::y0#0 + [45] call line to:main::@19 main::@19: scope:[main] from main::@18 - [51] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#11 - [52] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 - [53] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 - [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED + [46] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#2 + [47] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 + [48] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 + [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED to:main::@9 main::@9: scope:[main] from main::@19 main::@9 - [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 + [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 to:main::@10 main::@10: scope:[main] from main::@9 - [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK - [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 - [58] call eorfill + [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK + [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 + [53] call eorfill to:main::@20 main::@20: scope:[main] from main::@10 - [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 + [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 to:main::toD0181 main::toD0181: scope:[main] from main::@20 - [60] phi() + [55] phi() to:main::toD0182 main::toD0182: scope:[main] from main::toD0181 - [61] phi() + [56] phi() to:main::@11 main::@11: scope:[main] from main::toD0182 - [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 - [63] (volatile byte) canvas_show_flag ← (byte) 1 - [64] call clock - [65] (dword) clock::return#2 ← (dword) clock::return#0 + [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 + [58] (volatile byte) canvas_show_flag ← (byte) 1 + [59] call clock to:main::@21 main::@21: scope:[main] from main::@11 - [66] (dword~) main::$18 ← (dword) clock::return#2 - [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT - [68] call gotoxy - to:main::@22 -main::@22: scope:[main] from main::@21 - [69] phi() - [70] call cputs - to:main::@23 -main::@23: scope:[main] from main::@22 - [71] (byte) printf_uchar::uvalue#0 ← (byte) main::p0_idx#1 - [72] call printf_uchar - to:main::@24 -main::@24: scope:[main] from main::@23 - [73] phi() - [74] call cputs - to:main::@25 -main::@25: scope:[main] from main::@24 - [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 - [76] call printf_ulong - to:main::@26 -main::@26: scope:[main] from main::@25 - [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 + [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 to:main::@7 main::@2: scope:[main] from main::@1 - [78] (byte) main::c#4 ← (byte) main::y#2 + [61] (byte) main::c#4 ← (byte) main::y#2 to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - [79] (byte) main::c#2 ← phi( main::@2/(byte) main::c#4 main::@5/(byte) main::c#1 ) - [79] (byte) main::x#2 ← phi( main::@2/(byte) 0 main::@5/(byte) main::x#1 ) - [80] if((byte) main::x#2<(byte) $10) goto main::@5 + [62] (byte) main::c#2 ← phi( main::@2/(byte) main::c#4 main::@5/(byte) main::c#1 ) + [62] (byte) main::x#2 ← phi( main::@2/(byte) 0 main::@5/(byte) main::x#1 ) + [63] if((byte) main::x#2<(byte) $10) goto main::@5 to:main::@6 main::@6: scope:[main] from main::@4 - [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 - [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 - [83] (byte) main::y#1 ← ++ (byte) main::y#2 + [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 + [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 + [66] (byte) main::y#1 ← ++ (byte) main::y#2 to:main::@1 main::@5: scope:[main] from main::@4 - [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE - [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 - [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 - [87] (byte) main::x#1 ← ++ (byte) main::x#2 + [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE + [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 + [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 + [70] (byte) main::x#1 ← ++ (byte) main::x#2 to:main::@4 -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from main::@25 - [88] phi() - to:printf_ulong::@1 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - [91] call ultoa - to:printf_ulong::@2 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 - [92] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [93] call printf_number_buffer - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 - [94] return - to:@return - -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_ulong::@2 - [95] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_upper_case#0 printf_ulong::@2/(const byte) printf_ulong::format_upper_case#0 ) - [95] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) - [95] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_zero_padding#0 printf_ulong::@2/(const byte) printf_ulong::format_zero_padding#0 ) - [95] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_justify_left#0 printf_ulong::@2/(const byte) printf_ulong::format_justify_left#0 ) - [95] (byte) printf_number_buffer::format_min_length#2 ← phi( printf_uchar::@2/(const byte) printf_uchar::format_min_length#0 printf_ulong::@2/(const byte) printf_ulong::format_min_length#0 ) - [96] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 - to:printf_number_buffer::@6 -printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [97] phi() - [98] call strlen - [99] (word) strlen::return#2 ← (word) strlen::len#2 - to:printf_number_buffer::@14 -printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 - [102] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 - to:printf_number_buffer::@7 -printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [103] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 - to:printf_number_buffer::@13 -printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [104] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) - [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 - [106] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 - to:printf_number_buffer::@1 -printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [107] phi() - to:printf_number_buffer::@1 -printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [108] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) - [109] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@17 -printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [110] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@16 -printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [111] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 - to:printf_number_buffer::@2 -printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [112] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 - [113] call printf_padding - to:printf_number_buffer::@2 -printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 - to:printf_number_buffer::@9 -printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [115] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10 - [116] call cputc - to:printf_number_buffer::@3 -printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [117] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 - to:printf_number_buffer::@18 -printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [118] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 - to:printf_number_buffer::@4 -printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [119] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 - [120] call printf_padding - to:printf_number_buffer::@4 -printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [121] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 - to:printf_number_buffer::@11 -printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [122] phi() - [123] call strupr - to:printf_number_buffer::@5 -printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [124] phi() - [125] call cputs - to:printf_number_buffer::@15 -printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [126] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return - to:printf_number_buffer::@20 -printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [127] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return - to:printf_number_buffer::@19 -printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [128] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 - to:printf_number_buffer::@return -printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [129] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 - [130] call printf_padding - to:printf_number_buffer::@return -printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [131] return - to:@return - -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [132] (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) - [132] (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) - to:printf_padding::@1 -printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [133] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) - [134] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 - to:printf_padding::@return -printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - [135] return - to:@return -printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - [136] (byte) cputc::c#1 ← (byte) printf_padding::pad#5 - [137] call cputc - to:printf_padding::@3 -printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - [138] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 - to:printf_padding::@1 - -(void()) cputc((byte) cputc::c) -cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 - [139] (byte) cputc::c#3 ← phi( cputs::@2/(byte) cputc::c#0 printf_number_buffer::@9/(byte) cputc::c#2 printf_padding::@2/(byte) cputc::c#1 ) - [140] if((byte) cputc::c#3==(byte) ' -') goto cputc::@1 - to:cputc::@2 -cputc::@2: scope:[cputc] from cputc - [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 - [142] (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text - [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor - [144] (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color - [145] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x - [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return - to:cputc::@3 -cputc::@3: scope:[cputc] from cputc::@2 - [147] (byte) conio_cursor_x ← (byte) 0 - [148] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y - [149] call cscroll - to:cputc::@return -cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 - [150] return - to:@return -cputc::@1: scope:[cputc] from cputc - [151] phi() - [152] call cputln - to:cputc::@return - -(void()) cputln() -cputln: scope:[cputln] from cputc::@1 - [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x - [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 - [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 - [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 - [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 - [158] (byte) conio_cursor_x ← (byte) 0 - [159] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y - [160] call cscroll - to:cputln::@return -cputln::@return: scope:[cputln] from cputln - [161] return - to:@return - -(void()) cscroll() -cscroll: scope:[cscroll] from cputc::@3 cputln - [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return - to:cscroll::@1 -cscroll::@1: scope:[cscroll] from cscroll - [163] phi() - [164] call memcpy - to:cscroll::@2 -cscroll::@2: scope:[cscroll] from cscroll::@1 - [165] phi() - [166] call memcpy - to:cscroll::@3 -cscroll::@3: scope:[cscroll] from cscroll::@2 - [167] phi() - [168] call memset - to:cscroll::@4 -cscroll::@4: scope:[cscroll] from cscroll::@3 - [169] (byte) memset::c#1 ← (byte) conio_textcolor - [170] call memset - to:cscroll::@5 -cscroll::@5: scope:[cscroll] from cscroll::@4 - [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 - [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 - [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 - [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 - [175] (byte) conio_cursor_y ← -- (byte) conio_cursor_y - to:cscroll::@return -cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 - [176] return - to:@return - -(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) -memset: scope:[memset] from cscroll::@3 cscroll::@4 main main::@12 main::@13 main::@15 - [177] (byte) memset::c#8 ← phi( cscroll::@3/(byte) ' ' cscroll::@4/(byte) memset::c#1 main/(byte) ' ' main::@12/(byte) 0 main::@13/(const nomodify byte) BLACK main::@15/(byte) 0 ) - [177] (void*) memset::str#7 ← phi( cscroll::@3/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 cscroll::@4/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 main/(void*)(const nomodify byte*) CONSOLE main::@12/(void*)(const nomodify byte*) SCREEN main::@13/(void*)(const nomodify byte*) COLS main::@15/(void*)(const nomodify byte*) LINE_BUFFER ) - [177] (word) memset::num#6 ← phi( cscroll::@3/(byte) $28 cscroll::@4/(byte) $28 main/(word)(number) $28*(number) $19 main::@12/(word)(number) $28*(number) $19 main::@13/(word)(number) $28*(number) $19 main::@15/(word) $800 ) - [178] if((word) memset::num#6<=(byte) 0) goto memset::@return - to:memset::@1 -memset::@1: scope:[memset] from memset - [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 - [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 - to:memset::@2 -memset::@2: scope:[memset] from memset::@1 memset::@3 - [181] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) - [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 - to:memset::@return -memset::@return: scope:[memset] from memset memset::@2 - [183] return - to:@return -memset::@3: scope:[memset] from memset::@2 - [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 - [185] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 - to:memset::@2 - -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [186] (void*) memcpy::destination#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT cscroll::@2/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS ) - [186] (void*) memcpy::source#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 cscroll::@2/(void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 ) - [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $28 - [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 - [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 - to:memcpy::@1 -memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [190] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*) memcpy::dst#4 memcpy::@2/(byte*) memcpy::dst#1 ) - [190] (byte*) memcpy::src#2 ← phi( memcpy/(byte*) memcpy::src#4 memcpy::@2/(byte*) memcpy::src#1 ) - [191] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2 - to:memcpy::@return -memcpy::@return: scope:[memcpy] from memcpy::@1 - [192] return - to:@return -memcpy::@2: scope:[memcpy] from memcpy::@1 - [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) - [194] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - [195] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 - to:memcpy::@1 - -(void()) cputs((to_nomodify byte*) cputs::s) -cputs: scope:[cputs] from main::@22 main::@24 printf_number_buffer::@5 - [196] (to_nomodify byte*) cputs::s#5 ← phi( main::@22/(const byte*) main::s main::@24/(const byte*) main::s1 printf_number_buffer::@5/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - to:cputs::@1 -cputs::@1: scope:[cputs] from cputs cputs::@2 - [197] (to_nomodify byte*) cputs::s#4 ← phi( cputs/(to_nomodify byte*) cputs::s#5 cputs::@2/(to_nomodify byte*) cputs::s#0 ) - [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) - [199] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4 - [200] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 - to:cputs::@return -cputs::@return: scope:[cputs] from cputs::@1 - [201] return - to:@return -cputs::@2: scope:[cputs] from cputs::@1 - [202] (byte) cputc::c#0 ← (byte) cputs::c#1 - [203] call cputc - to:cputs::@1 - -(byte*()) strupr((byte*) strupr::str) -strupr: scope:[strupr] from printf_number_buffer::@11 - [204] phi() - to:strupr::@1 -strupr::@1: scope:[strupr] from strupr strupr::@3 - [205] (byte*) strupr::src#2 ← phi( strupr/(const byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) - [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 - to:strupr::@return -strupr::@return: scope:[strupr] from strupr::@1 - [207] return - to:@return -strupr::@2: scope:[strupr] from strupr::@1 - [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) - [209] call toupper - [210] (byte) toupper::return#3 ← (byte) toupper::return#2 - to:strupr::@3 -strupr::@3: scope:[strupr] from strupr::@2 - [211] (byte~) strupr::$0 ← (byte) toupper::return#3 - [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 - [213] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 - to:strupr::@1 - -(byte()) toupper((byte) toupper::ch) -toupper: scope:[toupper] from strupr::@2 - [214] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return - to:toupper::@2 -toupper::@2: scope:[toupper] from toupper - [215] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 - to:toupper::@return -toupper::@1: scope:[toupper] from toupper::@2 - [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' - to:toupper::@return -toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [217] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) - [218] return - to:@return - -(word()) strlen((byte*) strlen::str) -strlen: scope:[strlen] from printf_number_buffer::@6 - [219] phi() - to:strlen::@1 -strlen::@1: scope:[strlen] from strlen strlen::@2 - [220] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [220] (byte*) strlen::str#2 ← phi( strlen/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS strlen::@2/(byte*) strlen::str#0 ) - [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 - to:strlen::@return -strlen::@return: scope:[strlen] from strlen::@1 - [222] return - to:@return -strlen::@2: scope:[strlen] from strlen::@1 - [223] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [224] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 - to:strlen::@1 - -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -ultoa: scope:[ultoa] from printf_ulong::@1 - [225] phi() - to:ultoa::@1 -ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [226] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [226] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) - [226] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) - [226] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) - [227] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 - to:ultoa::@3 -ultoa::@3: scope:[ultoa] from ultoa::@1 - [228] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 - [229] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - [230] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 - [231] *((byte*) ultoa::buffer#3) ← (byte) 0 - to:ultoa::@return -ultoa::@return: scope:[ultoa] from ultoa::@3 - [232] return - to:@return -ultoa::@2: scope:[ultoa] from ultoa::@1 - [233] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 - [234] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) - [235] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 - to:ultoa::@7 -ultoa::@7: scope:[ultoa] from ultoa::@2 - [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 - to:ultoa::@4 -ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [237] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) - [237] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) - [237] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) - [238] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 - to:ultoa::@1 -ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - [242] call ultoa_append - [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 - to:ultoa::@6 -ultoa::@6: scope:[ultoa] from ultoa::@5 - [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - [245] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 - to:ultoa::@4 - -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -ultoa_append: scope:[ultoa_append] from ultoa::@5 - [246] phi() - to:ultoa_append::@1 -ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - [247] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - [247] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) - [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 - to:ultoa_append::@3 -ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) - to:ultoa_append::@return -ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [250] return - to:@return -ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [251] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 - to:ultoa_append::@1 - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from main::@23 - [253] phi() - to:printf_uchar::@1 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [255] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#0 - [256] call uctoa - to:printf_uchar::@2 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [257] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [258] call printf_number_buffer - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 - [259] return - to:@return - -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@1 - [260] phi() - to:uctoa::@1 -uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [261] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [261] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) - [261] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) - [261] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) - [262] if((byte) uctoa::digit#2<(const byte) uctoa::max_digits#2-(byte) 1) goto uctoa::@2 - to:uctoa::@3 -uctoa::@3: scope:[uctoa] from uctoa::@1 - [263] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [264] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [265] *((byte*) uctoa::buffer#3) ← (byte) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@3 - [266] return - to:@return -uctoa::@2: scope:[uctoa] from uctoa::@1 - [267] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) - [268] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 - to:uctoa::@7 -uctoa::@7: scope:[uctoa] from uctoa::@2 - [269] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 - to:uctoa::@4 -uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 - [270] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) - [270] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) - [270] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) - [271] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 - to:uctoa::@1 -uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 - [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [273] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [274] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [275] call uctoa_append - [276] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - to:uctoa::@6 -uctoa::@6: scope:[uctoa] from uctoa::@5 - [277] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [278] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 - to:uctoa::@4 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@5 - [279] phi() - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [280] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [280] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [281] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 - to:uctoa_append::@3 -uctoa_append::@3: scope:[uctoa_append] from uctoa_append::@1 - [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) - to:uctoa_append::@return -uctoa_append::@return: scope:[uctoa_append] from uctoa_append::@3 - [283] return - to:@return -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [284] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 - to:uctoa_append::@1 - -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -gotoxy: scope:[gotoxy] from main::@21 - [286] phi() - to:gotoxy::@1 -gotoxy::@1: scope:[gotoxy] from gotoxy - [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 - [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 - [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 - [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 - to:gotoxy::@return -gotoxy::@return: scope:[gotoxy] from gotoxy::@1 - [291] return - to:@return - (dword()) clock() clock: scope:[clock] from main::@11 - [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) + [71] phi() to:clock::@return clock::@return: scope:[clock] from clock - [293] return + [72] return to:@return (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) eorfill: scope:[eorfill] from main::@10 - [294] phi() + [73] phi() to:eorfill::@1 eorfill::@1: scope:[eorfill] from eorfill eorfill::@5 - [295] (byte*) eorfill::fill_column#5 ← phi( eorfill/(byte*) eorfill::canvas#0 eorfill::@5/(byte*) eorfill::fill_column#1 ) - [295] (byte*) eorfill::line_column#2 ← phi( eorfill/(const nomodify byte*) LINE_BUFFER eorfill::@5/(byte*) eorfill::line_column#1 ) - [295] (byte) eorfill::x#2 ← phi( eorfill/(byte) 0 eorfill::@5/(byte) eorfill::x#1 ) - [296] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 + [74] (byte*) eorfill::fill_column#2 ← phi( eorfill/(byte*) eorfill::canvas#0 eorfill::@5/(byte*) eorfill::fill_column#1 ) + [74] (byte*) eorfill::line_column#2 ← phi( eorfill/(const nomodify byte*) LINE_BUFFER eorfill::@5/(byte*) eorfill::line_column#1 ) + [74] (byte) eorfill::x#2 ← phi( eorfill/(byte) 0 eorfill::@5/(byte) eorfill::x#1 ) + [75] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 to:eorfill::@return eorfill::@return: scope:[eorfill] from eorfill::@1 - [297] return + [76] return to:@return eorfill::@2: scope:[eorfill] from eorfill::@1 - [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) + [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) + [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 to:eorfill::@3 eorfill::@3: scope:[eorfill] from eorfill::@2 eorfill::@4 - [299] (byte) eorfill::eor#2 ← phi( eorfill::@2/(byte) eorfill::eor#0 eorfill::@4/(byte) eorfill::eor#1 ) - [299] (byte) eorfill::y#2 ← phi( eorfill::@2/(byte) 1 eorfill::@4/(byte) eorfill::y#1 ) - [300] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 + [79] (byte) eorfill::eor#2 ← phi( eorfill::@2/(byte) eorfill::eor#0 eorfill::@4/(byte) eorfill::eor#1 ) + [79] (byte) eorfill::y#2 ← phi( eorfill::@2/(byte) 1 eorfill::@4/(byte) eorfill::y#1 ) + [80] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 to:eorfill::@5 eorfill::@5: scope:[eorfill] from eorfill::@3 - [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 - [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 - [303] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 + [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 + [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 + [83] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 to:eorfill::@1 eorfill::@4: scope:[eorfill] from eorfill::@3 - [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) - [305] *((byte*) eorfill::fill_column#5 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 - [306] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 + [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) + [85] *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 + [86] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 to:eorfill::@3 (void()) line((byte*) line::canvas , (byte) line::x1 , (byte) line::y1 , (byte) line::x2 , (byte) line::y2) line: scope:[line] from main::@16 main::@17 main::@18 - [307] (byte) line::y2#10 ← phi( main::@16/(byte) line::y2#0 main::@17/(byte) line::y2#1 main::@18/(byte) line::y2#2 ) - [307] (byte) line::x2#11 ← phi( main::@16/(byte) line::x2#0 main::@17/(byte) line::x2#1 main::@18/(byte) line::x2#2 ) - [307] (byte) line::y#0 ← phi( main::@16/(byte) line::y1#0 main::@17/(byte) line::y1#1 main::@18/(byte) line::y1#2 ) - [307] (byte) line::x#0 ← phi( main::@16/(byte) line::x1#0 main::@17/(byte) line::x1#1 main::@18/(byte) line::x1#2 ) - [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 - [309] call abs_u8 - [310] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 - to:line::@12 -line::@12: scope:[line] from line - [311] (byte) line::dx#0 ← (byte) abs_u8::return#0 - [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 - [313] call abs_u8 - [314] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 - to:line::@13 -line::@13: scope:[line] from line::@12 - [315] (byte) line::dy#0 ← (byte) abs_u8::return#1 - [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 - [317] call sgn_u8 - [318] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 - to:line::@14 -line::@14: scope:[line] from line::@13 - [319] (byte) line::sx#0 ← (byte) sgn_u8::return#0 - [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 - [321] call sgn_u8 - [322] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 - to:line::@15 -line::@15: scope:[line] from line::@14 - [323] (byte) line::sy#0 ← (byte) sgn_u8::return#1 - [324] if((byte) line::sx#0!=(byte) $ff) goto line::@1 + [87] (byte) line::y2#10 ← phi( main::@16/(byte) line::y2#0 main::@17/(byte) line::y2#1 main::@18/(byte) line::y2#2 ) + [87] (byte) line::x2#15 ← phi( main::@16/(byte) line::x2#0 main::@17/(byte) line::x2#1 main::@18/(byte) line::x2#2 ) + [87] (byte) line::y#0 ← phi( main::@16/(byte) line::y1#0 main::@17/(byte) line::y1#1 main::@18/(byte) line::y1#2 ) + [87] (byte) line::x#0 ← phi( main::@16/(byte) line::x1#0 main::@17/(byte) line::x1#1 main::@18/(byte) line::x1#2 ) + [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 + [89] call abs_u8 + [90] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 + to:line::@19 +line::@19: scope:[line] from line + [91] (byte) line::dx#0 ← (byte) abs_u8::return#0 + [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 + [93] call abs_u8 + [94] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 + to:line::@20 +line::@20: scope:[line] from line::@19 + [95] (byte) line::dy#0 ← (byte) abs_u8::return#1 + [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 + [97] call sgn_u8 + [98] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 + to:line::@21 +line::@21: scope:[line] from line::@20 + [99] (byte) line::sx#0 ← (byte) sgn_u8::return#0 + [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 + [101] call sgn_u8 + [102] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 + to:line::@22 +line::@22: scope:[line] from line::@21 + [103] (byte) line::sy#0 ← (byte) sgn_u8::return#1 + [104] if((byte) line::sx#0!=(byte) $ff) goto line::@1 to:line::@3 -line::@3: scope:[line] from line::@15 - [325] (byte) line::y#1 ← ++ (byte) line::y#0 - [326] (byte) line::y2#3 ← ++ (byte) line::y2#10 +line::@3: scope:[line] from line::@22 + [105] (byte) line::y#1 ← ++ (byte) line::y#0 + [106] (byte) line::y2#3 ← ++ (byte) line::y2#10 to:line::@1 -line::@1: scope:[line] from line::@15 line::@3 - [327] (byte) line::y2#13 ← phi( line::@15/(byte) line::y2#10 line::@3/(byte) line::y2#3 ) - [327] (byte) line::y#13 ← phi( line::@15/(byte) line::y#0 line::@3/(byte) line::y#1 ) - [328] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 +line::@1: scope:[line] from line::@22 line::@3 + [107] (byte) line::y2#13 ← phi( line::@22/(byte) line::y2#10 line::@3/(byte) line::y2#3 ) + [107] (byte) line::y#17 ← phi( line::@22/(byte) line::y#0 line::@3/(byte) line::y#1 ) + [108] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 to:line::@4 line::@4: scope:[line] from line::@1 - [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 - to:line::plot1 -line::plot1: scope:[line] from line::@4 - [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 - [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 - [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) - [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 - [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) + [109] if((byte) line::sx#0==(byte) line::sy#0) goto line::plot1 to:line::@5 -line::@5: scope:[line] from line::@6 line::plot1 - [335] (byte) line::x#10 ← phi( line::@6/(byte) line::x#16 line::plot1/(byte) line::x#0 ) - [335] (byte) line::e#3 ← phi( line::@6/(byte) line::e#5 line::plot1/(byte) line::e#0 ) - [335] (byte) line::y#6 ← phi( line::@6/(byte) line::y#15 line::plot1/(byte) line::y#13 ) - [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 - [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 - [338] if((byte) line::dy#0>=(byte) line::e#1) goto line::@6 - to:line::@7 -line::@7: scope:[line] from line::@5 - [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 - [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 - to:line::plot2 -line::plot2: scope:[line] from line::@7 - [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 - [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 - [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) - [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 - [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) +line::@5: scope:[line] from line::@4 + [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 to:line::@6 -line::@6: scope:[line] from line::@5 line::plot2 - [346] (byte) line::x#16 ← phi( line::@5/(byte) line::x#10 line::plot2/(byte) line::plot2_x#0 ) - [346] (byte) line::e#5 ← phi( line::@5/(byte) line::e#1 line::plot2/(byte) line::e#2 ) - [347] if((byte) line::y#15!=(byte) line::y2#13) goto line::@5 - to:line::@return -line::@return: scope:[line] from line::@6 line::plot4 - [348] return - to:@return -line::@2: scope:[line] from line::@1 - [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 +line::@6: scope:[line] from line::@5 line::@7 + [111] (byte) line::x#15 ← phi( line::@5/(byte) line::x#0 line::@7/(byte) line::x#17 ) + [111] (byte) line::e#3 ← phi( line::@5/(byte) line::e#0 line::@7/(byte) line::e#5 ) + [111] (byte) line::y#7 ← phi( line::@5/(byte) line::y#17 line::@7/(byte) line::y#10 ) + [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 + [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 + [114] if((byte) line::e#1<=(byte) line::dy#0) goto line::@7 to:line::@8 -line::@8: scope:[line] from line::@2 line::@9 - [350] (byte) line::e1#3 ← phi( line::@2/(byte) line::e1#0 line::@9/(byte) line::e1#7 ) - [350] (byte) line::y#10 ← phi( line::@2/(byte) line::y#13 line::@9/(byte) line::y#11 ) - [350] (byte) line::x#12 ← phi( line::@2/(byte) line::x#0 line::@9/(byte) line::x#13 ) +line::@8: scope:[line] from line::@6 + [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 + to:line::plot2 +line::plot2: scope:[line] from line::@8 + [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 + [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 + [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) + [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 + [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) + to:line::@16 +line::@16: scope:[line] from line::plot2 + [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 + [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 + to:line::@7 +line::@7: scope:[line] from line::@16 line::@6 + [123] (byte) line::x#17 ← phi( line::@16/(byte) line::x#1 line::@6/(byte) line::x#15 ) + [123] (byte) line::e#5 ← phi( line::@16/(byte) line::e#2 line::@6/(byte) line::e#1 ) + [124] if((byte) line::y#10!=(byte) line::y2#13) goto line::@6 to:line::plot3 -line::plot3: scope:[line] from line::@8 - [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 - [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 - [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) - [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 - [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) - to:line::@11 -line::@11: scope:[line] from line::plot3 - [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 - [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 - [358] if((byte) line::dx#0>=(byte) line::e1#1) goto line::@9 +line::plot3: scope:[line] from line::@7 + [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 + [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 + [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) + [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 + [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) + to:line::@return +line::@return: scope:[line] from line::@15 line::@17 line::plot3 line::plot6 + [130] return + to:@return +line::plot1: scope:[line] from line::@4 + [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 + [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 + [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) + [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 + [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) + to:line::@15 +line::@15: scope:[line] from line::plot1 + [136] if((byte) line::dx#0!=(byte) 0) goto line::@9 + to:line::@return +line::@9: scope:[line] from line::@15 + [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 to:line::@10 -line::@10: scope:[line] from line::@11 - [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 - [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 - to:line::@9 -line::@9: scope:[line] from line::@10 line::@11 - [361] (byte) line::e1#7 ← phi( line::@10/(byte) line::e1#2 line::@11/(byte) line::e1#1 ) - [361] (byte) line::y#11 ← phi( line::@10/(byte) line::y#3 line::@11/(byte) line::y#10 ) - [362] if((byte) line::x#13!=(byte) line::x2#11) goto line::@8 +line::@10: scope:[line] from line::@10 line::@17 line::@9 + [138] (byte) line::x#18 ← phi( line::@9/(byte) line::x#0 line::@10/(byte) line::x#18 line::@17/(byte) line::x#19 ) + [138] (byte) line::e1#3 ← phi( line::@9/(byte) line::e1#0 line::@10/(byte) line::e1#1 line::@17/(byte) line::e1#2 ) + [138] (byte) line::y#11 ← phi( line::@9/(byte) line::y#17 line::@10/(byte) line::y#12 line::@17/(byte) line::y#12 ) + [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 + [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 + [141] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@10 + to:line::@11 +line::@11: scope:[line] from line::@10 + [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 + [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 to:line::plot4 -line::plot4: scope:[line] from line::@9 - [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 - [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 - [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) - [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 - [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) +line::plot4: scope:[line] from line::@11 + [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 + [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 + [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) + [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 + [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) + to:line::@17 +line::@17: scope:[line] from line::plot4 + [149] if((byte) line::x#19!=(byte) line::x2#15) goto line::@10 + to:line::@return +line::@2: scope:[line] from line::@1 + [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 + to:line::@12 +line::@12: scope:[line] from line::@13 line::@2 + [151] (byte) line::e2#3 ← phi( line::@13/(byte) line::e2#7 line::@2/(byte) line::e2#0 ) + [151] (byte) line::y#13 ← phi( line::@13/(byte) line::y#15 line::@2/(byte) line::y#17 ) + [151] (byte) line::x#10 ← phi( line::@13/(byte) line::x#12 line::@2/(byte) line::x#0 ) + to:line::plot5 +line::plot5: scope:[line] from line::@12 + [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 + [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 + [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) + [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 + [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) + to:line::@18 +line::@18: scope:[line] from line::plot5 + [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 + [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 + [159] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@13 + to:line::@14 +line::@14: scope:[line] from line::@18 + [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 + [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 + to:line::@13 +line::@13: scope:[line] from line::@14 line::@18 + [162] (byte) line::e2#7 ← phi( line::@14/(byte) line::e2#2 line::@18/(byte) line::e2#1 ) + [162] (byte) line::y#15 ← phi( line::@14/(byte) line::y#4 line::@18/(byte) line::y#13 ) + [163] if((byte) line::x#12!=(byte) line::x2#15) goto line::@12 + to:line::plot6 +line::plot6: scope:[line] from line::@13 + [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 + [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 + [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) + [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 + [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) to:line::@return (byte()) sgn_u8((byte) sgn_u8::u) -sgn_u8: scope:[sgn_u8] from line::@13 line::@14 - [368] (byte) sgn_u8::u#2 ← phi( line::@13/(byte) sgn_u8::u#0 line::@14/(byte) sgn_u8::u#1 ) - [369] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 - [370] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 +sgn_u8: scope:[sgn_u8] from line::@20 line::@21 + [169] (byte) sgn_u8::u#2 ← phi( line::@20/(byte) sgn_u8::u#0 line::@21/(byte) sgn_u8::u#1 ) + [170] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 + [171] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 to:sgn_u8::@return sgn_u8::@1: scope:[sgn_u8] from sgn_u8 - [371] phi() + [172] phi() to:sgn_u8::@return sgn_u8::@return: scope:[sgn_u8] from sgn_u8 sgn_u8::@1 - [372] (byte) sgn_u8::return#4 ← phi( sgn_u8::@1/(byte) -1 sgn_u8/(byte) 1 ) - [373] return + [173] (byte) sgn_u8::return#4 ← phi( sgn_u8::@1/(byte) -1 sgn_u8/(byte) 1 ) + [174] return to:@return (byte()) abs_u8((byte) abs_u8::u) -abs_u8: scope:[abs_u8] from line line::@12 - [374] (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@12/(byte) abs_u8::u#1 ) - [375] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 - [376] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 +abs_u8: scope:[abs_u8] from line line::@19 + [175] (byte) abs_u8::u#2 ← phi( line/(byte) abs_u8::u#0 line::@19/(byte) abs_u8::u#1 ) + [176] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 + [177] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 to:abs_u8::@return abs_u8::@1: scope:[abs_u8] from abs_u8 - [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 + [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 to:abs_u8::@return abs_u8::@return: scope:[abs_u8] from abs_u8 abs_u8::@1 - [378] (byte) abs_u8::return#4 ← phi( abs_u8::@1/(byte) abs_u8::return#2 abs_u8/(byte) abs_u8::u#2 ) - [379] return + [179] (byte) abs_u8::return#4 ← phi( abs_u8::@1/(byte) abs_u8::return#2 abs_u8/(byte) abs_u8::u#2 ) + [180] return to:@return +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from main main::@12 main::@13 main::@15 + [181] (byte) memset::c#6 ← phi( main/(byte) ' ' main::@12/(byte) 0 main::@13/(const nomodify byte) BLACK main::@15/(byte) 0 ) + [181] (void*) memset::str#5 ← phi( main/(void*)(const nomodify byte*) CONSOLE main::@12/(void*)(const nomodify byte*) SCREEN main::@13/(void*)(const nomodify byte*) COLS main::@15/(void*)(const nomodify byte*) LINE_BUFFER ) + [181] (word) memset::num#4 ← phi( main/(word)(number) $28*(number) $19 main::@12/(word)(number) $28*(number) $19 main::@13/(word)(number) $28*(number) $19 main::@15/(word) $800 ) + [182] if((word) memset::num#4<=(byte) 0) goto memset::@return + to:memset::@1 +memset::@1: scope:[memset] from memset + [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 + [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 + to:memset::@2 +memset::@2: scope:[memset] from memset::@1 memset::@3 + [185] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + to:memset::@return +memset::@return: scope:[memset] from memset memset::@2 + [187] return + to:@return +memset::@3: scope:[memset] from memset::@2 + [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 + [189] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + to:memset::@2 + (void()) clock_start() clock_start: scope:[clock_start] from main::@8 - [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 - [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff - [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START + [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 + [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff + [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start - [385] return + [195] return to:@return (byte()) textcolor((byte) textcolor::color) textcolor: scope:[textcolor] from main::@14 - [386] (byte) conio_textcolor ← (const nomodify byte) WHITE + [196] phi() to:textcolor::@return textcolor::@return: scope:[textcolor] from textcolor - [387] return + [197] return to:@return (void()) setup_irq() setup_irq: scope:[setup_irq] from main::@3 asm { sei } - [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR - [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f - [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 - [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER - [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() + [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR + [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f + [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 + [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER + [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() asm { cli } to:setup_irq::@return setup_irq::@return: scope:[setup_irq] from setup_irq - [395] return + [205] return to:@return interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() irq_bottom_2: scope:[irq_bottom_2] from - [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK - [397] call kbhit - [398] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK + [207] call kbhit + [208] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + to:irq_bottom_2::@4 +irq_bottom_2::@4: scope:[irq_bottom_2] from irq_bottom_2 + [209] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 + [210] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 + to:irq_bottom_2::toD0181 +irq_bottom_2::toD0181: scope:[irq_bottom_2] from irq_bottom_2::@4 + [211] phi() to:irq_bottom_2::@3 -irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2 - [399] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 - [400] if((byte) 0!=(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 +irq_bottom_2::@3: scope:[irq_bottom_2] from irq_bottom_2::toD0181 + [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 to:irq_bottom_2::@2 -irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@3 - [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory - to:irq_bottom_2::@1 -irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@2 irq_bottom_2::@3 - [402] (volatile byte) canvas_show_flag ← (byte) 0 - [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER - [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 - [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() +irq_bottom_2::@2: scope:[irq_bottom_2] from irq_bottom_2::@1 irq_bottom_2::@3 + [213] (volatile byte) canvas_show_flag ← (byte) 0 + [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER + [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 + [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() to:irq_bottom_2::@return -irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@1 - [406] return +irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2::@2 + [217] return to:@return +irq_bottom_2::@1: scope:[irq_bottom_2] from irq_bottom_2::@4 + [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory + to:irq_bottom_2::@2 (byte()) kbhit() kbhit: scope:[kbhit] from irq_bottom_2 - [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 - [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) + [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 + [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) to:kbhit::@return kbhit::@return: scope:[kbhit] from kbhit - [409] return + [221] return to:@return interrupt(KERNEL_MIN)(void()) irq_bottom_1() irq_bottom_1: scope:[irq_bottom_1] from - [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE + [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY to:irq_bottom_1::toD0181 irq_bottom_1::toD0181: scope:[irq_bottom_1] from irq_bottom_1 - [411] phi() + [223] phi() to:irq_bottom_1::@1 irq_bottom_1::@1: scope:[irq_bottom_1] from irq_bottom_1::toD0181 - [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 - [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER - [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM - [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() + [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 + [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER + [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM + [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() to:irq_bottom_1::@return irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1::@1 - [416] return + [228] return to:@return -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs::@2 cputs::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs::@2 cputs::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs::@2 cputs::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs::@2 cputs::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc -null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope cputc VARIABLE REGISTER WEIGHTS (byte) MOS6526_CIA::INTERRUPT @@ -6873,69 +3729,40 @@ VARIABLE REGISTER WEIGHTS (byte) abs_u8::u#0 2002.0 (byte) abs_u8::u#1 2002.0 (byte) abs_u8::u#2 10668.333333333332 -(volatile byte) canvas_show_flag loadstore 15.577464788732396 -(volatile byte) canvas_show_memory loadstore 2.452380952380952 +(volatile byte) canvas_show_flag loadstore 18.74576271186441 +(volatile byte) canvas_show_memory loadstore 2.8611111111111107 (dword()) clock() (dword) clock::return -(dword) clock::return#0 367.33333333333337 -(dword) clock::return#2 202.0 (void()) clock_start() -(byte*) conio_cursor_color loadstore 2.027272819090909E8 -(byte*) conio_cursor_text loadstore 2.0090091E8 -(byte) conio_cursor_x loadstore 2.5263168515789475E7 -(byte) conio_cursor_y loadstore 2.824561492105263E8 -(byte) conio_textcolor loadstore 6.312500065625E7 -(void()) cputc((byte) cputc::c) -(byte) cputc::c -(byte) cputc::c#0 2.0000002E7 -(byte) cputc::c#1 2.0000002E7 -(byte) cputc::c#2 20002.0 -(byte) cputc::c#3 1.100050025E8 -(void()) cputln() -(byte*~) cputln::$1 2.000000002E9 -(byte*~) cputln::$2 2.000000002E9 -(word) cputln::ln_offset -(word) cputln::ln_offset#0 1.000000001E9 -(void()) cputs((to_nomodify byte*) cputs::s) -(byte) cputs::c -(byte) cputs::c#1 1.0000001E7 -(to_nomodify byte*) cputs::s -(to_nomodify byte*) cputs::s#0 5000000.5 -(to_nomodify byte*) cputs::s#4 1.5050002E7 -(to_nomodify byte*) cputs::s#5 100001.0 -(void()) cscroll() -(byte*~) cscroll::$7 2.0000000002E10 -(byte*~) cscroll::$8 2.0000000002E10 (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) (byte*) eorfill::canvas (byte*) eorfill::canvas#0 551.0 (byte) eorfill::eor -(byte) eorfill::eor#0 200002.0 +(byte) eorfill::eor#0 150001.5 (byte) eorfill::eor#1 1000001.0 (byte) eorfill::eor#2 1050001.5 (byte*) eorfill::fill_column (byte*) eorfill::fill_column#1 100001.0 -(byte*) eorfill::fill_column#5 133444.88888888888 +(byte*) eorfill::fill_column#2 130100.5 (byte*) eorfill::line_buffer (byte*) eorfill::line_column (byte*) eorfill::line_column#1 66667.33333333333 -(byte*) eorfill::line_column#2 162500.5 +(byte*) eorfill::line_column#2 144444.88888888888 (byte) eorfill::x (byte) eorfill::x#1 200002.0 -(byte) eorfill::x#2 30000.300000000003 +(byte) eorfill::x#2 27273.0 (byte) eorfill::y (byte) eorfill::y#1 2000002.0 (byte) eorfill::y#2 1250001.25 -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -(word) gotoxy::offset -(byte) gotoxy::x -(byte) gotoxy::y interrupt(KERNEL_MIN)(void()) irq_bottom_1() (byte*) irq_bottom_1::toD0181_gfx (byte) irq_bottom_1::toD0181_return (byte*) irq_bottom_1::toD0181_screen interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte~) irq_bottom_2::$0 4.0 +(byte*) irq_bottom_2::toD0181_gfx +(byte) irq_bottom_2::toD0181_return +(byte*) irq_bottom_2::toD0181_screen (byte()) kbhit() (byte) kbhit::return (byte) kbhit::return#0 4.333333333333333 @@ -6943,21 +3770,26 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (void()) line((byte*) line::canvas , (byte) line::x1 , (byte) line::y1 , (byte) line::x2 , (byte) line::y2) (byte*) line::canvas (byte) line::dx -(byte) line::dx#0 5941.294117647059 +(byte) line::dx#0 19462.805970149253 (byte) line::dy -(byte) line::dy#0 6446.936170212766 +(byte) line::dy#0 22285.85714285714 (byte) line::e -(byte) line::e#0 333.6666666666667 -(byte) line::e#1 133334.66666666666 -(byte) line::e#2 33333.666666666664 +(byte) line::e#0 2002.0 +(byte) line::e#1 44444.88888888889 +(byte) line::e#2 200002.0 (byte) line::e#3 100501.5 (byte) line::e#5 150001.5 (byte) line::e1 (byte) line::e1#0 2002.0 -(byte) line::e1#1 133334.66666666666 -(byte) line::e1#2 200002.0 -(byte) line::e1#3 28714.714285714286 -(byte) line::e1#7 150001.5 +(byte) line::e1#1 1033334.6666666666 +(byte) line::e1#2 28571.714285714286 +(byte) line::e1#3 1050502.0 +(byte) line::e2 +(byte) line::e2#0 2002.0 +(byte) line::e2#1 133334.66666666666 +(byte) line::e2#2 200002.0 +(byte) line::e2#3 28714.714285714286 +(byte) line::e2#7 150001.5 (byte~) line::plot1_$0 2002.0 (byte~) line::plot1_$1 2002.0 (byte~) line::plot1_$2 2002.0 @@ -6971,32 +3803,49 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte*) line::plot2_column (byte*) line::plot2_column#0 150001.5 (byte) line::plot2_x -(byte) line::plot2_x#0 57143.42857142857 (byte) line::plot2_y -(byte~) line::plot3_$0 200002.0 -(byte~) line::plot3_$1 200002.0 -(byte~) line::plot3_$2 200002.0 +(byte) line::plot2_y#0 60000.600000000006 +(byte~) line::plot3_$0 2002.0 +(byte~) line::plot3_$1 2002.0 +(byte~) line::plot3_$2 2002.0 (byte*) line::plot3_column -(byte*) line::plot3_column#0 150001.5 +(byte*) line::plot3_column#0 1501.5 (byte) line::plot3_x (byte) line::plot3_y -(byte~) line::plot4_$0 2002.0 -(byte~) line::plot4_$1 2002.0 -(byte~) line::plot4_$2 2002.0 +(byte~) line::plot4_$0 200002.0 +(byte~) line::plot4_$1 200002.0 +(byte~) line::plot4_$2 200002.0 (byte*) line::plot4_column -(byte*) line::plot4_column#0 1501.5 +(byte*) line::plot4_column#0 150001.5 (byte) line::plot4_x (byte) line::plot4_y +(byte~) line::plot5_$0 200002.0 +(byte~) line::plot5_$1 200002.0 +(byte~) line::plot5_$2 200002.0 +(byte*) line::plot5_column +(byte*) line::plot5_column#0 150001.5 +(byte) line::plot5_x +(byte) line::plot5_y +(byte~) line::plot6_$0 2002.0 +(byte~) line::plot6_$1 2002.0 +(byte~) line::plot6_$2 2002.0 +(byte*) line::plot6_column +(byte*) line::plot6_column#0 1501.5 +(byte) line::plot6_x +(byte) line::plot6_y (byte) line::sx -(byte) line::sx#0 4697.767441860465 +(byte) line::sx#0 5135.6949152542375 (byte) line::sy -(byte) line::sy#0 5153.923076923076 +(byte) line::sy#0 23672.836363636365 (byte) line::x -(byte) line::x#0 217.55172413793105 -(byte) line::x#10 75251.0 -(byte) line::x#12 66834.16666666666 -(byte) line::x#13 30200.5 -(byte) line::x#16 150001.5 +(byte) line::x#0 228.4375 +(byte) line::x#1 100001.0 +(byte) line::x#10 66834.16666666666 +(byte) line::x#12 30200.5 +(byte) line::x#15 50100.6 +(byte) line::x#17 60401.0 +(byte) line::x#18 550251.25 +(byte) line::x#19 62500.625 (byte) line::x1 (byte) line::x1#0 50.5 (byte) line::x1#1 50.5 @@ -7004,17 +3853,19 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::x2 (byte) line::x2#0 101.0 (byte) line::x2#1 101.0 -(byte) line::x2#11 2841.8333333333335 +(byte) line::x2#15 3612.625 (byte) line::x2#2 101.0 (byte) line::y (byte) line::y#0 239.27777777777777 (byte) line::y#1 1001.0 -(byte) line::y#10 55667.33333333333 -(byte) line::y#11 50334.16666666667 -(byte) line::y#13 667.3333333333333 -(byte) line::y#15 41667.08333333333 -(byte) line::y#3 100001.0 -(byte) line::y#6 201003.0 +(byte) line::y#10 23647.411764705877 +(byte) line::y#11 2101004.0 +(byte) line::y#12 209091.36363636365 +(byte) line::y#13 55667.33333333333 +(byte) line::y#15 50334.16666666667 +(byte) line::y#17 583.9166666666667 +(byte) line::y#4 100001.0 +(byte) line::y#7 201003.0 (byte) line::y1 (byte) line::y1#0 67.33333333333333 (byte) line::y1#1 67.33333333333333 @@ -7023,32 +3874,29 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) line::y2#0 202.0 (byte) line::y2#1 202.0 (byte) line::y2#10 226.68421052631578 -(byte) line::y2#13 4857.285714285714 +(byte) line::y2#13 5666.833333333334 (byte) line::y2#2 202.0 (byte) line::y2#3 2002.0 (void()) main() -(dword~) main::$18 202.0 (byte) main::c (byte) main::c#1 1001.0 (byte) main::c#2 776.0 (byte) main::c#4 202.0 (byte*) main::canvas -(word) main::canvas#1 5.611111111111111 +(word) main::canvas#1 16.833333333333332 (byte*) main::canvas#10 8.911764705882353 -(byte*) main::canvas#24 202.0 +(byte*) main::canvas#19 202.0 (byte*) main::cols (byte*) main::cols#1 67.33333333333333 (byte*) main::cols#5 133.66666666666669 -(dword) main::cyclecount -(dword) main::cyclecount#0 25.25 (byte) main::p0_idx -(byte) main::p0_idx#1 11.222222222222223 -(byte) main::p0_idx#11 15.538461538461538 +(byte) main::p0_idx#1 13.466666666666667 +(byte) main::p0_idx#2 15.538461538461538 (byte) main::p1_idx -(byte) main::p1_idx#1 7.769230769230769 +(byte) main::p1_idx#1 14.428571428571429 (byte) main::p1_idx#2 14.962962962962964 (byte) main::p2_idx -(byte) main::p2_idx#1 8.08 +(byte) main::p2_idx#1 15.538461538461538 (byte) main::p2_idx#2 14.428571428571429 (byte*) main::screen (byte*) main::screen#1 101.0 @@ -7077,39 +3925,20 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::y1#0 33.666666666666664 (byte) main::y2 (byte) main::y2#0 43.285714285714285 -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -(void*) memcpy::destination -(void*) memcpy::destination#2 -(byte*) memcpy::dst -(byte*) memcpy::dst#1 1.00000000000001E14 -(byte*) memcpy::dst#2 1.0003333333333467E14 -(byte*) memcpy::dst#4 2.00000000002E11 -(word) memcpy::num -(void*) memcpy::return -(void*) memcpy::source -(void*) memcpy::source#2 -(byte*) memcpy::src -(byte*) memcpy::src#1 2.00000000000002E14 -(byte*) memcpy::src#2 1.0002500000000125E14 -(byte*) memcpy::src#4 1.00000000001E11 -(byte*) memcpy::src_end -(byte*) memcpy::src_end#0 1.251250000000025E13 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) (byte) memset::c -(byte) memset::c#1 2.0000000002E10 -(byte) memset::c#8 1.25125000000025E12 +(byte) memset::c#6 12500.125 (byte*) memset::dst -(byte*) memset::dst#1 2.0000000000002E13 -(byte*) memset::dst#2 1.3366666666668332E13 -(byte*) memset::dst#4 2.00000000002E11 +(byte*) memset::dst#1 200002.0 +(byte*) memset::dst#2 133668.3333333333 +(byte*) memset::dst#4 2002.0 (byte*) memset::end -(byte*) memset::end#0 1.6833333333336665E12 +(byte*) memset::end#0 16833.666666666664 (word) memset::num -(word) memset::num#6 1.00000000001E11 +(word) memset::num#4 1001.0 (void*) memset::return (void*) memset::str -(void*) memset::str#7 -(struct printf_buffer_number) printf_buffer loadstore = {} +(void*) memset::str#5 (byte) printf_buffer_number::sign (byte) printf_format_number::justify_left (byte) printf_format_number::min_length @@ -7119,63 +3948,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -(word~) printf_number_buffer::$19 10001.0 -(struct printf_buffer_number) printf_number_buffer::buffer -(byte*) printf_number_buffer::buffer_digits -(byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 2002.0 -(byte) printf_number_buffer::buffer_sign#1 2002.0 -(byte) printf_number_buffer::buffer_sign#10 1600.25 -(struct printf_format_number) printf_number_buffer::format -(byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 645.2258064516129 -(byte) printf_number_buffer::format_min_length -(byte) printf_number_buffer::format_min_length#2 1000.1 -(byte) printf_number_buffer::format_radix -(byte) printf_number_buffer::format_sign_always -(byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 384.65384615384613 -(byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 937.59375 -(signed byte) printf_number_buffer::len -(signed byte) printf_number_buffer::len#0 15001.5 -(signed byte) printf_number_buffer::len#1 20002.0 -(signed byte) printf_number_buffer::len#2 30003.0 -(signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 10001.0 -(signed byte) printf_number_buffer::padding#10 1904.952380952381 -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -(byte) printf_padding::i -(byte) printf_padding::i#1 2.0000002E7 -(byte) printf_padding::i#2 7500000.75 -(byte) printf_padding::length -(byte) printf_padding::length#0 20002.0 -(byte) printf_padding::length#1 20002.0 -(byte) printf_padding::length#2 20002.0 -(byte) printf_padding::length#4 1671667.3333333333 -(byte) printf_padding::pad -(byte) printf_padding::pad#5 1666666.8333333333 -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -(struct printf_format_number) printf_uchar::format -(byte) printf_uchar::format_justify_left -(byte) printf_uchar::format_min_length -(byte) printf_uchar::format_radix -(byte) printf_uchar::format_sign_always -(byte) printf_uchar::format_upper_case -(byte) printf_uchar::format_zero_padding -(byte) printf_uchar::uvalue -(byte) printf_uchar::uvalue#0 367.33333333333337 -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -(struct printf_format_number) printf_ulong::format -(byte) printf_ulong::format_justify_left -(byte) printf_ulong::format_min_length -(byte) printf_ulong::format_radix -(byte) printf_ulong::format_sign_always -(byte) printf_ulong::format_upper_case -(byte) printf_ulong::format_zero_padding -(dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 367.33333333333337 (void()) setup_irq() (byte()) sgn_u8((byte) sgn_u8::u) (byte~) sgn_u8::$0 20002.0 @@ -7187,22 +3959,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) sgn_u8::u#0 2002.0 (byte) sgn_u8::u#1 2002.0 (byte) sgn_u8::u#2 12003.0 -(word()) strlen((byte*) strlen::str) -(word) strlen::len -(word) strlen::len#1 1.0000001E7 -(word) strlen::len#2 5002500.75 -(word) strlen::return -(word) strlen::return#2 20002.0 -(byte*) strlen::str -(byte*) strlen::str#0 2.0000002E7 -(byte*) strlen::str#2 1.0000001E7 -(byte*()) strupr((byte*) strupr::str) -(byte~) strupr::$0 2.0000002E7 -(byte*) strupr::return -(byte*) strupr::src -(byte*) strupr::src#1 2.0000002E7 -(byte*) strupr::src#2 7142857.857142856 -(byte*) strupr::str (byte()) textcolor((byte) textcolor::color) (byte) textcolor::color (byte) textcolor::old @@ -7210,153 +3966,36 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte*) toD0181_gfx (byte) toD0181_return (byte*) toD0181_screen -(byte()) toupper((byte) toupper::ch) -(byte) toupper::ch -(byte) toupper::ch#0 1.70000002E8 -(byte) toupper::return -(byte) toupper::return#0 2.00000002E8 -(byte) toupper::return#2 1.0333333466666667E8 -(byte) toupper::return#3 2.0000002E7 -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -(byte*) uctoa::buffer -(byte*) uctoa::buffer#11 335000.50000000006 -(byte*) uctoa::buffer#14 1500001.5 -(byte*) uctoa::buffer#3 20002.0 -(byte*) uctoa::buffer#4 2000002.0 -(byte) uctoa::digit -(byte) uctoa::digit#1 2000002.0 -(byte) uctoa::digit#2 307692.6153846154 -(byte) uctoa::digit_value -(byte) uctoa::digit_value#0 600000.6000000001 -(byte*) uctoa::digit_values -(byte) uctoa::max_digits -(byte) uctoa::radix -(byte) uctoa::started -(byte) uctoa::started#2 600000.6000000001 -(byte) uctoa::started#4 1000001.0 -(byte) uctoa::value -(byte) uctoa::value#0 1000001.0 -(byte) uctoa::value#1 5501.0 -(byte) uctoa::value#2 670001.0000000001 -(byte) uctoa::value#6 1500001.5 -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -(byte*) uctoa_append::buffer -(byte*) uctoa_append::buffer#0 1375000.25 -(byte) uctoa_append::digit -(byte) uctoa_append::digit#1 1.0000000001E10 -(byte) uctoa_append::digit#2 1.00050000015E10 -(byte) uctoa_append::return -(byte) uctoa_append::return#0 2000002.0 -(byte) uctoa_append::sub -(byte) uctoa_append::sub#0 3.3335000005E9 -(byte) uctoa_append::value -(byte) uctoa_append::value#0 3666667.333333333 -(byte) uctoa_append::value#1 2.0000000002E10 -(byte) uctoa_append::value#2 5.001833334166666E9 -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -(byte~) ultoa::$10 2000002.0 -(byte~) ultoa::$11 20002.0 -(byte*) ultoa::buffer -(byte*) ultoa::buffer#11 287143.2857142857 -(byte*) ultoa::buffer#14 1500001.5 -(byte*) ultoa::buffer#3 20002.0 -(byte*) ultoa::buffer#4 2000002.0 -(byte) ultoa::digit -(byte) ultoa::digit#1 2000002.0 -(byte) ultoa::digit#2 285714.5714285714 -(dword) ultoa::digit_value -(dword) ultoa::digit_value#0 600000.6000000001 -(dword*) ultoa::digit_values -(byte) ultoa::max_digits -(byte) ultoa::radix -(byte) ultoa::started -(byte) ultoa::started#2 500000.5 -(byte) ultoa::started#4 1000001.0 -(dword) ultoa::value -(dword) ultoa::value#0 1000001.0 -(dword) ultoa::value#1 5501.0 -(dword) ultoa::value#2 572857.857142857 -(dword) ultoa::value#6 1500001.5 -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -(byte*) ultoa_append::buffer -(byte*) ultoa_append::buffer#0 1375000.25 -(byte) ultoa_append::digit -(byte) ultoa_append::digit#1 1.0000000001E10 -(byte) ultoa_append::digit#2 1.00050000015E10 -(dword) ultoa_append::return -(dword) ultoa_append::return#0 2000002.0 -(dword) ultoa_append::sub -(dword) ultoa_append::sub#0 3.3335000005E9 -(dword) ultoa_append::value -(dword) ultoa_append::value#0 3666667.333333333 -(dword) ultoa_append::value#1 2.0000000002E10 -(dword) ultoa_append::value#2 5.001833334166666E9 Initial phi equivalence classes [ main::y#2 main::y#1 ] [ main::cols#5 main::cols#1 ] [ main::screen#5 main::screen#1 ] -[ main::p0_idx#11 main::p0_idx#1 ] +[ main::p0_idx#2 main::p0_idx#1 ] [ main::p1_idx#2 main::p1_idx#1 ] [ main::p2_idx#2 main::p2_idx#1 ] -[ main::canvas#10 main::canvas#24 ] +[ main::canvas#10 main::canvas#19 ] [ main::x#2 main::x#1 ] [ main::c#2 main::c#4 main::c#1 ] -[ printf_number_buffer::format_min_length#2 ] -[ printf_number_buffer::format_justify_left#10 ] -[ printf_number_buffer::format_zero_padding#10 ] -[ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -[ printf_number_buffer::format_upper_case#10 ] -[ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -[ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -[ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -[ printf_padding::pad#5 ] -[ printf_padding::i#2 printf_padding::i#1 ] -[ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -[ memset::num#6 ] -[ memset::str#7 ] -[ memset::c#8 memset::c#1 ] -[ memset::dst#2 memset::dst#4 memset::dst#1 ] -[ memcpy::source#2 ] -[ memcpy::destination#2 ] -[ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] -[ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] -[ cputs::s#4 cputs::s#5 cputs::s#0 ] -[ strupr::src#2 strupr::src#1 ] -[ toupper::return#2 toupper::return#0 toupper::ch#0 ] -[ strlen::str#2 strlen::str#0 ] -[ strlen::len#2 strlen::len#1 ] -[ ultoa::digit#2 ultoa::digit#1 ] -[ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -[ ultoa::started#2 ultoa::started#4 ] -[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -[ ultoa_append::digit#2 ultoa_append::digit#1 ] -[ uctoa::digit#2 uctoa::digit#1 ] -[ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -[ uctoa::started#2 uctoa::started#4 ] -[ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -[ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -[ uctoa_append::digit#2 uctoa_append::digit#1 ] [ eorfill::x#2 eorfill::x#1 ] [ eorfill::line_column#2 eorfill::line_column#1 ] -[ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] +[ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] [ eorfill::y#2 eorfill::y#1 ] [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] -[ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] +[ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -[ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -[ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -[ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -[ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] +[ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +[ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +[ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +[ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +[ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] [ sgn_u8::return#4 ] [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] -Added variable conio_cursor_x to live range equivalence class [ conio_cursor_x ] -Added variable conio_cursor_y to live range equivalence class [ conio_cursor_y ] -Added variable conio_cursor_text to live range equivalence class [ conio_cursor_text ] -Added variable conio_cursor_color to live range equivalence class [ conio_cursor_color ] -Added variable conio_textcolor to live range equivalence class [ conio_textcolor ] +[ memset::num#4 ] +[ memset::str#5 ] +[ memset::c#6 ] +[ memset::dst#2 memset::dst#4 memset::dst#1 ] Added variable canvas_show_memory to live range equivalence class [ canvas_show_memory ] Added variable canvas_show_flag to live range equivalence class [ canvas_show_flag ] Added variable main::x0#0 to live range equivalence class [ main::x0#0 ] @@ -7366,36 +4005,6 @@ Added variable main::y1#0 to live range equivalence class [ main::y1#0 ] Added variable main::x2#0 to live range equivalence class [ main::x2#0 ] Added variable main::y2#0 to live range equivalence class [ main::y2#0 ] Added variable main::canvas#1 to live range equivalence class [ main::canvas#1 ] -Added variable clock::return#2 to live range equivalence class [ clock::return#2 ] -Added variable main::$18 to live range equivalence class [ main::$18 ] -Added variable main::cyclecount#0 to live range equivalence class [ main::cyclecount#0 ] -Added variable printf_uchar::uvalue#0 to live range equivalence class [ printf_uchar::uvalue#0 ] -Added variable printf_ulong::uvalue#0 to live range equivalence class [ printf_ulong::uvalue#0 ] -Added variable strlen::return#2 to live range equivalence class [ strlen::return#2 ] -Added variable printf_number_buffer::$19 to live range equivalence class [ printf_number_buffer::$19 ] -Added variable cputln::ln_offset#0 to live range equivalence class [ cputln::ln_offset#0 ] -Added variable cputln::$1 to live range equivalence class [ cputln::$1 ] -Added variable cputln::$2 to live range equivalence class [ cputln::$2 ] -Added variable cscroll::$7 to live range equivalence class [ cscroll::$7 ] -Added variable cscroll::$8 to live range equivalence class [ cscroll::$8 ] -Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] -Added variable memcpy::src_end#0 to live range equivalence class [ memcpy::src_end#0 ] -Added variable cputs::c#1 to live range equivalence class [ cputs::c#1 ] -Added variable toupper::return#3 to live range equivalence class [ toupper::return#3 ] -Added variable strupr::$0 to live range equivalence class [ strupr::$0 ] -Added variable ultoa::$11 to live range equivalence class [ ultoa::$11 ] -Added variable ultoa::buffer#3 to live range equivalence class [ ultoa::buffer#3 ] -Added variable ultoa::$10 to live range equivalence class [ ultoa::$10 ] -Added variable ultoa::digit_value#0 to live range equivalence class [ ultoa::digit_value#0 ] -Added variable ultoa_append::buffer#0 to live range equivalence class [ ultoa_append::buffer#0 ] -Added variable ultoa_append::sub#0 to live range equivalence class [ ultoa_append::sub#0 ] -Added variable ultoa_append::return#0 to live range equivalence class [ ultoa_append::return#0 ] -Added variable uctoa::buffer#3 to live range equivalence class [ uctoa::buffer#3 ] -Added variable uctoa::digit_value#0 to live range equivalence class [ uctoa::digit_value#0 ] -Added variable uctoa_append::buffer#0 to live range equivalence class [ uctoa_append::buffer#0 ] -Added variable uctoa_append::sub#0 to live range equivalence class [ uctoa_append::sub#0 ] -Added variable uctoa_append::return#0 to live range equivalence class [ uctoa_append::return#0 ] -Added variable clock::return#0 to live range equivalence class [ clock::return#0 ] Added variable abs_u8::return#0 to live range equivalence class [ abs_u8::return#0 ] Added variable line::dx#0 to live range equivalence class [ line::dx#0 ] Added variable abs_u8::return#1 to live range equivalence class [ abs_u8::return#1 ] @@ -7404,10 +4013,7 @@ Added variable sgn_u8::return#0 to live range equivalence class [ sgn_u8::return Added variable line::sx#0 to live range equivalence class [ line::sx#0 ] Added variable sgn_u8::return#1 to live range equivalence class [ sgn_u8::return#1 ] Added variable line::sy#0 to live range equivalence class [ line::sy#0 ] -Added variable line::plot1_$0 to live range equivalence class [ line::plot1_$0 ] -Added variable line::plot1_$2 to live range equivalence class [ line::plot1_$2 ] -Added variable line::plot1_column#0 to live range equivalence class [ line::plot1_column#0 ] -Added variable line::plot1_$1 to live range equivalence class [ line::plot1_$1 ] +Added variable line::plot2_y#0 to live range equivalence class [ line::plot2_y#0 ] Added variable line::plot2_$0 to live range equivalence class [ line::plot2_$0 ] Added variable line::plot2_$2 to live range equivalence class [ line::plot2_$2 ] Added variable line::plot2_column#0 to live range equivalence class [ line::plot2_column#0 ] @@ -7416,81 +4022,57 @@ Added variable line::plot3_$0 to live range equivalence class [ line::plot3_$0 ] Added variable line::plot3_$2 to live range equivalence class [ line::plot3_$2 ] Added variable line::plot3_column#0 to live range equivalence class [ line::plot3_column#0 ] Added variable line::plot3_$1 to live range equivalence class [ line::plot3_$1 ] +Added variable line::plot1_$0 to live range equivalence class [ line::plot1_$0 ] +Added variable line::plot1_$2 to live range equivalence class [ line::plot1_$2 ] +Added variable line::plot1_column#0 to live range equivalence class [ line::plot1_column#0 ] +Added variable line::plot1_$1 to live range equivalence class [ line::plot1_$1 ] Added variable line::plot4_$0 to live range equivalence class [ line::plot4_$0 ] Added variable line::plot4_$2 to live range equivalence class [ line::plot4_$2 ] Added variable line::plot4_column#0 to live range equivalence class [ line::plot4_column#0 ] Added variable line::plot4_$1 to live range equivalence class [ line::plot4_$1 ] +Added variable line::plot5_$0 to live range equivalence class [ line::plot5_$0 ] +Added variable line::plot5_$2 to live range equivalence class [ line::plot5_$2 ] +Added variable line::plot5_column#0 to live range equivalence class [ line::plot5_column#0 ] +Added variable line::plot5_$1 to live range equivalence class [ line::plot5_$1 ] +Added variable line::plot6_$0 to live range equivalence class [ line::plot6_$0 ] +Added variable line::plot6_$2 to live range equivalence class [ line::plot6_$2 ] +Added variable line::plot6_column#0 to live range equivalence class [ line::plot6_column#0 ] +Added variable line::plot6_$1 to live range equivalence class [ line::plot6_$1 ] Added variable sgn_u8::$0 to live range equivalence class [ sgn_u8::$0 ] Added variable abs_u8::$0 to live range equivalence class [ abs_u8::$0 ] +Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] Added variable kbhit::return#2 to live range equivalence class [ kbhit::return#2 ] Added variable irq_bottom_2::$0 to live range equivalence class [ irq_bottom_2::$0 ] Added variable kbhit::return#0 to live range equivalence class [ kbhit::return#0 ] -Added variable printf_buffer to live range equivalence class [ printf_buffer ] Complete equivalence classes [ main::y#2 main::y#1 ] [ main::cols#5 main::cols#1 ] [ main::screen#5 main::screen#1 ] -[ main::p0_idx#11 main::p0_idx#1 ] +[ main::p0_idx#2 main::p0_idx#1 ] [ main::p1_idx#2 main::p1_idx#1 ] [ main::p2_idx#2 main::p2_idx#1 ] -[ main::canvas#10 main::canvas#24 ] +[ main::canvas#10 main::canvas#19 ] [ main::x#2 main::x#1 ] [ main::c#2 main::c#4 main::c#1 ] -[ printf_number_buffer::format_min_length#2 ] -[ printf_number_buffer::format_justify_left#10 ] -[ printf_number_buffer::format_zero_padding#10 ] -[ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -[ printf_number_buffer::format_upper_case#10 ] -[ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -[ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -[ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -[ printf_padding::pad#5 ] -[ printf_padding::i#2 printf_padding::i#1 ] -[ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -[ memset::num#6 ] -[ memset::str#7 ] -[ memset::c#8 memset::c#1 ] -[ memset::dst#2 memset::dst#4 memset::dst#1 ] -[ memcpy::source#2 ] -[ memcpy::destination#2 ] -[ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] -[ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] -[ cputs::s#4 cputs::s#5 cputs::s#0 ] -[ strupr::src#2 strupr::src#1 ] -[ toupper::return#2 toupper::return#0 toupper::ch#0 ] -[ strlen::str#2 strlen::str#0 ] -[ strlen::len#2 strlen::len#1 ] -[ ultoa::digit#2 ultoa::digit#1 ] -[ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -[ ultoa::started#2 ultoa::started#4 ] -[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -[ ultoa_append::digit#2 ultoa_append::digit#1 ] -[ uctoa::digit#2 uctoa::digit#1 ] -[ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -[ uctoa::started#2 uctoa::started#4 ] -[ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -[ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -[ uctoa_append::digit#2 uctoa_append::digit#1 ] [ eorfill::x#2 eorfill::x#1 ] [ eorfill::line_column#2 eorfill::line_column#1 ] -[ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] +[ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] [ eorfill::y#2 eorfill::y#1 ] [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] -[ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] +[ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -[ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -[ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -[ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -[ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] +[ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +[ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +[ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +[ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +[ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] [ sgn_u8::return#4 ] [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] -[ conio_cursor_x ] -[ conio_cursor_y ] -[ conio_cursor_text ] -[ conio_cursor_color ] -[ conio_textcolor ] +[ memset::num#4 ] +[ memset::str#5 ] +[ memset::c#6 ] +[ memset::dst#2 memset::dst#4 memset::dst#1 ] [ canvas_show_memory ] [ canvas_show_flag ] [ main::x0#0 ] @@ -7500,36 +4082,6 @@ Complete equivalence classes [ main::x2#0 ] [ main::y2#0 ] [ main::canvas#1 ] -[ clock::return#2 ] -[ main::$18 ] -[ main::cyclecount#0 ] -[ printf_uchar::uvalue#0 ] -[ printf_ulong::uvalue#0 ] -[ strlen::return#2 ] -[ printf_number_buffer::$19 ] -[ cputln::ln_offset#0 ] -[ cputln::$1 ] -[ cputln::$2 ] -[ cscroll::$7 ] -[ cscroll::$8 ] -[ memset::end#0 ] -[ memcpy::src_end#0 ] -[ cputs::c#1 ] -[ toupper::return#3 ] -[ strupr::$0 ] -[ ultoa::$11 ] -[ ultoa::buffer#3 ] -[ ultoa::$10 ] -[ ultoa::digit_value#0 ] -[ ultoa_append::buffer#0 ] -[ ultoa_append::sub#0 ] -[ ultoa_append::return#0 ] -[ uctoa::buffer#3 ] -[ uctoa::digit_value#0 ] -[ uctoa_append::buffer#0 ] -[ uctoa_append::sub#0 ] -[ uctoa_append::return#0 ] -[ clock::return#0 ] [ abs_u8::return#0 ] [ line::dx#0 ] [ abs_u8::return#1 ] @@ -7538,10 +4090,7 @@ Complete equivalence classes [ line::sx#0 ] [ sgn_u8::return#1 ] [ line::sy#0 ] -[ line::plot1_$0 ] -[ line::plot1_$2 ] -[ line::plot1_column#0 ] -[ line::plot1_$1 ] +[ line::plot2_y#0 ] [ line::plot2_$0 ] [ line::plot2_$2 ] [ line::plot2_column#0 ] @@ -7550,149 +4099,104 @@ Complete equivalence classes [ line::plot3_$2 ] [ line::plot3_column#0 ] [ line::plot3_$1 ] +[ line::plot1_$0 ] +[ line::plot1_$2 ] +[ line::plot1_column#0 ] +[ line::plot1_$1 ] [ line::plot4_$0 ] [ line::plot4_$2 ] [ line::plot4_column#0 ] [ line::plot4_$1 ] +[ line::plot5_$0 ] +[ line::plot5_$2 ] +[ line::plot5_column#0 ] +[ line::plot5_$1 ] +[ line::plot6_$0 ] +[ line::plot6_$2 ] +[ line::plot6_column#0 ] +[ line::plot6_$1 ] [ sgn_u8::$0 ] [ abs_u8::$0 ] +[ memset::end#0 ] [ kbhit::return#2 ] [ irq_bottom_2::$0 ] [ kbhit::return#0 ] -[ printf_buffer ] Allocated zp[1]:2 [ main::y#2 main::y#1 ] Allocated zp[2]:3 [ main::cols#5 main::cols#1 ] Allocated zp[2]:5 [ main::screen#5 main::screen#1 ] -Allocated zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] +Allocated zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] Allocated zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] Allocated zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] -Allocated zp[2]:10 [ main::canvas#10 main::canvas#24 ] +Allocated zp[2]:10 [ main::canvas#10 main::canvas#19 ] Allocated zp[1]:12 [ main::x#2 main::x#1 ] Allocated zp[1]:13 [ main::c#2 main::c#4 main::c#1 ] -Allocated zp[1]:14 [ printf_number_buffer::format_min_length#2 ] -Allocated zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] -Allocated zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] -Allocated zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Allocated zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] -Allocated zp[1]:19 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -Allocated zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Allocated zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Allocated zp[1]:22 [ printf_padding::pad#5 ] -Allocated zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] -Allocated zp[1]:24 [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -Allocated zp[2]:25 [ memset::num#6 ] -Allocated zp[2]:27 [ memset::str#7 ] -Allocated zp[1]:29 [ memset::c#8 memset::c#1 ] -Allocated zp[2]:30 [ memset::dst#2 memset::dst#4 memset::dst#1 ] -Allocated zp[2]:32 [ memcpy::source#2 ] -Allocated zp[2]:34 [ memcpy::destination#2 ] -Allocated zp[2]:36 [ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] -Allocated zp[2]:38 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] -Allocated zp[2]:40 [ cputs::s#4 cputs::s#5 cputs::s#0 ] -Allocated zp[2]:42 [ strupr::src#2 strupr::src#1 ] -Allocated zp[1]:44 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -Allocated zp[2]:45 [ strlen::str#2 strlen::str#0 ] -Allocated zp[2]:47 [ strlen::len#2 strlen::len#1 ] -Allocated zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] -Allocated zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -Allocated zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] -Allocated zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -Allocated zp[4]:57 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -Allocated zp[1]:61 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Allocated zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] -Allocated zp[1]:63 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Allocated zp[1]:64 [ uctoa::started#2 uctoa::started#4 ] -Allocated zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -Allocated zp[1]:67 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Allocated zp[1]:68 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Allocated zp[1]:69 [ eorfill::x#2 eorfill::x#1 ] -Allocated zp[2]:70 [ eorfill::line_column#2 eorfill::line_column#1 ] -Allocated zp[2]:72 [ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] -Allocated zp[1]:74 [ eorfill::y#2 eorfill::y#1 ] -Allocated zp[1]:75 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] -Allocated zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] -Allocated zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -Allocated zp[1]:78 [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -Allocated zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -Allocated zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -Allocated zp[1]:81 [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] -Allocated zp[1]:82 [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] -Allocated zp[1]:83 [ sgn_u8::return#4 ] -Allocated zp[1]:84 [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] -Allocated zp[1]:85 [ conio_cursor_x ] -Allocated zp[1]:86 [ conio_cursor_y ] -Allocated zp[2]:87 [ conio_cursor_text ] -Allocated zp[2]:89 [ conio_cursor_color ] -Allocated zp[1]:91 [ conio_textcolor ] -Allocated zp[1]:92 [ canvas_show_memory ] -Allocated zp[1]:93 [ canvas_show_flag ] -Allocated zp[1]:94 [ main::x0#0 ] -Allocated zp[1]:95 [ main::y0#0 ] -Allocated zp[1]:96 [ main::x1#0 ] -Allocated zp[1]:97 [ main::y1#0 ] -Allocated zp[1]:98 [ main::x2#0 ] -Allocated zp[1]:99 [ main::y2#0 ] -Allocated zp[2]:100 [ main::canvas#1 ] -Allocated zp[4]:102 [ clock::return#2 ] -Allocated zp[4]:106 [ main::$18 ] -Allocated zp[4]:110 [ main::cyclecount#0 ] -Allocated zp[1]:114 [ printf_uchar::uvalue#0 ] -Allocated zp[4]:115 [ printf_ulong::uvalue#0 ] -Allocated zp[2]:119 [ strlen::return#2 ] -Allocated zp[2]:121 [ printf_number_buffer::$19 ] -Allocated zp[2]:123 [ cputln::ln_offset#0 ] -Allocated zp[2]:125 [ cputln::$1 ] -Allocated zp[2]:127 [ cputln::$2 ] -Allocated zp[2]:129 [ cscroll::$7 ] -Allocated zp[2]:131 [ cscroll::$8 ] -Allocated zp[2]:133 [ memset::end#0 ] -Allocated zp[2]:135 [ memcpy::src_end#0 ] -Allocated zp[1]:137 [ cputs::c#1 ] -Allocated zp[1]:138 [ toupper::return#3 ] -Allocated zp[1]:139 [ strupr::$0 ] -Allocated zp[1]:140 [ ultoa::$11 ] -Allocated zp[2]:141 [ ultoa::buffer#3 ] -Allocated zp[1]:143 [ ultoa::$10 ] -Allocated zp[4]:144 [ ultoa::digit_value#0 ] -Allocated zp[2]:148 [ ultoa_append::buffer#0 ] -Allocated zp[4]:150 [ ultoa_append::sub#0 ] -Allocated zp[4]:154 [ ultoa_append::return#0 ] -Allocated zp[2]:158 [ uctoa::buffer#3 ] -Allocated zp[1]:160 [ uctoa::digit_value#0 ] -Allocated zp[2]:161 [ uctoa_append::buffer#0 ] -Allocated zp[1]:163 [ uctoa_append::sub#0 ] -Allocated zp[1]:164 [ uctoa_append::return#0 ] -Allocated zp[4]:165 [ clock::return#0 ] -Allocated zp[1]:169 [ abs_u8::return#0 ] -Allocated zp[1]:170 [ line::dx#0 ] -Allocated zp[1]:171 [ abs_u8::return#1 ] -Allocated zp[1]:172 [ line::dy#0 ] -Allocated zp[1]:173 [ sgn_u8::return#0 ] -Allocated zp[1]:174 [ line::sx#0 ] -Allocated zp[1]:175 [ sgn_u8::return#1 ] -Allocated zp[1]:176 [ line::sy#0 ] -Allocated zp[1]:177 [ line::plot1_$0 ] -Allocated zp[1]:178 [ line::plot1_$2 ] -Allocated zp[2]:179 [ line::plot1_column#0 ] -Allocated zp[1]:181 [ line::plot1_$1 ] -Allocated zp[1]:182 [ line::plot2_$0 ] -Allocated zp[1]:183 [ line::plot2_$2 ] -Allocated zp[2]:184 [ line::plot2_column#0 ] -Allocated zp[1]:186 [ line::plot2_$1 ] -Allocated zp[1]:187 [ line::plot3_$0 ] -Allocated zp[1]:188 [ line::plot3_$2 ] -Allocated zp[2]:189 [ line::plot3_column#0 ] -Allocated zp[1]:191 [ line::plot3_$1 ] -Allocated zp[1]:192 [ line::plot4_$0 ] -Allocated zp[1]:193 [ line::plot4_$2 ] -Allocated zp[2]:194 [ line::plot4_column#0 ] -Allocated zp[1]:196 [ line::plot4_$1 ] -Allocated zp[1]:197 [ sgn_u8::$0 ] -Allocated zp[1]:198 [ abs_u8::$0 ] -Allocated zp[1]:199 [ kbhit::return#2 ] -Allocated zp[1]:200 [ irq_bottom_2::$0 ] -Allocated zp[1]:201 [ kbhit::return#0 ] -Allocated mem[12] [ printf_buffer ] +Allocated zp[1]:14 [ eorfill::x#2 eorfill::x#1 ] +Allocated zp[2]:15 [ eorfill::line_column#2 eorfill::line_column#1 ] +Allocated zp[2]:17 [ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] +Allocated zp[1]:19 [ eorfill::y#2 eorfill::y#1 ] +Allocated zp[1]:20 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] +Allocated zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] +Allocated zp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +Allocated zp[1]:23 [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +Allocated zp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +Allocated zp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +Allocated zp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +Allocated zp[1]:27 [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] +Allocated zp[1]:28 [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] +Allocated zp[1]:29 [ sgn_u8::return#4 ] +Allocated zp[1]:30 [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] +Allocated zp[2]:31 [ memset::num#4 ] +Allocated zp[2]:33 [ memset::str#5 ] +Allocated zp[1]:35 [ memset::c#6 ] +Allocated zp[2]:36 [ memset::dst#2 memset::dst#4 memset::dst#1 ] +Allocated zp[1]:38 [ canvas_show_memory ] +Allocated zp[1]:39 [ canvas_show_flag ] +Allocated zp[1]:40 [ main::x0#0 ] +Allocated zp[1]:41 [ main::y0#0 ] +Allocated zp[1]:42 [ main::x1#0 ] +Allocated zp[1]:43 [ main::y1#0 ] +Allocated zp[1]:44 [ main::x2#0 ] +Allocated zp[1]:45 [ main::y2#0 ] +Allocated zp[2]:46 [ main::canvas#1 ] +Allocated zp[1]:48 [ abs_u8::return#0 ] +Allocated zp[1]:49 [ line::dx#0 ] +Allocated zp[1]:50 [ abs_u8::return#1 ] +Allocated zp[1]:51 [ line::dy#0 ] +Allocated zp[1]:52 [ sgn_u8::return#0 ] +Allocated zp[1]:53 [ line::sx#0 ] +Allocated zp[1]:54 [ sgn_u8::return#1 ] +Allocated zp[1]:55 [ line::sy#0 ] +Allocated zp[1]:56 [ line::plot2_y#0 ] +Allocated zp[1]:57 [ line::plot2_$0 ] +Allocated zp[1]:58 [ line::plot2_$2 ] +Allocated zp[2]:59 [ line::plot2_column#0 ] +Allocated zp[1]:61 [ line::plot2_$1 ] +Allocated zp[1]:62 [ line::plot3_$0 ] +Allocated zp[1]:63 [ line::plot3_$2 ] +Allocated zp[2]:64 [ line::plot3_column#0 ] +Allocated zp[1]:66 [ line::plot3_$1 ] +Allocated zp[1]:67 [ line::plot1_$0 ] +Allocated zp[1]:68 [ line::plot1_$2 ] +Allocated zp[2]:69 [ line::plot1_column#0 ] +Allocated zp[1]:71 [ line::plot1_$1 ] +Allocated zp[1]:72 [ line::plot4_$0 ] +Allocated zp[1]:73 [ line::plot4_$2 ] +Allocated zp[2]:74 [ line::plot4_column#0 ] +Allocated zp[1]:76 [ line::plot4_$1 ] +Allocated zp[1]:77 [ line::plot5_$0 ] +Allocated zp[1]:78 [ line::plot5_$2 ] +Allocated zp[2]:79 [ line::plot5_column#0 ] +Allocated zp[1]:81 [ line::plot5_$1 ] +Allocated zp[1]:82 [ line::plot6_$0 ] +Allocated zp[1]:83 [ line::plot6_$2 ] +Allocated zp[2]:84 [ line::plot6_column#0 ] +Allocated zp[1]:86 [ line::plot6_$1 ] +Allocated zp[1]:87 [ sgn_u8::$0 ] +Allocated zp[1]:88 [ abs_u8::$0 ] +Allocated zp[2]:89 [ memset::end#0 ] +Allocated zp[1]:91 [ kbhit::return#2 ] +Allocated zp[1]:92 [ irq_bottom_2::$0 ] +Allocated zp[1]:93 [ kbhit::return#0 ] INITIAL ASM Target platform is c64basic / MOS6502X @@ -7721,12 +4225,7 @@ Target platform is c64basic / MOS6502X .const BLACK = 0 .const WHITE = 1 .const RED = 2 - // Clock cycles used to start & read the cycle clock by calling clock_start() and clock() once. Can be subtracted when calculating the number of cycles used by a routine. - // To make precise cycle measurements interrupts and the display must be disabled so neither steals any cycles from the code. - .const CLOCKS_PER_INIT = $12 - // The default text color - .const CONIO_TEXTCOLOR_DEFAULT = $e - .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const DARK_GREY = $b .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f .const OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 @@ -7750,13 +4249,6 @@ Target platform is c64basic / MOS6502X .label CIA2_TIMER_AB = $dd04 // The vector used when the KERNAL serves IRQ interrupts .label KERNEL_IRQ = $314 - // The screen width - // The screen height - // The screen bytes - // The text screen address - .label CONIO_SCREEN_TEXT = $400 - // The color screen address - .label CONIO_SCREEN_COLORS = $d800 // CIA#1 Port A: keyboard matrix columns and joystick #2 .label CONIO_CIA1_PORT_A = $dc00 // CIA#1 Port B: keyboard matrix rows and joystick #1. @@ -7773,70 +4265,38 @@ Target platform is c64basic / MOS6502X // The default charset address .label PETSCII = $1000 .label COSTAB = SINTAB+$40 - .label conio_cursor_x = $55 - .label conio_cursor_y = $56 - .label conio_cursor_text = $57 - .label conio_cursor_color = $59 - .label conio_textcolor = $5b - .label canvas_show_memory = $5c - .label canvas_show_flag = $5d + .label canvas_show_memory = $26 + .label canvas_show_flag = $27 // @begin __bbegin: - jmp __b1 - // @1 -__b1: - // [1] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - // The current cursor x-position - lda #0 - sta.z conio_cursor_x - // [2] (byte) conio_cursor_y ← (byte) 0 -- vbuz1=vbuc1 - // The current cursor y-position - lda #0 - sta.z conio_cursor_y - // [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT -- pbuz1=pbuc1 - // The current cursor address - lda #CONIO_SCREEN_TEXT - sta.z conio_cursor_text+1 - // [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS -- pbuz1=pbuc1 - // The current cursor address - lda #CONIO_SCREEN_COLORS - sta.z conio_cursor_color+1 - // [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- vbuz1=vbuc1 - // The current text color - lda #CONIO_TEXTCOLOR_DEFAULT - sta.z conio_textcolor - // [6] phi from @1 to toD0181 [phi:@1->toD0181] -toD0181_from___b1: + // [1] phi from @begin to toD0181 [phi:@begin->toD0181] +toD0181_from___bbegin: jmp toD0181 // toD0181 toD0181: - jmp __b3 - // @3 -__b3: - // [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 -- vbuz1=vbuc1 + jmp __b2 + // @2 +__b2: + // [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 -- vbuz1=vbuc1 // The current canvas being rendered to the screen - in D018 format. lda #toD0181_return sta.z canvas_show_memory - // [8] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 + // [3] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 // Flag signalling that the canvas on screen needs to be updated. // Set to 1 by the renderer when a new canvas is ready for showing, and to 0 by the raster when the canvas is shown on screen. lda #0 sta.z canvas_show_flag - // [9] phi from @3 to @2 [phi:@3->@2] -__b2_from___b3: - jmp __b2 - // @2 -__b2: - // [10] call main - // [12] phi from @2 to main [phi:@2->main] -main_from___b2: + // [4] phi from @2 to @1 [phi:@2->@1] +__b1_from___b2: + jmp __b1 + // @1 +__b1: + // [5] call main + // [7] phi from @1 to main [phi:@1->main] +main_from___b1: jsr main - // [11] phi from @2 to @end [phi:@2->@end] -__bend_from___b2: + // [6] phi from @1 to @end [phi:@1->@end] +__bend_from___b1: jmp __bend // @end __bend: @@ -7844,176 +4304,176 @@ __bend: main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS1)/4&$f .const toD0182_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .label __18 = $6a .label c = $d .label x = $c .label cols = 3 // Setup 16x16 canvas for rendering .label screen = 5 .label y = 2 - .label x0 = $5e - .label y0 = $5f - .label x1 = $60 - .label y1 = $61 - .label x2 = $62 - .label y2 = $63 + .label x0 = $28 + .label y0 = $29 + .label x1 = $2a + .label y1 = $2b + .label x2 = $2c + .label y2 = $2d .label p0_idx = 7 .label p1_idx = 8 .label p2_idx = 9 // The current canvas being rendered to - .label canvas = $64 - .label cyclecount = $6e + .label canvas = $2e // The current canvas being rendered to .label canvas_1 = $a - // [13] call memset + // [8] call memset // Clear the console - // [177] phi from main to memset [phi:main->memset] + // [181] phi from main to memset [phi:main->memset] memset_from_main: - // [177] phi (byte) memset::c#8 = (byte) ' ' [phi:main->memset#0] -- vbuz1=vbuc1 + // [181] phi (byte) memset::c#6 = (byte) ' ' [phi:main->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONSOLE [phi:main->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) CONSOLE [phi:main->memset#1] -- pvoz1=pvoc1 lda #CONSOLE sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [14] phi from main to main::@12 [phi:main->main::@12] + // [9] phi from main to main::@12 [phi:main->main::@12] __b12_from_main: jmp __b12 // main::@12 __b12: - // [15] call memset + // [10] call memset // Clear the screen - // [177] phi from main::@12 to memset [phi:main::@12->memset] + // [181] phi from main::@12 to memset [phi:main::@12->memset] memset_from___b12: - // [177] phi (byte) memset::c#8 = (byte) 0 [phi:main::@12->memset#0] -- vbuz1=vbuc1 + // [181] phi (byte) memset::c#6 = (byte) 0 [phi:main::@12->memset#0] -- vbuz1=vbuc1 lda #0 sta.z memset.c - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) SCREEN [phi:main::@12->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) SCREEN [phi:main::@12->memset#1] -- pvoz1=pvoc1 lda #SCREEN sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main::@12->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main::@12->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [16] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [11] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [17] call memset - // [177] phi from main::@13 to memset [phi:main::@13->memset] + // [12] call memset + // [181] phi from main::@13 to memset [phi:main::@13->memset] memset_from___b13: - // [177] phi (byte) memset::c#8 = (const nomodify byte) BLACK [phi:main::@13->memset#0] -- vbuz1=vbuc1 + // [181] phi (byte) memset::c#6 = (const nomodify byte) BLACK [phi:main::@13->memset#0] -- vbuz1=vbuc1 lda #BLACK sta.z memset.c - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) COLS [phi:main::@13->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) COLS [phi:main::@13->memset#1] -- pvoz1=pvoc1 lda #COLS sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main::@13->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main::@13->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [18] phi from main::@13 to main::@1 [phi:main::@13->main::@1] + // [13] phi from main::@13 to main::@1 [phi:main::@13->main::@1] __b1_from___b13: - // [18] phi (byte*) main::screen#5 = (const nomodify byte*) SCREEN+(byte) $c [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 + // [13] phi (byte*) main::screen#5 = (const nomodify byte*) SCREEN+(byte) $c [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 lda #SCREEN+$c sta.z screen+1 - // [18] phi (byte*) main::cols#5 = (const nomodify byte*) COLS+(byte) $c [phi:main::@13->main::@1#1] -- pbuz1=pbuc1 + // [13] phi (byte*) main::cols#5 = (const nomodify byte*) COLS+(byte) $c [phi:main::@13->main::@1#1] -- pbuz1=pbuc1 lda #COLS+$c sta.z cols+1 - // [18] phi (byte) main::y#2 = (byte) 0 [phi:main::@13->main::@1#2] -- vbuz1=vbuc1 + // [13] phi (byte) main::y#2 = (byte) 0 [phi:main::@13->main::@1#2] -- vbuz1=vbuc1 lda #0 sta.z y jmp __b1 // main::@1 __b1: - // [19] if((byte) main::y#2<(byte) $10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 + // [14] if((byte) main::y#2<(byte) $10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z y cmp #$10 bcc __b2 jmp __b3 // main::@3 __b3: - // [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR - // [22] call setup_irq + // [17] call setup_irq // Set-up the raster IRQ jsr setup_irq - // [23] phi from main::@3 to main::@14 [phi:main::@3->main::@14] + // [18] phi from main::@3 to main::@14 [phi:main::@3->main::@14] __b14_from___b3: jmp __b14 // main::@14 __b14: - // [24] call textcolor - // Set text color + // [19] call textcolor + // Set text color + // [196] phi from main::@14 to textcolor [phi:main::@14->textcolor] + textcolor_from___b14: jsr textcolor - // [25] phi from main::@14 to main::@7 [phi:main::@14->main::@7] + // [20] phi from main::@14 to main::@7 [phi:main::@14->main::@7] __b7_from___b14: - // [25] phi (byte*) main::canvas#10 = (const nomodify byte*) CANVAS1 [phi:main::@14->main::@7#0] -- pbuz1=pbuc1 + // [20] phi (byte*) main::canvas#10 = (const nomodify byte*) CANVAS1 [phi:main::@14->main::@7#0] -- pbuz1=pbuc1 lda #CANVAS1 sta.z canvas_1+1 - // [25] phi (byte) main::p2_idx#2 = (byte) $f0+(byte) $aa [phi:main::@14->main::@7#1] -- vbuz1=vbuc1 - lda #$f0+$aa + // [20] phi (byte) main::p2_idx#2 = (byte) $b5+(byte) $aa [phi:main::@14->main::@7#1] -- vbuz1=vbuc1 + lda #$b5+$aa sta.z p2_idx - // [25] phi (byte) main::p1_idx#2 = (byte) $f0+(byte) $f [phi:main::@14->main::@7#2] -- vbuz1=vbuc1 - lda #$f0+$f + // [20] phi (byte) main::p1_idx#2 = (byte) $b5+(byte) $f [phi:main::@14->main::@7#2] -- vbuz1=vbuc1 + lda #$b5+$f sta.z p1_idx - // [25] phi (byte) main::p0_idx#11 = (byte) $f0 [phi:main::@14->main::@7#3] -- vbuz1=vbuc1 - lda #$f0 + // [20] phi (byte) main::p0_idx#2 = (byte) $b5 [phi:main::@14->main::@7#3] -- vbuz1=vbuc1 + lda #$b5 sta.z p0_idx jmp __b7 // main::@7 __b7: - // [26] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [21] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [27] call clock_start + // [22] call clock_start jsr clock_start - // [28] phi from main::@8 to main::@15 [phi:main::@8->main::@15] + // [23] phi from main::@8 to main::@15 [phi:main::@8->main::@15] __b15_from___b8: jmp __b15 // main::@15 __b15: - // [29] call memset + // [24] call memset // Clear line buffer - // [177] phi from main::@15 to memset [phi:main::@15->memset] + // [181] phi from main::@15 to memset [phi:main::@15->memset] memset_from___b15: - // [177] phi (byte) memset::c#8 = (byte) 0 [phi:main::@15->memset#0] -- vbuz1=vbuc1 + // [181] phi (byte) memset::c#6 = (byte) 0 [phi:main::@15->memset#0] -- vbuz1=vbuc1 lda #0 sta.z memset.c - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) LINE_BUFFER [phi:main::@15->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) LINE_BUFFER [phi:main::@15->memset#1] -- pvoz1=pvoc1 lda #LINE_BUFFER sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word) $800 [phi:main::@15->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word) $800 [phi:main::@15->memset#2] -- vwuz1=vwuc1 lda #<$800 sta.z memset.num lda #>$800 @@ -8022,137 +4482,137 @@ main: { jmp __b16 // main::@16 __b16: - // [30] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#11) -- vbuz1=pbuc1_derefidx_vbuz2 + // [25] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 // Plot in line buffer ldy.z p0_idx lda COSTAB,y sta.z x0 - // [31] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#11) -- vbuz1=pbuc1_derefidx_vbuz2 + // [26] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p0_idx lda SINTAB,y sta.z y0 - // [32] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [27] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p1_idx lda COSTAB,y sta.z x1 - // [33] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [28] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p1_idx lda SINTAB,y sta.z y1 - // [34] (byte) line::x1#0 ← (byte) main::x0#0 -- vbuz1=vbuz2 + // [29] (byte) line::x1#0 ← (byte) main::x0#0 -- vbuz1=vbuz2 lda.z x0 sta.z line.x1 - // [35] (byte) line::y1#0 ← (byte) main::y0#0 -- vbuz1=vbuz2 + // [30] (byte) line::y1#0 ← (byte) main::y0#0 -- vbuz1=vbuz2 lda.z y0 sta.z line.y1 - // [36] (byte) line::x2#0 ← (byte) main::x1#0 -- vbuz1=vbuz2 + // [31] (byte) line::x2#0 ← (byte) main::x1#0 -- vbuz1=vbuz2 lda.z x1 sta.z line.x2 - // [37] (byte) line::y2#0 ← (byte) main::y1#0 -- vbuz1=vbuz2 + // [32] (byte) line::y2#0 ← (byte) main::y1#0 -- vbuz1=vbuz2 lda.z y1 sta.z line.y2 - // [38] call line - // [307] phi from main::@16 to line [phi:main::@16->line] + // [33] call line + // [87] phi from main::@16 to line [phi:main::@16->line] line_from___b16: - // [307] phi (byte) line::y2#10 = (byte) line::y2#0 [phi:main::@16->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#0 [phi:main::@16->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#0 [phi:main::@16->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#0 [phi:main::@16->line#3] -- register_copy + // [87] phi (byte) line::y2#10 = (byte) line::y2#0 [phi:main::@16->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#0 [phi:main::@16->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#0 [phi:main::@16->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#0 [phi:main::@16->line#3] -- register_copy jsr line jmp __b17 // main::@17 __b17: - // [39] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [34] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p2_idx lda COSTAB,y sta.z x2 - // [40] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [35] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p2_idx lda SINTAB,y sta.z y2 - // [41] (byte) line::x1#1 ← (byte) main::x1#0 -- vbuz1=vbuz2 + // [36] (byte) line::x1#1 ← (byte) main::x1#0 -- vbuz1=vbuz2 lda.z x1 sta.z line.x1 - // [42] (byte) line::y1#1 ← (byte) main::y1#0 -- vbuz1=vbuz2 + // [37] (byte) line::y1#1 ← (byte) main::y1#0 -- vbuz1=vbuz2 lda.z y1 sta.z line.y1 - // [43] (byte) line::x2#1 ← (byte) main::x2#0 -- vbuz1=vbuz2 + // [38] (byte) line::x2#1 ← (byte) main::x2#0 -- vbuz1=vbuz2 lda.z x2 sta.z line.x2 - // [44] (byte) line::y2#1 ← (byte) main::y2#0 -- vbuz1=vbuz2 + // [39] (byte) line::y2#1 ← (byte) main::y2#0 -- vbuz1=vbuz2 lda.z y2 sta.z line.y2 - // [45] call line - // [307] phi from main::@17 to line [phi:main::@17->line] + // [40] call line + // [87] phi from main::@17 to line [phi:main::@17->line] line_from___b17: - // [307] phi (byte) line::y2#10 = (byte) line::y2#1 [phi:main::@17->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#1 [phi:main::@17->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#1 [phi:main::@17->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#1 [phi:main::@17->line#3] -- register_copy + // [87] phi (byte) line::y2#10 = (byte) line::y2#1 [phi:main::@17->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#1 [phi:main::@17->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#1 [phi:main::@17->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#1 [phi:main::@17->line#3] -- register_copy jsr line jmp __b18 // main::@18 __b18: - // [46] (byte) line::x1#2 ← (byte) main::x2#0 -- vbuz1=vbuz2 + // [41] (byte) line::x1#2 ← (byte) main::x2#0 -- vbuz1=vbuz2 lda.z x2 sta.z line.x1 - // [47] (byte) line::y1#2 ← (byte) main::y2#0 -- vbuz1=vbuz2 + // [42] (byte) line::y1#2 ← (byte) main::y2#0 -- vbuz1=vbuz2 lda.z y2 sta.z line.y1 - // [48] (byte) line::x2#2 ← (byte) main::x0#0 -- vbuz1=vbuz2 + // [43] (byte) line::x2#2 ← (byte) main::x0#0 -- vbuz1=vbuz2 lda.z x0 sta.z line.x2 - // [49] (byte) line::y2#2 ← (byte) main::y0#0 -- vbuz1=vbuz2 + // [44] (byte) line::y2#2 ← (byte) main::y0#0 -- vbuz1=vbuz2 lda.z y0 sta.z line.y2 - // [50] call line - // [307] phi from main::@18 to line [phi:main::@18->line] + // [45] call line + // [87] phi from main::@18 to line [phi:main::@18->line] line_from___b18: - // [307] phi (byte) line::y2#10 = (byte) line::y2#2 [phi:main::@18->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#2 [phi:main::@18->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#2 [phi:main::@18->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#2 [phi:main::@18->line#3] -- register_copy + // [87] phi (byte) line::y2#10 = (byte) line::y2#2 [phi:main::@18->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#2 [phi:main::@18->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#2 [phi:main::@18->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#2 [phi:main::@18->line#3] -- register_copy jsr line jmp __b19 // main::@19 __b19: - // [51] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#11 -- vbuz1=_inc_vbuz1 + // [46] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#2 -- vbuz1=_inc_vbuz1 inc.z p0_idx - // [52] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 -- vbuz1=_inc_vbuz1 + // [47] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 -- vbuz1=_inc_vbuz1 inc.z p1_idx - // [53] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 -- vbuz1=_inc_vbuz1 + // [48] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 -- vbuz1=_inc_vbuz1 inc.z p2_idx - // [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED -- _deref_pbuc1=vbuc2 + // [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED -- _deref_pbuc1=vbuc2 // Wait until the canvas on screen has been switched before starting work on the next frame lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __b9 // main::@9 __b9: - // [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -- vbuc1_neq_vbuz1_then_la1 + // [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z canvas_show_flag bne __b9 jmp __b10 // main::@10 __b10: - // [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 -- pbuz1=pbuz2 + // [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 -- pbuz1=pbuz2 lda.z canvas_1 sta.z eorfill.canvas lda.z canvas_1+1 sta.z eorfill.canvas+1 - // [58] call eorfill + // [53] call eorfill // Fill canvas - // [294] phi from main::@10 to eorfill [phi:main::@10->eorfill] + // [73] phi from main::@10 to eorfill [phi:main::@10->eorfill] eorfill_from___b10: jsr eorfill jmp __b20 // main::@20 __b20: - // [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 -- vwuz1=pbuz2_bxor_vwuc1 + // [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 -- vwuz1=pbuz2_bxor_vwuc1 // swap canvas being rendered to (using XOR) lda #CANVAS1^CANVAS2 eor.z canvas_1+1 sta.z canvas+1 - // [60] phi from main::@20 to main::toD0181 [phi:main::@20->main::toD0181] + // [55] phi from main::@20 to main::toD0181 [phi:main::@20->main::toD0181] toD0181_from___b20: jmp toD0181 // main::toD0181 toD0181: - // [61] phi from main::toD0181 to main::toD0182 [phi:main::toD0181->main::toD0182] + // [56] phi from main::toD0181 to main::toD0182 [phi:main::toD0181->main::toD0182] toD0182_from_toD0181: jmp toD0182 // main::toD0182 @@ -8173,147 +4633,56 @@ main: { jmp __b11 // main::@11 __b11: - // [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 -- vbuz1=vbuz1_bxor_vbuc1 + // [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 -- vbuz1=vbuz1_bxor_vbuc1 // Swap canvas to show on screen (using XOR) lda #toD0181_return^toD0182_return eor.z canvas_show_memory sta.z canvas_show_memory - // [63] (volatile byte) canvas_show_flag ← (byte) 1 -- vbuz1=vbuc1 + // [58] (volatile byte) canvas_show_flag ← (byte) 1 -- vbuz1=vbuc1 // Set flag used to signal when the canvas has been shown lda #1 sta.z canvas_show_flag - // [64] call clock + // [59] call clock + // [71] phi from main::@11 to clock [phi:main::@11->clock] + clock_from___b11: jsr clock - // [65] (dword) clock::return#2 ← (dword) clock::return#0 -- vduz1=vduz2 - lda.z clock.return - sta.z clock.return_1 - lda.z clock.return+1 - sta.z clock.return_1+1 - lda.z clock.return+2 - sta.z clock.return_1+2 - lda.z clock.return+3 - sta.z clock.return_1+3 jmp __b21 // main::@21 __b21: - // [66] (dword~) main::$18 ← (dword) clock::return#2 -- vduz1=vduz2 - lda.z clock.return_1 - sta.z __18 - lda.z clock.return_1+1 - sta.z __18+1 - lda.z clock.return_1+2 - sta.z __18+2 - lda.z clock.return_1+3 - sta.z __18+3 - // [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT -- vduz1=vduz2_minus_vduc1 - lda.z __18 - sec - sbc #CLOCKS_PER_INIT - sta.z cyclecount+1 - lda.z __18+2 - sbc #>$10 - sta.z cyclecount+2 - lda.z __18+3 - sbc #>CLOCKS_PER_INIT>>$10 - sta.z cyclecount+3 - // [68] call gotoxy - // [286] phi from main::@21 to gotoxy [phi:main::@21->gotoxy] - gotoxy_from___b21: - jsr gotoxy - // [69] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - __b22_from___b21: - jmp __b22 - // main::@22 - __b22: - // [70] call cputs - // [196] phi from main::@22 to cputs [phi:main::@22->cputs] - cputs_from___b22: - // [196] phi (to_nomodify byte*) cputs::s#5 = (const byte*) main::s [phi:main::@22->cputs#0] -- pbuz1=pbuc1 - lda #s - sta.z cputs.s+1 - jsr cputs - jmp __b23 - // main::@23 - __b23: - // [71] (byte) printf_uchar::uvalue#0 ← (byte) main::p0_idx#1 -- vbuz1=vbuz2 - lda.z p0_idx - sta.z printf_uchar.uvalue - // [72] call printf_uchar - // [253] phi from main::@23 to printf_uchar [phi:main::@23->printf_uchar] - printf_uchar_from___b23: - jsr printf_uchar - // [73] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - __b24_from___b23: - jmp __b24 - // main::@24 - __b24: - // [74] call cputs - // [196] phi from main::@24 to cputs [phi:main::@24->cputs] - cputs_from___b24: - // [196] phi (to_nomodify byte*) cputs::s#5 = (const byte*) main::s1 [phi:main::@24->cputs#0] -- pbuz1=pbuc1 - lda #s1 - sta.z cputs.s+1 - jsr cputs - jmp __b25 - // main::@25 - __b25: - // [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 -- vduz1=vduz2 - lda.z cyclecount - sta.z printf_ulong.uvalue - lda.z cyclecount+1 - sta.z printf_ulong.uvalue+1 - lda.z cyclecount+2 - sta.z printf_ulong.uvalue+2 - lda.z cyclecount+3 - sta.z printf_ulong.uvalue+3 - // [76] call printf_ulong - // [88] phi from main::@25 to printf_ulong [phi:main::@25->printf_ulong] - printf_ulong_from___b25: - jsr printf_ulong - jmp __b26 - // main::@26 - __b26: - // [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 -- pbuz1=pbuz2 + // [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 -- pbuz1=pbuz2 lda.z canvas sta.z canvas_1 lda.z canvas+1 sta.z canvas_1+1 - // [25] phi from main::@26 to main::@7 [phi:main::@26->main::@7] - __b7_from___b26: - // [25] phi (byte*) main::canvas#10 = (byte*) main::canvas#24 [phi:main::@26->main::@7#0] -- register_copy - // [25] phi (byte) main::p2_idx#2 = (byte) main::p2_idx#1 [phi:main::@26->main::@7#1] -- register_copy - // [25] phi (byte) main::p1_idx#2 = (byte) main::p1_idx#1 [phi:main::@26->main::@7#2] -- register_copy - // [25] phi (byte) main::p0_idx#11 = (byte) main::p0_idx#1 [phi:main::@26->main::@7#3] -- register_copy + // [20] phi from main::@21 to main::@7 [phi:main::@21->main::@7] + __b7_from___b21: + // [20] phi (byte*) main::canvas#10 = (byte*) main::canvas#19 [phi:main::@21->main::@7#0] -- register_copy + // [20] phi (byte) main::p2_idx#2 = (byte) main::p2_idx#1 [phi:main::@21->main::@7#1] -- register_copy + // [20] phi (byte) main::p1_idx#2 = (byte) main::p1_idx#1 [phi:main::@21->main::@7#2] -- register_copy + // [20] phi (byte) main::p0_idx#2 = (byte) main::p0_idx#1 [phi:main::@21->main::@7#3] -- register_copy jmp __b7 // main::@2 __b2: - // [78] (byte) main::c#4 ← (byte) main::y#2 -- vbuz1=vbuz2 + // [61] (byte) main::c#4 ← (byte) main::y#2 -- vbuz1=vbuz2 lda.z y sta.z c - // [79] phi from main::@2 to main::@4 [phi:main::@2->main::@4] + // [62] phi from main::@2 to main::@4 [phi:main::@2->main::@4] __b4_from___b2: - // [79] phi (byte) main::c#2 = (byte) main::c#4 [phi:main::@2->main::@4#0] -- register_copy - // [79] phi (byte) main::x#2 = (byte) 0 [phi:main::@2->main::@4#1] -- vbuz1=vbuc1 + // [62] phi (byte) main::c#2 = (byte) main::c#4 [phi:main::@2->main::@4#0] -- register_copy + // [62] phi (byte) main::x#2 = (byte) 0 [phi:main::@2->main::@4#1] -- vbuz1=vbuc1 lda #0 sta.z x jmp __b4 // main::@4 __b4: - // [80] if((byte) main::x#2<(byte) $10) goto main::@5 -- vbuz1_lt_vbuc1_then_la1 + // [63] if((byte) main::x#2<(byte) $10) goto main::@5 -- vbuz1_lt_vbuc1_then_la1 lda.z x cmp #$10 bcc __b5 jmp __b6 // main::@6 __b6: - // [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z cols @@ -8321,7 +4690,7 @@ main: { bcc !+ inc.z cols+1 !: - // [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z screen @@ -8329,631 +4698,749 @@ main: { bcc !+ inc.z screen+1 !: - // [83] (byte) main::y#1 ← ++ (byte) main::y#2 -- vbuz1=_inc_vbuz1 + // [66] (byte) main::y#1 ← ++ (byte) main::y#2 -- vbuz1=_inc_vbuz1 inc.z y - // [18] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + // [13] phi from main::@6 to main::@1 [phi:main::@6->main::@1] __b1_from___b6: - // [18] phi (byte*) main::screen#5 = (byte*) main::screen#1 [phi:main::@6->main::@1#0] -- register_copy - // [18] phi (byte*) main::cols#5 = (byte*) main::cols#1 [phi:main::@6->main::@1#1] -- register_copy - // [18] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@6->main::@1#2] -- register_copy + // [13] phi (byte*) main::screen#5 = (byte*) main::screen#1 [phi:main::@6->main::@1#0] -- register_copy + // [13] phi (byte*) main::cols#5 = (byte*) main::cols#1 [phi:main::@6->main::@1#1] -- register_copy + // [13] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@6->main::@1#2] -- register_copy jmp __b1 // main::@5 __b5: - // [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE -- pbuz1_derefidx_vbuz2=vbuc1 + // [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE -- pbuz1_derefidx_vbuz2=vbuc1 lda #WHITE ldy.z x sta (cols),y - // [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 -- pbuz1_derefidx_vbuz2=vbuz3 + // [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z c ldy.z x sta (screen),y - // [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 -- vbuz1=vbuz1_plus_vbuc1 + // [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 -- vbuz1=vbuz1_plus_vbuc1 lax.z c axs #-[$10] stx.z c - // [87] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuz1=_inc_vbuz1 + // [70] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuz1=_inc_vbuz1 inc.z x - // [79] phi from main::@5 to main::@4 [phi:main::@5->main::@4] + // [62] phi from main::@5 to main::@4 [phi:main::@5->main::@4] __b4_from___b5: - // [79] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@5->main::@4#0] -- register_copy - // [79] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@5->main::@4#1] -- register_copy + // [62] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@5->main::@4#0] -- register_copy + // [62] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@5->main::@4#1] -- register_copy jmp __b4 - s: .text "frame: " - .byte 0 - s1: .text " cycles: " - .byte 0 } - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp($73) uvalue) -printf_ulong: { - .const format_min_length = 6 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = $73 - jmp __b1 - // printf_ulong::@1 - __b1: - // [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 -- vduz1=vduz2 - lda.z uvalue - sta.z ultoa.value - lda.z uvalue+1 - sta.z ultoa.value+1 - lda.z uvalue+2 - sta.z ultoa.value+2 - lda.z uvalue+3 - sta.z ultoa.value+3 - // [91] call ultoa - // Format number into buffer - // [225] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - ultoa_from___b1: - jsr ultoa - jmp __b2 - // printf_ulong::@2 - __b2: - // [92] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [93] call printf_number_buffer - // Print using format - // [95] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [95] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [95] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [95] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#2] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [95] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [95] phi (byte) printf_number_buffer::format_min_length#2 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer + // clock +// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). +// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() +clock: { jmp __breturn - // printf_ulong::@return + // clock::@return __breturn: - // [94] return + // [72] return rts } - // printf_number_buffer -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($11) buffer_sign, byte zp($e) format_min_length, byte zp($f) format_justify_left, byte zp($10) format_zero_padding, byte zp($12) format_upper_case) -printf_number_buffer: { - .label __19 = $79 - .label buffer_sign = $11 - .label len = $13 - .label padding = $14 - .label format_min_length = $e - .label format_zero_padding = $10 - .label format_justify_left = $f - .label format_upper_case = $12 - // [96] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 + // eorfill +// EOR fill from the line buffer onto the canvas +// eorfill(byte* zp($11) canvas) +eorfill: { + .label canvas = $11 + .label eor = $14 + .label y = $13 + .label line_column = $f + .label fill_column = $11 + .label x = $e + // [74] phi from eorfill to eorfill::@1 [phi:eorfill->eorfill::@1] + __b1_from_eorfill: + // [74] phi (byte*) eorfill::fill_column#2 = (byte*) eorfill::canvas#0 [phi:eorfill->eorfill::@1#0] -- register_copy + // [74] phi (byte*) eorfill::line_column#2 = (const nomodify byte*) LINE_BUFFER [phi:eorfill->eorfill::@1#1] -- pbuz1=pbuc1 + lda #LINE_BUFFER + sta.z line_column+1 + // [74] phi (byte) eorfill::x#2 = (byte) 0 [phi:eorfill->eorfill::@1#2] -- vbuz1=vbuc1 lda #0 - cmp.z format_min_length - beq __b1_from_printf_number_buffer - // [97] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] - __b6_from_printf_number_buffer: - jmp __b6 - // printf_number_buffer::@6 - __b6: - // [98] call strlen - // [219] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] - strlen_from___b6: - jsr strlen - // [99] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 - lda.z strlen.len - sta.z strlen.return - lda.z strlen.len+1 - sta.z strlen.return+1 - jmp __b14 - // printf_number_buffer::@14 - __b14: - // [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 -- vwuz1=vwuz2 - lda.z strlen.return - sta.z __19 - lda.z strlen.return+1 - sta.z __19+1 - // [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 - // There is a minimum length - work out the padding - lda.z __19 - sta.z len - // [102] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b13_from___b14 - jmp __b7 - // printf_number_buffer::@7 - __b7: - // [103] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 - inc.z len - // [104] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - __b13_from___b14: - __b13_from___b7: - // [104] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy - jmp __b13 - // printf_number_buffer::@13 - __b13: - // [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz2_minus_vbsz3 - lda.z format_min_length - sec - sbc.z len - sta.z padding - // [106] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 - lda.z padding - cmp #0 - bpl __b21_from___b13 - // [108] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] - __b1_from_printf_number_buffer: - __b1_from___b13: - // [108] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 - lda #0 - sta.z padding + sta.z x jmp __b1 - // [107] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] - __b21_from___b13: - jmp __b21 - // printf_number_buffer::@21 - __b21: - // [108] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - __b1_from___b21: - // [108] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy - jmp __b1 - // printf_number_buffer::@1 + // eorfill::@1 __b1: - // [109] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - bne __b2 - jmp __b17 - // printf_number_buffer::@17 - __b17: - // [110] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __b2 - jmp __b16 - // printf_number_buffer::@16 - __b16: - // [111] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b8 - jmp __b2 - // printf_number_buffer::@8 - __b8: - // [112] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [113] call printf_padding - // [132] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - printf_padding_from___b8: - // [132] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b2 - // printf_number_buffer::@2 - __b2: - // [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b3 - jmp __b9 - // printf_number_buffer::@9 - __b9: - // [115] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 - lda.z buffer_sign - sta.z cputc.c - // [116] call cputc - // [139] phi from printf_number_buffer::@9 to cputc [phi:printf_number_buffer::@9->cputc] - cputc_from___b9: - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#2 [phi:printf_number_buffer::@9->cputc#0] -- register_copy - jsr cputc - jmp __b3 - // printf_number_buffer::@3 - __b3: - // [117] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - beq __b4 - jmp __b18 - // printf_number_buffer::@18 - __b18: - // [118] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b10 - jmp __b4 - // printf_number_buffer::@10 - __b10: - // [119] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [120] call printf_padding - // [132] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - printf_padding_from___b10: - // [132] phi (byte) printf_padding::pad#5 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 - lda #'0' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b4 - // printf_number_buffer::@4 - __b4: - // [121] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_upper_case - beq __b5_from___b4 - // [122] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] - __b11_from___b4: - jmp __b11 - // printf_number_buffer::@11 - __b11: - // [123] call strupr - // [204] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] - strupr_from___b11: - jsr strupr - // [124] phi from printf_number_buffer::@11 printf_number_buffer::@4 to printf_number_buffer::@5 [phi:printf_number_buffer::@11/printf_number_buffer::@4->printf_number_buffer::@5] - __b5_from___b11: - __b5_from___b4: - jmp __b5 - // printf_number_buffer::@5 - __b5: - // [125] call cputs - // [196] phi from printf_number_buffer::@5 to cputs [phi:printf_number_buffer::@5->cputs] - cputs_from___b5: - // [196] phi (to_nomodify byte*) cputs::s#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->cputs#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z cputs.s+1 - jsr cputs - jmp __b15 - // printf_number_buffer::@15 - __b15: - // [126] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - beq __breturn - jmp __b20 - // printf_number_buffer::@20 - __b20: - // [127] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __breturn - jmp __b19 - // printf_number_buffer::@19 - __b19: - // [128] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b12 - jmp __breturn - // printf_number_buffer::@12 - __b12: - // [129] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [130] call printf_padding - // [132] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - printf_padding_from___b12: - // [132] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy - jsr printf_padding - jmp __breturn - // printf_number_buffer::@return - __breturn: - // [131] return - rts -} - // printf_padding -// Print a padding char a number of times -// printf_padding(byte zp($16) pad, byte zp($15) length) -printf_padding: { - .label i = $17 - .label length = $15 - .label pad = $16 - // [133] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - __b1_from_printf_padding: - // [133] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z i - jmp __b1 - // printf_padding::@1 - __b1: - // [134] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 - lda.z i - cmp.z length + // [75] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z x + cmp #$10 bcc __b2 jmp __breturn - // printf_padding::@return + // eorfill::@return __breturn: - // [135] return + // [76] return rts - // printf_padding::@2 + // eorfill::@2 __b2: - // [136] (byte) cputc::c#1 ← (byte) printf_padding::pad#5 -- vbuz1=vbuz2 - lda.z pad - sta.z cputc.c - // [137] call cputc - // [139] phi from printf_padding::@2 to cputc [phi:printf_padding::@2->cputc] - cputc_from___b2: - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#1 [phi:printf_padding::@2->cputc#0] -- register_copy - jsr cputc - jmp __b3 - // printf_padding::@3 - __b3: - // [138] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [133] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] - __b1_from___b3: - // [133] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy - jmp __b1 -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte zp($18) c) -cputc: { - .label c = $18 - // [140] if((byte) cputc::c#3==(byte) ' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z c - beq __b1_from_cputc - jmp __b2 - // cputc::@2 - __b2: - // [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 -- _deref_pbuz1=vbuz2 - lda.z c + // [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) -- vbuz1=_deref_pbuz2 ldy #0 - sta (conio_cursor_text),y - // [142] (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text -- pbuz1=_inc_pbuz1 - inc.z conio_cursor_text - bne !+ - inc.z conio_cursor_text+1 - !: - // [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor -- _deref_pbuz1=vbuz2 - lda.z conio_textcolor + lda (line_column),y + sta.z eor + // [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 -- _deref_pbuz1=vbuz2 + lda.z eor ldy #0 - sta (conio_cursor_color),y - // [144] (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color -- pbuz1=_inc_pbuz1 - inc.z conio_cursor_color - bne !+ - inc.z conio_cursor_color+1 - !: - // [145] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_x - // [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 - lda #$28 - cmp.z conio_cursor_x - bne __breturn - jmp __b3 - // cputc::@3 - __b3: - // [147] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_cursor_x - // [148] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_y - // [149] call cscroll - jsr cscroll - jmp __breturn - // cputc::@return - __breturn: - // [150] return - rts - // [151] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] - __b1_from_cputc: - jmp __b1 - // cputc::@1 - __b1: - // [152] call cputln - jsr cputln - jmp __breturn -} - // cputln -// Print a newline -cputln: { - .label __1 = $7d - .label __2 = $7f - .label ln_offset = $7b - // [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x -- vwuz1=vbuc1_minus_vbuz2 - sec - lda #$28 - sbc.z conio_cursor_x - sta.z ln_offset - lda #0 - sbc #0 - sta.z ln_offset+1 - // [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 -- pbuz1=pbuz2_plus_vwuz3 - lda.z conio_cursor_text - clc - adc.z ln_offset - sta.z __1 - lda.z conio_cursor_text+1 - adc.z ln_offset+1 - sta.z __1+1 - // [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 -- pbuz1=pbuz2 - lda.z __1 - sta.z conio_cursor_text - lda.z __1+1 - sta.z conio_cursor_text+1 - // [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 -- pbuz1=pbuz2_plus_vwuz3 - lda.z conio_cursor_color - clc - adc.z ln_offset - sta.z __2 - lda.z conio_cursor_color+1 - adc.z ln_offset+1 - sta.z __2+1 - // [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 -- pbuz1=pbuz2 - lda.z __2 - sta.z conio_cursor_color - lda.z __2+1 - sta.z conio_cursor_color+1 - // [158] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_cursor_x - // [159] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_y - // [160] call cscroll - jsr cscroll - jmp __breturn - // cputln::@return - __breturn: - // [161] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - .label __7 = $81 - .label __8 = $83 - // [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 - lda #$19 - cmp.z conio_cursor_y - bne __breturn - // [163] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] - __b1_from_cscroll: - jmp __b1 - // cscroll::@1 - __b1: - // [164] call memcpy - // [186] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - memcpy_from___b1: - // [186] phi (void*) memcpy::destination#2 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT - sta.z memcpy.destination+1 - // [186] phi (void*) memcpy::source#2 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT+$28 - sta.z memcpy.source+1 - jsr memcpy - // [165] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] - __b2_from___b1: - jmp __b2 - // cscroll::@2 - __b2: - // [166] call memcpy - // [186] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - memcpy_from___b2: - // [186] phi (void*) memcpy::destination#2 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS - sta.z memcpy.destination+1 - // [186] phi (void*) memcpy::source#2 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS+$28 - sta.z memcpy.source+1 - jsr memcpy - // [167] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] + sta (fill_column),y + // [79] phi from eorfill::@2 to eorfill::@3 [phi:eorfill::@2->eorfill::@3] __b3_from___b2: + // [79] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#0 [phi:eorfill::@2->eorfill::@3#0] -- register_copy + // [79] phi (byte) eorfill::y#2 = (byte) 1 [phi:eorfill::@2->eorfill::@3#1] -- vbuz1=vbuc1 + lda #1 + sta.z y jmp __b3 - // cscroll::@3 + // eorfill::@3 __b3: - // [168] call memset - // [177] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] - memset_from___b3: - // [177] phi (byte) memset::c#8 = (byte) ' ' [phi:cscroll::@3->memset#0] -- vbuz1=vbuc1 - lda #' ' - sta.z memset.c - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT+$19*$28-$28 - sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (byte) $28 [phi:cscroll::@3->memset#2] -- vwuz1=vbuc1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - jmp __b4 - // cscroll::@4 - __b4: - // [169] (byte) memset::c#1 ← (byte) conio_textcolor -- vbuz1=vbuz2 - lda.z conio_textcolor - sta.z memset.c - // [170] call memset - // [177] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] - memset_from___b4: - // [177] phi (byte) memset::c#8 = (byte) memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS+$19*$28-$28 - sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (byte) $28 [phi:cscroll::@4->memset#2] -- vwuz1=vbuc1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset + // [80] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z y + cmp #$10*8 + bcc __b4 jmp __b5 - // cscroll::@5 + // eorfill::@5 __b5: - // [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 -- pbuz1=pbuz2_minus_vwuc1 - lda.z conio_cursor_text + // [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 + lda #$10*8 + clc + adc.z line_column + sta.z line_column + bcc !+ + inc.z line_column+1 + !: + // [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 + lda #$10*8 + clc + adc.z fill_column + sta.z fill_column + bcc !+ + inc.z fill_column+1 + !: + // [83] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 -- vbuz1=_inc_vbuz1 + inc.z x + // [74] phi from eorfill::@5 to eorfill::@1 [phi:eorfill::@5->eorfill::@1] + __b1_from___b5: + // [74] phi (byte*) eorfill::fill_column#2 = (byte*) eorfill::fill_column#1 [phi:eorfill::@5->eorfill::@1#0] -- register_copy + // [74] phi (byte*) eorfill::line_column#2 = (byte*) eorfill::line_column#1 [phi:eorfill::@5->eorfill::@1#1] -- register_copy + // [74] phi (byte) eorfill::x#2 = (byte) eorfill::x#1 [phi:eorfill::@5->eorfill::@1#2] -- register_copy + jmp __b1 + // eorfill::@4 + __b4: + // [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) -- vbuz1=vbuz1_bxor_pbuz2_derefidx_vbuz3 + lda.z eor + ldy.z y + eor (line_column),y + sta.z eor + // [85] *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 -- pbuz1_derefidx_vbuz2=vbuz3 + lda.z eor + ldy.z y + sta (fill_column),y + // [86] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 -- vbuz1=_inc_vbuz1 + inc.z y + // [79] phi from eorfill::@4 to eorfill::@3 [phi:eorfill::@4->eorfill::@3] + __b3_from___b4: + // [79] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#1 [phi:eorfill::@4->eorfill::@3#0] -- register_copy + // [79] phi (byte) eorfill::y#2 = (byte) eorfill::y#1 [phi:eorfill::@4->eorfill::@3#1] -- register_copy + jmp __b3 +} + // line +// Draw a EOR friendly line between two points +// Uses bresenham line drawing routine +// line(byte zp($19) x1, byte zp($1a) y1, byte zp($15) x2, byte zp($16) y2) +line: { + .label plot1___0 = $43 + .label plot1___1 = $47 + .label plot1___2 = $44 + .label plot2___0 = $39 + .label plot2___1 = $3d + .label plot2___2 = $3a + .label plot3___0 = $3e + .label plot3___1 = $42 + .label plot3___2 = $3f + .label plot4___0 = $48 + .label plot4___1 = $4c + .label plot4___2 = $49 + .label plot5___0 = $4d + .label plot5___1 = $51 + .label plot5___2 = $4e + .label plot6___0 = $52 + .label plot6___1 = $56 + .label plot6___2 = $53 + .label x1 = $19 + .label y1 = $1a + .label x2 = $15 + .label y2 = $16 + .label x = $19 + .label y = $1a + .label dx = $31 + .label dy = $33 + .label sx = $35 + .label sy = $37 + .label e2 = $1b + .label plot1_column = $45 + .label e = $17 + .label plot2_y = $38 + .label plot2_column = $3b + .label plot3_column = $40 + .label e1 = $18 + .label plot4_column = $4a + .label plot5_column = $4f + .label plot6_column = $54 + // [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z x2 sec - sbc #<$28 - sta.z __7 - lda.z conio_cursor_text+1 - sbc #>$28 - sta.z __7+1 - // [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 -- pbuz1=pbuz2 - lda.z __7 - sta.z conio_cursor_text - lda.z __7+1 - sta.z conio_cursor_text+1 - // [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 -- pbuz1=pbuz2_minus_vwuc1 - lda.z conio_cursor_color + sbc.z x + sta.z abs_u8.u + // [89] call abs_u8 + // [175] phi from line to abs_u8 [phi:line->abs_u8] + abs_u8_from_line: + // [175] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#0 [phi:line->abs_u8#0] -- register_copy + jsr abs_u8 + // [90] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 -- vbuz1=vbuz2 + lda.z abs_u8.return_2 + sta.z abs_u8.return + jmp __b19 + // line::@19 + __b19: + // [91] (byte) line::dx#0 ← (byte) abs_u8::return#0 -- vbuz1=vbuz2 + lda.z abs_u8.return + sta.z dx + // [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z y2 sec - sbc #<$28 - sta.z __8 - lda.z conio_cursor_color+1 - sbc #>$28 - sta.z __8+1 - // [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 -- pbuz1=pbuz2 - lda.z __8 - sta.z conio_cursor_color - lda.z __8+1 - sta.z conio_cursor_color+1 - // [175] (byte) conio_cursor_y ← -- (byte) conio_cursor_y -- vbuz1=_dec_vbuz1 - dec.z conio_cursor_y + sbc.z y + sta.z abs_u8.u + // [93] call abs_u8 + // [175] phi from line::@19 to abs_u8 [phi:line::@19->abs_u8] + abs_u8_from___b19: + // [175] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#1 [phi:line::@19->abs_u8#0] -- register_copy + jsr abs_u8 + // [94] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 -- vbuz1=vbuz2 + lda.z abs_u8.return_2 + sta.z abs_u8.return_1 + jmp __b20 + // line::@20 + __b20: + // [95] (byte) line::dy#0 ← (byte) abs_u8::return#1 -- vbuz1=vbuz2 + lda.z abs_u8.return_1 + sta.z dy + // [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z x2 + sec + sbc.z x + sta.z sgn_u8.u + // [97] call sgn_u8 + // [169] phi from line::@20 to sgn_u8 [phi:line::@20->sgn_u8] + sgn_u8_from___b20: + // [169] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#0 [phi:line::@20->sgn_u8#0] -- register_copy + jsr sgn_u8 + // [98] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 -- vbuz1=vbuz2 + lda.z sgn_u8.return_2 + sta.z sgn_u8.return + jmp __b21 + // line::@21 + __b21: + // [99] (byte) line::sx#0 ← (byte) sgn_u8::return#0 -- vbuz1=vbuz2 + lda.z sgn_u8.return + sta.z sx + // [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z y2 + sec + sbc.z y + sta.z sgn_u8.u + // [101] call sgn_u8 + // [169] phi from line::@21 to sgn_u8 [phi:line::@21->sgn_u8] + sgn_u8_from___b21: + // [169] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#1 [phi:line::@21->sgn_u8#0] -- register_copy + jsr sgn_u8 + // [102] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 -- vbuz1=vbuz2 + lda.z sgn_u8.return_2 + sta.z sgn_u8.return_1 + jmp __b22 + // line::@22 + __b22: + // [103] (byte) line::sy#0 ← (byte) sgn_u8::return#1 -- vbuz1=vbuz2 + lda.z sgn_u8.return_1 + sta.z sy + // [104] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z sx + bne __b1_from___b22 + jmp __b3 + // line::@3 + __b3: + // [105] (byte) line::y#1 ← ++ (byte) line::y#0 -- vbuz1=_inc_vbuz1 + inc.z y + // [106] (byte) line::y2#3 ← ++ (byte) line::y2#10 -- vbuz1=_inc_vbuz1 + inc.z y2 + // [107] phi from line::@22 line::@3 to line::@1 [phi:line::@22/line::@3->line::@1] + __b1_from___b22: + __b1_from___b3: + // [107] phi (byte) line::y2#13 = (byte) line::y2#10 [phi:line::@22/line::@3->line::@1#0] -- register_copy + // [107] phi (byte) line::y#17 = (byte) line::y#0 [phi:line::@22/line::@3->line::@1#1] -- register_copy + jmp __b1 + // line::@1 + __b1: + // [108] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -- vbuz1_gt_vbuz2_then_la1 + lda.z dy + cmp.z dx + bcc __b2 + jmp __b4 + // line::@4 + __b4: + // [109] if((byte) line::sx#0==(byte) line::sy#0) goto line::plot1 -- vbuz1_eq_vbuz2_then_la1 + // Steep slope - Y is the driver - only plot one plot per X + lda.z sx + cmp.z sy + beq plot1 + jmp __b5 + // line::@5 + __b5: + // [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 + lda.z dy + lsr + sta.z e + // [111] phi from line::@5 line::@7 to line::@6 [phi:line::@5/line::@7->line::@6] + __b6_from___b5: + __b6_from___b7: + // [111] phi (byte) line::x#15 = (byte) line::x#0 [phi:line::@5/line::@7->line::@6#0] -- register_copy + // [111] phi (byte) line::e#3 = (byte) line::e#0 [phi:line::@5/line::@7->line::@6#1] -- register_copy + // [111] phi (byte) line::y#7 = (byte) line::y#17 [phi:line::@5/line::@7->line::@6#2] -- register_copy + jmp __b6 + // line::@6 + __b6: + // [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z e + clc + adc.z dx + sta.z e + // [114] if((byte) line::e#1<=(byte) line::dy#0) goto line::@7 -- vbuz1_le_vbuz2_then_la1 + lda.z dy + cmp.z e + bcs __b7_from___b6 + jmp __b8 + // line::@8 + __b8: + // [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z y + sec + sbc.z sy + sta.z plot2_y + jmp plot2 + // line::plot2 + plot2: + // [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + lda.z x + lsr + lsr + lsr + sta.z plot2___0 + // [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z plot2___0 + asl + sta.z plot2___2 + // [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy.z plot2___2 + lda plot_column,y + sta.z plot2_column + lda plot_column+1,y + sta.z plot2_column+1 + // [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot2___1 + // [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z plot2_y + lda (plot2_column),y + ldy.z plot2___1 + ora plot_bit,y + ldy.z plot2_y + sta (plot2_column),y + jmp __b16 + // line::@16 + __b16: + // [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 -- vbuz1=vbuz1_minus_vbuz2 + lda.z e + sec + sbc.z dy + sta.z e + // [123] phi from line::@16 line::@6 to line::@7 [phi:line::@16/line::@6->line::@7] + __b7_from___b16: + __b7_from___b6: + // [123] phi (byte) line::x#17 = (byte) line::x#1 [phi:line::@16/line::@6->line::@7#0] -- register_copy + // [123] phi (byte) line::e#5 = (byte) line::e#2 [phi:line::@16/line::@6->line::@7#1] -- register_copy + jmp __b7 + // line::@7 + __b7: + // [124] if((byte) line::y#10!=(byte) line::y2#13) goto line::@6 -- vbuz1_neq_vbuz2_then_la1 + lda.z y + cmp.z y2 + bne __b6_from___b7 + jmp plot3 + // line::plot3 + plot3: + // [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + lda.z x + lsr + lsr + lsr + sta.z plot3___0 + // [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z plot3___0 + asl + sta.z plot3___2 + // [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy.z plot3___2 + lda plot_column,y + sta.z plot3_column + lda plot_column+1,y + sta.z plot3_column+1 + // [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot3___1 + // [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot3_column),y + ldy.z plot3___1 + ora plot_bit,y + ldy.z y + sta (plot3_column),y jmp __breturn - // cscroll::@return + // line::@return __breturn: - // [176] return + // [130] return + rts + // line::plot1 + plot1: + // [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + lda.z x + lsr + lsr + lsr + sta.z plot1___0 + // [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z plot1___0 + asl + sta.z plot1___2 + // [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy.z plot1___2 + lda plot_column,y + sta.z plot1_column + lda plot_column+1,y + sta.z plot1_column+1 + // [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot1___1 + // [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot1_column),y + ldy.z plot1___1 + ora plot_bit,y + ldy.z y + sta (plot1_column),y + jmp __b15 + // line::@15 + __b15: + // [136] if((byte) line::dx#0!=(byte) 0) goto line::@9 -- vbuz1_neq_0_then_la1 + lda.z dx + cmp #0 + bne __b9 + jmp __breturn + // line::@9 + __b9: + // [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 + lda.z dy + lsr + sta.z e1 + // [138] phi from line::@10 line::@17 line::@9 to line::@10 [phi:line::@10/line::@17/line::@9->line::@10] + __b10_from___b10: + __b10_from___b17: + __b10_from___b9: + // [138] phi (byte) line::x#18 = (byte) line::x#18 [phi:line::@10/line::@17/line::@9->line::@10#0] -- register_copy + // [138] phi (byte) line::e1#3 = (byte) line::e1#1 [phi:line::@10/line::@17/line::@9->line::@10#1] -- register_copy + // [138] phi (byte) line::y#11 = (byte) line::y#12 [phi:line::@10/line::@17/line::@9->line::@10#2] -- register_copy + jmp __b10 + // line::@10 + __b10: + // [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z e1 + clc + adc.z dx + sta.z e1 + // [141] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@10 -- vbuz1_le_vbuz2_then_la1 + lda.z dy + cmp.z e1 + bcs __b10_from___b10 + jmp __b11 + // line::@11 + __b11: + // [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 -- vbuz1=vbuz1_minus_vbuz2 + lda.z e1 + sec + sbc.z dy + sta.z e1 + jmp plot4 + // line::plot4 + plot4: + // [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + lda.z x + lsr + lsr + lsr + sta.z plot4___0 + // [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z plot4___0 + asl + sta.z plot4___2 + // [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy.z plot4___2 + lda plot_column,y + sta.z plot4_column + lda plot_column+1,y + sta.z plot4_column+1 + // [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot4___1 + // [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot4_column),y + ldy.z plot4___1 + ora plot_bit,y + ldy.z y + sta (plot4_column),y + jmp __b17 + // line::@17 + __b17: + // [149] if((byte) line::x#19!=(byte) line::x2#15) goto line::@10 -- vbuz1_neq_vbuz2_then_la1 + lda.z x + cmp.z x2 + bne __b10_from___b17 + jmp __breturn + // line::@2 + __b2: + // [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 + lda.z dx + lsr + sta.z e2 + // [151] phi from line::@13 line::@2 to line::@12 [phi:line::@13/line::@2->line::@12] + __b12_from___b13: + __b12_from___b2: + // [151] phi (byte) line::e2#3 = (byte) line::e2#7 [phi:line::@13/line::@2->line::@12#0] -- register_copy + // [151] phi (byte) line::y#13 = (byte) line::y#15 [phi:line::@13/line::@2->line::@12#1] -- register_copy + // [151] phi (byte) line::x#10 = (byte) line::x#12 [phi:line::@13/line::@2->line::@12#2] -- register_copy + jmp __b12 + // line::@12 + __b12: + jmp plot5 + // line::plot5 + plot5: + // [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + lda.z x + lsr + lsr + lsr + sta.z plot5___0 + // [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z plot5___0 + asl + sta.z plot5___2 + // [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy.z plot5___2 + lda plot_column,y + sta.z plot5_column + lda plot_column+1,y + sta.z plot5_column+1 + // [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot5___1 + // [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot5_column),y + ldy.z plot5___1 + ora plot_bit,y + ldy.z y + sta (plot5_column),y + jmp __b18 + // line::@18 + __b18: + // [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z e2 + clc + adc.z dy + sta.z e2 + // [159] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@13 -- vbuz1_le_vbuz2_then_la1 + lda.z dx + cmp.z e2 + bcs __b13_from___b18 + jmp __b14 + // line::@14 + __b14: + // [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 -- vbuz1=vbuz1_minus_vbuz2 + lda.z e2 + sec + sbc.z dx + sta.z e2 + // [162] phi from line::@14 line::@18 to line::@13 [phi:line::@14/line::@18->line::@13] + __b13_from___b14: + __b13_from___b18: + // [162] phi (byte) line::e2#7 = (byte) line::e2#2 [phi:line::@14/line::@18->line::@13#0] -- register_copy + // [162] phi (byte) line::y#15 = (byte) line::y#4 [phi:line::@14/line::@18->line::@13#1] -- register_copy + jmp __b13 + // line::@13 + __b13: + // [163] if((byte) line::x#12!=(byte) line::x2#15) goto line::@12 -- vbuz1_neq_vbuz2_then_la1 + lda.z x + cmp.z x2 + bne __b12_from___b13 + jmp plot6 + // line::plot6 + plot6: + // [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + lda.z x + lsr + lsr + lsr + sta.z plot6___0 + // [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z plot6___0 + asl + sta.z plot6___2 + // [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy.z plot6___2 + lda plot_column,y + sta.z plot6_column + lda plot_column+1,y + sta.z plot6_column+1 + // [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot6___1 + // [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot6_column),y + ldy.z plot6___1 + ora plot_bit,y + ldy.z y + sta (plot6_column),y + jmp __breturn +} + // sgn_u8 +// Get the sign of a 8-bit unsigned number treated as a signed number. +// Returns unsigned -1 if the number is negative +// sgn_u8(byte zp($1c) u) +sgn_u8: { + .label __0 = $57 + .label u = $1c + .label return = $34 + .label return_1 = $36 + .label return_2 = $1d + // [170] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 + lda #$80 + and.z u + sta.z __0 + // [171] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z __0 + bne __b1_from_sgn_u8 + // [173] phi from sgn_u8 to sgn_u8::@return [phi:sgn_u8->sgn_u8::@return] + __breturn_from_sgn_u8: + // [173] phi (byte) sgn_u8::return#4 = (byte) 1 [phi:sgn_u8->sgn_u8::@return#0] -- vbuz1=vbuc1 + lda #1 + sta.z return_2 + jmp __breturn + // [172] phi from sgn_u8 to sgn_u8::@1 [phi:sgn_u8->sgn_u8::@1] + __b1_from_sgn_u8: + jmp __b1 + // sgn_u8::@1 + __b1: + // [173] phi from sgn_u8::@1 to sgn_u8::@return [phi:sgn_u8::@1->sgn_u8::@return] + __breturn_from___b1: + // [173] phi (byte) sgn_u8::return#4 = (byte) -1 [phi:sgn_u8::@1->sgn_u8::@return#0] -- vbuz1=vbuc1 + lda #-1 + sta.z return_2 + jmp __breturn + // sgn_u8::@return + __breturn: + // [174] return + rts +} + // abs_u8 +// Get the absolute value of a u-bit unsigned number treated as a signed number. +// abs_u8(byte zp($1e) u) +abs_u8: { + .label __0 = $58 + .label u = $1e + .label return = $30 + .label return_1 = $32 + .label return_2 = $1e + // [176] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 + lda #$80 + and.z u + sta.z __0 + // [177] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z __0 + bne __b1 + // [179] phi from abs_u8 abs_u8::@1 to abs_u8::@return [phi:abs_u8/abs_u8::@1->abs_u8::@return] + __breturn_from_abs_u8: + __breturn_from___b1: + // [179] phi (byte) abs_u8::return#4 = (byte) abs_u8::u#2 [phi:abs_u8/abs_u8::@1->abs_u8::@return#0] -- register_copy + jmp __breturn + // abs_u8::@1 + __b1: + // [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 -- vbuz1=_neg_vbuz1 + lda.z return_2 + eor #$ff + clc + adc #1 + sta.z return_2 + jmp __breturn_from___b1 + // abs_u8::@return + __breturn: + // [180] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($1b) str, byte zp($1d) c, word zp($19) num) +// memset(void* zp($21) str, byte zp($23) c, word zp($1f) num) memset: { - .label end = $85 - .label dst = $1e - .label c = $1d - .label num = $19 - .label str = $1b - // [178] if((word) memset::num#6<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + .label end = $59 + .label dst = $24 + .label num = $1f + .label str = $21 + .label c = $23 + // [182] if((word) memset::num#4<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -8962,7 +5449,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 -- pbuz1=pbuz2_plus_vwuz3 + // [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 -- pbuz1=pbuz2_plus_vwuz3 lda.z str clc adc.z num @@ -8970,19 +5457,19 @@ memset: { lda.z str+1 adc.z num+1 sta.z end+1 - // [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 -- pbuz1=pbuz2 + // [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 -- pbuz1=pbuz2 lda.z str sta.z dst lda.z str+1 sta.z dst+1 - // [181] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [185] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [181] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [185] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -8992,1403 +5479,33 @@ memset: { jmp __breturn // memset::@return __breturn: - // [183] return + // [187] return rts // memset::@3 __b3: - // [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 -- _deref_pbuz1=vbuz2 + // [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y - // [185] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [189] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: jmp __b2_from___b3 -} - // 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. -// memcpy(void* zp($22) destination, void* zp($20) source) -memcpy: { - .label src_end = $87 - .label dst = $26 - .label src = $24 - .label source = $20 - .label destination = $22 - // [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $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 - // [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 -- pbuz1=pbuz2 - lda.z source - sta.z src - lda.z source+1 - sta.z src+1 - // [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 -- pbuz1=pbuz2 - lda.z destination - sta.z dst - lda.z destination+1 - sta.z dst+1 - // [190] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] - __b1_from_memcpy: - __b1_from___b2: - // [190] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy - // [190] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy - jmp __b1 - // memcpy::@1 - __b1: - // [191] if((byte*) memcpy::src#2!=(byte*) 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: - // [192] return - rts - // memcpy::@2 - __b2: - // [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 - ldy #0 - lda (src),y - ldy #0 - sta (dst),y - // [194] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 - inc.z dst - bne !+ - inc.z dst+1 - !: - // [195] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 - inc.z src - bne !+ - inc.z src+1 - !: - jmp __b1_from___b2 -} - // cputs -// Output a NUL-terminated string at the current cursor position -// cputs(byte* zp($28) s) -cputs: { - .label c = $89 - .label s = $28 - // [197] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] - __b1_from_cputs: - __b1_from___b2: - // [197] phi (to_nomodify byte*) cputs::s#4 = (to_nomodify byte*) cputs::s#5 [phi:cputs/cputs::@2->cputs::@1#0] -- register_copy - jmp __b1 - // cputs::@1 - __b1: - // [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) -- vbuz1=_deref_pbuz2 - ldy #0 - lda (s),y - sta.z c - // [199] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [200] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z c - bne __b2 - jmp __breturn - // cputs::@return - __breturn: - // [201] return - rts - // cputs::@2 - __b2: - // [202] (byte) cputc::c#0 ← (byte) cputs::c#1 -- vbuz1=vbuz2 - lda.z c - sta.z cputc.c - // [203] call cputc - // [139] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] - cputc_from___b2: - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy - jsr cputc - jmp __b1_from___b2 -} - // strupr -// Converts a string to uppercase. -strupr: { - .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - .label __0 = $8b - .label src = $2a - // [205] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] - __b1_from_strupr: - // [205] phi (byte*) strupr::src#2 = (const byte*) strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 - lda #str - sta.z src+1 - jmp __b1 - // strupr::@1 - __b1: - // [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (src),y - cmp #0 - bne __b2 - jmp __breturn - // strupr::@return - __breturn: - // [207] return - rts - // strupr::@2 - __b2: - // [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 - ldy #0 - lda (src),y - sta.z toupper.ch - // [209] call toupper - jsr toupper - // [210] (byte) toupper::return#3 ← (byte) toupper::return#2 -- vbuz1=vbuz2 - lda.z toupper.return - sta.z toupper.return_1 - jmp __b3 - // strupr::@3 - __b3: - // [211] (byte~) strupr::$0 ← (byte) toupper::return#3 -- vbuz1=vbuz2 - lda.z toupper.return_1 - sta.z __0 - // [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 - lda.z __0 - ldy #0 - sta (src),y - // [213] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 - inc.z src - bne !+ - inc.z src+1 - !: - // [205] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] - __b1_from___b3: - // [205] phi (byte*) strupr::src#2 = (byte*) strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy - jmp __b1 -} - // toupper -// Convert lowercase alphabet to uppercase -// Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte zp($2c) ch) -toupper: { - .label return = $2c - .label ch = $2c - .label return_1 = $8a - // [214] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 - lda.z ch - cmp #'a' - bcc __breturn_from_toupper - jmp __b2 - // toupper::@2 - __b2: - // [215] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 - lda #'z' - cmp.z ch - bcs __b1 - // [217] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - __breturn_from_toupper: - __breturn_from___b1: - __breturn_from___b2: - // [217] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy - jmp __breturn - // toupper::@1 - __b1: - // [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 - lax.z return - axs #-['A'-'a'] - stx.z return - jmp __breturn_from___b1 - // toupper::@return - __breturn: - // [218] return - rts -} - // strlen -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($2d) str) -strlen: { - .label len = $2f - .label str = $2d - .label return = $77 - // [220] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - __b1_from_strlen: - // [220] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z len - lda #>0 - sta.z len+1 - // [220] phi (byte*) strlen::str#2 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z str+1 - jmp __b1 - // strlen::@1 - __b1: - // [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - jmp __breturn - // strlen::@return - __breturn: - // [222] return - rts - // strlen::@2 - __b2: - // [223] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 - inc.z len - bne !+ - inc.z len+1 - !: - // [224] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [220] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - __b1_from___b2: - // [220] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [220] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy - jmp __b1 -} - // ultoa -// 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) -// ultoa(dword zp($32) value, byte* zp($8d) buffer) -ultoa: { - .const max_digits = $a - .label __10 = $8f - .label __11 = $8c - .label digit_value = $90 - .label buffer = $8d - .label digit = $31 - .label value = $32 - .label buffer_1 = $37 - .label started = $36 - // [226] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] - __b1_from_ultoa: - // [226] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer_1+1 - // [226] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [226] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [226] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // ultoa::@1 - __b1: - // [227] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #max_digits-1 - bcc __b2 - jmp __b3 - // ultoa::@3 - __b3: - // [228] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 - lda.z value - sta.z __11 - // [229] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 - ldy.z __11 - lda DIGITS,y - ldy #0 - sta (buffer_1),y - // [230] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz2 - lda.z buffer_1 - clc - adc #1 - sta.z buffer - lda.z buffer_1+1 - adc #0 - sta.z buffer+1 - // [231] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // ultoa::@return - __breturn: - // [232] return - rts - // ultoa::@2 - __b2: - // [233] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 - lda.z digit - asl - asl - sta.z __10 - // [234] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 - ldy.z __10 - lda RADIX_DECIMAL_VALUES_LONG,y - sta.z digit_value - lda RADIX_DECIMAL_VALUES_LONG+1,y - sta.z digit_value+1 - lda RADIX_DECIMAL_VALUES_LONG+2,y - sta.z digit_value+2 - lda RADIX_DECIMAL_VALUES_LONG+3,y - sta.z digit_value+3 - // [235] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // ultoa::@7 - __b7: - // [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 - lda.z value+3 - cmp.z digit_value+3 - bcc !+ - bne __b5 - lda.z value+2 - cmp.z digit_value+2 - bcc !+ - bne __b5 - lda.z value+1 - cmp.z digit_value+1 - bcc !+ - bne __b5 - lda.z value - cmp.z digit_value - bcs __b5 - !: - // [237] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] - __b4_from___b7: - // [237] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [237] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [237] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy - jmp __b4 - // ultoa::@4 - __b4: - // [238] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [226] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] - __b1_from___b4: - // [226] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [226] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [226] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [226] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy - jmp __b1 - // ultoa::@5 - __b5: - // [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 -- pbuz1=pbuz2 - lda.z buffer_1 - sta.z ultoa_append.buffer - lda.z buffer_1+1 - sta.z ultoa_append.buffer+1 - // [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 -- vduz1=vduz2 - lda.z value - sta.z ultoa_append.value - lda.z value+1 - sta.z ultoa_append.value+1 - lda.z value+2 - sta.z ultoa_append.value+2 - lda.z value+3 - sta.z ultoa_append.value+3 - // [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 -- vduz1=vduz2 - lda.z digit_value - sta.z ultoa_append.sub - lda.z digit_value+1 - sta.z ultoa_append.sub+1 - lda.z digit_value+2 - sta.z ultoa_append.sub+2 - lda.z digit_value+3 - sta.z ultoa_append.sub+3 - // [242] call ultoa_append - // [246] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] - ultoa_append_from___b5: - jsr ultoa_append - // [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 -- vduz1=vduz2 - lda.z ultoa_append.value - sta.z ultoa_append.return - lda.z ultoa_append.value+1 - sta.z ultoa_append.return+1 - lda.z ultoa_append.value+2 - sta.z ultoa_append.return+2 - lda.z ultoa_append.value+3 - sta.z ultoa_append.return+3 - jmp __b6 - // ultoa::@6 - __b6: - // [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 -- vduz1=vduz2 - lda.z ultoa_append.return - sta.z value - lda.z ultoa_append.return+1 - sta.z value+1 - lda.z ultoa_append.return+2 - sta.z value+2 - lda.z ultoa_append.return+3 - sta.z value+3 - // [245] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer_1 - bne !+ - inc.z buffer_1+1 - !: - // [237] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] - __b4_from___b6: - // [237] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [237] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [237] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy - jmp __b4 -} - // ultoa_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. -// ultoa_append(byte* zp($94) buffer, dword zp($39) value, dword zp($96) sub) -ultoa_append: { - .label buffer = $94 - .label value = $39 - .label sub = $96 - .label return = $9a - .label digit = $3d - // [247] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] - __b1_from_ultoa_append: - // [247] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [247] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy - jmp __b1 - // ultoa_append::@1 - __b1: - // [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 - lda.z value+3 - cmp.z sub+3 - bcc !+ - bne __b2 - lda.z value+2 - cmp.z sub+2 - bcc !+ - bne __b2 - lda.z value+1 - cmp.z sub+1 - bcc !+ - bne __b2 - lda.z value - cmp.z sub - bcs __b2 - !: - jmp __b3 - // ultoa_append::@3 - __b3: - // [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda DIGITS,y - ldy #0 - sta (buffer),y - jmp __breturn - // ultoa_append::@return - __breturn: - // [250] return - rts - // ultoa_append::@2 - __b2: - // [251] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 - lda.z value - sec - sbc.z sub - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - lda.z value+2 - sbc.z sub+2 - sta.z value+2 - lda.z value+3 - sbc.z sub+3 - sta.z value+3 - // [247] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] - __b1_from___b2: - // [247] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [247] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte zp($72) uvalue) -printf_uchar: { - .const format_min_length = 2 - .const format_justify_left = 0 - .const format_zero_padding = 1 - .const format_upper_case = 0 - .label uvalue = $72 - jmp __b1 - // printf_uchar::@1 - __b1: - // [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [255] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#0 -- vbuz1=vbuz2 - lda.z uvalue - sta.z uctoa.value - // [256] call uctoa - // Format number into buffer - // [260] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - uctoa_from___b1: - jsr uctoa - jmp __b2 - // printf_uchar::@2 - __b2: - // [257] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [258] call printf_number_buffer - // Print using format - // [95] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [95] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uchar::format_upper_case#0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [95] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [95] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uchar::format_zero_padding#0 [phi:printf_uchar::@2->printf_number_buffer#2] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [95] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uchar::format_justify_left#0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [95] phi (byte) printf_number_buffer::format_min_length#2 = (const byte) printf_uchar::format_min_length#0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_uchar::@return - __breturn: - // [259] return - rts -} - // uctoa -// 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) -// uctoa(byte zp($3f) value, byte* zp($9e) buffer) -uctoa: { - .const max_digits = 2 - .label digit_value = $a0 - .label buffer = $9e - .label digit = $3e - .label value = $3f - .label buffer_1 = $41 - .label started = $40 - // [261] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - __b1_from_uctoa: - // [261] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer_1+1 - // [261] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [261] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [261] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // uctoa::@1 - __b1: - // [262] if((byte) uctoa::digit#2<(const byte) uctoa::max_digits#2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #max_digits-1 - bcc __b2 - jmp __b3 - // uctoa::@3 - __b3: - // [263] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 - ldy.z value - lda DIGITS,y - ldy #0 - sta (buffer_1),y - // [264] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 - lda.z buffer_1 - clc - adc #1 - sta.z buffer - lda.z buffer_1+1 - adc #0 - sta.z buffer+1 - // [265] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa::@return - __breturn: - // [266] return - rts - // uctoa::@2 - __b2: - // [267] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda RADIX_HEXADECIMAL_VALUES_CHAR,y - sta.z digit_value - // [268] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // uctoa::@7 - __b7: - // [269] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 - lda.z value - cmp.z digit_value - bcs __b5 - // [270] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - __b4_from___b7: - // [270] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [270] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [270] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - jmp __b4 - // uctoa::@4 - __b4: - // [271] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [261] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] - __b1_from___b4: - // [261] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [261] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [261] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [261] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 -- pbuz1=pbuz2 - lda.z buffer_1 - sta.z uctoa_append.buffer - lda.z buffer_1+1 - sta.z uctoa_append.buffer+1 - // [273] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 - lda.z value - sta.z uctoa_append.value - // [274] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 - lda.z digit_value - sta.z uctoa_append.sub - // [275] call uctoa_append - // [279] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - uctoa_append_from___b5: - jsr uctoa_append - // [276] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 - lda.z uctoa_append.value - sta.z uctoa_append.return - jmp __b6 - // uctoa::@6 - __b6: - // [277] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 - lda.z uctoa_append.return - sta.z value - // [278] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer_1 - bne !+ - inc.z buffer_1+1 - !: - // [270] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - __b4_from___b6: - // [270] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [270] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [270] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_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. -// uctoa_append(byte* zp($a1) buffer, byte zp($43) value, byte zp($a3) sub) -uctoa_append: { - .label buffer = $a1 - .label value = $43 - .label sub = $a3 - .label return = $a4 - .label digit = $44 - // [280] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - __b1_from_uctoa_append: - // [280] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [280] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy - jmp __b1 - // uctoa_append::@1 - __b1: - // [281] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuz1_ge_vbuz2_then_la1 - lda.z value - cmp.z sub - bcs __b2 - jmp __b3 - // uctoa_append::@3 - __b3: - // [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda DIGITS,y - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa_append::@return - __breturn: - // [283] return - rts - // uctoa_append::@2 - __b2: - // [284] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuz1=vbuz1_minus_vbuz2 - lda.z value - sec - sbc.z sub - sta.z value - // [280] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - __b1_from___b2: - // [280] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [280] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // gotoxy -// Set the cursor to the specified position -gotoxy: { - .const x = 0 - .const y = $18 - .const offset = y*$28 - jmp __b1 - // gotoxy::@1 - __b1: - // [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 -- vbuz1=vbuc1 - lda #x - sta.z conio_cursor_x - // [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 -- vbuz1=vbuc1 - lda #y - sta.z conio_cursor_y - // [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 -- pbuz1=pbuc1 - lda #CONIO_SCREEN_TEXT+offset - sta.z conio_cursor_text+1 - // [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 -- pbuz1=pbuc1 - lda #CONIO_SCREEN_COLORS+offset - sta.z conio_cursor_color+1 - jmp __breturn - // gotoxy::@return - __breturn: - // [291] return - rts -} - // clock -// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). -// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() -clock: { - .label return = $a5 - .label return_1 = $66 - // [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) -- vduz1=vduc1_minus__deref_pduc2 - lda #<$ffffffff - sec - sbc CIA2_TIMER_AB - sta.z return - lda #>$ffffffff - sbc CIA2_TIMER_AB+1 - sta.z return+1 - lda #<$ffffffff>>$10 - sbc CIA2_TIMER_AB+2 - sta.z return+2 - lda #>$ffffffff>>$10 - sbc CIA2_TIMER_AB+3 - sta.z return+3 - jmp __breturn - // clock::@return - __breturn: - // [293] return - rts -} - // eorfill -// EOR fill from the line buffer onto the canvas -// eorfill(byte* zp($48) canvas) -eorfill: { - .label canvas = $48 - .label eor = $4b - .label y = $4a - .label line_column = $46 - .label fill_column = $48 - .label x = $45 - // [295] phi from eorfill to eorfill::@1 [phi:eorfill->eorfill::@1] - __b1_from_eorfill: - // [295] phi (byte*) eorfill::fill_column#5 = (byte*) eorfill::canvas#0 [phi:eorfill->eorfill::@1#0] -- register_copy - // [295] phi (byte*) eorfill::line_column#2 = (const nomodify byte*) LINE_BUFFER [phi:eorfill->eorfill::@1#1] -- pbuz1=pbuc1 - lda #LINE_BUFFER - sta.z line_column+1 - // [295] phi (byte) eorfill::x#2 = (byte) 0 [phi:eorfill->eorfill::@1#2] -- vbuz1=vbuc1 - lda #0 - sta.z x - jmp __b1 - // eorfill::@1 - __b1: - // [296] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z x - cmp #$10 - bcc __b2 - jmp __breturn - // eorfill::@return - __breturn: - // [297] return - rts - // eorfill::@2 - __b2: - // [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) -- vbuz1=_deref_pbuz2 - ldy #0 - lda (line_column),y - sta.z eor - // [299] phi from eorfill::@2 to eorfill::@3 [phi:eorfill::@2->eorfill::@3] - __b3_from___b2: - // [299] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#0 [phi:eorfill::@2->eorfill::@3#0] -- register_copy - // [299] phi (byte) eorfill::y#2 = (byte) 1 [phi:eorfill::@2->eorfill::@3#1] -- vbuz1=vbuc1 - lda #1 - sta.z y - jmp __b3 - // eorfill::@3 - __b3: - // [300] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z y - cmp #$10*8 - bcc __b4 - jmp __b5 - // eorfill::@5 - __b5: - // [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 - lda #$10*8 - clc - adc.z line_column - sta.z line_column - bcc !+ - inc.z line_column+1 - !: - // [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 - lda #$10*8 - clc - adc.z fill_column - sta.z fill_column - bcc !+ - inc.z fill_column+1 - !: - // [303] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 -- vbuz1=_inc_vbuz1 - inc.z x - // [295] phi from eorfill::@5 to eorfill::@1 [phi:eorfill::@5->eorfill::@1] - __b1_from___b5: - // [295] phi (byte*) eorfill::fill_column#5 = (byte*) eorfill::fill_column#1 [phi:eorfill::@5->eorfill::@1#0] -- register_copy - // [295] phi (byte*) eorfill::line_column#2 = (byte*) eorfill::line_column#1 [phi:eorfill::@5->eorfill::@1#1] -- register_copy - // [295] phi (byte) eorfill::x#2 = (byte) eorfill::x#1 [phi:eorfill::@5->eorfill::@1#2] -- register_copy - jmp __b1 - // eorfill::@4 - __b4: - // [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) -- vbuz1=vbuz1_bxor_pbuz2_derefidx_vbuz3 - lda.z eor - ldy.z y - eor (line_column),y - sta.z eor - // [305] *((byte*) eorfill::fill_column#5 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 -- pbuz1_derefidx_vbuz2=vbuz3 - lda.z eor - ldy.z y - sta (fill_column),y - // [306] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 -- vbuz1=_inc_vbuz1 - inc.z y - // [299] phi from eorfill::@4 to eorfill::@3 [phi:eorfill::@4->eorfill::@3] - __b3_from___b4: - // [299] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#1 [phi:eorfill::@4->eorfill::@3#0] -- register_copy - // [299] phi (byte) eorfill::y#2 = (byte) eorfill::y#1 [phi:eorfill::@4->eorfill::@3#1] -- register_copy - jmp __b3 -} - // line -// Draw a EOR friendly line between two points -// Uses bresenham line drawing routine -// line(byte zp($4f) x1, byte zp($50) y1, byte zp($4c) x2, byte zp($4d) y2) -line: { - .label plot1___0 = $b1 - .label plot1___1 = $b5 - .label plot1___2 = $b2 - .label plot2___0 = $b6 - .label plot2___1 = $ba - .label plot2___2 = $b7 - .label plot3___0 = $bb - .label plot3___1 = $bf - .label plot3___2 = $bc - .label plot4___0 = $c0 - .label plot4___1 = $c4 - .label plot4___2 = $c1 - .label x1 = $4f - .label y1 = $50 - .label x2 = $4c - .label y2 = $4d - .label x = $4f - .label y = $50 - .label dx = $aa - .label dy = $ac - .label sx = $ae - .label sy = $b0 - .label e1 = $51 - .label e = $4e - .label plot1_column = $b3 - .label plot2_x = $4f - .label plot2_column = $b8 - .label plot3_column = $bd - .label plot4_column = $c2 - // [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 -- vbuz1=vbuz2_minus_vbuz3 - lda.z x2 - sec - sbc.z x - sta.z abs_u8.u - // [309] call abs_u8 - // [374] phi from line to abs_u8 [phi:line->abs_u8] - abs_u8_from_line: - // [374] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#0 [phi:line->abs_u8#0] -- register_copy - jsr abs_u8 - // [310] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 -- vbuz1=vbuz2 - lda.z abs_u8.return_2 - sta.z abs_u8.return - jmp __b12 - // line::@12 - __b12: - // [311] (byte) line::dx#0 ← (byte) abs_u8::return#0 -- vbuz1=vbuz2 - lda.z abs_u8.return - sta.z dx - // [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuz1=vbuz2_minus_vbuz3 - lda.z y2 - sec - sbc.z y - sta.z abs_u8.u - // [313] call abs_u8 - // [374] phi from line::@12 to abs_u8 [phi:line::@12->abs_u8] - abs_u8_from___b12: - // [374] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#1 [phi:line::@12->abs_u8#0] -- register_copy - jsr abs_u8 - // [314] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 -- vbuz1=vbuz2 - lda.z abs_u8.return_2 - sta.z abs_u8.return_1 - jmp __b13 - // line::@13 - __b13: - // [315] (byte) line::dy#0 ← (byte) abs_u8::return#1 -- vbuz1=vbuz2 - lda.z abs_u8.return_1 - sta.z dy - // [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 -- vbuz1=vbuz2_minus_vbuz3 - lda.z x2 - sec - sbc.z x - sta.z sgn_u8.u - // [317] call sgn_u8 - // [368] phi from line::@13 to sgn_u8 [phi:line::@13->sgn_u8] - sgn_u8_from___b13: - // [368] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#0 [phi:line::@13->sgn_u8#0] -- register_copy - jsr sgn_u8 - // [318] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 -- vbuz1=vbuz2 - lda.z sgn_u8.return_2 - sta.z sgn_u8.return - jmp __b14 - // line::@14 - __b14: - // [319] (byte) line::sx#0 ← (byte) sgn_u8::return#0 -- vbuz1=vbuz2 - lda.z sgn_u8.return - sta.z sx - // [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuz1=vbuz2_minus_vbuz3 - lda.z y2 - sec - sbc.z y - sta.z sgn_u8.u - // [321] call sgn_u8 - // [368] phi from line::@14 to sgn_u8 [phi:line::@14->sgn_u8] - sgn_u8_from___b14: - // [368] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#1 [phi:line::@14->sgn_u8#0] -- register_copy - jsr sgn_u8 - // [322] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 -- vbuz1=vbuz2 - lda.z sgn_u8.return_2 - sta.z sgn_u8.return_1 - jmp __b15 - // line::@15 - __b15: - // [323] (byte) line::sy#0 ← (byte) sgn_u8::return#1 -- vbuz1=vbuz2 - lda.z sgn_u8.return_1 - sta.z sy - // [324] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -- vbuz1_neq_vbuc1_then_la1 - lda #$ff - cmp.z sx - bne __b1_from___b15 - jmp __b3 - // line::@3 - __b3: - // [325] (byte) line::y#1 ← ++ (byte) line::y#0 -- vbuz1=_inc_vbuz1 - inc.z y - // [326] (byte) line::y2#3 ← ++ (byte) line::y2#10 -- vbuz1=_inc_vbuz1 - inc.z y2 - // [327] phi from line::@15 line::@3 to line::@1 [phi:line::@15/line::@3->line::@1] - __b1_from___b15: - __b1_from___b3: - // [327] phi (byte) line::y2#13 = (byte) line::y2#10 [phi:line::@15/line::@3->line::@1#0] -- register_copy - // [327] phi (byte) line::y#13 = (byte) line::y#0 [phi:line::@15/line::@3->line::@1#1] -- register_copy - jmp __b1 - // line::@1 - __b1: - // [328] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -- vbuz1_gt_vbuz2_then_la1 - lda.z dy - cmp.z dx - bcc __b2 - jmp __b4 - // line::@4 - __b4: - // [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 - lda.z dy - lsr - sta.z e - jmp plot1 - // line::plot1 - plot1: - // [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 -- vbuz1=vbuz2_ror_3 - lda.z x - lsr - lsr - lsr - sta.z plot1___0 - // [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 - lda.z plot1___0 - asl - sta.z plot1___2 - // [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) -- pbuz1=pptc1_derefidx_vbuz2 - ldy.z plot1___2 - lda plot_column,y - sta.z plot1_column - lda plot_column+1,y - sta.z plot1_column+1 - // [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot1___1 - // [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot1_column),y - ldy.z plot1___1 - ora plot_bit,y - ldy.z y - sta (plot1_column),y - // [335] phi from line::@6 line::plot1 to line::@5 [phi:line::@6/line::plot1->line::@5] - __b5_from___b6: - __b5_from_plot1: - // [335] phi (byte) line::x#10 = (byte) line::x#16 [phi:line::@6/line::plot1->line::@5#0] -- register_copy - // [335] phi (byte) line::e#3 = (byte) line::e#5 [phi:line::@6/line::plot1->line::@5#1] -- register_copy - // [335] phi (byte) line::y#6 = (byte) line::y#15 [phi:line::@6/line::plot1->line::@5#2] -- register_copy - jmp __b5 - // line::@5 - __b5: - // [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z y - clc - adc.z sy - sta.z y - // [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z e - clc - adc.z dx - sta.z e - // [338] if((byte) line::dy#0>=(byte) line::e#1) goto line::@6 -- vbuz1_ge_vbuz2_then_la1 - lda.z dy - cmp.z e - bcs __b6_from___b5 - jmp __b7 - // line::@7 - __b7: - // [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z plot2_x - clc - adc.z sx - sta.z plot2_x - // [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 -- vbuz1=vbuz1_minus_vbuz2 - lda.z e - sec - sbc.z dy - sta.z e - jmp plot2 - // line::plot2 - plot2: - // [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 -- vbuz1=vbuz2_ror_3 - lda.z plot2_x - lsr - lsr - lsr - sta.z plot2___0 - // [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 - lda.z plot2___0 - asl - sta.z plot2___2 - // [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) -- pbuz1=pptc1_derefidx_vbuz2 - ldy.z plot2___2 - lda plot_column,y - sta.z plot2_column - lda plot_column+1,y - sta.z plot2_column+1 - // [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z plot2_x - sta.z plot2___1 - // [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot2_column),y - ldy.z plot2___1 - ora plot_bit,y - ldy.z y - sta (plot2_column),y - // [346] phi from line::@5 line::plot2 to line::@6 [phi:line::@5/line::plot2->line::@6] - __b6_from___b5: - __b6_from_plot2: - // [346] phi (byte) line::x#16 = (byte) line::x#10 [phi:line::@5/line::plot2->line::@6#0] -- register_copy - // [346] phi (byte) line::e#5 = (byte) line::e#1 [phi:line::@5/line::plot2->line::@6#1] -- register_copy - jmp __b6 - // line::@6 - __b6: - // [347] if((byte) line::y#15!=(byte) line::y2#13) goto line::@5 -- vbuz1_neq_vbuz2_then_la1 - lda.z y - cmp.z y2 - bne __b5_from___b6 - jmp __breturn - // line::@return - __breturn: - // [348] return - rts - // line::@2 - __b2: - // [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 - lda.z dx - lsr - sta.z e1 - // [350] phi from line::@2 line::@9 to line::@8 [phi:line::@2/line::@9->line::@8] - __b8_from___b2: - __b8_from___b9: - // [350] phi (byte) line::e1#3 = (byte) line::e1#0 [phi:line::@2/line::@9->line::@8#0] -- register_copy - // [350] phi (byte) line::y#10 = (byte) line::y#13 [phi:line::@2/line::@9->line::@8#1] -- register_copy - // [350] phi (byte) line::x#12 = (byte) line::x#0 [phi:line::@2/line::@9->line::@8#2] -- register_copy - jmp __b8 - // line::@8 - __b8: - jmp plot3 - // line::plot3 - plot3: - // [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 -- vbuz1=vbuz2_ror_3 - lda.z x - lsr - lsr - lsr - sta.z plot3___0 - // [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 - lda.z plot3___0 - asl - sta.z plot3___2 - // [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) -- pbuz1=pptc1_derefidx_vbuz2 - ldy.z plot3___2 - lda plot_column,y - sta.z plot3_column - lda plot_column+1,y - sta.z plot3_column+1 - // [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot3___1 - // [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot3_column),y - ldy.z plot3___1 - ora plot_bit,y - ldy.z y - sta (plot3_column),y - jmp __b11 - // line::@11 - __b11: - // [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z x - clc - adc.z sx - sta.z x - // [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z e1 - clc - adc.z dy - sta.z e1 - // [358] if((byte) line::dx#0>=(byte) line::e1#1) goto line::@9 -- vbuz1_ge_vbuz2_then_la1 - lda.z dx - cmp.z e1 - bcs __b9_from___b11 - jmp __b10 - // line::@10 - __b10: - // [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z y - clc - adc.z sy - sta.z y - // [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 -- vbuz1=vbuz1_minus_vbuz2 - lda.z e1 - sec - sbc.z dx - sta.z e1 - // [361] phi from line::@10 line::@11 to line::@9 [phi:line::@10/line::@11->line::@9] - __b9_from___b10: - __b9_from___b11: - // [361] phi (byte) line::e1#7 = (byte) line::e1#2 [phi:line::@10/line::@11->line::@9#0] -- register_copy - // [361] phi (byte) line::y#11 = (byte) line::y#3 [phi:line::@10/line::@11->line::@9#1] -- register_copy - jmp __b9 - // line::@9 - __b9: - // [362] if((byte) line::x#13!=(byte) line::x2#11) goto line::@8 -- vbuz1_neq_vbuz2_then_la1 - lda.z x - cmp.z x2 - bne __b8_from___b9 - jmp plot4 - // line::plot4 - plot4: - // [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 -- vbuz1=vbuz2_ror_3 - lda.z x - lsr - lsr - lsr - sta.z plot4___0 - // [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 - lda.z plot4___0 - asl - sta.z plot4___2 - // [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) -- pbuz1=pptc1_derefidx_vbuz2 - ldy.z plot4___2 - lda plot_column,y - sta.z plot4_column - lda plot_column+1,y - sta.z plot4_column+1 - // [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot4___1 - // [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot4_column),y - ldy.z plot4___1 - ora plot_bit,y - ldy.z y - sta (plot4_column),y - jmp __breturn -} - // sgn_u8 -// Get the sign of a 8-bit unsigned number treated as a signed number. -// Returns unsigned -1 if the number is negative -// sgn_u8(byte zp($52) u) -sgn_u8: { - .label __0 = $c5 - .label u = $52 - .label return = $ad - .label return_1 = $af - .label return_2 = $53 - // [369] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 - lda #$80 - and.z u - sta.z __0 - // [370] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z __0 - bne __b1_from_sgn_u8 - // [372] phi from sgn_u8 to sgn_u8::@return [phi:sgn_u8->sgn_u8::@return] - __breturn_from_sgn_u8: - // [372] phi (byte) sgn_u8::return#4 = (byte) 1 [phi:sgn_u8->sgn_u8::@return#0] -- vbuz1=vbuc1 - lda #1 - sta.z return_2 - jmp __breturn - // [371] phi from sgn_u8 to sgn_u8::@1 [phi:sgn_u8->sgn_u8::@1] - __b1_from_sgn_u8: - jmp __b1 - // sgn_u8::@1 - __b1: - // [372] phi from sgn_u8::@1 to sgn_u8::@return [phi:sgn_u8::@1->sgn_u8::@return] - __breturn_from___b1: - // [372] phi (byte) sgn_u8::return#4 = (byte) -1 [phi:sgn_u8::@1->sgn_u8::@return#0] -- vbuz1=vbuc1 - lda #-1 - sta.z return_2 - jmp __breturn - // sgn_u8::@return - __breturn: - // [373] return - rts -} - // abs_u8 -// Get the absolute value of a u-bit unsigned number treated as a signed number. -// abs_u8(byte zp($54) u) -abs_u8: { - .label __0 = $c6 - .label u = $54 - .label return = $a9 - .label return_1 = $ab - .label return_2 = $54 - // [375] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 - lda #$80 - and.z u - sta.z __0 - // [376] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z __0 - bne __b1 - // [378] phi from abs_u8 abs_u8::@1 to abs_u8::@return [phi:abs_u8/abs_u8::@1->abs_u8::@return] - __breturn_from_abs_u8: - __breturn_from___b1: - // [378] phi (byte) abs_u8::return#4 = (byte) abs_u8::u#2 [phi:abs_u8/abs_u8::@1->abs_u8::@return#0] -- register_copy - jmp __breturn - // abs_u8::@1 - __b1: - // [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 -- vbuz1=_neg_vbuz1 - lda.z return_2 - eor #$ff - clc - adc #1 - sta.z return_2 - jmp __breturn_from___b1 - // abs_u8::@return - __breturn: - // [379] return - rts } // clock_start // Reset & start the processor clock time. The value can be read using clock(). // This uses CIA #2 Timer A+B on the C64 clock_start: { - // [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff -- _deref_pduc1=vduc2 + // [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff -- _deref_pduc1=vduc2 lda #<$ffffffff sta CIA2_TIMER_AB lda #>$ffffffff @@ -10397,28 +5514,25 @@ clock_start: { sta CIA2_TIMER_AB+2 lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 - // [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL jmp __breturn // clock_start::@return __breturn: - // [385] return + // [195] return rts } // textcolor // Set the color for text output. The old color setting is returned. textcolor: { - // [386] (byte) conio_textcolor ← (const nomodify byte) WHITE -- vbuz1=vbuc1 - lda #WHITE - sta.z conio_textcolor jmp __breturn // textcolor::@return __breturn: - // [387] return + // [197] return rts } // setup_irq @@ -10426,23 +5540,23 @@ textcolor: { setup_irq: { // asm { sei } sei - // [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to 8 pixels before the border lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 + // [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 lda #BORDER_YPOS_BOTTOM-8 sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE - // [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 + // [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 // Set the IRQ routine lda #(SCREEN&$3fff)*4)|(>LINE_BUFFER)/4&$f + .label __0 = $5c // entry interrupt(KERNEL_KEYBOARD) - // [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 // Change border color lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [397] call kbhit + // [207] call kbhit jsr kbhit - // [398] (byte) kbhit::return#2 ← (byte) kbhit::return#0 -- vbuz1=vbuz2 + // [208] (byte) kbhit::return#2 ← (byte) kbhit::return#0 -- vbuz1=vbuz2 lda.z kbhit.return sta.z kbhit.return_1 + jmp __b4 + // irq_bottom_2::@4 + __b4: + // [209] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 -- vbuz1=vbuz2 + lda.z kbhit.return_1 + sta.z __0 + // [210] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -- vbuc1_eq_vbuz1_then_la1 + // Show the current canvas (unless a key is being pressed) + lda #0 + cmp.z __0 + beq __b1 + // [211] phi from irq_bottom_2::@4 to irq_bottom_2::toD0181 [phi:irq_bottom_2::@4->irq_bottom_2::toD0181] + toD0181_from___b4: + jmp toD0181 + // irq_bottom_2::toD0181 + toD0181: jmp __b3 // irq_bottom_2::@3 __b3: - // [399] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 -- vbuz1=vbuz2 - lda.z kbhit.return_1 - sta.z __0 - // [400] if((byte) 0!=(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z __0 - bne __b1 + // [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 -- _deref_pbuc1=vbuc2 + lda #toD0181_return + sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY jmp __b2 // irq_bottom_2::@2 __b2: - // [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory -- _deref_pbuc1=vbuz1 - lda.z canvas_show_memory - sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY - jmp __b1 - // irq_bottom_2::@1 - __b1: - // [402] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 + // [213] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z canvas_show_flag - // [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 + // [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at 8 pixels before the border lda #BORDER_YPOS_BOTTOM-8 sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 + // [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 lda #irq_bottom_1 @@ -10508,25 +5629,31 @@ irq_bottom_2: { jmp __breturn // irq_bottom_2::@return __breturn: - // [406] return - exit interrupt(KERNEL_KEYBOARD) + // [217] return - exit interrupt(KERNEL_KEYBOARD) jmp $ea31 + // irq_bottom_2::@1 + __b1: + // [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory -- _deref_pbuc1=vbuz1 + lda.z canvas_show_memory + sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY + jmp __b2 } // kbhit // Return true if there's a key waiting, return false if not kbhit: { - .label return = $c9 - .label return_1 = $c7 - // [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 -- _deref_pbuc1=vbuc2 + .label return = $5d + .label return_1 = $5b + // [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 -- _deref_pbuc1=vbuc2 lda #0 sta CONIO_CIA1_PORT_A - // [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) -- vbuz1=_bnot__deref_pbuc1 + // [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) -- vbuz1=_bnot__deref_pbuc1 lda CONIO_CIA1_PORT_B eor #$ff sta.z return jmp __breturn // kbhit::@return __breturn: - // [409] return + // [221] return rts } // irq_bottom_1 @@ -10534,11 +5661,11 @@ kbhit: { irq_bottom_1: { .const toD0181_return = (>(CONSOLE&$3fff)*4)|(>PETSCII)/4&$f // entry interrupt(KERNEL_MIN) - // [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE -- _deref_pbuc1=vbuc2 + // [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY -- _deref_pbuc1=vbuc2 // Change border color - lda #WHITE + lda #DARK_GREY sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [411] phi from irq_bottom_1 to irq_bottom_1::toD0181 [phi:irq_bottom_1->irq_bottom_1::toD0181] + // [223] phi from irq_bottom_1 to irq_bottom_1::toD0181 [phi:irq_bottom_1->irq_bottom_1::toD0181] toD0181_from_irq_bottom_1: jmp toD0181 // irq_bottom_1::toD0181 @@ -10546,19 +5673,19 @@ irq_bottom_1: { jmp __b1 // irq_bottom_1::@1 __b1: - // [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 -- _deref_pbuc1=vbuc2 + // [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 -- _deref_pbuc1=vbuc2 // Show the cycle counter lda #toD0181_return sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY - // [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM -- _deref_pbuc1=vbuc2 + // [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at bottom of text-line lda #BORDER_YPOS_BOTTOM sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() -- _deref_pptc1=pprc2 + // [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() -- _deref_pptc1=pprc2 lda #irq_bottom_2 @@ -10566,579 +5693,368 @@ irq_bottom_1: { jmp __breturn // irq_bottom_1::@return __breturn: - // [416] return - exit interrupt(KERNEL_MIN) + // [228] return - exit interrupt(KERNEL_MIN) jmp $ea81 } // File Data - // The digits used for numbers - DIGITS: .text "0123456789abcdef" - // Values of hexadecimal digits - RADIX_HEXADECIMAL_VALUES_CHAR: .byte $10 - // Values of decimal digits - RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a // SIN/COS tables .align $100 SINTAB: -.fill $200, 63 + 63*sin(i*2*PI/$100) +.fill $200, round(63 + 63*sin(i*2*PI/$100)) // Column offsets plot_column: .word LINE_BUFFER, LINE_BUFFER+1*$80, LINE_BUFFER+2*$80, LINE_BUFFER+3*$80, LINE_BUFFER+4*$80, LINE_BUFFER+5*$80, LINE_BUFFER+6*$80, LINE_BUFFER+7*$80, LINE_BUFFER+8*$80, LINE_BUFFER+9*$80, LINE_BUFFER+$a*$80, LINE_BUFFER+$b*$80, LINE_BUFFER+$c*$80, LINE_BUFFER+$d*$80, LINE_BUFFER+$e*$80, LINE_BUFFER+$f*$80 // The bits used for plotting a pixel plot_bit: .byte $80, $40, $20, $10, 8, 4, 2, 1 - // Buffer used for stringified number being printed - printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] (byte) conio_cursor_x ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] (byte) conio_cursor_y ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 [ canvas_show_memory printf_buffer ] ( [ canvas_show_memory printf_buffer ] { } ) always clobbers reg byte a -Statement [8] (volatile byte) canvas_show_flag ← (byte) 0 [ canvas_show_memory canvas_show_flag printf_buffer ] ( [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] +Statement [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 [ canvas_show_memory ] ( [ canvas_show_memory ] { } ) always clobbers reg byte a +Statement [3] (volatile byte) canvas_show_flag ← (byte) 0 [ canvas_show_memory canvas_show_flag ] ( [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag ] ( main:5 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag ] ( main:5 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] Removing always clobbered register reg byte a as potential for zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] -Statement [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 printf_buffer ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [63] (volatile byte) canvas_show_flag ← (byte) 1 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [65] (dword) clock::return#2 ← (dword) clock::return#0 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 clock::return#2 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 clock::return#2 printf_buffer ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [66] (dword~) main::$18 ← (dword) clock::return#2 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::$18 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::$18 printf_buffer ] { } ) always clobbers reg byte a -Statement [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer ] { } ) always clobbers reg byte a -Statement [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_ulong::uvalue#0 printf_buffer ] ( main:10 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } } ) always clobbers reg byte a -Statement [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#24 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#24 printf_buffer ] { } ) always clobbers reg byte a -Statement [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 printf_buffer ] { } ) always clobbers reg byte a +Statement [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] { } ) always clobbers reg byte a +Statement [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] ( main:5 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 ] ( main:5 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] ( main:5 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] { } ) always clobbers reg byte a +Statement [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] ( main:5 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] { } ) always clobbers reg byte a +Statement [58] (volatile byte) canvas_show_flag ← (byte) 1 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] { } ) always clobbers reg byte a +Statement [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#19 ] ( main:5 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#19 ] { } ) always clobbers reg byte a +Statement [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::y#2 main::y#1 ] -Statement [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] { } ) always clobbers reg byte a +Statement [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 ] { } ) always clobbers reg byte a +Statement [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:12 [ main::x#2 main::x#1 ] Removing always clobbered register reg byte a as potential for zp[1]:13 [ main::c#2 main::c#4 main::c#1 ] -Statement [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] { } ) always clobbers reg byte a -Statement [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_ulong::uvalue#0 printf_buffer ] ( main:10::printf_ulong:76 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::value#1 ] ( main:10::printf_ulong:76 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [99] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:14 [ printf_number_buffer::format_min_length#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] -Statement [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] +Statement [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] { } ) always clobbers reg byte a +Statement [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 ] { } ) always clobbers reg byte a +Statement [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] Removing always clobbered register reg byte y as potential for zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:22 [ printf_padding::pad#5 ] -Removing always clobbered register reg byte y as potential for zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte a as potential for zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:22 [ printf_padding::pad#5 ] -Removing always clobbered register reg byte a as potential for zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [147] (byte) conio_cursor_x ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 [ conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 [ conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [158] (byte) conio_cursor_x ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 [ conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 [ conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [178] if((word) memset::num#6<=(byte) 0) goto memset::@return [ memset::num#6 memset::str#7 memset::c#8 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:29 [ memset::c#8 memset::c#1 ] -Statement [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 [ memset::str#7 memset::c#8 memset::end#0 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 [ memset::c#8 memset::end#0 memset::dst#4 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#8 memset::end#0 memset::dst#2 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 [ memset::c#8 memset::end#0 memset::dst#2 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:29 [ memset::c#8 memset::c#1 ] -Statement [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [191] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] ( main:10::cputs:70 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { } main:10::cputs:74 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y -Statement [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y -Statement [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y -Statement [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123::toupper:209 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123::toupper:209 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strlen:98 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:10::printf_uchar:72::printf_number_buffer:258::strlen:98 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:14 [ printf_number_buffer::format_min_length#2 ] -Statement [228] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [229] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [230] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [231] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [233] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] -Statement [234] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:10::printf_ulong:76::ultoa:91::ultoa_append:242 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:61 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Statement [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:10::printf_ulong:76::ultoa:91::ultoa_append:242 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] -Statement [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:10::printf_ulong:76::ultoa:91::ultoa_append:242 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_uchar::uvalue#0 printf_buffer ] ( main:10::printf_uchar:72 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_uchar::uvalue#0 printf_buffer ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:114 [ printf_uchar::uvalue#0 ] -Statement [263] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [264] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a -Statement [265] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:63 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:160 [ uctoa::digit_value#0 ] -Statement [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:10::printf_uchar:72::uctoa:256::uctoa_append:275 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:67 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:67 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Statement [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:10::printf_uchar:72::uctoa:256::uctoa_append:275 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:163 [ uctoa_append::sub#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:68 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Statement [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 [ conio_cursor_x ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x ] { } ) always clobbers reg byte a -Statement [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 [ conio_cursor_x conio_cursor_y ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x conio_cursor_y ] { } ) always clobbers reg byte a -Statement [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 [ conio_cursor_x conio_cursor_y conio_cursor_text ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x conio_cursor_y conio_cursor_text ] { } ) always clobbers reg byte a -Statement [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color ] { } ) always clobbers reg byte a -Statement [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) [ clock::return#0 ] ( main:10::clock:64 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::eor#0 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::eor#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte a as potential for zp[1]:69 [ eorfill::x#2 eorfill::x#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:69 [ eorfill::x#2 eorfill::x#1 ] -Statement [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::fill_column#5 eorfill::line_column#1 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::fill_column#5 eorfill::line_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::y#2 eorfill::eor#1 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::y#2 eorfill::eor#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:74 [ eorfill::y#2 eorfill::y#1 ] -Statement [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:94 [ main::x0#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:95 [ main::y0#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:96 [ main::x1#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:97 [ main::y1#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -Removing always clobbered register reg byte a as potential for zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -Removing always clobbered register reg byte a as potential for zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -Removing always clobbered register reg byte a as potential for zp[1]:98 [ main::x2#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:99 [ main::y2#0 ] -Statement [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:170 [ line::dx#0 ] -Statement [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:172 [ line::dy#0 ] -Statement [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:174 [ line::sx#0 ] -Statement [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:176 [ line::sy#0 ] -Statement [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:78 [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -Statement [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:94 [ main::x0#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:95 [ main::y0#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:96 [ main::x1#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:97 [ main::y1#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -Removing always clobbered register reg byte y as potential for zp[1]:170 [ line::dx#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:172 [ line::dy#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:174 [ line::sx#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:176 [ line::sy#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -Removing always clobbered register reg byte y as potential for zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -Removing always clobbered register reg byte y as potential for zp[1]:78 [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -Removing always clobbered register reg byte y as potential for zp[1]:98 [ main::x2#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:99 [ main::y2#0 ] -Statement [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Statement [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 [ line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:81 [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] -Statement [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] -Removing always clobbered register reg byte y as potential for zp[1]:81 [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] -Statement [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 [ line::x#13 line::y#11 line::plot4_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#13 line::y#11 line::plot4_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#13 line::y#11 line::plot4_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#13 line::y#11 line::plot4_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 [ line::x#13 line::y#11 line::plot4_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#13 line::y#11 line::plot4_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#13 line::y#11 line::plot4_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#13 line::y#11 line::plot4_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) [ line::x#13 line::y#11 line::plot4_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#13 line::y#11 line::plot4_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#13 line::y#11 line::plot4_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#13 line::y#11 line::plot4_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 [ line::y#11 line::plot4_column#0 line::plot4_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::y#11 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::y#11 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::y#11 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) [ ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Statement [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 [ abs_u8::return#2 ] ( main:10::line:38::abs_u8:309 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:45::abs_u8:309 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:50::abs_u8:309 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:38::abs_u8:313 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:45::abs_u8:313 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:50::abs_u8:313 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a -Statement [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [386] (byte) conio_textcolor ← (const nomodify byte) WHITE [ conio_textcolor ] ( main:10::textcolor:24 [ canvas_show_memory canvas_show_flag printf_buffer conio_textcolor ] { } ) always clobbers reg byte a -Statement [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory ] ( [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory [ ] ( [ ] { } ) always clobbers reg byte a -Statement [402] (volatile byte) canvas_show_flag ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( [ ] { } ) always clobbers reg byte a -Statement [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 [ ] ( kbhit:397 [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) [ kbhit::return#0 ] ( kbhit:397 [ canvas_show_memory kbhit::return#0 ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM [ ] ( [ ] { } ) always clobbers reg byte a -Statement [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] (byte) conio_cursor_x ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] (byte) conio_cursor_y ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 [ canvas_show_memory printf_buffer ] ( [ canvas_show_memory printf_buffer ] { } ) always clobbers reg byte a -Statement [8] (volatile byte) canvas_show_flag ← (byte) 0 [ canvas_show_memory canvas_show_flag printf_buffer ] ( [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 printf_buffer ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [63] (volatile byte) canvas_show_flag ← (byte) 1 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [65] (dword) clock::return#2 ← (dword) clock::return#0 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 clock::return#2 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 clock::return#2 printf_buffer ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [66] (dword~) main::$18 ← (dword) clock::return#2 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::$18 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::$18 printf_buffer ] { } ) always clobbers reg byte a -Statement [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer ] { } ) always clobbers reg byte a -Statement [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_ulong::uvalue#0 printf_buffer ] ( main:10 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } } ) always clobbers reg byte a -Statement [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#24 printf_buffer ] ( main:10 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#24 printf_buffer ] { } ) always clobbers reg byte a -Statement [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] { } ) always clobbers reg byte a -Statement [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 printf_buffer ] { } ) always clobbers reg byte a -Statement [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 printf_buffer ] ( main:10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 printf_buffer ] { } ) always clobbers reg byte a -Statement [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_ulong::uvalue#0 printf_buffer ] ( main:10::printf_ulong:76 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::value#1 ] ( main:10::printf_ulong:76 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [99] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:10::printf_ulong:76::printf_number_buffer:93 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte y -Statement [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [147] (byte) conio_cursor_x ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 [ conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_color conio_textcolor cputln::ln_offset#0 cputln::$1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor cputln::ln_offset#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 [ conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_textcolor cputln::$2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [158] (byte) conio_cursor_x ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 [ conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_color conio_textcolor cscroll::$7 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 [ conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_textcolor cscroll::$8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 [ conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [178] if((word) memset::num#6<=(byte) 0) goto memset::@return [ memset::num#6 memset::str#7 memset::c#8 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::num#6 memset::str#7 memset::c#8 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::num#6 memset::str#7 memset::c#8 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 [ memset::str#7 memset::c#8 memset::end#0 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::str#7 memset::c#8 memset::end#0 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::str#7 memset::c#8 memset::end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 [ memset::c#8 memset::end#0 memset::dst#4 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::c#8 memset::end#0 memset::dst#4 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#8 memset::end#0 memset::dst#2 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a -Statement [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 [ memset::c#8 memset::end#0 memset::dst#2 ] ( main:10::memset:13 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:15 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:17 [ canvas_show_memory canvas_show_flag printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::memset:29 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer memset::c#8 memset::end#0 memset::dst#2 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:168 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memset:170 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memset::c#8 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#8 conio_textcolor } } ) always clobbers reg byte a reg byte y -Statement [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [191] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:164 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cscroll:149::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:10::printf_uchar:72::printf_number_buffer:258::cputc:116::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:113::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:120::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_ulong:76::printf_number_buffer:93::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::printf_uchar:72::printf_number_buffer:258::printf_padding:130::cputc:137::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { cputc::c#1 = cputc::c#3 printf_padding::pad#5 } } main:10::cputs:70::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::cputs:74::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125::cputc:203::cputln:152::cscroll:160::memcpy:166 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] ( main:10::cputs:70 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { } main:10::cputs:74 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { } main:10::printf_ulong:76::printf_number_buffer:93::cputs:125 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258::cputs:125 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer cputs::s#4 cputs::c#1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y -Statement [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a reg byte y -Statement [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte y -Statement [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strupr:123::toupper:209 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } main:10::printf_uchar:72::printf_number_buffer:258::strupr:123::toupper:209 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ printf_buffer strlen::len#2 strlen::str#2 ] ( main:10::printf_ulong:76::printf_number_buffer:93::strlen:98 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:10::printf_uchar:72::printf_number_buffer:258::strlen:98 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_buffer strlen::len#2 strlen::str#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [228] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [229] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [230] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [231] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [233] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [234] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:10::printf_ulong:76::ultoa:91 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:10::printf_ulong:76::ultoa:91::ultoa_append:242 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:10::printf_ulong:76::ultoa:91::ultoa_append:242 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:10::printf_ulong:76::ultoa:91::ultoa_append:242 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = main::cyclecount#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_uchar::uvalue#0 printf_buffer ] ( main:10::printf_uchar:72 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_uchar::uvalue#0 printf_buffer ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a -Statement [263] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [264] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a -Statement [265] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:10::printf_uchar:72::uctoa:256 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Statement [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:10::printf_uchar:72::uctoa:256::uctoa_append:275 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:10::printf_uchar:72::uctoa:256::uctoa_append:275 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color conio_textcolor printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = main::p0_idx#1 uctoa::value#1 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Statement [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 [ conio_cursor_x ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x ] { } ) always clobbers reg byte a -Statement [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 [ conio_cursor_x conio_cursor_y ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x conio_cursor_y ] { } ) always clobbers reg byte a -Statement [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 [ conio_cursor_x conio_cursor_y conio_cursor_text ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x conio_cursor_y conio_cursor_text ] { } ) always clobbers reg byte a -Statement [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 [ conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color ] ( main:10::gotoxy:68 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 main::cyclecount#0 printf_buffer conio_cursor_x conio_cursor_y conio_cursor_text conio_cursor_color ] { } ) always clobbers reg byte a -Statement [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) [ clock::return#0 ] ( main:10::clock:64 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 printf_buffer clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::eor#0 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::eor#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a reg byte y -Statement [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::fill_column#5 eorfill::line_column#1 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::fill_column#5 eorfill::line_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::y#2 eorfill::eor#1 ] ( main:10::eorfill:58 [ conio_textcolor canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 printf_buffer eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#5 eorfill::y#2 eorfill::eor#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a -Statement [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } ) always clobbers reg byte a -Statement [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a -Statement [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } ) always clobbers reg byte a -Statement [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } ) always clobbers reg byte a -Statement [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Statement [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#10 line::y#15 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#10 line::y#15 line::e#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::e#1 line::plot2_x#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#15 line::plot2_x#0 line::e#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Statement [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 [ line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e1#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#10 line::e1#3 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Statement [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::e1#3 line::x#13 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#10 line::x#13 line::e1#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::e1#1 line::y#3 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 [ line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x2#11 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#13 line::y#3 line::e1#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 [ line::x#13 line::y#11 line::plot4_$0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#13 line::y#11 line::plot4_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#13 line::y#11 line::plot4_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#13 line::y#11 line::plot4_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 [ line::x#13 line::y#11 line::plot4_$2 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#13 line::y#11 line::plot4_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#13 line::y#11 line::plot4_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#13 line::y#11 line::plot4_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) [ line::x#13 line::y#11 line::plot4_column#0 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#13 line::y#11 line::plot4_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#13 line::y#11 line::plot4_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#13 line::y#11 line::plot4_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 [ line::y#11 line::plot4_column#0 line::plot4_$1 ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::y#11 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::y#11 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::y#11 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a -Statement [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) [ ] ( main:10::line:38 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:10::line:45 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:10::line:50 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y -Statement [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 [ abs_u8::return#2 ] ( main:10::line:38::abs_u8:309 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:45::abs_u8:309 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:50::abs_u8:309 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:10::line:38::abs_u8:313 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#11 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:45::abs_u8:313 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#11 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:10::line:50::abs_u8:313 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer line::x#0 line::y#0 line::x2#11 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#11 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a -Statement [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START [ ] ( main:10::clock_start:27 [ conio_textcolor canvas_show_memory canvas_show_flag main::p0_idx#11 main::p1_idx#2 main::p2_idx#2 main::canvas#10 printf_buffer ] { } ) always clobbers reg byte a -Statement [386] (byte) conio_textcolor ← (const nomodify byte) WHITE [ conio_textcolor ] ( main:10::textcolor:24 [ canvas_show_memory canvas_show_flag printf_buffer conio_textcolor ] { } ) always clobbers reg byte a -Statement [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( main:10::setup_irq:22 [ canvas_show_memory canvas_show_flag printf_buffer ] { } ) always clobbers reg byte a -Statement [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory ] ( [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory [ ] ( [ ] { } ) always clobbers reg byte a -Statement [402] (volatile byte) canvas_show_flag ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( [ ] { } ) always clobbers reg byte a -Statement [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 [ ] ( kbhit:397 [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) [ kbhit::return#0 ] ( kbhit:397 [ canvas_show_memory kbhit::return#0 ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a -Statement [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM [ ] ( [ ] { } ) always clobbers reg byte a -Statement [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [ ] ( [ ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:14 [ eorfill::x#2 eorfill::x#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:14 [ eorfill::x#2 eorfill::x#1 ] +Statement [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:20 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] +Statement [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::fill_column#2 eorfill::line_column#1 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::fill_column#2 eorfill::line_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::y#2 eorfill::eor#1 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::y#2 eorfill::eor#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:19 [ eorfill::y#2 eorfill::y#1 ] +Statement [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:40 [ main::x0#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:41 [ main::y0#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:42 [ main::x1#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:43 [ main::y1#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +Removing always clobbered register reg byte a as potential for zp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +Removing always clobbered register reg byte a as potential for zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +Removing always clobbered register reg byte a as potential for zp[1]:44 [ main::x2#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:45 [ main::y2#0 ] +Statement [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:49 [ line::dx#0 ] +Statement [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:51 [ line::dy#0 ] +Statement [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:53 [ line::sx#0 ] +Statement [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:55 [ line::sy#0 ] +Statement [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:23 [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +Statement [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:56 [ line::plot2_y#0 ] +Statement [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:40 [ main::x0#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:41 [ main::y0#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:42 [ main::x1#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:43 [ main::y1#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:49 [ line::dx#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:51 [ line::dy#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:53 [ line::sx#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:55 [ line::sy#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +Removing always clobbered register reg byte y as potential for zp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +Removing always clobbered register reg byte y as potential for zp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +Removing always clobbered register reg byte y as potential for zp[1]:23 [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:44 [ main::x2#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:45 [ main::y2#0 ] +Statement [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 [ line::y#10 line::x#17 line::plot3_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::x#17 line::plot3_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::x#17 line::plot3_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::x#17 line::plot3_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 [ line::y#10 line::x#17 line::plot3_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::x#17 line::plot3_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::x#17 line::plot3_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::x#17 line::plot3_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) [ line::y#10 line::x#17 line::plot3_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::x#17 line::plot3_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::x#17 line::plot3_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::x#17 line::plot3_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 [ line::y#10 line::plot3_column#0 line::plot3_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) [ ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] +Statement [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +Statement [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +Statement [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:27 [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] +Statement [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:27 [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] +Statement [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 [ line::x#12 line::y#15 line::plot6_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#12 line::y#15 line::plot6_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#12 line::y#15 line::plot6_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#12 line::y#15 line::plot6_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 [ line::x#12 line::y#15 line::plot6_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#12 line::y#15 line::plot6_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#12 line::y#15 line::plot6_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#12 line::y#15 line::plot6_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) [ line::x#12 line::y#15 line::plot6_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#12 line::y#15 line::plot6_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#12 line::y#15 line::plot6_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#12 line::y#15 line::plot6_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 [ line::y#15 line::plot6_column#0 line::plot6_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#15 line::plot6_column#0 line::plot6_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#15 line::plot6_column#0 line::plot6_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#15 line::plot6_column#0 line::plot6_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) [ ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 [ abs_u8::return#2 ] ( main:5::line:33::abs_u8:89 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:40::abs_u8:89 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:45::abs_u8:89 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:33::abs_u8:93 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:40::abs_u8:93 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:45::abs_u8:93 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a +Statement [182] if((word) memset::num#4<=(byte) 0) goto memset::@return [ memset::num#4 memset::str#5 memset::c#6 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::num#4 memset::str#5 memset::c#6 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::num#4 memset::str#5 memset::c#6 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::num#4 memset::str#5 memset::c#6 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::num#4 memset::str#5 memset::c#6 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:35 [ memset::c#6 ] +Statement [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 [ memset::str#5 memset::c#6 memset::end#0 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::str#5 memset::c#6 memset::end#0 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::str#5 memset::c#6 memset::end#0 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::str#5 memset::c#6 memset::end#0 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::str#5 memset::c#6 memset::end#0 ] { } ) always clobbers reg byte a +Statement [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 [ memset::c#6 memset::end#0 memset::dst#4 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#4 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#4 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#4 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::c#6 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#6 memset::end#0 memset::dst#2 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::c#6 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 [ memset::c#6 memset::end#0 memset::dst#2 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::c#6 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:35 [ memset::c#6 ] +Statement [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory ] ( [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a +Statement [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [213] (volatile byte) canvas_show_flag ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( [ ] { } ) always clobbers reg byte a +Statement [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory [ ] ( [ ] { } ) always clobbers reg byte a +Statement [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 [ ] ( kbhit:207 [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a +Statement [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) [ kbhit::return#0 ] ( kbhit:207 [ canvas_show_memory kbhit::return#0 ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a +Statement [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY [ ] ( [ ] { } ) always clobbers reg byte a +Statement [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM [ ] ( [ ] { } ) always clobbers reg byte a +Statement [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 [ canvas_show_memory ] ( [ canvas_show_memory ] { } ) always clobbers reg byte a +Statement [3] (volatile byte) canvas_show_flag ← (byte) 0 [ canvas_show_memory canvas_show_flag ] ( [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag ] ( main:5 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory canvas_show_flag ] ( main:5 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] { } ) always clobbers reg byte a +Statement [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] { } ) always clobbers reg byte a +Statement [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] ( main:5 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 ] ( main:5 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::canvas#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] ( main:5 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] { } ) always clobbers reg byte a +Statement [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] ( main:5 [ canvas_show_memory main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] { } ) always clobbers reg byte a +Statement [58] (volatile byte) canvas_show_flag ← (byte) 1 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#1 ] { } ) always clobbers reg byte a +Statement [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#19 ] ( main:5 [ canvas_show_memory canvas_show_flag main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 main::canvas#19 ] { } ) always clobbers reg byte a +Statement [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::screen#5 main::cols#1 ] { } ) always clobbers reg byte a +Statement [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#1 main::screen#1 ] { } ) always clobbers reg byte a +Statement [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] { } ) always clobbers reg byte a +Statement [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#2 ] { } ) always clobbers reg byte a +Statement [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 ] ( main:5 [ canvas_show_memory canvas_show_flag main::y#2 main::cols#5 main::screen#5 main::x#2 main::c#1 ] { } ) always clobbers reg byte a +Statement [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a reg byte y +Statement [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::eor#0 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte y +Statement [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::fill_column#2 eorfill::line_column#1 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::fill_column#2 eorfill::line_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 [ eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#1 eorfill::fill_column#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) [ eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::y#2 eorfill::eor#1 ] ( main:5::eorfill:53 [ canvas_show_memory main::canvas#10 main::p0_idx#1 main::p1_idx#1 main::p2_idx#1 eorfill::x#2 eorfill::line_column#2 eorfill::fill_column#2 eorfill::y#2 eorfill::eor#1 ] { { eorfill::canvas#0 = main::canvas#10 } } ) always clobbers reg byte a +Statement [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } ) always clobbers reg byte a +Statement [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a +Statement [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 sgn_u8::u#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#0 = sgn_u8::u#2 } { sgn_u8::return#0 = sgn_u8::return#4 } } ) always clobbers reg byte a +Statement [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 [ line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 line::dy#0 line::sx#0 sgn_u8::u#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { sgn_u8::u#1 = sgn_u8::u#2 } { sgn_u8::return#1 = sgn_u8::return#4 } } ) always clobbers reg byte a +Statement [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 [ line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::y2#13 line::e#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::e#3 line::x#15 line::y#10 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 line::plot2_y#0 line::plot2_column#0 line::plot2_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::x#15 line::y#10 line::e#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::e#1 line::x#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 [ line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y2#13 line::y#10 line::x#1 line::e#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 [ line::y#10 line::x#17 line::plot3_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::x#17 line::plot3_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::x#17 line::plot3_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::x#17 line::plot3_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 [ line::y#10 line::x#17 line::plot3_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::x#17 line::plot3_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::x#17 line::plot3_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::x#17 line::plot3_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) [ line::y#10 line::x#17 line::plot3_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::x#17 line::plot3_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::x#17 line::plot3_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::x#17 line::plot3_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 [ line::y#10 line::plot3_column#0 line::plot3_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#10 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#10 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#10 line::plot3_column#0 line::plot3_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) [ ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::plot1_column#0 line::plot1_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e1#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::e1#3 line::x#18 line::y#12 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#18 line::y#12 line::e1#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#1 line::x#19 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 line::plot4_column#0 line::plot4_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#12 line::e1#2 line::x#19 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 [ line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#17 line::e2#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 line::plot5_column#0 line::plot5_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#10 line::y#13 line::e2#3 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::e2#3 line::x#12 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::y#13 line::x#12 line::e2#1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::e2#1 line::y#4 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 [ line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x2#15 line::dx#0 line::dy#0 line::sx#0 line::sy#0 line::x#12 line::y#4 line::e2#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 [ line::x#12 line::y#15 line::plot6_$0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#12 line::y#15 line::plot6_$0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#12 line::y#15 line::plot6_$0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#12 line::y#15 line::plot6_$0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 [ line::x#12 line::y#15 line::plot6_$2 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#12 line::y#15 line::plot6_$2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#12 line::y#15 line::plot6_$2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#12 line::y#15 line::plot6_$2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) [ line::x#12 line::y#15 line::plot6_column#0 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#12 line::y#15 line::plot6_column#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#12 line::y#15 line::plot6_column#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#12 line::y#15 line::plot6_column#0 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 [ line::y#15 line::plot6_column#0 line::plot6_$1 ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::y#15 line::plot6_column#0 line::plot6_$1 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::y#15 line::plot6_column#0 line::plot6_$1 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::y#15 line::plot6_column#0 line::plot6_$1 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a +Statement [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) [ ] ( main:5::line:33 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } } main:5::line:40 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } } main:5::line:45 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } } ) always clobbers reg byte a reg byte y +Statement [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 [ abs_u8::return#2 ] ( main:5::line:33::abs_u8:89 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:40::abs_u8:89 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:45::abs_u8:89 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#0 = abs_u8::u#2 } { abs_u8::return#0 = abs_u8::return#4 } } main:5::line:33::abs_u8:93 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x1#0 main::y1#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#0 main::x0#0 } { line::y#0 = line::y1#0 main::y0#0 } { line::x2#0 = line::x2#15 main::x1#0 } { line::y2#0 = line::y2#10 main::y1#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:40::abs_u8:93 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 main::x0#0 main::y0#0 main::x2#0 main::y2#0 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#1 main::x1#0 } { line::y#0 = line::y1#1 main::y1#0 } { line::x2#1 = line::x2#15 main::x2#0 } { line::y2#1 = line::y2#10 main::y2#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } main:5::line:45::abs_u8:93 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 line::x#0 line::y#0 line::x2#15 line::y2#10 line::dx#0 abs_u8::return#2 ] { { line::x#0 = line::x1#2 main::x2#0 } { line::y#0 = line::y1#2 main::y2#0 } { line::x2#15 = line::x2#2 main::x0#0 } { line::y2#10 = line::y2#2 main::y0#0 } { abs_u8::u#1 = abs_u8::u#2 } { abs_u8::return#1 = abs_u8::return#4 } } ) always clobbers reg byte a +Statement [182] if((word) memset::num#4<=(byte) 0) goto memset::@return [ memset::num#4 memset::str#5 memset::c#6 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::num#4 memset::str#5 memset::c#6 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::num#4 memset::str#5 memset::c#6 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::num#4 memset::str#5 memset::c#6 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::num#4 memset::str#5 memset::c#6 ] { } ) always clobbers reg byte a +Statement [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 [ memset::str#5 memset::c#6 memset::end#0 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::str#5 memset::c#6 memset::end#0 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::str#5 memset::c#6 memset::end#0 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::str#5 memset::c#6 memset::end#0 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::str#5 memset::c#6 memset::end#0 ] { } ) always clobbers reg byte a +Statement [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 [ memset::c#6 memset::end#0 memset::dst#4 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#4 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#4 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#4 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::c#6 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#6 memset::end#0 memset::dst#2 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::c#6 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 [ memset::c#6 memset::end#0 memset::dst#2 ] ( main:5::memset:8 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:10 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:12 [ canvas_show_memory canvas_show_flag memset::c#6 memset::end#0 memset::dst#2 ] { } main:5::memset:24 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 memset::c#6 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START [ ] ( main:5::clock_start:22 [ canvas_show_memory canvas_show_flag main::p0_idx#2 main::p1_idx#2 main::p2_idx#2 main::canvas#10 ] { } ) always clobbers reg byte a +Statement [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( main:5::setup_irq:17 [ canvas_show_memory canvas_show_flag ] { } ) always clobbers reg byte a +Statement [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK [ canvas_show_memory ] ( [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a +Statement [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [213] (volatile byte) canvas_show_flag ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( [ ] { } ) always clobbers reg byte a +Statement [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory [ ] ( [ ] { } ) always clobbers reg byte a +Statement [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 [ ] ( kbhit:207 [ canvas_show_memory ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a +Statement [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) [ kbhit::return#0 ] ( kbhit:207 [ canvas_show_memory kbhit::return#0 ] { { kbhit::return#0 = kbhit::return#2 } } ) always clobbers reg byte a +Statement [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY [ ] ( [ ] { } ) always clobbers reg byte a +Statement [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM [ ] ( [ ] { } ) always clobbers reg byte a +Statement [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::y#2 main::y#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[2]:3 [ main::cols#5 main::cols#1 ] : zp[2]:3 , Potential registers zp[2]:5 [ main::screen#5 main::screen#1 ] : zp[2]:5 , -Potential registers zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] : zp[1]:7 , reg byte x , +Potential registers zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] : zp[1]:7 , reg byte x , Potential registers zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] : zp[1]:8 , reg byte x , Potential registers zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] : zp[1]:9 , reg byte x , -Potential registers zp[2]:10 [ main::canvas#10 main::canvas#24 ] : zp[2]:10 , +Potential registers zp[2]:10 [ main::canvas#10 main::canvas#19 ] : zp[2]:10 , Potential registers zp[1]:12 [ main::x#2 main::x#1 ] : zp[1]:12 , reg byte x , reg byte y , Potential registers zp[1]:13 [ main::c#2 main::c#4 main::c#1 ] : zp[1]:13 , reg byte x , reg byte y , -Potential registers zp[1]:14 [ printf_number_buffer::format_min_length#2 ] : zp[1]:14 , reg byte x , -Potential registers zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] : zp[1]:15 , reg byte x , -Potential registers zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] : zp[1]:16 , reg byte x , -Potential registers zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] : zp[1]:17 , reg byte x , -Potential registers zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] : zp[1]:18 , reg byte x , -Potential registers zp[1]:19 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] : zp[1]:19 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] : zp[1]:20 , reg byte x , -Potential registers zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] : zp[1]:21 , reg byte x , -Potential registers zp[1]:22 [ printf_padding::pad#5 ] : zp[1]:22 , reg byte x , -Potential registers zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] : zp[1]:23 , reg byte x , -Potential registers zp[1]:24 [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] : zp[1]:24 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:25 [ memset::num#6 ] : zp[2]:25 , -Potential registers zp[2]:27 [ memset::str#7 ] : zp[2]:27 , -Potential registers zp[1]:29 [ memset::c#8 memset::c#1 ] : zp[1]:29 , reg byte x , -Potential registers zp[2]:30 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:30 , -Potential registers zp[2]:32 [ memcpy::source#2 ] : zp[2]:32 , -Potential registers zp[2]:34 [ memcpy::destination#2 ] : zp[2]:34 , -Potential registers zp[2]:36 [ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] : zp[2]:36 , -Potential registers zp[2]:38 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] : zp[2]:38 , -Potential registers zp[2]:40 [ cputs::s#4 cputs::s#5 cputs::s#0 ] : zp[2]:40 , -Potential registers zp[2]:42 [ strupr::src#2 strupr::src#1 ] : zp[2]:42 , -Potential registers zp[1]:44 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:45 [ strlen::str#2 strlen::str#0 ] : zp[2]:45 , -Potential registers zp[2]:47 [ strlen::len#2 strlen::len#1 ] : zp[2]:47 , -Potential registers zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] : zp[1]:49 , reg byte x , -Potential registers zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] : zp[4]:50 , -Potential registers zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] : zp[1]:54 , reg byte x , reg byte y , -Potential registers zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] : zp[2]:55 , -Potential registers zp[4]:57 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:57 , -Potential registers zp[1]:61 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:61 , reg byte x , reg byte y , -Potential registers zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] : zp[1]:62 , reg byte x , -Potential registers zp[1]:63 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] : zp[1]:63 , reg byte x , reg byte y , -Potential registers zp[1]:64 [ uctoa::started#2 uctoa::started#4 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] : zp[2]:65 , -Potential registers zp[1]:67 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] : zp[1]:67 , reg byte x , -Potential registers zp[1]:68 [ uctoa_append::digit#2 uctoa_append::digit#1 ] : zp[1]:68 , reg byte x , reg byte y , -Potential registers zp[1]:69 [ eorfill::x#2 eorfill::x#1 ] : zp[1]:69 , reg byte x , -Potential registers zp[2]:70 [ eorfill::line_column#2 eorfill::line_column#1 ] : zp[2]:70 , -Potential registers zp[2]:72 [ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] : zp[2]:72 , -Potential registers zp[1]:74 [ eorfill::y#2 eorfill::y#1 ] : zp[1]:74 , reg byte x , reg byte y , -Potential registers zp[1]:75 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] : zp[1]:75 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] : zp[1]:76 , reg byte x , -Potential registers zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] : zp[1]:77 , reg byte x , -Potential registers zp[1]:78 [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] : zp[1]:78 , reg byte x , -Potential registers zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] : zp[1]:79 , reg byte x , -Potential registers zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] : zp[1]:80 , reg byte x , -Potential registers zp[1]:81 [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] : zp[1]:81 , reg byte x , -Potential registers zp[1]:82 [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:83 [ sgn_u8::return#4 ] : zp[1]:83 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:84 [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] : zp[1]:84 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:85 [ conio_cursor_x ] : zp[1]:85 , -Potential registers zp[1]:86 [ conio_cursor_y ] : zp[1]:86 , -Potential registers zp[2]:87 [ conio_cursor_text ] : zp[2]:87 , -Potential registers zp[2]:89 [ conio_cursor_color ] : zp[2]:89 , -Potential registers zp[1]:91 [ conio_textcolor ] : zp[1]:91 , -Potential registers zp[1]:92 [ canvas_show_memory ] : zp[1]:92 , -Potential registers zp[1]:93 [ canvas_show_flag ] : zp[1]:93 , -Potential registers zp[1]:94 [ main::x0#0 ] : zp[1]:94 , reg byte x , -Potential registers zp[1]:95 [ main::y0#0 ] : zp[1]:95 , reg byte x , -Potential registers zp[1]:96 [ main::x1#0 ] : zp[1]:96 , reg byte x , -Potential registers zp[1]:97 [ main::y1#0 ] : zp[1]:97 , reg byte x , -Potential registers zp[1]:98 [ main::x2#0 ] : zp[1]:98 , reg byte x , -Potential registers zp[1]:99 [ main::y2#0 ] : zp[1]:99 , reg byte x , -Potential registers zp[2]:100 [ main::canvas#1 ] : zp[2]:100 , -Potential registers zp[4]:102 [ clock::return#2 ] : zp[4]:102 , -Potential registers zp[4]:106 [ main::$18 ] : zp[4]:106 , -Potential registers zp[4]:110 [ main::cyclecount#0 ] : zp[4]:110 , -Potential registers zp[1]:114 [ printf_uchar::uvalue#0 ] : zp[1]:114 , reg byte x , reg byte y , -Potential registers zp[4]:115 [ printf_ulong::uvalue#0 ] : zp[4]:115 , -Potential registers zp[2]:119 [ strlen::return#2 ] : zp[2]:119 , -Potential registers zp[2]:121 [ printf_number_buffer::$19 ] : zp[2]:121 , -Potential registers zp[2]:123 [ cputln::ln_offset#0 ] : zp[2]:123 , -Potential registers zp[2]:125 [ cputln::$1 ] : zp[2]:125 , -Potential registers zp[2]:127 [ cputln::$2 ] : zp[2]:127 , -Potential registers zp[2]:129 [ cscroll::$7 ] : zp[2]:129 , -Potential registers zp[2]:131 [ cscroll::$8 ] : zp[2]:131 , -Potential registers zp[2]:133 [ memset::end#0 ] : zp[2]:133 , -Potential registers zp[2]:135 [ memcpy::src_end#0 ] : zp[2]:135 , -Potential registers zp[1]:137 [ cputs::c#1 ] : zp[1]:137 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:138 [ toupper::return#3 ] : zp[1]:138 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:139 [ strupr::$0 ] : zp[1]:139 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:140 [ ultoa::$11 ] : zp[1]:140 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:141 [ ultoa::buffer#3 ] : zp[2]:141 , -Potential registers zp[1]:143 [ ultoa::$10 ] : zp[1]:143 , reg byte a , reg byte x , reg byte y , -Potential registers zp[4]:144 [ ultoa::digit_value#0 ] : zp[4]:144 , -Potential registers zp[2]:148 [ ultoa_append::buffer#0 ] : zp[2]:148 , -Potential registers zp[4]:150 [ ultoa_append::sub#0 ] : zp[4]:150 , -Potential registers zp[4]:154 [ ultoa_append::return#0 ] : zp[4]:154 , -Potential registers zp[2]:158 [ uctoa::buffer#3 ] : zp[2]:158 , -Potential registers zp[1]:160 [ uctoa::digit_value#0 ] : zp[1]:160 , reg byte x , reg byte y , -Potential registers zp[2]:161 [ uctoa_append::buffer#0 ] : zp[2]:161 , -Potential registers zp[1]:163 [ uctoa_append::sub#0 ] : zp[1]:163 , reg byte x , reg byte y , -Potential registers zp[1]:164 [ uctoa_append::return#0 ] : zp[1]:164 , reg byte a , reg byte x , reg byte y , -Potential registers zp[4]:165 [ clock::return#0 ] : zp[4]:165 , -Potential registers zp[1]:169 [ abs_u8::return#0 ] : zp[1]:169 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:170 [ line::dx#0 ] : zp[1]:170 , reg byte x , -Potential registers zp[1]:171 [ abs_u8::return#1 ] : zp[1]:171 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:172 [ line::dy#0 ] : zp[1]:172 , reg byte x , -Potential registers zp[1]:173 [ sgn_u8::return#0 ] : zp[1]:173 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:174 [ line::sx#0 ] : zp[1]:174 , reg byte x , -Potential registers zp[1]:175 [ sgn_u8::return#1 ] : zp[1]:175 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:176 [ line::sy#0 ] : zp[1]:176 , reg byte x , -Potential registers zp[1]:177 [ line::plot1_$0 ] : zp[1]:177 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:178 [ line::plot1_$2 ] : zp[1]:178 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:179 [ line::plot1_column#0 ] : zp[2]:179 , -Potential registers zp[1]:181 [ line::plot1_$1 ] : zp[1]:181 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:182 [ line::plot2_$0 ] : zp[1]:182 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:183 [ line::plot2_$2 ] : zp[1]:183 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:184 [ line::plot2_column#0 ] : zp[2]:184 , -Potential registers zp[1]:186 [ line::plot2_$1 ] : zp[1]:186 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:187 [ line::plot3_$0 ] : zp[1]:187 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:188 [ line::plot3_$2 ] : zp[1]:188 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:189 [ line::plot3_column#0 ] : zp[2]:189 , -Potential registers zp[1]:191 [ line::plot3_$1 ] : zp[1]:191 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:192 [ line::plot4_$0 ] : zp[1]:192 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:193 [ line::plot4_$2 ] : zp[1]:193 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:194 [ line::plot4_column#0 ] : zp[2]:194 , -Potential registers zp[1]:196 [ line::plot4_$1 ] : zp[1]:196 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:197 [ sgn_u8::$0 ] : zp[1]:197 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:198 [ abs_u8::$0 ] : zp[1]:198 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:199 [ kbhit::return#2 ] : zp[1]:199 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:200 [ irq_bottom_2::$0 ] : zp[1]:200 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:201 [ kbhit::return#0 ] : zp[1]:201 , reg byte a , reg byte x , reg byte y , -Potential registers mem[12] [ printf_buffer ] : mem[12] , +Potential registers zp[1]:14 [ eorfill::x#2 eorfill::x#1 ] : zp[1]:14 , reg byte x , +Potential registers zp[2]:15 [ eorfill::line_column#2 eorfill::line_column#1 ] : zp[2]:15 , +Potential registers zp[2]:17 [ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] : zp[2]:17 , +Potential registers zp[1]:19 [ eorfill::y#2 eorfill::y#1 ] : zp[1]:19 , reg byte x , reg byte y , +Potential registers zp[1]:20 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] : zp[1]:20 , reg byte a , reg byte x , +Potential registers zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] : zp[1]:21 , reg byte x , +Potential registers zp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] : zp[1]:22 , reg byte x , +Potential registers zp[1]:23 [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] : zp[1]:23 , reg byte x , +Potential registers zp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] : zp[1]:24 , reg byte x , +Potential registers zp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] : zp[1]:25 , reg byte x , +Potential registers zp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] : zp[1]:26 , reg byte x , +Potential registers zp[1]:27 [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] : zp[1]:27 , reg byte x , +Potential registers zp[1]:28 [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:29 [ sgn_u8::return#4 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:30 [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] : zp[1]:30 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:31 [ memset::num#4 ] : zp[2]:31 , +Potential registers zp[2]:33 [ memset::str#5 ] : zp[2]:33 , +Potential registers zp[1]:35 [ memset::c#6 ] : zp[1]:35 , reg byte x , +Potential registers zp[2]:36 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:36 , +Potential registers zp[1]:38 [ canvas_show_memory ] : zp[1]:38 , +Potential registers zp[1]:39 [ canvas_show_flag ] : zp[1]:39 , +Potential registers zp[1]:40 [ main::x0#0 ] : zp[1]:40 , reg byte x , +Potential registers zp[1]:41 [ main::y0#0 ] : zp[1]:41 , reg byte x , +Potential registers zp[1]:42 [ main::x1#0 ] : zp[1]:42 , reg byte x , +Potential registers zp[1]:43 [ main::y1#0 ] : zp[1]:43 , reg byte x , +Potential registers zp[1]:44 [ main::x2#0 ] : zp[1]:44 , reg byte x , +Potential registers zp[1]:45 [ main::y2#0 ] : zp[1]:45 , reg byte x , +Potential registers zp[2]:46 [ main::canvas#1 ] : zp[2]:46 , +Potential registers zp[1]:48 [ abs_u8::return#0 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:49 [ line::dx#0 ] : zp[1]:49 , reg byte x , +Potential registers zp[1]:50 [ abs_u8::return#1 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:51 [ line::dy#0 ] : zp[1]:51 , reg byte x , +Potential registers zp[1]:52 [ sgn_u8::return#0 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:53 [ line::sx#0 ] : zp[1]:53 , reg byte x , +Potential registers zp[1]:54 [ sgn_u8::return#1 ] : zp[1]:54 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:55 [ line::sy#0 ] : zp[1]:55 , reg byte x , +Potential registers zp[1]:56 [ line::plot2_y#0 ] : zp[1]:56 , reg byte x , reg byte y , +Potential registers zp[1]:57 [ line::plot2_$0 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:58 [ line::plot2_$2 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:59 [ line::plot2_column#0 ] : zp[2]:59 , +Potential registers zp[1]:61 [ line::plot2_$1 ] : zp[1]:61 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:62 [ line::plot3_$0 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:63 [ line::plot3_$2 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:64 [ line::plot3_column#0 ] : zp[2]:64 , +Potential registers zp[1]:66 [ line::plot3_$1 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:67 [ line::plot1_$0 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:68 [ line::plot1_$2 ] : zp[1]:68 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:69 [ line::plot1_column#0 ] : zp[2]:69 , +Potential registers zp[1]:71 [ line::plot1_$1 ] : zp[1]:71 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:72 [ line::plot4_$0 ] : zp[1]:72 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:73 [ line::plot4_$2 ] : zp[1]:73 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:74 [ line::plot4_column#0 ] : zp[2]:74 , +Potential registers zp[1]:76 [ line::plot4_$1 ] : zp[1]:76 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:77 [ line::plot5_$0 ] : zp[1]:77 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:78 [ line::plot5_$2 ] : zp[1]:78 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:79 [ line::plot5_column#0 ] : zp[2]:79 , +Potential registers zp[1]:81 [ line::plot5_$1 ] : zp[1]:81 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:82 [ line::plot6_$0 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:83 [ line::plot6_$2 ] : zp[1]:83 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:84 [ line::plot6_column#0 ] : zp[2]:84 , +Potential registers zp[1]:86 [ line::plot6_$1 ] : zp[1]:86 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:87 [ sgn_u8::$0 ] : zp[1]:87 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:88 [ abs_u8::$0 ] : zp[1]:88 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:89 [ memset::end#0 ] : zp[2]:89 , +Potential registers zp[1]:91 [ kbhit::return#2 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:92 [ irq_bottom_2::$0 ] : zp[1]:92 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:93 [ kbhit::return#0 ] : zp[1]:93 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [memcpy] 300,125,000,000,004.25: zp[2]:36 [ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] 200,233,333,333,337.7: zp[2]:38 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] 12,512,500,000,000.25: zp[2]:135 [ memcpy::src_end#0 ] 0: zp[2]:32 [ memcpy::source#2 ] 0: zp[2]:34 [ memcpy::destination#2 ] -Uplift Scope [memset] 33,566,666,666,672.33: zp[2]:30 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,683,333,333,333.67: zp[2]:133 [ memset::end#0 ] 1,271,250,000,002.25: zp[1]:29 [ memset::c#8 memset::c#1 ] 100,000,000,001: zp[2]:25 [ memset::num#6 ] 0: zp[2]:27 [ memset::str#7 ] -Uplift Scope [uctoa_append] 25,005,500,003.5: zp[1]:67 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,005,000,002.5: zp[1]:68 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,333,500,000.5: zp[1]:163 [ uctoa_append::sub#0 ] 2,000,002: zp[1]:164 [ uctoa_append::return#0 ] 1,375,000.25: zp[2]:161 [ uctoa_append::buffer#0 ] -Uplift Scope [ultoa_append] 25,005,500,003.5: zp[4]:57 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] 20,005,000,002.5: zp[1]:61 [ ultoa_append::digit#2 ultoa_append::digit#1 ] 3,333,500,000.5: zp[4]:150 [ ultoa_append::sub#0 ] 2,000,002: zp[4]:154 [ ultoa_append::return#0 ] 1,375,000.25: zp[2]:148 [ ultoa_append::buffer#0 ] -Uplift Scope [cscroll] 20,000,000,002: zp[2]:129 [ cscroll::$7 ] 20,000,000,002: zp[2]:131 [ cscroll::$8 ] -Uplift Scope [cputln] 2,000,000,002: zp[2]:125 [ cputln::$1 ] 2,000,000,002: zp[2]:127 [ cputln::$2 ] 1,000,000,001: zp[2]:123 [ cputln::ln_offset#0 ] -Uplift Scope [] 282,456,149.21: zp[1]:86 [ conio_cursor_y ] 202,727,281.91: zp[2]:89 [ conio_cursor_color ] 200,900,910: zp[2]:87 [ conio_cursor_text ] 63,125,000.66: zp[1]:91 [ conio_textcolor ] 25,263,168.52: zp[1]:85 [ conio_cursor_x ] 15.58: zp[1]:93 [ canvas_show_flag ] 2.45: zp[1]:92 [ canvas_show_memory ] 0: mem[12] [ printf_buffer ] -Uplift Scope [toupper] 473,333,338.67: zp[1]:44 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] 20,000,002: zp[1]:138 [ toupper::return#3 ] -Uplift Scope [cputc] 150,025,008.5: zp[1]:24 [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -Uplift Scope [strupr] 27,142,859.86: zp[2]:42 [ strupr::src#2 strupr::src#1 ] 20,000,002: zp[1]:139 [ strupr::$0 ] -Uplift Scope [strlen] 30,000,003: zp[2]:45 [ strlen::str#2 strlen::str#0 ] 15,002,501.75: zp[2]:47 [ strlen::len#2 strlen::len#1 ] 20,002: zp[2]:119 [ strlen::return#2 ] -Uplift Scope [printf_padding] 27,500,002.75: zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] 1,731,673.33: zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 1,666,666.83: zp[1]:22 [ printf_padding::pad#5 ] -Uplift Scope [cputs] 20,150,003.5: zp[2]:40 [ cputs::s#4 cputs::s#5 cputs::s#0 ] 10,000,001: zp[1]:137 [ cputs::c#1 ] -Uplift Scope [ultoa] 3,787,146.79: zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 3,078,361.36: zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] 2,285,716.57: zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] 2,000,002: zp[1]:143 [ ultoa::$10 ] 1,500,001.5: zp[1]:54 [ ultoa::started#2 ultoa::started#4 ] 600,000.6: zp[4]:144 [ ultoa::digit_value#0 ] 20,002: zp[1]:140 [ ultoa::$11 ] 20,002: zp[2]:141 [ ultoa::buffer#3 ] -Uplift Scope [uctoa] 3,835,004: zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 3,175,504.5: zp[1]:63 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 2,307,694.62: zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] 1,600,001.6: zp[1]:64 [ uctoa::started#2 uctoa::started#4 ] 600,000.6: zp[1]:160 [ uctoa::digit_value#0 ] 20,002: zp[2]:158 [ uctoa::buffer#3 ] -Uplift Scope [eorfill] 3,250,003.25: zp[1]:74 [ eorfill::y#2 eorfill::y#1 ] 2,250,004.5: zp[1]:75 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] 233,996.89: zp[2]:72 [ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] 230,002.3: zp[1]:69 [ eorfill::x#2 eorfill::x#1 ] 229,167.83: zp[2]:70 [ eorfill::line_column#2 eorfill::line_column#1 ] -Uplift Scope [line] 514,054.88: zp[1]:81 [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] 450,782.19: zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] 417,505: zp[1]:78 [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] 379,799.65: zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] 200,002: zp[1]:182 [ line::plot2_$0 ] 200,002: zp[1]:183 [ line::plot2_$2 ] 200,002: zp[1]:186 [ line::plot2_$1 ] 200,002: zp[1]:187 [ line::plot3_$0 ] 200,002: zp[1]:188 [ line::plot3_$2 ] 200,002: zp[1]:191 [ line::plot3_$1 ] 150,001.5: zp[2]:184 [ line::plot2_column#0 ] 150,001.5: zp[2]:189 [ line::plot3_column#0 ] 7,691.97: zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] 6,446.94: zp[1]:172 [ line::dy#0 ] 5,941.29: zp[1]:170 [ line::dx#0 ] 5,153.92: zp[1]:176 [ line::sy#0 ] 4,697.77: zp[1]:174 [ line::sx#0 ] 3,144.83: zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] 2,002: zp[1]:177 [ line::plot1_$0 ] 2,002: zp[1]:178 [ line::plot1_$2 ] 2,002: zp[1]:181 [ line::plot1_$1 ] 2,002: zp[1]:192 [ line::plot4_$0 ] 2,002: zp[1]:193 [ line::plot4_$2 ] 2,002: zp[1]:196 [ line::plot4_$1 ] 1,501.5: zp[2]:179 [ line::plot1_column#0 ] 1,501.5: zp[2]:194 [ line::plot4_column#0 ] -Uplift Scope [printf_number_buffer] 65,006.5: zp[1]:19 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 11,905.95: zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 10,001: zp[2]:121 [ printf_number_buffer::$19 ] 5,604.25: zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] 1,000.1: zp[1]:14 [ printf_number_buffer::format_min_length#2 ] 937.59: zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] 645.23: zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] 384.65: zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] -Uplift Scope [abs_u8] 40,175.33: zp[1]:84 [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] 20,002: zp[1]:198 [ abs_u8::$0 ] 2,002: zp[1]:169 [ abs_u8::return#0 ] 2,002: zp[1]:171 [ abs_u8::return#1 ] -Uplift Scope [sgn_u8] 20,002: zp[1]:197 [ sgn_u8::$0 ] 16,007: zp[1]:82 [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] 2,002: zp[1]:173 [ sgn_u8::return#0 ] 2,002: zp[1]:175 [ sgn_u8::return#1 ] 500.5: zp[1]:83 [ sgn_u8::return#4 ] -Uplift Scope [main] 3,003: zp[1]:12 [ main::x#2 main::x#1 ] 1,979: zp[1]:13 [ main::c#2 main::c#4 main::c#1 ] 238.73: zp[1]:2 [ main::y#2 main::y#1 ] 221.3: zp[2]:5 [ main::screen#5 main::screen#1 ] 210.91: zp[2]:10 [ main::canvas#10 main::canvas#24 ] 202: zp[4]:106 [ main::$18 ] 201: zp[2]:3 [ main::cols#5 main::cols#1 ] 43.29: zp[1]:98 [ main::x2#0 ] 43.29: zp[1]:99 [ main::y2#0 ] 33.67: zp[1]:96 [ main::x1#0 ] 33.67: zp[1]:97 [ main::y1#0 ] 26.76: zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] 25.25: zp[4]:110 [ main::cyclecount#0 ] 22.73: zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] 22.51: zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] 16.83: zp[1]:94 [ main::x0#0 ] 16.83: zp[1]:95 [ main::y0#0 ] 5.61: zp[2]:100 [ main::canvas#1 ] -Uplift Scope [clock] 367.33: zp[4]:165 [ clock::return#0 ] 202: zp[4]:102 [ clock::return#2 ] -Uplift Scope [printf_ulong] 367.33: zp[4]:115 [ printf_ulong::uvalue#0 ] -Uplift Scope [printf_uchar] 367.33: zp[1]:114 [ printf_uchar::uvalue#0 ] -Uplift Scope [kbhit] 4.33: zp[1]:201 [ kbhit::return#0 ] 4: zp[1]:199 [ kbhit::return#2 ] -Uplift Scope [irq_bottom_2] 4: zp[1]:200 [ irq_bottom_2::$0 ] +Uplift Scope [line] 2,742,774.47: zp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] 2,114,410.38: zp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] 920,669.08: zp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] 514,054.88: zp[1]:27 [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] 496,951.89: zp[1]:23 [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] 200,002: zp[1]:57 [ line::plot2_$0 ] 200,002: zp[1]:58 [ line::plot2_$2 ] 200,002: zp[1]:61 [ line::plot2_$1 ] 200,002: zp[1]:72 [ line::plot4_$0 ] 200,002: zp[1]:73 [ line::plot4_$2 ] 200,002: zp[1]:76 [ line::plot4_$1 ] 200,002: zp[1]:77 [ line::plot5_$0 ] 200,002: zp[1]:78 [ line::plot5_$2 ] 200,002: zp[1]:81 [ line::plot5_$1 ] 150,001.5: zp[2]:59 [ line::plot2_column#0 ] 150,001.5: zp[2]:74 [ line::plot4_column#0 ] 150,001.5: zp[2]:79 [ line::plot5_column#0 ] 60,000.6: zp[1]:56 [ line::plot2_y#0 ] 23,672.84: zp[1]:55 [ line::sy#0 ] 22,285.86: zp[1]:51 [ line::dy#0 ] 19,462.81: zp[1]:49 [ line::dx#0 ] 8,501.52: zp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] 5,135.69: zp[1]:53 [ line::sx#0 ] 3,915.62: zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] 2,002: zp[1]:62 [ line::plot3_$0 ] 2,002: zp[1]:63 [ line::plot3_$2 ] 2,002: zp[1]:66 [ line::plot3_$1 ] 2,002: zp[1]:67 [ line::plot1_$0 ] 2,002: zp[1]:68 [ line::plot1_$2 ] 2,002: zp[1]:71 [ line::plot1_$1 ] 2,002: zp[1]:82 [ line::plot6_$0 ] 2,002: zp[1]:83 [ line::plot6_$2 ] 2,002: zp[1]:86 [ line::plot6_$1 ] 1,501.5: zp[2]:64 [ line::plot3_column#0 ] 1,501.5: zp[2]:69 [ line::plot1_column#0 ] 1,501.5: zp[2]:84 [ line::plot6_column#0 ] +Uplift Scope [eorfill] 3,250,003.25: zp[1]:19 [ eorfill::y#2 eorfill::y#1 ] 2,200,004: zp[1]:20 [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] 230,652.5: zp[2]:17 [ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] 227,275: zp[1]:14 [ eorfill::x#2 eorfill::x#1 ] 211,112.22: zp[2]:15 [ eorfill::line_column#2 eorfill::line_column#1 ] +Uplift Scope [memset] 335,672.33: zp[2]:36 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 16,833.67: zp[2]:89 [ memset::end#0 ] 12,500.12: zp[1]:35 [ memset::c#6 ] 1,001: zp[2]:31 [ memset::num#4 ] 0: zp[2]:33 [ memset::str#5 ] +Uplift Scope [abs_u8] 40,175.33: zp[1]:30 [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] 20,002: zp[1]:88 [ abs_u8::$0 ] 2,002: zp[1]:48 [ abs_u8::return#0 ] 2,002: zp[1]:50 [ abs_u8::return#1 ] +Uplift Scope [sgn_u8] 20,002: zp[1]:87 [ sgn_u8::$0 ] 16,007: zp[1]:28 [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] 2,002: zp[1]:52 [ sgn_u8::return#0 ] 2,002: zp[1]:54 [ sgn_u8::return#1 ] 500.5: zp[1]:29 [ sgn_u8::return#4 ] +Uplift Scope [main] 3,003: zp[1]:12 [ main::x#2 main::x#1 ] 1,979: zp[1]:13 [ main::c#2 main::c#4 main::c#1 ] 238.73: zp[1]:2 [ main::y#2 main::y#1 ] 221.3: zp[2]:5 [ main::screen#5 main::screen#1 ] 210.91: zp[2]:10 [ main::canvas#10 main::canvas#19 ] 201: zp[2]:3 [ main::cols#5 main::cols#1 ] 43.29: zp[1]:44 [ main::x2#0 ] 43.29: zp[1]:45 [ main::y2#0 ] 33.67: zp[1]:42 [ main::x1#0 ] 33.67: zp[1]:43 [ main::y1#0 ] 29.97: zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] 29.39: zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] 29.01: zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] 16.83: zp[1]:40 [ main::x0#0 ] 16.83: zp[1]:41 [ main::y0#0 ] 16.83: zp[2]:46 [ main::canvas#1 ] +Uplift Scope [] 18.75: zp[1]:39 [ canvas_show_flag ] 2.86: zp[1]:38 [ canvas_show_memory ] +Uplift Scope [kbhit] 4.33: zp[1]:93 [ kbhit::return#0 ] 4: zp[1]:91 [ kbhit::return#2 ] +Uplift Scope [irq_bottom_2] 4: zp[1]:92 [ irq_bottom_2::$0 ] Uplift Scope [MOS6526_CIA] Uplift Scope [MOS6569_VICII] Uplift Scope [MOS6581_SID] +Uplift Scope [clock] Uplift Scope [clock_start] Uplift Scope [RADIX] -Uplift Scope [gotoxy] Uplift Scope [textcolor] Uplift Scope [printf_format_number] Uplift Scope [printf_buffer_number] @@ -11146,236 +6062,148 @@ Uplift Scope [printf_format_string] Uplift Scope [setup_irq] Uplift Scope [irq_bottom_1] -Uplifting [memcpy] best 376474 combination zp[2]:36 [ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] zp[2]:38 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] zp[2]:135 [ memcpy::src_end#0 ] zp[2]:32 [ memcpy::source#2 ] zp[2]:34 [ memcpy::destination#2 ] -Uplifting [memset] best 376356 combination zp[2]:30 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:133 [ memset::end#0 ] reg byte x [ memset::c#8 memset::c#1 ] zp[2]:25 [ memset::num#6 ] zp[2]:27 [ memset::str#7 ] -Uplifting [uctoa_append] best 364153 combination reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] zp[1]:163 [ uctoa_append::sub#0 ] reg byte x [ uctoa_append::return#0 ] zp[2]:161 [ uctoa_append::buffer#0 ] -Uplifting [ultoa_append] best 358150 combination zp[4]:57 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] zp[4]:150 [ ultoa_append::sub#0 ] zp[4]:154 [ ultoa_append::return#0 ] zp[2]:148 [ ultoa_append::buffer#0 ] -Uplifting [cscroll] best 358150 combination zp[2]:129 [ cscroll::$7 ] zp[2]:131 [ cscroll::$8 ] -Uplifting [cputln] best 358150 combination zp[2]:125 [ cputln::$1 ] zp[2]:127 [ cputln::$2 ] zp[2]:123 [ cputln::ln_offset#0 ] -Uplifting [] best 358150 combination zp[1]:86 [ conio_cursor_y ] zp[2]:89 [ conio_cursor_color ] zp[2]:87 [ conio_cursor_text ] zp[1]:91 [ conio_textcolor ] zp[1]:85 [ conio_cursor_x ] zp[1]:93 [ canvas_show_flag ] zp[1]:92 [ canvas_show_memory ] mem[12] [ printf_buffer ] -Uplifting [toupper] best 356943 combination reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] reg byte a [ toupper::return#3 ] -Uplifting [cputc] best 356334 combination reg byte a [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -Uplifting [strupr] best 355734 combination zp[2]:42 [ strupr::src#2 strupr::src#1 ] reg byte a [ strupr::$0 ] -Uplifting [strlen] best 355734 combination zp[2]:45 [ strlen::str#2 strlen::str#0 ] zp[2]:47 [ strlen::len#2 strlen::len#1 ] zp[2]:119 [ strlen::return#2 ] -Uplifting [printf_padding] best 355734 combination zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:22 [ printf_padding::pad#5 ] -Uplifting [cputs] best 354834 combination zp[2]:40 [ cputs::s#4 cputs::s#5 cputs::s#0 ] reg byte a [ cputs::c#1 ] -Uplifting [ultoa] best 353530 combination zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:144 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:141 [ ultoa::buffer#3 ] -Uplifting [uctoa] best 352624 combination zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] zp[1]:64 [ uctoa::started#2 uctoa::started#4 ] zp[1]:160 [ uctoa::digit_value#0 ] zp[2]:158 [ uctoa::buffer#3 ] -Uplifting [eorfill] best 327424 combination reg byte y [ eorfill::y#2 eorfill::y#1 ] reg byte a [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] zp[2]:72 [ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] reg byte x [ eorfill::x#2 eorfill::x#1 ] zp[2]:70 [ eorfill::line_column#2 eorfill::line_column#1 ] -Uplifting [printf_number_buffer] best 327413 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:121 [ printf_number_buffer::$19 ] zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] +Uplifting [eorfill] best 131739 combination reg byte y [ eorfill::y#2 eorfill::y#1 ] reg byte a [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] zp[2]:17 [ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] reg byte x [ eorfill::x#2 eorfill::x#1 ] zp[2]:15 [ eorfill::line_column#2 eorfill::line_column#1 ] +Uplifting [memset] best 131627 combination zp[2]:36 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:89 [ memset::end#0 ] reg byte x [ memset::c#6 ] zp[2]:31 [ memset::num#4 ] zp[2]:33 [ memset::str#5 ] +Uplifting [abs_u8] best 131590 combination reg byte a [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] reg byte x [ abs_u8::$0 ] reg byte a [ abs_u8::return#0 ] reg byte a [ abs_u8::return#1 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [abs_u8] best 327376 combination reg byte a [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] reg byte x [ abs_u8::$0 ] reg byte a [ abs_u8::return#0 ] reg byte a [ abs_u8::return#1 ] -Limited combination testing to 100 combinations of 256 possible. -Uplifting [sgn_u8] best 327349 combination reg byte a [ sgn_u8::$0 ] reg byte a [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] reg byte a [ sgn_u8::return#0 ] reg byte a [ sgn_u8::return#1 ] zp[1]:83 [ sgn_u8::return#4 ] +Uplifting [sgn_u8] best 131563 combination reg byte a [ sgn_u8::$0 ] reg byte a [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] reg byte a [ sgn_u8::return#0 ] reg byte a [ sgn_u8::return#1 ] zp[1]:29 [ sgn_u8::return#4 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [main] best 325319 combination reg byte y [ main::x#2 main::x#1 ] reg byte x [ main::c#2 main::c#4 main::c#1 ] zp[1]:2 [ main::y#2 main::y#1 ] zp[2]:5 [ main::screen#5 main::screen#1 ] zp[2]:10 [ main::canvas#10 main::canvas#24 ] zp[4]:106 [ main::$18 ] zp[2]:3 [ main::cols#5 main::cols#1 ] zp[1]:98 [ main::x2#0 ] zp[1]:99 [ main::y2#0 ] zp[1]:96 [ main::x1#0 ] zp[1]:97 [ main::y1#0 ] zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] zp[4]:110 [ main::cyclecount#0 ] zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] zp[1]:94 [ main::x0#0 ] zp[1]:95 [ main::y0#0 ] zp[2]:100 [ main::canvas#1 ] +Uplifting [main] best 129533 combination reg byte y [ main::x#2 main::x#1 ] reg byte x [ main::c#2 main::c#4 main::c#1 ] zp[1]:2 [ main::y#2 main::y#1 ] zp[2]:5 [ main::screen#5 main::screen#1 ] zp[2]:10 [ main::canvas#10 main::canvas#19 ] zp[2]:3 [ main::cols#5 main::cols#1 ] zp[1]:44 [ main::x2#0 ] zp[1]:45 [ main::y2#0 ] zp[1]:42 [ main::x1#0 ] zp[1]:43 [ main::y1#0 ] zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] zp[1]:40 [ main::x0#0 ] zp[1]:41 [ main::y0#0 ] zp[2]:46 [ main::canvas#1 ] Limited combination testing to 100 combinations of 13824 possible. -Uplifting [clock] best 325319 combination zp[4]:165 [ clock::return#0 ] zp[4]:102 [ clock::return#2 ] -Uplifting [printf_ulong] best 325319 combination zp[4]:115 [ printf_ulong::uvalue#0 ] -Uplifting [printf_uchar] best 325286 combination reg byte x [ printf_uchar::uvalue#0 ] -Uplifting [kbhit] best 325274 combination reg byte a [ kbhit::return#0 ] reg byte a [ kbhit::return#2 ] -Uplifting [irq_bottom_2] best 325268 combination reg byte a [ irq_bottom_2::$0 ] -Uplifting [MOS6526_CIA] best 325268 combination -Uplifting [MOS6569_VICII] best 325268 combination -Uplifting [MOS6581_SID] best 325268 combination -Uplifting [clock_start] best 325268 combination -Uplifting [RADIX] best 325268 combination -Uplifting [gotoxy] best 325268 combination -Uplifting [textcolor] best 325268 combination -Uplifting [printf_format_number] best 325268 combination -Uplifting [printf_buffer_number] best 325268 combination -Uplifting [printf_format_string] best 325268 combination -Uplifting [setup_irq] best 325268 combination -Uplifting [irq_bottom_1] best 325268 combination -Attempting to uplift remaining variables inzp[1]:163 [ uctoa_append::sub#0 ] -Uplifting [uctoa_append] best 325268 combination zp[1]:163 [ uctoa_append::sub#0 ] -Attempting to uplift remaining variables inzp[1]:86 [ conio_cursor_y ] -Uplifting [] best 325268 combination zp[1]:86 [ conio_cursor_y ] -Attempting to uplift remaining variables inzp[1]:91 [ conio_textcolor ] -Uplifting [] best 325268 combination zp[1]:91 [ conio_textcolor ] -Attempting to uplift remaining variables inzp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] -Uplifting [printf_padding] best 325268 combination zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] -Attempting to uplift remaining variables inzp[1]:85 [ conio_cursor_x ] -Uplifting [] best 325268 combination zp[1]:85 [ conio_cursor_x ] -Attempting to uplift remaining variables inzp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] -Uplifting [uctoa] best 325268 combination zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] -Uplifting [ultoa] best 325268 combination zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Uplifting [printf_padding] best 325268 combination zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Attempting to uplift remaining variables inzp[1]:22 [ printf_padding::pad#5 ] -Uplifting [printf_padding] best 325268 combination zp[1]:22 [ printf_padding::pad#5 ] -Attempting to uplift remaining variables inzp[1]:64 [ uctoa::started#2 uctoa::started#4 ] -Uplifting [uctoa] best 325268 combination zp[1]:64 [ uctoa::started#2 uctoa::started#4 ] -Attempting to uplift remaining variables inzp[1]:160 [ uctoa::digit_value#0 ] -Uplifting [uctoa] best 325268 combination zp[1]:160 [ uctoa::digit_value#0 ] -Attempting to uplift remaining variables inzp[1]:81 [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] -Uplifting [line] best 325167 combination reg byte x [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] -Attempting to uplift remaining variables inzp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -Uplifting [line] best 325167 combination zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] -Attempting to uplift remaining variables inzp[1]:78 [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -Uplifting [line] best 325066 combination reg byte x [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -Attempting to uplift remaining variables inzp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -Uplifting [line] best 325066 combination zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] -Attempting to uplift remaining variables inzp[1]:182 [ line::plot2_$0 ] -Uplifting [line] best 324466 combination reg byte a [ line::plot2_$0 ] -Attempting to uplift remaining variables inzp[1]:183 [ line::plot2_$2 ] -Uplifting [line] best 324066 combination reg byte a [ line::plot2_$2 ] -Attempting to uplift remaining variables inzp[1]:186 [ line::plot2_$1 ] -Uplifting [line] best 324066 combination zp[1]:186 [ line::plot2_$1 ] -Attempting to uplift remaining variables inzp[1]:187 [ line::plot3_$0 ] -Uplifting [line] best 323466 combination reg byte a [ line::plot3_$0 ] -Attempting to uplift remaining variables inzp[1]:188 [ line::plot3_$2 ] -Uplifting [line] best 323066 combination reg byte a [ line::plot3_$2 ] -Attempting to uplift remaining variables inzp[1]:191 [ line::plot3_$1 ] -Uplifting [line] best 323066 combination zp[1]:191 [ line::plot3_$1 ] -Attempting to uplift remaining variables inzp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Uplifting [printf_number_buffer] best 323066 combination zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Attempting to uplift remaining variables inzp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -Uplifting [line] best 323066 combination zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] -Attempting to uplift remaining variables inzp[1]:172 [ line::dy#0 ] -Uplifting [line] best 323066 combination zp[1]:172 [ line::dy#0 ] -Attempting to uplift remaining variables inzp[1]:170 [ line::dx#0 ] -Uplifting [line] best 323066 combination zp[1]:170 [ line::dx#0 ] -Attempting to uplift remaining variables inzp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Uplifting [printf_number_buffer] best 323066 combination zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Attempting to uplift remaining variables inzp[1]:176 [ line::sy#0 ] -Uplifting [line] best 323066 combination zp[1]:176 [ line::sy#0 ] -Attempting to uplift remaining variables inzp[1]:174 [ line::sx#0 ] -Uplifting [line] best 323066 combination zp[1]:174 [ line::sx#0 ] -Attempting to uplift remaining variables inzp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] -Uplifting [line] best 323066 combination zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] -Attempting to uplift remaining variables inzp[1]:177 [ line::plot1_$0 ] -Uplifting [line] best 323060 combination reg byte a [ line::plot1_$0 ] -Attempting to uplift remaining variables inzp[1]:178 [ line::plot1_$2 ] -Uplifting [line] best 323056 combination reg byte a [ line::plot1_$2 ] -Attempting to uplift remaining variables inzp[1]:181 [ line::plot1_$1 ] -Uplifting [line] best 323056 combination zp[1]:181 [ line::plot1_$1 ] -Attempting to uplift remaining variables inzp[1]:192 [ line::plot4_$0 ] -Uplifting [line] best 323050 combination reg byte a [ line::plot4_$0 ] -Attempting to uplift remaining variables inzp[1]:193 [ line::plot4_$2 ] -Uplifting [line] best 323046 combination reg byte a [ line::plot4_$2 ] -Attempting to uplift remaining variables inzp[1]:196 [ line::plot4_$1 ] -Uplifting [line] best 323042 combination reg byte a [ line::plot4_$1 ] -Attempting to uplift remaining variables inzp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] -Uplifting [printf_number_buffer] best 323042 combination zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] -Attempting to uplift remaining variables inzp[1]:15 [ printf_number_buffer::format_justify_left#10 ] -Uplifting [printf_number_buffer] best 323042 combination zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] -Attempting to uplift remaining variables inzp[1]:83 [ sgn_u8::return#4 ] -Uplifting [sgn_u8] best 323030 combination reg byte a [ sgn_u8::return#4 ] -Attempting to uplift remaining variables inzp[1]:18 [ printf_number_buffer::format_upper_case#10 ] -Uplifting [printf_number_buffer] best 323030 combination zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] +Uplifting [] best 129533 combination zp[1]:39 [ canvas_show_flag ] zp[1]:38 [ canvas_show_memory ] +Uplifting [kbhit] best 129521 combination reg byte a [ kbhit::return#0 ] reg byte a [ kbhit::return#2 ] +Uplifting [irq_bottom_2] best 129515 combination reg byte a [ irq_bottom_2::$0 ] +Uplifting [MOS6526_CIA] best 129515 combination +Uplifting [MOS6569_VICII] best 129515 combination +Uplifting [MOS6581_SID] best 129515 combination +Uplifting [clock] best 129515 combination +Uplifting [clock_start] best 129515 combination +Uplifting [RADIX] best 129515 combination +Uplifting [textcolor] best 129515 combination +Uplifting [printf_format_number] best 129515 combination +Uplifting [printf_buffer_number] best 129515 combination +Uplifting [printf_format_string] best 129515 combination +Uplifting [setup_irq] best 129515 combination +Uplifting [irq_bottom_1] best 129515 combination +Attempting to uplift remaining variables inzp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +Uplifting [line] best 129515 combination zp[1]:26 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +Attempting to uplift remaining variables inzp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +Uplifting [line] best 129515 combination zp[1]:24 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +Attempting to uplift remaining variables inzp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +Uplifting [line] best 129515 combination zp[1]:25 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +Attempting to uplift remaining variables inzp[1]:27 [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] +Uplifting [line] best 129414 combination reg byte x [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] +Attempting to uplift remaining variables inzp[1]:23 [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +Uplifting [line] best 129313 combination reg byte x [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +Attempting to uplift remaining variables inzp[1]:57 [ line::plot2_$0 ] +Uplifting [line] best 128713 combination reg byte a [ line::plot2_$0 ] +Attempting to uplift remaining variables inzp[1]:58 [ line::plot2_$2 ] +Uplifting [line] best 128313 combination reg byte a [ line::plot2_$2 ] +Attempting to uplift remaining variables inzp[1]:61 [ line::plot2_$1 ] +Uplifting [line] best 128313 combination zp[1]:61 [ line::plot2_$1 ] +Attempting to uplift remaining variables inzp[1]:72 [ line::plot4_$0 ] +Uplifting [line] best 127713 combination reg byte a [ line::plot4_$0 ] +Attempting to uplift remaining variables inzp[1]:73 [ line::plot4_$2 ] +Uplifting [line] best 127313 combination reg byte a [ line::plot4_$2 ] +Attempting to uplift remaining variables inzp[1]:76 [ line::plot4_$1 ] +Uplifting [line] best 126913 combination reg byte a [ line::plot4_$1 ] +Attempting to uplift remaining variables inzp[1]:77 [ line::plot5_$0 ] +Uplifting [line] best 126313 combination reg byte a [ line::plot5_$0 ] +Attempting to uplift remaining variables inzp[1]:78 [ line::plot5_$2 ] +Uplifting [line] best 125913 combination reg byte a [ line::plot5_$2 ] +Attempting to uplift remaining variables inzp[1]:81 [ line::plot5_$1 ] +Uplifting [line] best 125913 combination zp[1]:81 [ line::plot5_$1 ] +Attempting to uplift remaining variables inzp[1]:56 [ line::plot2_y#0 ] +Uplifting [line] best 125913 combination zp[1]:56 [ line::plot2_y#0 ] +Attempting to uplift remaining variables inzp[1]:55 [ line::sy#0 ] +Uplifting [line] best 125913 combination zp[1]:55 [ line::sy#0 ] +Attempting to uplift remaining variables inzp[1]:51 [ line::dy#0 ] +Uplifting [line] best 125913 combination zp[1]:51 [ line::dy#0 ] +Attempting to uplift remaining variables inzp[1]:49 [ line::dx#0 ] +Uplifting [line] best 125913 combination zp[1]:49 [ line::dx#0 ] +Attempting to uplift remaining variables inzp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +Uplifting [line] best 125913 combination zp[1]:22 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +Attempting to uplift remaining variables inzp[1]:53 [ line::sx#0 ] +Uplifting [line] best 125913 combination zp[1]:53 [ line::sx#0 ] +Attempting to uplift remaining variables inzp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] +Uplifting [line] best 125913 combination zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] +Attempting to uplift remaining variables inzp[1]:62 [ line::plot3_$0 ] +Uplifting [line] best 125907 combination reg byte a [ line::plot3_$0 ] +Attempting to uplift remaining variables inzp[1]:63 [ line::plot3_$2 ] +Uplifting [line] best 125903 combination reg byte a [ line::plot3_$2 ] +Attempting to uplift remaining variables inzp[1]:66 [ line::plot3_$1 ] +Uplifting [line] best 125899 combination reg byte a [ line::plot3_$1 ] +Attempting to uplift remaining variables inzp[1]:67 [ line::plot1_$0 ] +Uplifting [line] best 125893 combination reg byte a [ line::plot1_$0 ] +Attempting to uplift remaining variables inzp[1]:68 [ line::plot1_$2 ] +Uplifting [line] best 125889 combination reg byte a [ line::plot1_$2 ] +Attempting to uplift remaining variables inzp[1]:71 [ line::plot1_$1 ] +Uplifting [line] best 125885 combination reg byte a [ line::plot1_$1 ] +Attempting to uplift remaining variables inzp[1]:82 [ line::plot6_$0 ] +Uplifting [line] best 125879 combination reg byte a [ line::plot6_$0 ] +Attempting to uplift remaining variables inzp[1]:83 [ line::plot6_$2 ] +Uplifting [line] best 125875 combination reg byte a [ line::plot6_$2 ] +Attempting to uplift remaining variables inzp[1]:86 [ line::plot6_$1 ] +Uplifting [line] best 125871 combination reg byte a [ line::plot6_$1 ] +Attempting to uplift remaining variables inzp[1]:29 [ sgn_u8::return#4 ] +Uplifting [sgn_u8] best 125859 combination reg byte a [ sgn_u8::return#4 ] Attempting to uplift remaining variables inzp[1]:2 [ main::y#2 main::y#1 ] -Uplifting [main] best 323030 combination zp[1]:2 [ main::y#2 main::y#1 ] -Attempting to uplift remaining variables inzp[1]:98 [ main::x2#0 ] -Uplifting [main] best 323030 combination zp[1]:98 [ main::x2#0 ] -Attempting to uplift remaining variables inzp[1]:99 [ main::y2#0 ] -Uplifting [main] best 323030 combination zp[1]:99 [ main::y2#0 ] -Attempting to uplift remaining variables inzp[1]:96 [ main::x1#0 ] -Uplifting [main] best 323030 combination zp[1]:96 [ main::x1#0 ] -Attempting to uplift remaining variables inzp[1]:97 [ main::y1#0 ] -Uplifting [main] best 323030 combination zp[1]:97 [ main::y1#0 ] -Attempting to uplift remaining variables inzp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] -Uplifting [main] best 323030 combination zp[1]:7 [ main::p0_idx#11 main::p0_idx#1 ] -Attempting to uplift remaining variables inzp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] -Uplifting [main] best 323030 combination zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] +Uplifting [main] best 125859 combination zp[1]:2 [ main::y#2 main::y#1 ] +Attempting to uplift remaining variables inzp[1]:44 [ main::x2#0 ] +Uplifting [main] best 125859 combination zp[1]:44 [ main::x2#0 ] +Attempting to uplift remaining variables inzp[1]:45 [ main::y2#0 ] +Uplifting [main] best 125859 combination zp[1]:45 [ main::y2#0 ] +Attempting to uplift remaining variables inzp[1]:42 [ main::x1#0 ] +Uplifting [main] best 125859 combination zp[1]:42 [ main::x1#0 ] +Attempting to uplift remaining variables inzp[1]:43 [ main::y1#0 ] +Uplifting [main] best 125859 combination zp[1]:43 [ main::y1#0 ] Attempting to uplift remaining variables inzp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] -Uplifting [main] best 323030 combination zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] -Attempting to uplift remaining variables inzp[1]:94 [ main::x0#0 ] -Uplifting [main] best 323030 combination zp[1]:94 [ main::x0#0 ] -Attempting to uplift remaining variables inzp[1]:95 [ main::y0#0 ] -Uplifting [main] best 323030 combination zp[1]:95 [ main::y0#0 ] -Attempting to uplift remaining variables inzp[1]:93 [ canvas_show_flag ] -Uplifting [] best 323030 combination zp[1]:93 [ canvas_show_flag ] -Attempting to uplift remaining variables inzp[1]:92 [ canvas_show_memory ] -Uplifting [] best 323030 combination zp[1]:92 [ canvas_show_memory ] -Coalescing zero page register [ zp[2]:10 [ main::canvas#10 main::canvas#24 ] ] with [ zp[2]:100 [ main::canvas#1 ] ] - score: 2 -Coalescing zero page register [ zp[2]:87 [ conio_cursor_text ] ] with [ zp[2]:125 [ cputln::$1 ] ] - score: 2 -Coalescing zero page register [ zp[2]:87 [ conio_cursor_text cputln::$1 ] ] with [ zp[2]:129 [ cscroll::$7 ] ] - score: 2 -Coalescing zero page register [ zp[2]:89 [ conio_cursor_color ] ] with [ zp[2]:127 [ cputln::$2 ] ] - score: 2 -Coalescing zero page register [ zp[2]:89 [ conio_cursor_color cputln::$2 ] ] with [ zp[2]:131 [ cscroll::$8 ] ] - score: 2 -Coalescing zero page register [ zp[2]:25 [ memset::num#6 ] ] with [ zp[2]:133 [ memset::end#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:27 [ memset::str#7 ] ] with [ zp[2]:30 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:32 [ memcpy::source#2 ] ] with [ zp[2]:36 [ memcpy::src#2 memcpy::src#4 memcpy::src#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:34 [ memcpy::destination#2 ] ] with [ zp[2]:38 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:47 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:119 [ strlen::return#2 ] ] - score: 1 -Coalescing zero page register [ zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] ] with [ zp[4]:57 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] with [ zp[4]:115 [ printf_ulong::uvalue#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ] ] with [ zp[4]:154 [ ultoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] ] with [ zp[2]:141 [ ultoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ] ] with [ zp[2]:148 [ ultoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:158 [ uctoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:161 [ uctoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 ] ] with [ zp[1]:96 [ main::x1#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 main::x1#0 ] ] with [ zp[1]:98 [ main::x2#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:102 [ clock::return#2 ] ] with [ zp[4]:106 [ main::$18 ] ] - score: 1 -Coalescing zero page register [ zp[4]:102 [ clock::return#2 main::$18 ] ] with [ zp[4]:165 [ clock::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:144 [ ultoa::digit_value#0 ] ] with [ zp[4]:150 [ ultoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:160 [ uctoa::digit_value#0 ] ] with [ zp[1]:163 [ uctoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:47 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:121 [ printf_number_buffer::$19 ] ] - score: 1 -Coalescing zero page register [ zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 ] ] with [ zp[4]:110 [ main::cyclecount#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:50 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 main::cyclecount#0 ] ] with [ zp[4]:102 [ clock::return#2 main::$18 clock::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:32 [ memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 ] ] with [ zp[2]:25 [ memset::num#6 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:34 [ memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] ] with [ zp[2]:27 [ memset::str#7 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Coalescing zero page register [ zp[2]:42 [ strupr::src#2 strupr::src#1 ] ] with [ zp[2]:40 [ cputs::s#4 cputs::s#5 cputs::s#0 ] ] -Coalescing zero page register [ zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 ] ] with [ zp[1]:15 [ printf_number_buffer::format_justify_left#10 ] ] -Coalescing zero page register [ zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 ] ] with [ zp[2]:45 [ strlen::str#2 strlen::str#0 ] ] -Coalescing zero page register [ zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 ] ] with [ zp[1]:16 [ printf_number_buffer::format_zero_padding#10 ] ] -Coalescing zero page register [ zp[1]:64 [ uctoa::started#2 uctoa::started#4 ] ] with [ zp[1]:17 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] -Coalescing zero page register [ zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] with [ zp[2]:47 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] -Coalescing zero page register [ zp[1]:76 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 ] ] with [ zp[1]:18 [ printf_number_buffer::format_upper_case#10 ] ] -Coalescing zero page register [ zp[1]:77 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] ] with [ zp[1]:20 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] -Coalescing zero page register [ zp[1]:79 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 ] ] with [ zp[1]:21 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] -Coalescing zero page register [ zp[1]:80 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 ] ] with [ zp[1]:22 [ printf_padding::pad#5 ] ] -Coalescing zero page register [ zp[1]:85 [ conio_cursor_x ] ] with [ zp[1]:2 [ main::y#2 main::y#1 ] ] -Coalescing zero page register [ zp[2]:87 [ conio_cursor_text cputln::$1 cscroll::$7 ] ] with [ zp[2]:70 [ eorfill::line_column#2 eorfill::line_column#1 ] ] -Coalescing zero page register [ zp[2]:89 [ conio_cursor_color cputln::$2 cscroll::$8 ] ] with [ zp[2]:72 [ eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] ] -Coalescing zero page register [ zp[1]:94 [ main::x0#0 ] ] with [ zp[1]:23 [ printf_padding::i#2 printf_padding::i#1 ] ] -Coalescing zero page register [ zp[1]:170 [ line::dx#0 ] ] with [ zp[1]:160 [ uctoa::digit_value#0 uctoa_append::sub#0 ] ] -Coalescing zero page register [ zp[2]:179 [ line::plot1_column#0 ] ] with [ zp[2]:123 [ cputln::ln_offset#0 ] ] -Coalescing zero page register [ zp[2]:184 [ line::plot2_column#0 ] ] with [ zp[2]:135 [ memcpy::src_end#0 ] ] -Coalescing zero page register [ zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::str#2 strlen::str#0 ] ] with [ zp[2]:32 [ memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::num#6 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] with [ zp[2]:34 [ memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 memset::str#7 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Coalescing zero page register [ zp[1]:95 [ main::y0#0 ] ] with [ zp[1]:49 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] ] -Coalescing zero page register [ zp[1]:97 [ main::y1#0 ] ] with [ zp[1]:62 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_zero_padding#10 ] ] -Coalescing zero page register [ zp[1]:99 [ main::y2#0 ] ] with [ zp[1]:64 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] -Coalescing zero page register [ zp[2]:189 [ line::plot3_column#0 ] ] with [ zp[2]:42 [ strupr::src#2 strupr::src#1 cputs::s#4 cputs::s#5 cputs::s#0 ] ] -Coalescing zero page register [ zp[2]:179 [ line::plot1_column#0 cputln::ln_offset#0 ] ] with [ zp[2]:55 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::str#2 strlen::str#0 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::num#6 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:194 [ line::plot4_column#0 ] ] with [ zp[2]:65 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 memset::str#7 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Allocated (was zp[2]:3) zp[2]:2 [ main::cols#5 main::cols#1 ] -Allocated (was zp[2]:5) zp[2]:4 [ main::screen#5 main::screen#1 ] -Allocated (was zp[1]:7) zp[1]:6 [ main::p0_idx#11 main::p0_idx#1 ] -Allocated (was zp[1]:8) zp[1]:7 [ main::p1_idx#2 main::p1_idx#1 ] -Allocated (was zp[1]:9) zp[1]:8 [ main::p2_idx#2 main::p2_idx#1 ] -Allocated (was zp[2]:10) zp[2]:9 [ main::canvas#10 main::canvas#24 main::canvas#1 ] -Allocated (was zp[4]:50) zp[4]:11 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 main::cyclecount#0 clock::return#2 main::$18 clock::return#0 ] -Allocated (was zp[1]:76) zp[1]:15 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 printf_number_buffer::format_upper_case#10 ] -Allocated (was zp[1]:77) zp[1]:16 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Allocated (was zp[1]:79) zp[1]:17 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Allocated (was zp[1]:80) zp[1]:18 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 printf_padding::pad#5 ] -Allocated (was zp[1]:85) zp[1]:19 [ conio_cursor_x main::y#2 main::y#1 ] -Allocated (was zp[1]:86) zp[1]:20 [ conio_cursor_y ] -Allocated (was zp[2]:87) zp[2]:21 [ conio_cursor_text cputln::$1 cscroll::$7 eorfill::line_column#2 eorfill::line_column#1 ] -Allocated (was zp[2]:89) zp[2]:23 [ conio_cursor_color cputln::$2 cscroll::$8 eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] -Allocated (was zp[1]:91) zp[1]:25 [ conio_textcolor ] -Allocated (was zp[1]:92) zp[1]:26 [ canvas_show_memory ] -Allocated (was zp[1]:93) zp[1]:27 [ canvas_show_flag ] -Allocated (was zp[1]:94) zp[1]:28 [ main::x0#0 printf_padding::i#2 printf_padding::i#1 ] -Allocated (was zp[1]:95) zp[1]:29 [ main::y0#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] -Allocated (was zp[1]:97) zp[1]:30 [ main::y1#0 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_zero_padding#10 ] -Allocated (was zp[1]:99) zp[1]:31 [ main::y2#0 uctoa::started#2 uctoa::started#4 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Allocated (was zp[4]:144) zp[4]:32 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -Allocated (was zp[1]:170) zp[1]:36 [ line::dx#0 uctoa::digit_value#0 uctoa_append::sub#0 ] -Allocated (was zp[1]:172) zp[1]:37 [ line::dy#0 ] -Allocated (was zp[1]:174) zp[1]:38 [ line::sx#0 ] -Allocated (was zp[1]:176) zp[1]:39 [ line::sy#0 ] -Allocated (was zp[2]:179) zp[2]:40 [ line::plot1_column#0 cputln::ln_offset#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::str#2 strlen::str#0 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::num#6 memset::end#0 ] -Allocated (was zp[1]:181) zp[1]:42 [ line::plot1_$1 ] -Allocated (was zp[2]:184) zp[2]:43 [ line::plot2_column#0 memcpy::src_end#0 ] -Allocated (was zp[1]:186) zp[1]:45 [ line::plot2_$1 ] -Allocated (was zp[2]:189) zp[2]:46 [ line::plot3_column#0 strupr::src#2 strupr::src#1 cputs::s#4 cputs::s#5 cputs::s#0 ] -Allocated (was zp[1]:191) zp[1]:48 [ line::plot3_$1 ] -Allocated (was zp[2]:194) zp[2]:49 [ line::plot4_column#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 memset::str#7 memset::dst#2 memset::dst#4 memset::dst#1 ] +Uplifting [main] best 125859 combination zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] +Attempting to uplift remaining variables inzp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] +Uplifting [main] best 125859 combination zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] +Attempting to uplift remaining variables inzp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] +Uplifting [main] best 125859 combination zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] +Attempting to uplift remaining variables inzp[1]:39 [ canvas_show_flag ] +Uplifting [] best 125859 combination zp[1]:39 [ canvas_show_flag ] +Attempting to uplift remaining variables inzp[1]:40 [ main::x0#0 ] +Uplifting [main] best 125859 combination zp[1]:40 [ main::x0#0 ] +Attempting to uplift remaining variables inzp[1]:41 [ main::y0#0 ] +Uplifting [main] best 125859 combination zp[1]:41 [ main::y0#0 ] +Attempting to uplift remaining variables inzp[1]:38 [ canvas_show_memory ] +Uplifting [] best 125859 combination zp[1]:38 [ canvas_show_memory ] +Coalescing zero page register [ zp[2]:10 [ main::canvas#10 main::canvas#19 ] ] with [ zp[2]:46 [ main::canvas#1 ] ] - score: 2 +Coalescing zero page register [ zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 ] ] with [ zp[1]:42 [ main::x1#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:21 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 main::x1#0 ] ] with [ zp[1]:44 [ main::x2#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:31 [ memset::num#4 ] ] with [ zp[2]:89 [ memset::end#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:33 [ memset::str#5 ] ] with [ zp[2]:36 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:31 [ memset::num#4 memset::end#0 ] ] with [ zp[2]:15 [ eorfill::line_column#2 eorfill::line_column#1 ] ] +Coalescing zero page register [ zp[2]:33 [ memset::str#5 memset::dst#2 memset::dst#4 memset::dst#1 ] ] with [ zp[2]:17 [ eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] ] +Coalescing zero page register [ zp[2]:59 [ line::plot2_column#0 ] ] with [ zp[2]:31 [ memset::num#4 memset::end#0 eorfill::line_column#2 eorfill::line_column#1 ] ] +Coalescing zero page register [ zp[2]:64 [ line::plot3_column#0 ] ] with [ zp[2]:33 [ memset::str#5 memset::dst#2 memset::dst#4 memset::dst#1 eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] ] +Allocated (was zp[1]:21) zp[1]:12 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 ] +Allocated (was zp[1]:22) zp[1]:13 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +Allocated (was zp[1]:24) zp[1]:14 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +Allocated (was zp[1]:25) zp[1]:15 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +Allocated (was zp[1]:26) zp[1]:16 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +Allocated (was zp[1]:38) zp[1]:17 [ canvas_show_memory ] +Allocated (was zp[1]:39) zp[1]:18 [ canvas_show_flag ] +Allocated (was zp[1]:40) zp[1]:19 [ main::x0#0 ] +Allocated (was zp[1]:41) zp[1]:20 [ main::y0#0 ] +Allocated (was zp[1]:43) zp[1]:21 [ main::y1#0 ] +Allocated (was zp[1]:45) zp[1]:22 [ main::y2#0 ] +Allocated (was zp[1]:49) zp[1]:23 [ line::dx#0 ] +Allocated (was zp[1]:51) zp[1]:24 [ line::dy#0 ] +Allocated (was zp[1]:53) zp[1]:25 [ line::sx#0 ] +Allocated (was zp[1]:55) zp[1]:26 [ line::sy#0 ] +Allocated (was zp[1]:56) zp[1]:27 [ line::plot2_y#0 ] +Allocated (was zp[2]:59) zp[2]:28 [ line::plot2_column#0 memset::num#4 memset::end#0 eorfill::line_column#2 eorfill::line_column#1 ] +Allocated (was zp[1]:61) zp[1]:30 [ line::plot2_$1 ] +Allocated (was zp[2]:64) zp[2]:31 [ line::plot3_column#0 memset::str#5 memset::dst#2 memset::dst#4 memset::dst#1 eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] +Allocated (was zp[2]:69) zp[2]:33 [ line::plot1_column#0 ] +Allocated (was zp[2]:74) zp[2]:35 [ line::plot4_column#0 ] +Allocated (was zp[2]:79) zp[2]:37 [ line::plot5_column#0 ] +Allocated (was zp[1]:81) zp[1]:39 [ line::plot5_$1 ] +Allocated (was zp[2]:84) zp[2]:40 [ line::plot6_column#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -11403,12 +6231,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const BLACK = 0 .const WHITE = 1 .const RED = 2 - // Clock cycles used to start & read the cycle clock by calling clock_start() and clock() once. Can be subtracted when calculating the number of cycles used by a routine. - // To make precise cycle measurements interrupts and the display must be disabled so neither steals any cycles from the code. - .const CLOCKS_PER_INIT = $12 - // The default text color - .const CONIO_TEXTCOLOR_DEFAULT = $e - .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const DARK_GREY = $b .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f .const OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 @@ -11420,7 +6243,6 @@ ASSEMBLER BEFORE OPTIMIZATION .const OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 .const OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c // The VIC-II MOS 6567/6569 .label VICII = $d000 // Color Ram @@ -11433,13 +6255,6 @@ ASSEMBLER BEFORE OPTIMIZATION .label CIA2_TIMER_AB = $dd04 // The vector used when the KERNAL serves IRQ interrupts .label KERNEL_IRQ = $314 - // The screen width - // The screen height - // The screen bytes - // The text screen address - .label CONIO_SCREEN_TEXT = $400 - // The color screen address - .label CONIO_SCREEN_COLORS = $d800 // CIA#1 Port A: keyboard matrix columns and joystick #2 .label CONIO_CIA1_PORT_A = $dc00 // CIA#1 Port B: keyboard matrix rows and joystick #1. @@ -11456,70 +6271,38 @@ ASSEMBLER BEFORE OPTIMIZATION // The default charset address .label PETSCII = $1000 .label COSTAB = SINTAB+$40 - .label conio_cursor_x = $13 - .label conio_cursor_y = $14 - .label conio_cursor_text = $15 - .label conio_cursor_color = $17 - .label conio_textcolor = $19 - .label canvas_show_memory = $1a - .label canvas_show_flag = $1b + .label canvas_show_memory = $11 + .label canvas_show_flag = $12 // @begin __bbegin: - jmp __b1 - // @1 -__b1: - // [1] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - // The current cursor x-position - lda #0 - sta.z conio_cursor_x - // [2] (byte) conio_cursor_y ← (byte) 0 -- vbuz1=vbuc1 - // The current cursor y-position - lda #0 - sta.z conio_cursor_y - // [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT -- pbuz1=pbuc1 - // The current cursor address - lda #CONIO_SCREEN_TEXT - sta.z conio_cursor_text+1 - // [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS -- pbuz1=pbuc1 - // The current cursor address - lda #CONIO_SCREEN_COLORS - sta.z conio_cursor_color+1 - // [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- vbuz1=vbuc1 - // The current text color - lda #CONIO_TEXTCOLOR_DEFAULT - sta.z conio_textcolor - // [6] phi from @1 to toD0181 [phi:@1->toD0181] -toD0181_from___b1: + // [1] phi from @begin to toD0181 [phi:@begin->toD0181] +toD0181_from___bbegin: jmp toD0181 // toD0181 toD0181: - jmp __b3 - // @3 -__b3: - // [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 -- vbuz1=vbuc1 + jmp __b2 + // @2 +__b2: + // [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 -- vbuz1=vbuc1 // The current canvas being rendered to the screen - in D018 format. lda #toD0181_return sta.z canvas_show_memory - // [8] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 + // [3] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 // Flag signalling that the canvas on screen needs to be updated. // Set to 1 by the renderer when a new canvas is ready for showing, and to 0 by the raster when the canvas is shown on screen. lda #0 sta.z canvas_show_flag - // [9] phi from @3 to @2 [phi:@3->@2] -__b2_from___b3: - jmp __b2 - // @2 -__b2: - // [10] call main - // [12] phi from @2 to main [phi:@2->main] -main_from___b2: + // [4] phi from @2 to @1 [phi:@2->@1] +__b1_from___b2: + jmp __b1 + // @1 +__b1: + // [5] call main + // [7] phi from @1 to main [phi:@1->main] +main_from___b1: jsr main - // [11] phi from @2 to @end [phi:@2->@end] -__bend_from___b2: + // [6] phi from @1 to @end [phi:@1->@end] +__bend_from___b1: jmp __bend // @end __bend: @@ -11527,168 +6310,168 @@ __bend: main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS1)/4&$f .const toD0182_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .label __18 = $b - .label cols = 2 + .label cols = 3 // Setup 16x16 canvas for rendering - .label screen = 4 - .label y = $13 - .label x0 = $1c - .label y0 = $1d - .label x1 = $f - .label y1 = $1e - .label x2 = $f - .label y2 = $1f - .label p0_idx = 6 - .label p1_idx = 7 - .label p2_idx = 8 + .label screen = 5 + .label y = 2 + .label x0 = $13 + .label y0 = $14 + .label x1 = $c + .label y1 = $15 + .label x2 = $c + .label y2 = $16 + .label p0_idx = 7 + .label p1_idx = 8 + .label p2_idx = 9 // The current canvas being rendered to - .label canvas = 9 - .label cyclecount = $b - // [13] call memset + .label canvas = $a + // [8] call memset // Clear the console - // [177] phi from main to memset [phi:main->memset] + // [181] phi from main to memset [phi:main->memset] memset_from_main: - // [177] phi (byte) memset::c#8 = (byte) ' ' [phi:main->memset#0] -- vbuxx=vbuc1 + // [181] phi (byte) memset::c#6 = (byte) ' ' [phi:main->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONSOLE [phi:main->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) CONSOLE [phi:main->memset#1] -- pvoz1=pvoc1 lda #CONSOLE sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [14] phi from main to main::@12 [phi:main->main::@12] + // [9] phi from main to main::@12 [phi:main->main::@12] __b12_from_main: jmp __b12 // main::@12 __b12: - // [15] call memset + // [10] call memset // Clear the screen - // [177] phi from main::@12 to memset [phi:main::@12->memset] + // [181] phi from main::@12 to memset [phi:main::@12->memset] memset_from___b12: - // [177] phi (byte) memset::c#8 = (byte) 0 [phi:main::@12->memset#0] -- vbuxx=vbuc1 + // [181] phi (byte) memset::c#6 = (byte) 0 [phi:main::@12->memset#0] -- vbuxx=vbuc1 ldx #0 - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) SCREEN [phi:main::@12->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) SCREEN [phi:main::@12->memset#1] -- pvoz1=pvoc1 lda #SCREEN sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main::@12->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main::@12->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [16] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [11] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [17] call memset - // [177] phi from main::@13 to memset [phi:main::@13->memset] + // [12] call memset + // [181] phi from main::@13 to memset [phi:main::@13->memset] memset_from___b13: - // [177] phi (byte) memset::c#8 = (const nomodify byte) BLACK [phi:main::@13->memset#0] -- vbuxx=vbuc1 + // [181] phi (byte) memset::c#6 = (const nomodify byte) BLACK [phi:main::@13->memset#0] -- vbuxx=vbuc1 ldx #BLACK - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) COLS [phi:main::@13->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) COLS [phi:main::@13->memset#1] -- pvoz1=pvoc1 lda #COLS sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main::@13->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main::@13->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [18] phi from main::@13 to main::@1 [phi:main::@13->main::@1] + // [13] phi from main::@13 to main::@1 [phi:main::@13->main::@1] __b1_from___b13: - // [18] phi (byte*) main::screen#5 = (const nomodify byte*) SCREEN+(byte) $c [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 + // [13] phi (byte*) main::screen#5 = (const nomodify byte*) SCREEN+(byte) $c [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 lda #SCREEN+$c sta.z screen+1 - // [18] phi (byte*) main::cols#5 = (const nomodify byte*) COLS+(byte) $c [phi:main::@13->main::@1#1] -- pbuz1=pbuc1 + // [13] phi (byte*) main::cols#5 = (const nomodify byte*) COLS+(byte) $c [phi:main::@13->main::@1#1] -- pbuz1=pbuc1 lda #COLS+$c sta.z cols+1 - // [18] phi (byte) main::y#2 = (byte) 0 [phi:main::@13->main::@1#2] -- vbuz1=vbuc1 + // [13] phi (byte) main::y#2 = (byte) 0 [phi:main::@13->main::@1#2] -- vbuz1=vbuc1 lda #0 sta.z y jmp __b1 // main::@1 __b1: - // [19] if((byte) main::y#2<(byte) $10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 + // [14] if((byte) main::y#2<(byte) $10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z y cmp #$10 bcc __b2 jmp __b3 // main::@3 __b3: - // [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR - // [22] call setup_irq + // [17] call setup_irq // Set-up the raster IRQ jsr setup_irq - // [23] phi from main::@3 to main::@14 [phi:main::@3->main::@14] + // [18] phi from main::@3 to main::@14 [phi:main::@3->main::@14] __b14_from___b3: jmp __b14 // main::@14 __b14: - // [24] call textcolor - // Set text color + // [19] call textcolor + // Set text color + // [196] phi from main::@14 to textcolor [phi:main::@14->textcolor] + textcolor_from___b14: jsr textcolor - // [25] phi from main::@14 to main::@7 [phi:main::@14->main::@7] + // [20] phi from main::@14 to main::@7 [phi:main::@14->main::@7] __b7_from___b14: - // [25] phi (byte*) main::canvas#10 = (const nomodify byte*) CANVAS1 [phi:main::@14->main::@7#0] -- pbuz1=pbuc1 + // [20] phi (byte*) main::canvas#10 = (const nomodify byte*) CANVAS1 [phi:main::@14->main::@7#0] -- pbuz1=pbuc1 lda #CANVAS1 sta.z canvas+1 - // [25] phi (byte) main::p2_idx#2 = (byte) $f0+(byte) $aa [phi:main::@14->main::@7#1] -- vbuz1=vbuc1 - lda #$f0+$aa + // [20] phi (byte) main::p2_idx#2 = (byte) $b5+(byte) $aa [phi:main::@14->main::@7#1] -- vbuz1=vbuc1 + lda #$b5+$aa sta.z p2_idx - // [25] phi (byte) main::p1_idx#2 = (byte) $f0+(byte) $f [phi:main::@14->main::@7#2] -- vbuz1=vbuc1 - lda #$f0+$f + // [20] phi (byte) main::p1_idx#2 = (byte) $b5+(byte) $f [phi:main::@14->main::@7#2] -- vbuz1=vbuc1 + lda #$b5+$f sta.z p1_idx - // [25] phi (byte) main::p0_idx#11 = (byte) $f0 [phi:main::@14->main::@7#3] -- vbuz1=vbuc1 - lda #$f0 + // [20] phi (byte) main::p0_idx#2 = (byte) $b5 [phi:main::@14->main::@7#3] -- vbuz1=vbuc1 + lda #$b5 sta.z p0_idx jmp __b7 // main::@7 __b7: - // [26] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [21] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [27] call clock_start + // [22] call clock_start jsr clock_start - // [28] phi from main::@8 to main::@15 [phi:main::@8->main::@15] + // [23] phi from main::@8 to main::@15 [phi:main::@8->main::@15] __b15_from___b8: jmp __b15 // main::@15 __b15: - // [29] call memset + // [24] call memset // Clear line buffer - // [177] phi from main::@15 to memset [phi:main::@15->memset] + // [181] phi from main::@15 to memset [phi:main::@15->memset] memset_from___b15: - // [177] phi (byte) memset::c#8 = (byte) 0 [phi:main::@15->memset#0] -- vbuxx=vbuc1 + // [181] phi (byte) memset::c#6 = (byte) 0 [phi:main::@15->memset#0] -- vbuxx=vbuc1 ldx #0 - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) LINE_BUFFER [phi:main::@15->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) LINE_BUFFER [phi:main::@15->memset#1] -- pvoz1=pvoc1 lda #LINE_BUFFER sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word) $800 [phi:main::@15->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word) $800 [phi:main::@15->memset#2] -- vwuz1=vwuc1 lda #<$800 sta.z memset.num lda #>$800 @@ -11697,133 +6480,133 @@ main: { jmp __b16 // main::@16 __b16: - // [30] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#11) -- vbuz1=pbuc1_derefidx_vbuz2 + // [25] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 // Plot in line buffer ldy.z p0_idx lda COSTAB,y sta.z x0 - // [31] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#11) -- vbuz1=pbuc1_derefidx_vbuz2 + // [26] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p0_idx lda SINTAB,y sta.z y0 - // [32] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [27] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p1_idx lda COSTAB,y sta.z x1 - // [33] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [28] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p1_idx lda SINTAB,y sta.z y1 - // [34] (byte) line::x1#0 ← (byte) main::x0#0 -- vbuz1=vbuz2 + // [29] (byte) line::x1#0 ← (byte) main::x0#0 -- vbuz1=vbuz2 lda.z x0 sta.z line.x1 - // [35] (byte) line::y1#0 ← (byte) main::y0#0 -- vbuz1=vbuz2 + // [30] (byte) line::y1#0 ← (byte) main::y0#0 -- vbuz1=vbuz2 lda.z y0 sta.z line.y1 - // [36] (byte) line::x2#0 ← (byte) main::x1#0 - // [37] (byte) line::y2#0 ← (byte) main::y1#0 -- vbuz1=vbuz2 + // [31] (byte) line::x2#0 ← (byte) main::x1#0 + // [32] (byte) line::y2#0 ← (byte) main::y1#0 -- vbuz1=vbuz2 lda.z y1 sta.z line.y2 - // [38] call line - // [307] phi from main::@16 to line [phi:main::@16->line] + // [33] call line + // [87] phi from main::@16 to line [phi:main::@16->line] line_from___b16: - // [307] phi (byte) line::y2#10 = (byte) line::y2#0 [phi:main::@16->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#0 [phi:main::@16->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#0 [phi:main::@16->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#0 [phi:main::@16->line#3] -- register_copy + // [87] phi (byte) line::y2#10 = (byte) line::y2#0 [phi:main::@16->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#0 [phi:main::@16->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#0 [phi:main::@16->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#0 [phi:main::@16->line#3] -- register_copy jsr line jmp __b17 // main::@17 __b17: - // [39] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [34] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p2_idx lda COSTAB,y sta.z x2 - // [40] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [35] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p2_idx lda SINTAB,y sta.z y2 - // [41] (byte) line::x1#1 ← (byte) main::x1#0 -- vbuz1=vbuz2 + // [36] (byte) line::x1#1 ← (byte) main::x1#0 -- vbuz1=vbuz2 lda.z x1 sta.z line.x1 - // [42] (byte) line::y1#1 ← (byte) main::y1#0 -- vbuz1=vbuz2 + // [37] (byte) line::y1#1 ← (byte) main::y1#0 -- vbuz1=vbuz2 lda.z y1 sta.z line.y1 - // [43] (byte) line::x2#1 ← (byte) main::x2#0 - // [44] (byte) line::y2#1 ← (byte) main::y2#0 -- vbuz1=vbuz2 + // [38] (byte) line::x2#1 ← (byte) main::x2#0 + // [39] (byte) line::y2#1 ← (byte) main::y2#0 -- vbuz1=vbuz2 lda.z y2 sta.z line.y2 - // [45] call line - // [307] phi from main::@17 to line [phi:main::@17->line] + // [40] call line + // [87] phi from main::@17 to line [phi:main::@17->line] line_from___b17: - // [307] phi (byte) line::y2#10 = (byte) line::y2#1 [phi:main::@17->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#1 [phi:main::@17->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#1 [phi:main::@17->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#1 [phi:main::@17->line#3] -- register_copy + // [87] phi (byte) line::y2#10 = (byte) line::y2#1 [phi:main::@17->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#1 [phi:main::@17->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#1 [phi:main::@17->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#1 [phi:main::@17->line#3] -- register_copy jsr line jmp __b18 // main::@18 __b18: - // [46] (byte) line::x1#2 ← (byte) main::x2#0 -- vbuz1=vbuz2 + // [41] (byte) line::x1#2 ← (byte) main::x2#0 -- vbuz1=vbuz2 lda.z x2 sta.z line.x1 - // [47] (byte) line::y1#2 ← (byte) main::y2#0 -- vbuz1=vbuz2 + // [42] (byte) line::y1#2 ← (byte) main::y2#0 -- vbuz1=vbuz2 lda.z y2 sta.z line.y1 - // [48] (byte) line::x2#2 ← (byte) main::x0#0 -- vbuz1=vbuz2 + // [43] (byte) line::x2#2 ← (byte) main::x0#0 -- vbuz1=vbuz2 lda.z x0 sta.z line.x2 - // [49] (byte) line::y2#2 ← (byte) main::y0#0 -- vbuz1=vbuz2 + // [44] (byte) line::y2#2 ← (byte) main::y0#0 -- vbuz1=vbuz2 lda.z y0 sta.z line.y2 - // [50] call line - // [307] phi from main::@18 to line [phi:main::@18->line] + // [45] call line + // [87] phi from main::@18 to line [phi:main::@18->line] line_from___b18: - // [307] phi (byte) line::y2#10 = (byte) line::y2#2 [phi:main::@18->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#2 [phi:main::@18->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#2 [phi:main::@18->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#2 [phi:main::@18->line#3] -- register_copy + // [87] phi (byte) line::y2#10 = (byte) line::y2#2 [phi:main::@18->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#2 [phi:main::@18->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#2 [phi:main::@18->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#2 [phi:main::@18->line#3] -- register_copy jsr line jmp __b19 // main::@19 __b19: - // [51] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#11 -- vbuz1=_inc_vbuz1 + // [46] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#2 -- vbuz1=_inc_vbuz1 inc.z p0_idx - // [52] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 -- vbuz1=_inc_vbuz1 + // [47] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 -- vbuz1=_inc_vbuz1 inc.z p1_idx - // [53] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 -- vbuz1=_inc_vbuz1 + // [48] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 -- vbuz1=_inc_vbuz1 inc.z p2_idx - // [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED -- _deref_pbuc1=vbuc2 + // [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED -- _deref_pbuc1=vbuc2 // Wait until the canvas on screen has been switched before starting work on the next frame lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __b9 // main::@9 __b9: - // [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -- vbuc1_neq_vbuz1_then_la1 + // [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z canvas_show_flag bne __b9 jmp __b10 // main::@10 __b10: - // [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 -- pbuz1=pbuz2 + // [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 -- pbuz1=pbuz2 lda.z canvas sta.z eorfill.canvas lda.z canvas+1 sta.z eorfill.canvas+1 - // [58] call eorfill + // [53] call eorfill // Fill canvas - // [294] phi from main::@10 to eorfill [phi:main::@10->eorfill] + // [73] phi from main::@10 to eorfill [phi:main::@10->eorfill] eorfill_from___b10: jsr eorfill jmp __b20 // main::@20 __b20: - // [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 -- vwuz1=pbuz1_bxor_vwuc1 + // [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 -- vwuz1=pbuz1_bxor_vwuc1 // swap canvas being rendered to (using XOR) lda #CANVAS1^CANVAS2 eor.z canvas+1 sta.z canvas+1 - // [60] phi from main::@20 to main::toD0181 [phi:main::@20->main::toD0181] + // [55] phi from main::@20 to main::toD0181 [phi:main::@20->main::toD0181] toD0181_from___b20: jmp toD0181 // main::toD0181 toD0181: - // [61] phi from main::toD0181 to main::toD0182 [phi:main::toD0181->main::toD0182] + // [56] phi from main::toD0181 to main::toD0182 [phi:main::toD0181->main::toD0182] toD0182_from_toD0181: jmp toD0182 // main::toD0182 @@ -11844,115 +6627,49 @@ main: { jmp __b11 // main::@11 __b11: - // [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 -- vbuz1=vbuz1_bxor_vbuc1 + // [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 -- vbuz1=vbuz1_bxor_vbuc1 // Swap canvas to show on screen (using XOR) lda #toD0181_return^toD0182_return eor.z canvas_show_memory sta.z canvas_show_memory - // [63] (volatile byte) canvas_show_flag ← (byte) 1 -- vbuz1=vbuc1 + // [58] (volatile byte) canvas_show_flag ← (byte) 1 -- vbuz1=vbuc1 // Set flag used to signal when the canvas has been shown lda #1 sta.z canvas_show_flag - // [64] call clock + // [59] call clock + // [71] phi from main::@11 to clock [phi:main::@11->clock] + clock_from___b11: jsr clock - // [65] (dword) clock::return#2 ← (dword) clock::return#0 jmp __b21 // main::@21 __b21: - // [66] (dword~) main::$18 ← (dword) clock::return#2 - // [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT -- vduz1=vduz1_minus_vduc1 - lda.z cyclecount - sec - sbc #CLOCKS_PER_INIT - sta.z cyclecount+1 - lda.z cyclecount+2 - sbc #>$10 - sta.z cyclecount+2 - lda.z cyclecount+3 - sbc #>CLOCKS_PER_INIT>>$10 - sta.z cyclecount+3 - // [68] call gotoxy - // [286] phi from main::@21 to gotoxy [phi:main::@21->gotoxy] - gotoxy_from___b21: - jsr gotoxy - // [69] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - __b22_from___b21: - jmp __b22 - // main::@22 - __b22: - // [70] call cputs - // [196] phi from main::@22 to cputs [phi:main::@22->cputs] - cputs_from___b22: - // [196] phi (to_nomodify byte*) cputs::s#5 = (const byte*) main::s [phi:main::@22->cputs#0] -- pbuz1=pbuc1 - lda #s - sta.z cputs.s+1 - jsr cputs - jmp __b23 - // main::@23 - __b23: - // [71] (byte) printf_uchar::uvalue#0 ← (byte) main::p0_idx#1 -- vbuxx=vbuz1 - ldx.z p0_idx - // [72] call printf_uchar - // [253] phi from main::@23 to printf_uchar [phi:main::@23->printf_uchar] - printf_uchar_from___b23: - jsr printf_uchar - // [73] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - __b24_from___b23: - jmp __b24 - // main::@24 - __b24: - // [74] call cputs - // [196] phi from main::@24 to cputs [phi:main::@24->cputs] - cputs_from___b24: - // [196] phi (to_nomodify byte*) cputs::s#5 = (const byte*) main::s1 [phi:main::@24->cputs#0] -- pbuz1=pbuc1 - lda #s1 - sta.z cputs.s+1 - jsr cputs - jmp __b25 - // main::@25 - __b25: - // [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 - // [76] call printf_ulong - // [88] phi from main::@25 to printf_ulong [phi:main::@25->printf_ulong] - printf_ulong_from___b25: - jsr printf_ulong - jmp __b26 - // main::@26 - __b26: - // [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 - // [25] phi from main::@26 to main::@7 [phi:main::@26->main::@7] - __b7_from___b26: - // [25] phi (byte*) main::canvas#10 = (byte*) main::canvas#24 [phi:main::@26->main::@7#0] -- register_copy - // [25] phi (byte) main::p2_idx#2 = (byte) main::p2_idx#1 [phi:main::@26->main::@7#1] -- register_copy - // [25] phi (byte) main::p1_idx#2 = (byte) main::p1_idx#1 [phi:main::@26->main::@7#2] -- register_copy - // [25] phi (byte) main::p0_idx#11 = (byte) main::p0_idx#1 [phi:main::@26->main::@7#3] -- register_copy + // [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 + // [20] phi from main::@21 to main::@7 [phi:main::@21->main::@7] + __b7_from___b21: + // [20] phi (byte*) main::canvas#10 = (byte*) main::canvas#19 [phi:main::@21->main::@7#0] -- register_copy + // [20] phi (byte) main::p2_idx#2 = (byte) main::p2_idx#1 [phi:main::@21->main::@7#1] -- register_copy + // [20] phi (byte) main::p1_idx#2 = (byte) main::p1_idx#1 [phi:main::@21->main::@7#2] -- register_copy + // [20] phi (byte) main::p0_idx#2 = (byte) main::p0_idx#1 [phi:main::@21->main::@7#3] -- register_copy jmp __b7 // main::@2 __b2: - // [78] (byte) main::c#4 ← (byte) main::y#2 -- vbuxx=vbuz1 + // [61] (byte) main::c#4 ← (byte) main::y#2 -- vbuxx=vbuz1 ldx.z y - // [79] phi from main::@2 to main::@4 [phi:main::@2->main::@4] + // [62] phi from main::@2 to main::@4 [phi:main::@2->main::@4] __b4_from___b2: - // [79] phi (byte) main::c#2 = (byte) main::c#4 [phi:main::@2->main::@4#0] -- register_copy - // [79] phi (byte) main::x#2 = (byte) 0 [phi:main::@2->main::@4#1] -- vbuyy=vbuc1 + // [62] phi (byte) main::c#2 = (byte) main::c#4 [phi:main::@2->main::@4#0] -- register_copy + // [62] phi (byte) main::x#2 = (byte) 0 [phi:main::@2->main::@4#1] -- vbuyy=vbuc1 ldy #0 jmp __b4 // main::@4 __b4: - // [80] if((byte) main::x#2<(byte) $10) goto main::@5 -- vbuyy_lt_vbuc1_then_la1 + // [63] if((byte) main::x#2<(byte) $10) goto main::@5 -- vbuyy_lt_vbuc1_then_la1 cpy #$10 bcc __b5 jmp __b6 // main::@6 __b6: - // [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z cols @@ -11960,7 +6677,7 @@ main: { bcc !+ inc.z cols+1 !: - // [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z screen @@ -11968,585 +6685,658 @@ main: { bcc !+ inc.z screen+1 !: - // [83] (byte) main::y#1 ← ++ (byte) main::y#2 -- vbuz1=_inc_vbuz1 + // [66] (byte) main::y#1 ← ++ (byte) main::y#2 -- vbuz1=_inc_vbuz1 inc.z y - // [18] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + // [13] phi from main::@6 to main::@1 [phi:main::@6->main::@1] __b1_from___b6: - // [18] phi (byte*) main::screen#5 = (byte*) main::screen#1 [phi:main::@6->main::@1#0] -- register_copy - // [18] phi (byte*) main::cols#5 = (byte*) main::cols#1 [phi:main::@6->main::@1#1] -- register_copy - // [18] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@6->main::@1#2] -- register_copy + // [13] phi (byte*) main::screen#5 = (byte*) main::screen#1 [phi:main::@6->main::@1#0] -- register_copy + // [13] phi (byte*) main::cols#5 = (byte*) main::cols#1 [phi:main::@6->main::@1#1] -- register_copy + // [13] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@6->main::@1#2] -- register_copy jmp __b1 // main::@5 __b5: - // [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE -- pbuz1_derefidx_vbuyy=vbuc1 + // [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE -- pbuz1_derefidx_vbuyy=vbuc1 lda #WHITE sta (cols),y - // [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 -- pbuz1_derefidx_vbuyy=vbuxx + // [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 -- pbuz1_derefidx_vbuyy=vbuxx txa sta (screen),y - // [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 -- vbuxx=vbuxx_plus_vbuc1 + // [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 -- vbuxx=vbuxx_plus_vbuc1 txa axs #-[$10] - // [87] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuyy=_inc_vbuyy + // [70] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuyy=_inc_vbuyy iny - // [79] phi from main::@5 to main::@4 [phi:main::@5->main::@4] + // [62] phi from main::@5 to main::@4 [phi:main::@5->main::@4] __b4_from___b5: - // [79] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@5->main::@4#0] -- register_copy - // [79] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@5->main::@4#1] -- register_copy + // [62] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@5->main::@4#0] -- register_copy + // [62] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@5->main::@4#1] -- register_copy jmp __b4 - s: .text "frame: " - .byte 0 - s1: .text " cycles: " - .byte 0 } - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp($b) uvalue) -printf_ulong: { - .const format_min_length = 6 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = $b - jmp __b1 - // printf_ulong::@1 - __b1: - // [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - // [91] call ultoa - // Format number into buffer - // [225] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - ultoa_from___b1: - jsr ultoa - jmp __b2 - // printf_ulong::@2 - __b2: - // [92] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [93] call printf_number_buffer - // Print using format - // [95] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [95] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [95] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [95] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#2] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [95] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [95] phi (byte) printf_number_buffer::format_min_length#2 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuxx=vbuc1 - ldx #format_min_length - jsr printf_number_buffer + // clock +// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). +// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() +clock: { jmp __breturn - // printf_ulong::@return + // clock::@return __breturn: - // [94] return + // [72] return rts } - // printf_number_buffer -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($1f) buffer_sign, byte register(X) format_min_length, byte zp($1d) format_justify_left, byte zp($1e) format_zero_padding, byte zp($f) format_upper_case) -printf_number_buffer: { - .label __19 = $31 - .label buffer_sign = $1f - .label padding = $10 - .label format_zero_padding = $1e - .label format_justify_left = $1d - .label format_upper_case = $f - // [96] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- vbuc1_eq_vbuxx_then_la1 - cpx #0 - beq __b1_from_printf_number_buffer - // [97] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] - __b6_from_printf_number_buffer: - jmp __b6 - // printf_number_buffer::@6 - __b6: - // [98] call strlen - // [219] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] - strlen_from___b6: - jsr strlen - // [99] (word) strlen::return#2 ← (word) strlen::len#2 - jmp __b14 - // printf_number_buffer::@14 - __b14: - // [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - // [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 - // There is a minimum length - work out the padding - lda.z __19 - tay - // [102] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b13_from___b14 - jmp __b7 - // printf_number_buffer::@7 - __b7: - // [103] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy - iny - // [104] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - __b13_from___b14: - __b13_from___b7: - // [104] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy - jmp __b13 - // printf_number_buffer::@13 - __b13: - // [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy - txa - sty.z $ff - sec - sbc.z $ff - sta.z padding - // [106] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 - lda.z padding - cmp #0 - bpl __b21_from___b13 - // [108] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] - __b1_from_printf_number_buffer: - __b1_from___b13: - // [108] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 - lda #0 - sta.z padding + // eorfill +// EOR fill from the line buffer onto the canvas +// eorfill(byte* zp($1f) canvas) +eorfill: { + .label canvas = $1f + .label line_column = $1c + .label fill_column = $1f + // [74] phi from eorfill to eorfill::@1 [phi:eorfill->eorfill::@1] + __b1_from_eorfill: + // [74] phi (byte*) eorfill::fill_column#2 = (byte*) eorfill::canvas#0 [phi:eorfill->eorfill::@1#0] -- register_copy + // [74] phi (byte*) eorfill::line_column#2 = (const nomodify byte*) LINE_BUFFER [phi:eorfill->eorfill::@1#1] -- pbuz1=pbuc1 + lda #LINE_BUFFER + sta.z line_column+1 + // [74] phi (byte) eorfill::x#2 = (byte) 0 [phi:eorfill->eorfill::@1#2] -- vbuxx=vbuc1 + ldx #0 jmp __b1 - // [107] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] - __b21_from___b13: - jmp __b21 - // printf_number_buffer::@21 - __b21: - // [108] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - __b1_from___b21: - // [108] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy - jmp __b1 - // printf_number_buffer::@1 + // eorfill::@1 __b1: - // [109] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - bne __b2 - jmp __b17 - // printf_number_buffer::@17 - __b17: - // [110] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __b2 - jmp __b16 - // printf_number_buffer::@16 - __b16: - // [111] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b8 - jmp __b2 - // printf_number_buffer::@8 - __b8: - // [112] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [113] call printf_padding - // [132] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - printf_padding_from___b8: - // [132] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b2 - // printf_number_buffer::@2 - __b2: - // [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b3 - jmp __b9 - // printf_number_buffer::@9 - __b9: - // [115] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuaa=vbuz1 - lda.z buffer_sign - // [116] call cputc - // [139] phi from printf_number_buffer::@9 to cputc [phi:printf_number_buffer::@9->cputc] - cputc_from___b9: - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#2 [phi:printf_number_buffer::@9->cputc#0] -- register_copy - jsr cputc - jmp __b3 - // printf_number_buffer::@3 - __b3: - // [117] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - beq __b4 - jmp __b18 - // printf_number_buffer::@18 - __b18: - // [118] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b10 - jmp __b4 - // printf_number_buffer::@10 - __b10: - // [119] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [120] call printf_padding - // [132] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - printf_padding_from___b10: - // [132] phi (byte) printf_padding::pad#5 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 - lda #'0' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b4 - // printf_number_buffer::@4 - __b4: - // [121] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_upper_case - beq __b5_from___b4 - // [122] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] - __b11_from___b4: - jmp __b11 - // printf_number_buffer::@11 - __b11: - // [123] call strupr - // [204] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] - strupr_from___b11: - jsr strupr - // [124] phi from printf_number_buffer::@11 printf_number_buffer::@4 to printf_number_buffer::@5 [phi:printf_number_buffer::@11/printf_number_buffer::@4->printf_number_buffer::@5] - __b5_from___b11: - __b5_from___b4: - jmp __b5 - // printf_number_buffer::@5 - __b5: - // [125] call cputs - // [196] phi from printf_number_buffer::@5 to cputs [phi:printf_number_buffer::@5->cputs] - cputs_from___b5: - // [196] phi (to_nomodify byte*) cputs::s#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->cputs#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z cputs.s+1 - jsr cputs - jmp __b15 - // printf_number_buffer::@15 - __b15: - // [126] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - beq __breturn - jmp __b20 - // printf_number_buffer::@20 - __b20: - // [127] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __breturn - jmp __b19 - // printf_number_buffer::@19 - __b19: - // [128] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b12 - jmp __breturn - // printf_number_buffer::@12 - __b12: - // [129] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [130] call printf_padding - // [132] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - printf_padding_from___b12: - // [132] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy - jsr printf_padding - jmp __breturn - // printf_number_buffer::@return - __breturn: - // [131] return - rts -} - // printf_padding -// Print a padding char a number of times -// printf_padding(byte zp($12) pad, byte zp($11) length) -printf_padding: { - .label i = $1c - .label length = $11 - .label pad = $12 - // [133] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - __b1_from_printf_padding: - // [133] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z i - jmp __b1 - // printf_padding::@1 - __b1: - // [134] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 - lda.z i - cmp.z length + // [75] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 -- vbuxx_lt_vbuc1_then_la1 + cpx #$10 bcc __b2 jmp __breturn - // printf_padding::@return + // eorfill::@return __breturn: - // [135] return + // [76] return rts - // printf_padding::@2 + // eorfill::@2 __b2: - // [136] (byte) cputc::c#1 ← (byte) printf_padding::pad#5 -- vbuaa=vbuz1 - lda.z pad - // [137] call cputc - // [139] phi from printf_padding::@2 to cputc [phi:printf_padding::@2->cputc] - cputc_from___b2: - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#1 [phi:printf_padding::@2->cputc#0] -- register_copy - jsr cputc - jmp __b3 - // printf_padding::@3 - __b3: - // [138] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [133] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] - __b1_from___b3: - // [133] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy - jmp __b1 -} - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) -cputc: { - // [140] if((byte) cputc::c#3==(byte) ' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 - cmp #'\n' - beq __b1_from_cputc - jmp __b2 - // cputc::@2 - __b2: - // [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 -- _deref_pbuz1=vbuaa + // [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) -- vbuaa=_deref_pbuz1 ldy #0 - sta (conio_cursor_text),y - // [142] (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text -- pbuz1=_inc_pbuz1 - inc.z conio_cursor_text - bne !+ - inc.z conio_cursor_text+1 - !: - // [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor -- _deref_pbuz1=vbuz2 - lda.z conio_textcolor + lda (line_column),y + // [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 -- _deref_pbuz1=vbuaa ldy #0 - sta (conio_cursor_color),y - // [144] (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color -- pbuz1=_inc_pbuz1 - inc.z conio_cursor_color - bne !+ - inc.z conio_cursor_color+1 - !: - // [145] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_x - // [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 - lda #$28 - cmp.z conio_cursor_x - bne __breturn - jmp __b3 - // cputc::@3 - __b3: - // [147] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_cursor_x - // [148] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_y - // [149] call cscroll - jsr cscroll - jmp __breturn - // cputc::@return - __breturn: - // [150] return - rts - // [151] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] - __b1_from_cputc: - jmp __b1 - // cputc::@1 - __b1: - // [152] call cputln - jsr cputln - jmp __breturn -} - // cputln -// Print a newline -cputln: { - .label __1 = $15 - .label __2 = $17 - .label ln_offset = $28 - // [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x -- vwuz1=vbuc1_minus_vbuz2 - sec - lda #$28 - sbc.z conio_cursor_x - sta.z ln_offset - lda #0 - sbc #0 - sta.z ln_offset+1 - // [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 -- pbuz1=pbuz1_plus_vwuz2 - lda.z __1 - clc - adc.z ln_offset - sta.z __1 - lda.z __1+1 - adc.z ln_offset+1 - sta.z __1+1 - // [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 - // [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 -- pbuz1=pbuz1_plus_vwuz2 - lda.z __2 - clc - adc.z ln_offset - sta.z __2 - lda.z __2+1 - adc.z ln_offset+1 - sta.z __2+1 - // [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 - // [158] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_cursor_x - // [159] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_y - // [160] call cscroll - jsr cscroll - jmp __breturn - // cputln::@return - __breturn: - // [161] return - rts -} - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - .label __7 = $15 - .label __8 = $17 - // [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 - lda #$19 - cmp.z conio_cursor_y - bne __breturn - // [163] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] - __b1_from_cscroll: - jmp __b1 - // cscroll::@1 - __b1: - // [164] call memcpy - // [186] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - memcpy_from___b1: - // [186] phi (void*) memcpy::destination#2 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT - sta.z memcpy.destination+1 - // [186] phi (void*) memcpy::source#2 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT+$28 - sta.z memcpy.source+1 - jsr memcpy - // [165] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] - __b2_from___b1: - jmp __b2 - // cscroll::@2 - __b2: - // [166] call memcpy - // [186] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - memcpy_from___b2: - // [186] phi (void*) memcpy::destination#2 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS - sta.z memcpy.destination+1 - // [186] phi (void*) memcpy::source#2 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS+$28 - sta.z memcpy.source+1 - jsr memcpy - // [167] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] + sta (fill_column),y + // [79] phi from eorfill::@2 to eorfill::@3 [phi:eorfill::@2->eorfill::@3] __b3_from___b2: + // [79] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#0 [phi:eorfill::@2->eorfill::@3#0] -- register_copy + // [79] phi (byte) eorfill::y#2 = (byte) 1 [phi:eorfill::@2->eorfill::@3#1] -- vbuyy=vbuc1 + ldy #1 jmp __b3 - // cscroll::@3 + // eorfill::@3 __b3: - // [168] call memset - // [177] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] - memset_from___b3: - // [177] phi (byte) memset::c#8 = (byte) ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 - ldx #' ' - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT+$19*$28-$28 - sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (byte) $28 [phi:cscroll::@3->memset#2] -- vwuz1=vbuc1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - jmp __b4 - // cscroll::@4 - __b4: - // [169] (byte) memset::c#1 ← (byte) conio_textcolor -- vbuxx=vbuz1 - ldx.z conio_textcolor - // [170] call memset - // [177] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] - memset_from___b4: - // [177] phi (byte) memset::c#8 = (byte) memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS+$19*$28-$28 - sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (byte) $28 [phi:cscroll::@4->memset#2] -- vwuz1=vbuc1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset + // [80] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -- vbuyy_lt_vbuc1_then_la1 + cpy #$10*8 + bcc __b4 jmp __b5 - // cscroll::@5 + // eorfill::@5 __b5: - // [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 - lda.z __7 + // [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 + lda #$10*8 + clc + adc.z line_column + sta.z line_column + bcc !+ + inc.z line_column+1 + !: + // [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 + lda #$10*8 + clc + adc.z fill_column + sta.z fill_column + bcc !+ + inc.z fill_column+1 + !: + // [83] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 -- vbuxx=_inc_vbuxx + inx + // [74] phi from eorfill::@5 to eorfill::@1 [phi:eorfill::@5->eorfill::@1] + __b1_from___b5: + // [74] phi (byte*) eorfill::fill_column#2 = (byte*) eorfill::fill_column#1 [phi:eorfill::@5->eorfill::@1#0] -- register_copy + // [74] phi (byte*) eorfill::line_column#2 = (byte*) eorfill::line_column#1 [phi:eorfill::@5->eorfill::@1#1] -- register_copy + // [74] phi (byte) eorfill::x#2 = (byte) eorfill::x#1 [phi:eorfill::@5->eorfill::@1#2] -- register_copy + jmp __b1 + // eorfill::@4 + __b4: + // [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) -- vbuaa=vbuaa_bxor_pbuz1_derefidx_vbuyy + eor (line_column),y + // [85] *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 -- pbuz1_derefidx_vbuyy=vbuaa + sta (fill_column),y + // [86] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 -- vbuyy=_inc_vbuyy + iny + // [79] phi from eorfill::@4 to eorfill::@3 [phi:eorfill::@4->eorfill::@3] + __b3_from___b4: + // [79] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#1 [phi:eorfill::@4->eorfill::@3#0] -- register_copy + // [79] phi (byte) eorfill::y#2 = (byte) eorfill::y#1 [phi:eorfill::@4->eorfill::@3#1] -- register_copy + jmp __b3 +} + // line +// Draw a EOR friendly line between two points +// Uses bresenham line drawing routine +// line(byte zp($f) x1, byte zp($10) y1, byte zp($c) x2, byte zp($d) y2) +line: { + .label plot2___1 = $1e + .label plot5___1 = $27 + .label x1 = $f + .label y1 = $10 + .label x2 = $c + .label y2 = $d + .label x = $f + .label y = $10 + .label dx = $17 + .label dy = $18 + .label sx = $19 + .label sy = $1a + .label plot1_column = $21 + .label plot2_y = $1b + .label plot2_column = $1c + .label plot3_column = $1f + .label e1 = $e + .label plot4_column = $23 + .label plot5_column = $25 + .label plot6_column = $28 + // [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z x2 sec - sbc #<$28 - sta.z __7 - lda.z __7+1 - sbc #>$28 - sta.z __7+1 - // [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 - // [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 - lda.z __8 + sbc.z x + // [89] call abs_u8 + // [175] phi from line to abs_u8 [phi:line->abs_u8] + abs_u8_from_line: + // [175] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#0 [phi:line->abs_u8#0] -- register_copy + jsr abs_u8 + // [90] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 + jmp __b19 + // line::@19 + __b19: + // [91] (byte) line::dx#0 ← (byte) abs_u8::return#0 -- vbuz1=vbuaa + sta.z dx + // [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z y2 sec - sbc #<$28 - sta.z __8 - lda.z __8+1 - sbc #>$28 - sta.z __8+1 - // [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 - // [175] (byte) conio_cursor_y ← -- (byte) conio_cursor_y -- vbuz1=_dec_vbuz1 - dec.z conio_cursor_y + sbc.z y + // [93] call abs_u8 + // [175] phi from line::@19 to abs_u8 [phi:line::@19->abs_u8] + abs_u8_from___b19: + // [175] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#1 [phi:line::@19->abs_u8#0] -- register_copy + jsr abs_u8 + // [94] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 + jmp __b20 + // line::@20 + __b20: + // [95] (byte) line::dy#0 ← (byte) abs_u8::return#1 -- vbuz1=vbuaa + sta.z dy + // [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z x2 + sec + sbc.z x + // [97] call sgn_u8 + // [169] phi from line::@20 to sgn_u8 [phi:line::@20->sgn_u8] + sgn_u8_from___b20: + // [169] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#0 [phi:line::@20->sgn_u8#0] -- register_copy + jsr sgn_u8 + // [98] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 + jmp __b21 + // line::@21 + __b21: + // [99] (byte) line::sx#0 ← (byte) sgn_u8::return#0 -- vbuz1=vbuaa + sta.z sx + // [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z y2 + sec + sbc.z y + // [101] call sgn_u8 + // [169] phi from line::@21 to sgn_u8 [phi:line::@21->sgn_u8] + sgn_u8_from___b21: + // [169] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#1 [phi:line::@21->sgn_u8#0] -- register_copy + jsr sgn_u8 + // [102] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 + jmp __b22 + // line::@22 + __b22: + // [103] (byte) line::sy#0 ← (byte) sgn_u8::return#1 -- vbuz1=vbuaa + sta.z sy + // [104] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z sx + bne __b1_from___b22 + jmp __b3 + // line::@3 + __b3: + // [105] (byte) line::y#1 ← ++ (byte) line::y#0 -- vbuz1=_inc_vbuz1 + inc.z y + // [106] (byte) line::y2#3 ← ++ (byte) line::y2#10 -- vbuz1=_inc_vbuz1 + inc.z y2 + // [107] phi from line::@22 line::@3 to line::@1 [phi:line::@22/line::@3->line::@1] + __b1_from___b22: + __b1_from___b3: + // [107] phi (byte) line::y2#13 = (byte) line::y2#10 [phi:line::@22/line::@3->line::@1#0] -- register_copy + // [107] phi (byte) line::y#17 = (byte) line::y#0 [phi:line::@22/line::@3->line::@1#1] -- register_copy + jmp __b1 + // line::@1 + __b1: + // [108] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -- vbuz1_gt_vbuz2_then_la1 + lda.z dy + cmp.z dx + bcc __b2 + jmp __b4 + // line::@4 + __b4: + // [109] if((byte) line::sx#0==(byte) line::sy#0) goto line::plot1 -- vbuz1_eq_vbuz2_then_la1 + // Steep slope - Y is the driver - only plot one plot per X + lda.z sx + cmp.z sy + beq plot1 + jmp __b5 + // line::@5 + __b5: + // [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 + lda.z dy + lsr + tax + // [111] phi from line::@5 line::@7 to line::@6 [phi:line::@5/line::@7->line::@6] + __b6_from___b5: + __b6_from___b7: + // [111] phi (byte) line::x#15 = (byte) line::x#0 [phi:line::@5/line::@7->line::@6#0] -- register_copy + // [111] phi (byte) line::e#3 = (byte) line::e#0 [phi:line::@5/line::@7->line::@6#1] -- register_copy + // [111] phi (byte) line::y#7 = (byte) line::y#17 [phi:line::@5/line::@7->line::@6#2] -- register_copy + jmp __b6 + // line::@6 + __b6: + // [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 -- vbuxx=vbuxx_plus_vbuz1 + txa + clc + adc.z dx + tax + // [114] if((byte) line::e#1<=(byte) line::dy#0) goto line::@7 -- vbuxx_le_vbuz1_then_la1 + lda.z dy + stx.z $ff + cmp.z $ff + bcs __b7_from___b6 + jmp __b8 + // line::@8 + __b8: + // [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z y + sec + sbc.z sy + sta.z plot2_y + jmp plot2 + // line::plot2 + plot2: + // [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot2_column + lda plot_column+1,y + sta.z plot2_column+1 + // [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot2___1 + // [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z plot2_y + lda (plot2_column),y + ldy.z plot2___1 + ora plot_bit,y + ldy.z plot2_y + sta (plot2_column),y + jmp __b16 + // line::@16 + __b16: + // [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 -- vbuxx=vbuxx_minus_vbuz1 + txa + sec + sbc.z dy + tax + // [123] phi from line::@16 line::@6 to line::@7 [phi:line::@16/line::@6->line::@7] + __b7_from___b16: + __b7_from___b6: + // [123] phi (byte) line::x#17 = (byte) line::x#1 [phi:line::@16/line::@6->line::@7#0] -- register_copy + // [123] phi (byte) line::e#5 = (byte) line::e#2 [phi:line::@16/line::@6->line::@7#1] -- register_copy + jmp __b7 + // line::@7 + __b7: + // [124] if((byte) line::y#10!=(byte) line::y2#13) goto line::@6 -- vbuz1_neq_vbuz2_then_la1 + lda.z y + cmp.z y2 + bne __b6_from___b7 + jmp plot3 + // line::plot3 + plot3: + // [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot3_column + lda plot_column+1,y + sta.z plot3_column+1 + // [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot3_column),y + ora plot_bit,x + ldy.z y + sta (plot3_column),y jmp __breturn - // cscroll::@return + // line::@return __breturn: - // [176] return + // [130] return + rts + // line::plot1 + plot1: + // [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot1_column + lda plot_column+1,y + sta.z plot1_column+1 + // [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot1_column),y + ora plot_bit,x + ldy.z y + sta (plot1_column),y + jmp __b15 + // line::@15 + __b15: + // [136] if((byte) line::dx#0!=(byte) 0) goto line::@9 -- vbuz1_neq_0_then_la1 + lda.z dx + cmp #0 + bne __b9 + jmp __breturn + // line::@9 + __b9: + // [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 + lda.z dy + lsr + sta.z e1 + // [138] phi from line::@10 line::@17 line::@9 to line::@10 [phi:line::@10/line::@17/line::@9->line::@10] + __b10_from___b10: + __b10_from___b17: + __b10_from___b9: + // [138] phi (byte) line::x#18 = (byte) line::x#18 [phi:line::@10/line::@17/line::@9->line::@10#0] -- register_copy + // [138] phi (byte) line::e1#3 = (byte) line::e1#1 [phi:line::@10/line::@17/line::@9->line::@10#1] -- register_copy + // [138] phi (byte) line::y#11 = (byte) line::y#12 [phi:line::@10/line::@17/line::@9->line::@10#2] -- register_copy + jmp __b10 + // line::@10 + __b10: + // [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z e1 + clc + adc.z dx + sta.z e1 + // [141] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@10 -- vbuz1_le_vbuz2_then_la1 + lda.z dy + cmp.z e1 + bcs __b10_from___b10 + jmp __b11 + // line::@11 + __b11: + // [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 -- vbuz1=vbuz1_minus_vbuz2 + lda.z e1 + sec + sbc.z dy + sta.z e1 + jmp plot4 + // line::plot4 + plot4: + // [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot4_column + lda plot_column+1,y + sta.z plot4_column+1 + // [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot4_column),y + ora plot_bit,x + ldy.z y + sta (plot4_column),y + jmp __b17 + // line::@17 + __b17: + // [149] if((byte) line::x#19!=(byte) line::x2#15) goto line::@10 -- vbuz1_neq_vbuz2_then_la1 + lda.z x + cmp.z x2 + bne __b10_from___b17 + jmp __breturn + // line::@2 + __b2: + // [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 + lda.z dx + lsr + tax + // [151] phi from line::@13 line::@2 to line::@12 [phi:line::@13/line::@2->line::@12] + __b12_from___b13: + __b12_from___b2: + // [151] phi (byte) line::e2#3 = (byte) line::e2#7 [phi:line::@13/line::@2->line::@12#0] -- register_copy + // [151] phi (byte) line::y#13 = (byte) line::y#15 [phi:line::@13/line::@2->line::@12#1] -- register_copy + // [151] phi (byte) line::x#10 = (byte) line::x#12 [phi:line::@13/line::@2->line::@12#2] -- register_copy + jmp __b12 + // line::@12 + __b12: + jmp plot5 + // line::plot5 + plot5: + // [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot5_column + lda plot_column+1,y + sta.z plot5_column+1 + // [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot5___1 + // [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot5_column),y + ldy.z plot5___1 + ora plot_bit,y + ldy.z y + sta (plot5_column),y + jmp __b18 + // line::@18 + __b18: + // [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 -- vbuxx=vbuxx_plus_vbuz1 + txa + clc + adc.z dy + tax + // [159] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@13 -- vbuxx_le_vbuz1_then_la1 + lda.z dx + stx.z $ff + cmp.z $ff + bcs __b13_from___b18 + jmp __b14 + // line::@14 + __b14: + // [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 -- vbuxx=vbuxx_minus_vbuz1 + txa + sec + sbc.z dx + tax + // [162] phi from line::@14 line::@18 to line::@13 [phi:line::@14/line::@18->line::@13] + __b13_from___b14: + __b13_from___b18: + // [162] phi (byte) line::e2#7 = (byte) line::e2#2 [phi:line::@14/line::@18->line::@13#0] -- register_copy + // [162] phi (byte) line::y#15 = (byte) line::y#4 [phi:line::@14/line::@18->line::@13#1] -- register_copy + jmp __b13 + // line::@13 + __b13: + // [163] if((byte) line::x#12!=(byte) line::x2#15) goto line::@12 -- vbuz1_neq_vbuz2_then_la1 + lda.z x + cmp.z x2 + bne __b12_from___b13 + jmp plot6 + // line::plot6 + plot6: + // [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot6_column + lda plot_column+1,y + sta.z plot6_column+1 + // [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot6_column),y + ora plot_bit,x + ldy.z y + sta (plot6_column),y + jmp __breturn +} + // sgn_u8 +// Get the sign of a 8-bit unsigned number treated as a signed number. +// Returns unsigned -1 if the number is negative +// sgn_u8(byte register(A) u) +sgn_u8: { + // [170] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -- vbuaa=vbuaa_band_vbuc1 + and #$80 + // [171] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b1_from_sgn_u8 + // [173] phi from sgn_u8 to sgn_u8::@return [phi:sgn_u8->sgn_u8::@return] + __breturn_from_sgn_u8: + // [173] phi (byte) sgn_u8::return#4 = (byte) 1 [phi:sgn_u8->sgn_u8::@return#0] -- vbuaa=vbuc1 + lda #1 + jmp __breturn + // [172] phi from sgn_u8 to sgn_u8::@1 [phi:sgn_u8->sgn_u8::@1] + __b1_from_sgn_u8: + jmp __b1 + // sgn_u8::@1 + __b1: + // [173] phi from sgn_u8::@1 to sgn_u8::@return [phi:sgn_u8::@1->sgn_u8::@return] + __breturn_from___b1: + // [173] phi (byte) sgn_u8::return#4 = (byte) -1 [phi:sgn_u8::@1->sgn_u8::@return#0] -- vbuaa=vbuc1 + lda #-1 + jmp __breturn + // sgn_u8::@return + __breturn: + // [174] return + rts +} + // abs_u8 +// Get the absolute value of a u-bit unsigned number treated as a signed number. +// abs_u8(byte register(A) u) +abs_u8: { + // [176] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 -- vbuxx=vbuaa_band_vbuc1 + ldx #$80 + axs #0 + // [177] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -- vbuc1_neq_vbuxx_then_la1 + cpx #0 + bne __b1 + // [179] phi from abs_u8 abs_u8::@1 to abs_u8::@return [phi:abs_u8/abs_u8::@1->abs_u8::@return] + __breturn_from_abs_u8: + __breturn_from___b1: + // [179] phi (byte) abs_u8::return#4 = (byte) abs_u8::u#2 [phi:abs_u8/abs_u8::@1->abs_u8::@return#0] -- register_copy + jmp __breturn + // abs_u8::@1 + __b1: + // [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 -- vbuaa=_neg_vbuaa + eor #$ff + clc + adc #1 + jmp __breturn_from___b1 + // abs_u8::@return + __breturn: + // [180] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($31) str, byte register(X) c, word zp($28) num) +// memset(void* zp($1f) str, byte register(X) c, word zp($1c) num) memset: { - .label end = $28 - .label dst = $31 - .label num = $28 - .label str = $31 - // [178] if((word) memset::num#6<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + .label end = $1c + .label dst = $1f + .label num = $1c + .label str = $1f + // [182] if((word) memset::num#4<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -12555,7 +7345,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 -- pbuz1=pbuz2_plus_vwuz1 + // [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -12563,15 +7353,15 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 - // [181] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 + // [185] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [181] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [185] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -12581,1227 +7371,33 @@ memset: { jmp __breturn // memset::@return __breturn: - // [183] return + // [187] return rts // memset::@3 __b3: - // [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 -- _deref_pbuz1=vbuxx + // [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y - // [185] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [189] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: jmp __b2_from___b3 -} - // 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. -// memcpy(void* zp($31) destination, void* zp($28) source) -memcpy: { - .label src_end = $2b - .label dst = $31 - .label src = $28 - .label source = $28 - .label destination = $31 - // [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $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 - // [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 - // [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 - // [190] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] - __b1_from_memcpy: - __b1_from___b2: - // [190] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy - // [190] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy - jmp __b1 - // memcpy::@1 - __b1: - // [191] if((byte*) memcpy::src#2!=(byte*) 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: - // [192] return - rts - // memcpy::@2 - __b2: - // [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 - ldy #0 - lda (src),y - ldy #0 - sta (dst),y - // [194] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 - inc.z dst - bne !+ - inc.z dst+1 - !: - // [195] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 - inc.z src - bne !+ - inc.z src+1 - !: - jmp __b1_from___b2 -} - // cputs -// Output a NUL-terminated string at the current cursor position -// cputs(byte* zp($2e) s) -cputs: { - .label s = $2e - // [197] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] - __b1_from_cputs: - __b1_from___b2: - // [197] phi (to_nomodify byte*) cputs::s#4 = (to_nomodify byte*) cputs::s#5 [phi:cputs/cputs::@2->cputs::@1#0] -- register_copy - jmp __b1 - // cputs::@1 - __b1: - // [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // [199] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [200] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - jmp __breturn - // cputs::@return - __breturn: - // [201] return - rts - // cputs::@2 - __b2: - // [202] (byte) cputc::c#0 ← (byte) cputs::c#1 - // [203] call cputc - // [139] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] - cputc_from___b2: - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy - jsr cputc - jmp __b1_from___b2 -} - // strupr -// Converts a string to uppercase. -strupr: { - .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - .label src = $2e - // [205] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] - __b1_from_strupr: - // [205] phi (byte*) strupr::src#2 = (const byte*) strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 - lda #str - sta.z src+1 - jmp __b1 - // strupr::@1 - __b1: - // [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (src),y - cmp #0 - bne __b2 - jmp __breturn - // strupr::@return - __breturn: - // [207] return - rts - // strupr::@2 - __b2: - // [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (src),y - // [209] call toupper - jsr toupper - // [210] (byte) toupper::return#3 ← (byte) toupper::return#2 - jmp __b3 - // strupr::@3 - __b3: - // [211] (byte~) strupr::$0 ← (byte) toupper::return#3 - // [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuaa - ldy #0 - sta (src),y - // [213] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 - inc.z src - bne !+ - inc.z src+1 - !: - // [205] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] - __b1_from___b3: - // [205] phi (byte*) strupr::src#2 = (byte*) strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy - jmp __b1 -} - // toupper -// Convert lowercase alphabet to uppercase -// Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte register(A) ch) -toupper: { - // [214] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 - cmp #'a' - bcc __breturn_from_toupper - jmp __b2 - // toupper::@2 - __b2: - // [215] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 - cmp #'z' - bcc __b1 - beq __b1 - // [217] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - __breturn_from_toupper: - __breturn_from___b1: - __breturn_from___b2: - // [217] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy - jmp __breturn - // toupper::@1 - __b1: - // [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuaa=vbuaa_plus_vbuc1 - clc - adc #'A'-'a' - jmp __breturn_from___b1 - // toupper::@return - __breturn: - // [218] return - rts -} - // strlen -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($28) str) -strlen: { - .label len = $31 - .label str = $28 - .label return = $31 - // [220] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - __b1_from_strlen: - // [220] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z len - lda #>0 - sta.z len+1 - // [220] phi (byte*) strlen::str#2 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z str+1 - jmp __b1 - // strlen::@1 - __b1: - // [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - jmp __breturn - // strlen::@return - __breturn: - // [222] return - rts - // strlen::@2 - __b2: - // [223] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 - inc.z len - bne !+ - inc.z len+1 - !: - // [224] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [220] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - __b1_from___b2: - // [220] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [220] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy - jmp __b1 -} - // ultoa -// 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) -// ultoa(dword zp($b) value, byte* zp($28) buffer) -ultoa: { - .const max_digits = $a - .label digit_value = $20 - .label buffer = $28 - .label digit = $1d - .label value = $b - // [226] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] - __b1_from_ultoa: - // [226] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [226] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 - ldx #0 - // [226] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [226] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // ultoa::@1 - __b1: - // [227] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #max_digits-1 - bcc __b2 - jmp __b3 - // ultoa::@3 - __b3: - // [228] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuaa=_byte_vduz1 - lda.z value - // [229] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa - tay - lda DIGITS,y - ldy #0 - sta (buffer),y - // [230] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [231] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // ultoa::@return - __breturn: - // [232] return - rts - // ultoa::@2 - __b2: - // [233] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 - lda.z digit - asl - asl - // [234] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuaa - tay - lda RADIX_DECIMAL_VALUES_LONG,y - sta.z digit_value - lda RADIX_DECIMAL_VALUES_LONG+1,y - sta.z digit_value+1 - lda RADIX_DECIMAL_VALUES_LONG+2,y - sta.z digit_value+2 - lda RADIX_DECIMAL_VALUES_LONG+3,y - sta.z digit_value+3 - // [235] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuxx_then_la1 - cpx #0 - bne __b5 - jmp __b7 - // ultoa::@7 - __b7: - // [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 - lda.z value+3 - cmp.z digit_value+3 - bcc !+ - bne __b5 - lda.z value+2 - cmp.z digit_value+2 - bcc !+ - bne __b5 - lda.z value+1 - cmp.z digit_value+1 - bcc !+ - bne __b5 - lda.z value - cmp.z digit_value - bcs __b5 - !: - // [237] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] - __b4_from___b7: - // [237] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [237] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [237] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy - jmp __b4 - // ultoa::@4 - __b4: - // [238] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [226] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] - __b1_from___b4: - // [226] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [226] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [226] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [226] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy - jmp __b1 - // ultoa::@5 - __b5: - // [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - // [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - // [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - // [242] call ultoa_append - // [246] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] - ultoa_append_from___b5: - jsr ultoa_append - // [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 - jmp __b6 - // ultoa::@6 - __b6: - // [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - // [245] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [237] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] - __b4_from___b6: - // [237] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [237] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 - ldx #1 - // [237] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy - jmp __b4 -} - // ultoa_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. -// ultoa_append(byte* zp($28) buffer, dword zp($b) value, dword zp($20) sub) -ultoa_append: { - .label buffer = $28 - .label value = $b - .label sub = $20 - .label return = $b - // [247] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] - __b1_from_ultoa_append: - // [247] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [247] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy - jmp __b1 - // ultoa_append::@1 - __b1: - // [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 - lda.z value+3 - cmp.z sub+3 - bcc !+ - bne __b2 - lda.z value+2 - cmp.z sub+2 - bcc !+ - bne __b2 - lda.z value+1 - cmp.z sub+1 - bcc !+ - bne __b2 - lda.z value - cmp.z sub - bcs __b2 - !: - jmp __b3 - // ultoa_append::@3 - __b3: - // [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx - lda DIGITS,x - ldy #0 - sta (buffer),y - jmp __breturn - // ultoa_append::@return - __breturn: - // [250] return - rts - // ultoa_append::@2 - __b2: - // [251] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuxx=_inc_vbuxx - inx - // [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 - lda.z value - sec - sbc.z sub - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - lda.z value+2 - sbc.z sub+2 - sta.z value+2 - lda.z value+3 - sbc.z sub+3 - sta.z value+3 - // [247] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] - __b1_from___b2: - // [247] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [247] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) -printf_uchar: { - .const format_min_length = 2 - .const format_justify_left = 0 - .const format_zero_padding = 1 - .const format_upper_case = 0 - jmp __b1 - // printf_uchar::@1 - __b1: - // [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [255] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#0 - // [256] call uctoa - // Format number into buffer - // [260] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - uctoa_from___b1: - jsr uctoa - jmp __b2 - // printf_uchar::@2 - __b2: - // [257] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [258] call printf_number_buffer - // Print using format - // [95] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [95] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uchar::format_upper_case#0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [95] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [95] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uchar::format_zero_padding#0 [phi:printf_uchar::@2->printf_number_buffer#2] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [95] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uchar::format_justify_left#0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [95] phi (byte) printf_number_buffer::format_min_length#2 = (const byte) printf_uchar::format_min_length#0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuxx=vbuc1 - ldx #format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_uchar::@return - __breturn: - // [259] return - rts -} - // uctoa -// 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) -// uctoa(byte register(X) value, byte* zp($31) buffer) -uctoa: { - .const max_digits = 2 - .label digit_value = $24 - .label buffer = $31 - .label digit = $1e - .label started = $1f - // [261] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - __b1_from_uctoa: - // [261] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [261] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [261] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [261] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // uctoa::@1 - __b1: - // [262] if((byte) uctoa::digit#2<(const byte) uctoa::max_digits#2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #max_digits-1 - bcc __b2 - jmp __b3 - // uctoa::@3 - __b3: - // [263] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx - lda DIGITS,x - ldy #0 - sta (buffer),y - // [264] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [265] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa::@return - __breturn: - // [266] return - rts - // uctoa::@2 - __b2: - // [267] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda RADIX_HEXADECIMAL_VALUES_CHAR,y - sta.z digit_value - // [268] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // uctoa::@7 - __b7: - // [269] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuxx_ge_vbuz1_then_la1 - cpx.z digit_value - bcs __b5 - // [270] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - __b4_from___b7: - // [270] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [270] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [270] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - jmp __b4 - // uctoa::@4 - __b4: - // [271] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [261] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] - __b1_from___b4: - // [261] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [261] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [261] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [261] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [273] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [274] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - // [275] call uctoa_append - // [279] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - uctoa_append_from___b5: - jsr uctoa_append - // [276] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - jmp __b6 - // uctoa::@6 - __b6: - // [277] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // [278] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [270] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - __b4_from___b6: - // [270] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [270] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [270] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_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. -// uctoa_append(byte* zp($31) buffer, byte register(X) value, byte zp($24) sub) -uctoa_append: { - .label buffer = $31 - .label sub = $24 - // [280] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - __b1_from_uctoa_append: - // [280] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [280] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy - jmp __b1 - // uctoa_append::@1 - __b1: - // [281] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuxx_ge_vbuz1_then_la1 - cpx.z sub - bcs __b2 - jmp __b3 - // uctoa_append::@3 - __b3: - // [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuyy - lda DIGITS,y - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa_append::@return - __breturn: - // [283] return - rts - // uctoa_append::@2 - __b2: - // [284] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy - iny - // [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuxx=vbuxx_minus_vbuz1 - txa - sec - sbc.z sub - tax - // [280] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - __b1_from___b2: - // [280] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [280] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // gotoxy -// Set the cursor to the specified position -gotoxy: { - .const x = 0 - .const y = $18 - .const offset = y*$28 - jmp __b1 - // gotoxy::@1 - __b1: - // [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 -- vbuz1=vbuc1 - lda #x - sta.z conio_cursor_x - // [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 -- vbuz1=vbuc1 - lda #y - sta.z conio_cursor_y - // [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 -- pbuz1=pbuc1 - lda #CONIO_SCREEN_TEXT+offset - sta.z conio_cursor_text+1 - // [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 -- pbuz1=pbuc1 - lda #CONIO_SCREEN_COLORS+offset - sta.z conio_cursor_color+1 - jmp __breturn - // gotoxy::@return - __breturn: - // [291] return - rts -} - // clock -// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). -// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() -clock: { - .label return = $b - // [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) -- vduz1=vduc1_minus__deref_pduc2 - lda #<$ffffffff - sec - sbc CIA2_TIMER_AB - sta.z return - lda #>$ffffffff - sbc CIA2_TIMER_AB+1 - sta.z return+1 - lda #<$ffffffff>>$10 - sbc CIA2_TIMER_AB+2 - sta.z return+2 - lda #>$ffffffff>>$10 - sbc CIA2_TIMER_AB+3 - sta.z return+3 - jmp __breturn - // clock::@return - __breturn: - // [293] return - rts -} - // eorfill -// EOR fill from the line buffer onto the canvas -// eorfill(byte* zp($17) canvas) -eorfill: { - .label canvas = $17 - .label line_column = $15 - .label fill_column = $17 - // [295] phi from eorfill to eorfill::@1 [phi:eorfill->eorfill::@1] - __b1_from_eorfill: - // [295] phi (byte*) eorfill::fill_column#5 = (byte*) eorfill::canvas#0 [phi:eorfill->eorfill::@1#0] -- register_copy - // [295] phi (byte*) eorfill::line_column#2 = (const nomodify byte*) LINE_BUFFER [phi:eorfill->eorfill::@1#1] -- pbuz1=pbuc1 - lda #LINE_BUFFER - sta.z line_column+1 - // [295] phi (byte) eorfill::x#2 = (byte) 0 [phi:eorfill->eorfill::@1#2] -- vbuxx=vbuc1 - ldx #0 - jmp __b1 - // eorfill::@1 - __b1: - // [296] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 -- vbuxx_lt_vbuc1_then_la1 - cpx #$10 - bcc __b2 - jmp __breturn - // eorfill::@return - __breturn: - // [297] return - rts - // eorfill::@2 - __b2: - // [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (line_column),y - // [299] phi from eorfill::@2 to eorfill::@3 [phi:eorfill::@2->eorfill::@3] - __b3_from___b2: - // [299] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#0 [phi:eorfill::@2->eorfill::@3#0] -- register_copy - // [299] phi (byte) eorfill::y#2 = (byte) 1 [phi:eorfill::@2->eorfill::@3#1] -- vbuyy=vbuc1 - ldy #1 - jmp __b3 - // eorfill::@3 - __b3: - // [300] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -- vbuyy_lt_vbuc1_then_la1 - cpy #$10*8 - bcc __b4 - jmp __b5 - // eorfill::@5 - __b5: - // [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 - lda #$10*8 - clc - adc.z line_column - sta.z line_column - bcc !+ - inc.z line_column+1 - !: - // [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 - lda #$10*8 - clc - adc.z fill_column - sta.z fill_column - bcc !+ - inc.z fill_column+1 - !: - // [303] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 -- vbuxx=_inc_vbuxx - inx - // [295] phi from eorfill::@5 to eorfill::@1 [phi:eorfill::@5->eorfill::@1] - __b1_from___b5: - // [295] phi (byte*) eorfill::fill_column#5 = (byte*) eorfill::fill_column#1 [phi:eorfill::@5->eorfill::@1#0] -- register_copy - // [295] phi (byte*) eorfill::line_column#2 = (byte*) eorfill::line_column#1 [phi:eorfill::@5->eorfill::@1#1] -- register_copy - // [295] phi (byte) eorfill::x#2 = (byte) eorfill::x#1 [phi:eorfill::@5->eorfill::@1#2] -- register_copy - jmp __b1 - // eorfill::@4 - __b4: - // [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) -- vbuaa=vbuaa_bxor_pbuz1_derefidx_vbuyy - eor (line_column),y - // [305] *((byte*) eorfill::fill_column#5 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 -- pbuz1_derefidx_vbuyy=vbuaa - sta (fill_column),y - // [306] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 -- vbuyy=_inc_vbuyy - iny - // [299] phi from eorfill::@4 to eorfill::@3 [phi:eorfill::@4->eorfill::@3] - __b3_from___b4: - // [299] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#1 [phi:eorfill::@4->eorfill::@3#0] -- register_copy - // [299] phi (byte) eorfill::y#2 = (byte) eorfill::y#1 [phi:eorfill::@4->eorfill::@3#1] -- register_copy - jmp __b3 -} - // line -// Draw a EOR friendly line between two points -// Uses bresenham line drawing routine -// line(byte zp($11) x1, byte zp($12) y1, byte zp($f) x2, byte zp($10) y2) -line: { - .label plot1___1 = $2a - .label plot2___1 = $2d - .label plot3___1 = $30 - .label x1 = $11 - .label y1 = $12 - .label x2 = $f - .label y2 = $10 - .label x = $11 - .label y = $12 - .label dx = $24 - .label dy = $25 - .label sx = $26 - .label sy = $27 - .label plot1_column = $28 - .label plot2_x = $11 - .label plot2_column = $2b - .label plot3_column = $2e - .label plot4_column = $31 - // [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z x2 - sec - sbc.z x - // [309] call abs_u8 - // [374] phi from line to abs_u8 [phi:line->abs_u8] - abs_u8_from_line: - // [374] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#0 [phi:line->abs_u8#0] -- register_copy - jsr abs_u8 - // [310] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 - jmp __b12 - // line::@12 - __b12: - // [311] (byte) line::dx#0 ← (byte) abs_u8::return#0 -- vbuz1=vbuaa - sta.z dx - // [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z y2 - sec - sbc.z y - // [313] call abs_u8 - // [374] phi from line::@12 to abs_u8 [phi:line::@12->abs_u8] - abs_u8_from___b12: - // [374] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#1 [phi:line::@12->abs_u8#0] -- register_copy - jsr abs_u8 - // [314] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 - jmp __b13 - // line::@13 - __b13: - // [315] (byte) line::dy#0 ← (byte) abs_u8::return#1 -- vbuz1=vbuaa - sta.z dy - // [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z x2 - sec - sbc.z x - // [317] call sgn_u8 - // [368] phi from line::@13 to sgn_u8 [phi:line::@13->sgn_u8] - sgn_u8_from___b13: - // [368] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#0 [phi:line::@13->sgn_u8#0] -- register_copy - jsr sgn_u8 - // [318] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 - jmp __b14 - // line::@14 - __b14: - // [319] (byte) line::sx#0 ← (byte) sgn_u8::return#0 -- vbuz1=vbuaa - sta.z sx - // [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z y2 - sec - sbc.z y - // [321] call sgn_u8 - // [368] phi from line::@14 to sgn_u8 [phi:line::@14->sgn_u8] - sgn_u8_from___b14: - // [368] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#1 [phi:line::@14->sgn_u8#0] -- register_copy - jsr sgn_u8 - // [322] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 - jmp __b15 - // line::@15 - __b15: - // [323] (byte) line::sy#0 ← (byte) sgn_u8::return#1 -- vbuz1=vbuaa - sta.z sy - // [324] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -- vbuz1_neq_vbuc1_then_la1 - lda #$ff - cmp.z sx - bne __b1_from___b15 - jmp __b3 - // line::@3 - __b3: - // [325] (byte) line::y#1 ← ++ (byte) line::y#0 -- vbuz1=_inc_vbuz1 - inc.z y - // [326] (byte) line::y2#3 ← ++ (byte) line::y2#10 -- vbuz1=_inc_vbuz1 - inc.z y2 - // [327] phi from line::@15 line::@3 to line::@1 [phi:line::@15/line::@3->line::@1] - __b1_from___b15: - __b1_from___b3: - // [327] phi (byte) line::y2#13 = (byte) line::y2#10 [phi:line::@15/line::@3->line::@1#0] -- register_copy - // [327] phi (byte) line::y#13 = (byte) line::y#0 [phi:line::@15/line::@3->line::@1#1] -- register_copy - jmp __b1 - // line::@1 - __b1: - // [328] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -- vbuz1_gt_vbuz2_then_la1 - lda.z dy - cmp.z dx - bcc __b2 - jmp __b4 - // line::@4 - __b4: - // [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 - lda.z dy - lsr - tax - jmp plot1 - // line::plot1 - plot1: - // [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z x - lsr - lsr - lsr - // [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot1_column - lda plot_column+1,y - sta.z plot1_column+1 - // [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot1___1 - // [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot1_column),y - ldy.z plot1___1 - ora plot_bit,y - ldy.z y - sta (plot1_column),y - // [335] phi from line::@6 line::plot1 to line::@5 [phi:line::@6/line::plot1->line::@5] - __b5_from___b6: - __b5_from_plot1: - // [335] phi (byte) line::x#10 = (byte) line::x#16 [phi:line::@6/line::plot1->line::@5#0] -- register_copy - // [335] phi (byte) line::e#3 = (byte) line::e#5 [phi:line::@6/line::plot1->line::@5#1] -- register_copy - // [335] phi (byte) line::y#6 = (byte) line::y#15 [phi:line::@6/line::plot1->line::@5#2] -- register_copy - jmp __b5 - // line::@5 - __b5: - // [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z y - clc - adc.z sy - sta.z y - // [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 -- vbuxx=vbuxx_plus_vbuz1 - txa - clc - adc.z dx - tax - // [338] if((byte) line::dy#0>=(byte) line::e#1) goto line::@6 -- vbuz1_ge_vbuxx_then_la1 - lda.z dy - stx.z $ff - cmp.z $ff - bcs __b6_from___b5 - jmp __b7 - // line::@7 - __b7: - // [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z plot2_x - clc - adc.z sx - sta.z plot2_x - // [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 -- vbuxx=vbuxx_minus_vbuz1 - txa - sec - sbc.z dy - tax - jmp plot2 - // line::plot2 - plot2: - // [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z plot2_x - lsr - lsr - lsr - // [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot2_column - lda plot_column+1,y - sta.z plot2_column+1 - // [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z plot2_x - sta.z plot2___1 - // [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot2_column),y - ldy.z plot2___1 - ora plot_bit,y - ldy.z y - sta (plot2_column),y - // [346] phi from line::@5 line::plot2 to line::@6 [phi:line::@5/line::plot2->line::@6] - __b6_from___b5: - __b6_from_plot2: - // [346] phi (byte) line::x#16 = (byte) line::x#10 [phi:line::@5/line::plot2->line::@6#0] -- register_copy - // [346] phi (byte) line::e#5 = (byte) line::e#1 [phi:line::@5/line::plot2->line::@6#1] -- register_copy - jmp __b6 - // line::@6 - __b6: - // [347] if((byte) line::y#15!=(byte) line::y2#13) goto line::@5 -- vbuz1_neq_vbuz2_then_la1 - lda.z y - cmp.z y2 - bne __b5_from___b6 - jmp __breturn - // line::@return - __breturn: - // [348] return - rts - // line::@2 - __b2: - // [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 - lda.z dx - lsr - tax - // [350] phi from line::@2 line::@9 to line::@8 [phi:line::@2/line::@9->line::@8] - __b8_from___b2: - __b8_from___b9: - // [350] phi (byte) line::e1#3 = (byte) line::e1#0 [phi:line::@2/line::@9->line::@8#0] -- register_copy - // [350] phi (byte) line::y#10 = (byte) line::y#13 [phi:line::@2/line::@9->line::@8#1] -- register_copy - // [350] phi (byte) line::x#12 = (byte) line::x#0 [phi:line::@2/line::@9->line::@8#2] -- register_copy - jmp __b8 - // line::@8 - __b8: - jmp plot3 - // line::plot3 - plot3: - // [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z x - lsr - lsr - lsr - // [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot3_column - lda plot_column+1,y - sta.z plot3_column+1 - // [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot3___1 - // [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot3_column),y - ldy.z plot3___1 - ora plot_bit,y - ldy.z y - sta (plot3_column),y - jmp __b11 - // line::@11 - __b11: - // [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z x - clc - adc.z sx - sta.z x - // [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 -- vbuxx=vbuxx_plus_vbuz1 - txa - clc - adc.z dy - tax - // [358] if((byte) line::dx#0>=(byte) line::e1#1) goto line::@9 -- vbuz1_ge_vbuxx_then_la1 - lda.z dx - stx.z $ff - cmp.z $ff - bcs __b9_from___b11 - jmp __b10 - // line::@10 - __b10: - // [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z y - clc - adc.z sy - sta.z y - // [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 -- vbuxx=vbuxx_minus_vbuz1 - txa - sec - sbc.z dx - tax - // [361] phi from line::@10 line::@11 to line::@9 [phi:line::@10/line::@11->line::@9] - __b9_from___b10: - __b9_from___b11: - // [361] phi (byte) line::e1#7 = (byte) line::e1#2 [phi:line::@10/line::@11->line::@9#0] -- register_copy - // [361] phi (byte) line::y#11 = (byte) line::y#3 [phi:line::@10/line::@11->line::@9#1] -- register_copy - jmp __b9 - // line::@9 - __b9: - // [362] if((byte) line::x#13!=(byte) line::x2#11) goto line::@8 -- vbuz1_neq_vbuz2_then_la1 - lda.z x - cmp.z x2 - bne __b8_from___b9 - jmp plot4 - // line::plot4 - plot4: - // [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z x - lsr - lsr - lsr - // [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot4_column - lda plot_column+1,y - sta.z plot4_column+1 - // [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 - lda #7 - and.z x - // [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa - ldy.z y - tax - lda (plot4_column),y - ora plot_bit,x - ldy.z y - sta (plot4_column),y - jmp __breturn -} - // sgn_u8 -// Get the sign of a 8-bit unsigned number treated as a signed number. -// Returns unsigned -1 if the number is negative -// sgn_u8(byte register(A) u) -sgn_u8: { - // [369] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -- vbuaa=vbuaa_band_vbuc1 - and #$80 - // [370] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 -- vbuc1_neq_vbuaa_then_la1 - cmp #0 - bne __b1_from_sgn_u8 - // [372] phi from sgn_u8 to sgn_u8::@return [phi:sgn_u8->sgn_u8::@return] - __breturn_from_sgn_u8: - // [372] phi (byte) sgn_u8::return#4 = (byte) 1 [phi:sgn_u8->sgn_u8::@return#0] -- vbuaa=vbuc1 - lda #1 - jmp __breturn - // [371] phi from sgn_u8 to sgn_u8::@1 [phi:sgn_u8->sgn_u8::@1] - __b1_from_sgn_u8: - jmp __b1 - // sgn_u8::@1 - __b1: - // [372] phi from sgn_u8::@1 to sgn_u8::@return [phi:sgn_u8::@1->sgn_u8::@return] - __breturn_from___b1: - // [372] phi (byte) sgn_u8::return#4 = (byte) -1 [phi:sgn_u8::@1->sgn_u8::@return#0] -- vbuaa=vbuc1 - lda #-1 - jmp __breturn - // sgn_u8::@return - __breturn: - // [373] return - rts -} - // abs_u8 -// Get the absolute value of a u-bit unsigned number treated as a signed number. -// abs_u8(byte register(A) u) -abs_u8: { - // [375] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 -- vbuxx=vbuaa_band_vbuc1 - ldx #$80 - axs #0 - // [376] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -- vbuc1_neq_vbuxx_then_la1 - cpx #0 - bne __b1 - // [378] phi from abs_u8 abs_u8::@1 to abs_u8::@return [phi:abs_u8/abs_u8::@1->abs_u8::@return] - __breturn_from_abs_u8: - __breturn_from___b1: - // [378] phi (byte) abs_u8::return#4 = (byte) abs_u8::u#2 [phi:abs_u8/abs_u8::@1->abs_u8::@return#0] -- register_copy - jmp __breturn - // abs_u8::@1 - __b1: - // [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 -- vbuaa=_neg_vbuaa - eor #$ff - clc - adc #1 - jmp __breturn_from___b1 - // abs_u8::@return - __breturn: - // [379] return - rts } // clock_start // Reset & start the processor clock time. The value can be read using clock(). // This uses CIA #2 Timer A+B on the C64 clock_start: { - // [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff -- _deref_pduc1=vduc2 + // [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff -- _deref_pduc1=vduc2 lda #<$ffffffff sta CIA2_TIMER_AB lda #>$ffffffff @@ -13810,28 +7406,25 @@ clock_start: { sta CIA2_TIMER_AB+2 lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 - // [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL jmp __breturn // clock_start::@return __breturn: - // [385] return + // [195] return rts } // textcolor // Set the color for text output. The old color setting is returned. textcolor: { - // [386] (byte) conio_textcolor ← (const nomodify byte) WHITE -- vbuz1=vbuc1 - lda #WHITE - sta.z conio_textcolor jmp __breturn // textcolor::@return __breturn: - // [387] return + // [197] return rts } // setup_irq @@ -13839,23 +7432,23 @@ textcolor: { setup_irq: { // asm { sei } sei - // [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to 8 pixels before the border lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 + // [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 lda #BORDER_YPOS_BOTTOM-8 sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE - // [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 + // [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 // Set the IRQ routine lda #(SCREEN&$3fff)*4)|(>LINE_BUFFER)/4&$f // entry interrupt(KERNEL_KEYBOARD) - // [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 // Change border color lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [397] call kbhit + // [207] call kbhit jsr kbhit - // [398] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + // [208] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + jmp __b4 + // irq_bottom_2::@4 + __b4: + // [209] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 + // [210] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -- vbuc1_eq_vbuaa_then_la1 + // Show the current canvas (unless a key is being pressed) + cmp #0 + beq __b1 + // [211] phi from irq_bottom_2::@4 to irq_bottom_2::toD0181 [phi:irq_bottom_2::@4->irq_bottom_2::toD0181] + toD0181_from___b4: + jmp toD0181 + // irq_bottom_2::toD0181 + toD0181: jmp __b3 // irq_bottom_2::@3 __b3: - // [399] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 - // [400] if((byte) 0!=(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -- vbuc1_neq_vbuaa_then_la1 - cmp #0 - bne __b1 + // [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 -- _deref_pbuc1=vbuc2 + lda #toD0181_return + sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY jmp __b2 // irq_bottom_2::@2 __b2: - // [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory -- _deref_pbuc1=vbuz1 - lda.z canvas_show_memory - sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY - jmp __b1 - // irq_bottom_2::@1 - __b1: - // [402] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 + // [213] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z canvas_show_flag - // [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 + // [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at 8 pixels before the border lda #BORDER_YPOS_BOTTOM-8 sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 + // [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 lda #irq_bottom_1 @@ -13915,22 +7515,28 @@ irq_bottom_2: { jmp __breturn // irq_bottom_2::@return __breturn: - // [406] return - exit interrupt(KERNEL_KEYBOARD) + // [217] return - exit interrupt(KERNEL_KEYBOARD) jmp $ea31 + // irq_bottom_2::@1 + __b1: + // [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory -- _deref_pbuc1=vbuz1 + lda.z canvas_show_memory + sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY + jmp __b2 } // kbhit // Return true if there's a key waiting, return false if not kbhit: { - // [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 -- _deref_pbuc1=vbuc2 lda #0 sta CONIO_CIA1_PORT_A - // [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CONIO_CIA1_PORT_B eor #$ff jmp __breturn // kbhit::@return __breturn: - // [409] return + // [221] return rts } // irq_bottom_1 @@ -13938,11 +7544,11 @@ kbhit: { irq_bottom_1: { .const toD0181_return = (>(CONSOLE&$3fff)*4)|(>PETSCII)/4&$f // entry interrupt(KERNEL_MIN) - // [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE -- _deref_pbuc1=vbuc2 + // [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY -- _deref_pbuc1=vbuc2 // Change border color - lda #WHITE + lda #DARK_GREY sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [411] phi from irq_bottom_1 to irq_bottom_1::toD0181 [phi:irq_bottom_1->irq_bottom_1::toD0181] + // [223] phi from irq_bottom_1 to irq_bottom_1::toD0181 [phi:irq_bottom_1->irq_bottom_1::toD0181] toD0181_from_irq_bottom_1: jmp toD0181 // irq_bottom_1::toD0181 @@ -13950,19 +7556,19 @@ irq_bottom_1: { jmp __b1 // irq_bottom_1::@1 __b1: - // [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 -- _deref_pbuc1=vbuc2 + // [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 -- _deref_pbuc1=vbuc2 // Show the cycle counter lda #toD0181_return sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY - // [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM -- _deref_pbuc1=vbuc2 + // [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at bottom of text-line lda #BORDER_YPOS_BOTTOM sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() -- _deref_pptc1=pprc2 + // [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() -- _deref_pptc1=pprc2 lda #irq_bottom_2 @@ -13970,33 +7576,24 @@ irq_bottom_1: { jmp __breturn // irq_bottom_1::@return __breturn: - // [416] return - exit interrupt(KERNEL_MIN) + // [228] return - exit interrupt(KERNEL_MIN) jmp $ea81 } // File Data - // The digits used for numbers - DIGITS: .text "0123456789abcdef" - // Values of hexadecimal digits - RADIX_HEXADECIMAL_VALUES_CHAR: .byte $10 - // Values of decimal digits - RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a // SIN/COS tables .align $100 SINTAB: -.fill $200, 63 + 63*sin(i*2*PI/$100) +.fill $200, round(63 + 63*sin(i*2*PI/$100)) // Column offsets plot_column: .word LINE_BUFFER, LINE_BUFFER+1*$80, LINE_BUFFER+2*$80, LINE_BUFFER+3*$80, LINE_BUFFER+4*$80, LINE_BUFFER+5*$80, LINE_BUFFER+6*$80, LINE_BUFFER+7*$80, LINE_BUFFER+8*$80, LINE_BUFFER+9*$80, LINE_BUFFER+$a*$80, LINE_BUFFER+$b*$80, LINE_BUFFER+$c*$80, LINE_BUFFER+$d*$80, LINE_BUFFER+$e*$80, LINE_BUFFER+$f*$80 // The bits used for plotting a pixel plot_bit: .byte $80, $40, $20, $10, 8, 4, 2, 1 - // Buffer used for stringified number being printed - printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 ASSEMBLER OPTIMIZATIONS -Removing instruction jmp __b1 Removing instruction jmp toD0181 -Removing instruction jmp __b3 Removing instruction jmp __b2 +Removing instruction jmp __b1 Removing instruction jmp __bend Removing instruction jmp __b12 Removing instruction jmp __b13 @@ -14017,160 +7614,83 @@ Removing instruction jmp toD0181 Removing instruction jmp toD0182 Removing instruction jmp __b11 Removing instruction jmp __b21 -Removing instruction jmp __b22 -Removing instruction jmp __b23 -Removing instruction jmp __b24 -Removing instruction jmp __b25 -Removing instruction jmp __b26 Removing instruction jmp __b4 Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __b2 Removing instruction jmp __breturn -Removing instruction jmp __b6 -Removing instruction jmp __b14 -Removing instruction jmp __b7 -Removing instruction jmp __b13 -Removing instruction jmp __b21 Removing instruction jmp __b1 -Removing instruction jmp __b17 -Removing instruction jmp __b16 -Removing instruction jmp __b2 -Removing instruction jmp __b9 +Removing instruction jmp __breturn Removing instruction jmp __b3 -Removing instruction jmp __b18 -Removing instruction jmp __b4 -Removing instruction jmp __b11 Removing instruction jmp __b5 -Removing instruction jmp __b15 -Removing instruction jmp __b20 Removing instruction jmp __b19 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn +Removing instruction jmp __b20 +Removing instruction jmp __b21 +Removing instruction jmp __b22 Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __breturn Removing instruction jmp __b1 -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 __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b2 -Removing instruction jmp __b1 -Removing instruction jmp __breturn -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 __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -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 __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b5 -Removing instruction jmp __b12 -Removing instruction jmp __b13 -Removing instruction jmp __b14 -Removing instruction jmp __b15 -Removing instruction jmp __b3 -Removing instruction jmp __b1 -Removing instruction jmp __b4 -Removing instruction jmp plot1 -Removing instruction jmp __b5 -Removing instruction jmp __b7 -Removing instruction jmp plot2 -Removing instruction jmp __b6 -Removing instruction jmp __breturn Removing instruction jmp __b8 +Removing instruction jmp plot2 +Removing instruction jmp __b16 +Removing instruction jmp __b7 Removing instruction jmp plot3 -Removing instruction jmp __b11 +Removing instruction jmp __breturn +Removing instruction jmp __b15 Removing instruction jmp __b10 -Removing instruction jmp __b9 +Removing instruction jmp __b11 Removing instruction jmp plot4 +Removing instruction jmp __b17 +Removing instruction jmp __b12 +Removing instruction jmp plot5 +Removing instruction jmp __b18 +Removing instruction jmp __b14 +Removing instruction jmp __b13 +Removing instruction jmp plot6 Removing instruction jmp __b1 Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __breturn Removing instruction jmp __breturn +Removing instruction jmp __breturn +Removing instruction jmp __b4 +Removing instruction jmp toD0181 Removing instruction jmp __b3 Removing instruction jmp __b2 -Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __breturn Removing instruction jmp toD0181 Removing instruction jmp __b1 Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #0 Removing instruction lda #BLACK Removing instruction ldy.z p0_idx Removing instruction ldy.z p1_idx Removing instruction ldy.z p2_idx -Removing instruction lda.z padding Removing instruction ldy #0 -Removing instruction lda #>0 -Replacing instruction lda #0 with TXA -Replacing instruction ldy #0 with TAY -Removing instruction lda #0 -Replacing instruction ldy #0 with TAY +Removing instruction ldy.z y +Removing instruction ldy.z y +Removing instruction ldy.z y Removing instruction ldy.z y Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label __b7 with __b8 -Replacing label __b1_from_printf_number_buffer with __b1_from___b13 -Replacing label __b13_from___b14 with __b13 -Replacing label __b21_from___b13 with __b1 -Replacing label __b5_from___b4 with __b5 -Replacing label __b1_from_cputc with __b1 -Replacing label __b2_from___b3 with __b2 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __breturn_from_toupper with __breturn_from___b2 -Replacing label __breturn_from___b1 with __breturn_from___b2 -Replacing label __b1_from___b15 with __b1 -Replacing label __b6_from___b5 with __b6 -Replacing label __b5_from___b6 with __b5 -Replacing label __b9_from___b11 with __b9 -Replacing label __b8_from___b9 with __b8 +Replacing label __b1_from___b22 with __b1 +Replacing label __b7_from___b6 with __b7 +Replacing label __b6_from___b7 with __b6 +Replacing label __b10_from___b10 with __b10 +Replacing label __b10_from___b17 with __b10 +Replacing label __b13_from___b18 with __b13 +Replacing label __b12_from___b13 with plot5 Replacing label __b1_from_sgn_u8 with __b1 -Removing instruction __b1: -Removing instruction toD0181_from___b1: +Replacing label __b2_from___b3 with __b2 +Removing instruction toD0181_from___bbegin: Removing instruction toD0181: -Removing instruction __b2_from___b3: -Removing instruction main_from___b2: -Removing instruction __bend_from___b2: +Removing instruction __b2: +Removing instruction __b1_from___b2: +Removing instruction main_from___b1: +Removing instruction __bend_from___b1: Removing instruction __b12_from_main: Removing instruction __b13_from___b12: Removing instruction memset_from___b13: @@ -14182,64 +7702,32 @@ Removing instruction toD0181_from___b20: Removing instruction toD0181: Removing instruction toD0182_from_toD0181: Removing instruction toD0182: -Removing instruction __b22_from___b21: -Removing instruction cputs_from___b22: -Removing instruction __b24_from___b23: -Removing instruction cputs_from___b24: -Removing instruction printf_ulong_from___b25: -Removing instruction __b7_from___b26: -Removing instruction __b6_from_printf_number_buffer: -Removing instruction strlen_from___b6: -Removing instruction __b13_from___b14: -Removing instruction __b13_from___b7: -Removing instruction __b1_from_printf_number_buffer: -Removing instruction __b21_from___b13: -Removing instruction __b21: -Removing instruction __b1_from___b21: -Removing instruction __b11_from___b4: -Removing instruction strupr_from___b11: -Removing instruction __b5_from___b11: -Removing instruction __b5_from___b4: -Removing instruction cputs_from___b5: -Removing instruction __b1_from_cputc: -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 __b2_from___b1: -Removing instruction __b2_from___b3: -Removing instruction __b1_from_memcpy: -Removing instruction __b1_from___b2: -Removing instruction __b1_from_cputs: -Removing instruction __b1_from___b2: -Removing instruction cputc_from___b2: -Removing instruction __breturn_from_toupper: -Removing instruction __breturn_from___b1: -Removing instruction __b4_from___b7: -Removing instruction ultoa_append_from___b5: -Removing instruction __b4_from___b7: -Removing instruction uctoa_append_from___b5: -Removing instruction __b1_from___b15: +Removing instruction __b7_from___b21: +Removing instruction __b1_from___b22: Removing instruction __b1_from___b3: -Removing instruction __b5_from___b6: -Removing instruction __b5_from_plot1: Removing instruction __b6_from___b5: -Removing instruction __b6_from_plot2: -Removing instruction __b8_from___b2: -Removing instruction __b8_from___b9: -Removing instruction plot3: -Removing instruction __b9_from___b10: -Removing instruction __b9_from___b11: +Removing instruction __b6_from___b7: +Removing instruction __b7_from___b16: +Removing instruction __b7_from___b6: +Removing instruction __b10_from___b10: +Removing instruction __b10_from___b17: +Removing instruction __b10_from___b9: +Removing instruction __b12_from___b13: +Removing instruction __b12_from___b2: +Removing instruction __b12: +Removing instruction __b13_from___b14: +Removing instruction __b13_from___b18: Removing instruction __b1_from_sgn_u8: Removing instruction __breturn_from___b1: Removing instruction __breturn_from_abs_u8: +Removing instruction __b2_from___b1: +Removing instruction __b2_from___b3: +Removing instruction toD0181_from___b4: +Removing instruction toD0181: Removing instruction toD0181_from_irq_bottom_1: Removing instruction toD0181: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction __b3: -Removing instruction __b2: +Removing instruction __b1: Removing instruction __bend: Removing instruction memset_from_main: Removing instruction __b12: @@ -14248,6 +7736,7 @@ Removing instruction __b13: Removing instruction __b1_from___b13: Removing instruction __b3: Removing instruction __b14: +Removing instruction textcolor_from___b14: Removing instruction __b7_from___b14: Removing instruction __b15: Removing instruction memset_from___b15: @@ -14262,92 +7751,12 @@ Removing instruction __b10: Removing instruction eorfill_from___b10: Removing instruction __b20: Removing instruction __b11: +Removing instruction clock_from___b11: Removing instruction __b21: -Removing instruction gotoxy_from___b21: -Removing instruction __b22: -Removing instruction __b23: -Removing instruction printf_uchar_from___b23: -Removing instruction __b24: -Removing instruction __b25: -Removing instruction __b26: Removing instruction __b4_from___b2: Removing instruction __b6: Removing instruction __b1_from___b6: Removing instruction __b4_from___b5: -Removing instruction __b1: -Removing instruction ultoa_from___b1: -Removing instruction __b2: -Removing instruction printf_number_buffer_from___b2: -Removing instruction __breturn: -Removing instruction __b6: -Removing instruction __b14: -Removing instruction __b7: -Removing instruction __b17: -Removing instruction __b16: -Removing instruction printf_padding_from___b8: -Removing instruction __b9: -Removing instruction cputc_from___b9: -Removing instruction __b18: -Removing instruction printf_padding_from___b10: -Removing instruction __b11: -Removing instruction __b15: -Removing instruction __b20: -Removing instruction __b19: -Removing instruction printf_padding_from___b12: -Removing instruction __b1_from_printf_padding: -Removing instruction __breturn: -Removing instruction cputc_from___b2: -Removing instruction __b3: -Removing instruction __b1_from___b3: -Removing instruction __b2: -Removing instruction __b3: -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 __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_strupr: -Removing instruction __breturn: -Removing instruction __b3: -Removing instruction __b1_from___b3: -Removing instruction __b2: -Removing instruction __b1_from_strlen: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1_from_ultoa: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b1_from___b4: -Removing instruction __b6: -Removing instruction __b4_from___b6: -Removing instruction __b1_from_ultoa_append: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1: -Removing instruction uctoa_from___b1: -Removing instruction __b2: -Removing instruction printf_number_buffer_from___b2: -Removing instruction __breturn: -Removing instruction __b1_from_uctoa: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b1_from___b4: -Removing instruction __b6: -Removing instruction __b4_from___b6: -Removing instruction __b1_from_uctoa_append: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1: -Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b1_from_eorfill: Removing instruction __breturn: @@ -14356,27 +7765,34 @@ Removing instruction __b5: Removing instruction __b1_from___b5: Removing instruction __b3_from___b4: Removing instruction abs_u8_from_line: -Removing instruction __b12: -Removing instruction abs_u8_from___b12: -Removing instruction __b13: -Removing instruction sgn_u8_from___b13: -Removing instruction __b14: -Removing instruction sgn_u8_from___b14: -Removing instruction __b15: +Removing instruction __b19: +Removing instruction abs_u8_from___b19: +Removing instruction __b20: +Removing instruction sgn_u8_from___b20: +Removing instruction __b21: +Removing instruction sgn_u8_from___b21: +Removing instruction __b22: Removing instruction __b3: Removing instruction __b4: -Removing instruction plot1: -Removing instruction __b7: +Removing instruction __b5: +Removing instruction __b8: Removing instruction plot2: +Removing instruction __b16: +Removing instruction plot3: +Removing instruction __b15: Removing instruction __b11: -Removing instruction __b10: Removing instruction plot4: +Removing instruction __b17: +Removing instruction __b18: +Removing instruction __b14: +Removing instruction plot6: Removing instruction __breturn_from_sgn_u8: +Removing instruction __b1: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __breturn: +Removing instruction __b4: Removing instruction __b3: -Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b1: @@ -14384,45 +7800,31 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn -Skipping double jump to __breturn in bcc __breturn_from___b2 -Replacing jump to rts with rts in jmp __breturn -Skipping double jump to __breturn in jmp __breturn_from___b2 Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn Skipping double jump to __breturn in jmp __breturn_from___b1 Succesful ASM optimization Pass5DoubleJumpElimination -Relabelling long label __b1_from___b13 to __b6 -Relabelling long label __breturn_from___b2 to __b2 Relabelling long label __breturn_from___b1 to __b2 Succesful ASM optimization Pass5RelabelLongLabels Adding RTS to root block Succesful ASM optimization Pass5AddMainRts -Removing instruction jmp __b1 -Removing instruction jmp __breturn Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda.z dy Replacing instruction lda.z y with TYA Removing instruction lda.z x Succesful ASM optimization Pass5UnnecesaryLoadElimination -Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b2: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [175] bcc __b2 to bcs +Fixing long branch [137] bcc __b2 to bcs +Fixing long branch [377] bcc __b2 to bcs FINAL SYMBOL TABLE (label) @1 (label) @2 -(label) @3 (label) @begin (label) @end (const nomodify byte) BLACK = (byte) 0 @@ -14435,16 +7837,12 @@ FINAL SYMBOL TABLE (const nomodify byte) CIA_INTERRUPT_CLEAR = (byte) $7f (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = (byte) $40 (const nomodify byte) CIA_TIMER_CONTROL_START = (byte) 1 -(const nomodify dword) CLOCKS_PER_INIT = (dword) $12 (const nomodify byte*) COLS = (byte*) 55296 (const nomodify byte*) CONIO_CIA1_PORT_A = (byte*) 56320 (const nomodify byte*) CONIO_CIA1_PORT_B = (byte*) 56321 -(const nomodify byte*) CONIO_SCREEN_COLORS = (byte*) 55296 -(const nomodify byte*) CONIO_SCREEN_TEXT = (byte*) 1024 -(const nomodify byte) CONIO_TEXTCOLOR_DEFAULT = (byte) $e (const nomodify byte*) CONSOLE = (byte*) 1024 (const byte*) COSTAB = (const byte*) SINTAB+(byte) $40 -(const byte*) DIGITS[] = (byte*) "0123456789abcdef"z +(const nomodify byte) DARK_GREY = (byte) $b (const nomodify byte) IRQ_RASTER = (byte) 1 (const nomodify void()**) KERNEL_IRQ = (void()**) 788 (const nomodify byte*) LINE_BUFFER = (byte*) 8192 @@ -14542,19 +7940,15 @@ FINAL SYMBOL TABLE (const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = (byte) $19 (const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY = (byte) $18 (const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER = (byte) $12 -(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1 (const nomodify byte*) PETSCII = (byte*) 4096 (const byte) RADIX::BINARY = (number) 2 (const byte) RADIX::DECIMAL = (number) $a (const byte) RADIX::HEXADECIMAL = (number) $10 (const byte) RADIX::OCTAL = (number) 8 -(const dword*) RADIX_DECIMAL_VALUES_LONG[] = { (dword) $3b9aca00, (dword) $5f5e100, (dword) $989680, (dword) $f4240, (dword) $186a0, (dword) $2710, (dword) $3e8, (dword) $64, (dword) $a } -(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR[] = { (byte) $10 } (const nomodify byte) RED = (byte) 2 (const nomodify byte*) SCREEN = (byte*) 11264 -(const byte*) SINTAB[(number) $140] = kickasm {{ .fill $200, 63 + 63*sin(i*2*PI/$100) +(const byte*) SINTAB[(number) $140] = kickasm {{ .fill $200, round(63 + 63*sin(i*2*PI/$100)) }} -(const byte) SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = (byte) $c (const nomodify struct MOS6569_VICII*) VICII = (struct MOS6569_VICII*) 53248 (const nomodify byte) WHITE = (byte) 1 (byte()) abs_u8((byte) abs_u8::u) @@ -14570,55 +7964,13 @@ FINAL SYMBOL TABLE (byte) abs_u8::u#0 reg byte a 2002.0 (byte) abs_u8::u#1 reg byte a 2002.0 (byte) abs_u8::u#2 reg byte a 10668.333333333332 -(volatile byte) canvas_show_flag loadstore zp[1]:27 15.577464788732396 -(volatile byte) canvas_show_memory loadstore zp[1]:26 2.452380952380952 +(volatile byte) canvas_show_flag loadstore zp[1]:18 18.74576271186441 +(volatile byte) canvas_show_memory loadstore zp[1]:17 2.8611111111111107 (dword()) clock() (label) clock::@return (dword) clock::return -(dword) clock::return#0 return zp[4]:11 367.33333333333337 -(dword) clock::return#2 return zp[4]:11 202.0 (void()) clock_start() (label) clock_start::@return -(byte*) conio_cursor_color loadstore zp[2]:23 2.027272819090909E8 -(byte*) conio_cursor_text loadstore zp[2]:21 2.0090091E8 -(byte) conio_cursor_x loadstore zp[1]:19 2.5263168515789475E7 -(byte) conio_cursor_y loadstore zp[1]:20 2.824561492105263E8 -(byte) conio_textcolor loadstore zp[1]:25 6.312500065625E7 -(void()) cputc((byte) cputc::c) -(label) cputc::@1 -(label) cputc::@2 -(label) cputc::@3 -(label) cputc::@return -(byte) cputc::c -(byte) cputc::c#0 reg byte a 2.0000002E7 -(byte) cputc::c#1 reg byte a 2.0000002E7 -(byte) cputc::c#2 reg byte a 20002.0 -(byte) cputc::c#3 reg byte a 1.100050025E8 -(void()) cputln() -(byte*~) cputln::$1 zp[2]:21 2.000000002E9 -(byte*~) cputln::$2 zp[2]:23 2.000000002E9 -(label) cputln::@return -(word) cputln::ln_offset -(word) cputln::ln_offset#0 ln_offset zp[2]:40 1.000000001E9 -(void()) cputs((to_nomodify byte*) cputs::s) -(label) cputs::@1 -(label) cputs::@2 -(label) cputs::@return -(byte) cputs::c -(byte) cputs::c#1 reg byte a 1.0000001E7 -(to_nomodify byte*) cputs::s -(to_nomodify byte*) cputs::s#0 s zp[2]:46 5000000.5 -(to_nomodify byte*) cputs::s#4 s zp[2]:46 1.5050002E7 -(to_nomodify byte*) cputs::s#5 s zp[2]:46 100001.0 -(void()) cscroll() -(byte*~) cscroll::$7 zp[2]:21 2.0000000002E10 -(byte*~) cscroll::$8 zp[2]:23 2.0000000002E10 -(label) cscroll::@1 -(label) cscroll::@2 -(label) cscroll::@3 -(label) cscroll::@4 -(label) cscroll::@5 -(label) cscroll::@return (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) (label) eorfill::@1 (label) eorfill::@2 @@ -14627,33 +7979,24 @@ FINAL SYMBOL TABLE (label) eorfill::@5 (label) eorfill::@return (byte*) eorfill::canvas -(byte*) eorfill::canvas#0 canvas zp[2]:23 551.0 +(byte*) eorfill::canvas#0 canvas zp[2]:31 551.0 (byte) eorfill::eor -(byte) eorfill::eor#0 reg byte a 200002.0 +(byte) eorfill::eor#0 reg byte a 150001.5 (byte) eorfill::eor#1 reg byte a 1000001.0 (byte) eorfill::eor#2 reg byte a 1050001.5 (byte*) eorfill::fill_column -(byte*) eorfill::fill_column#1 fill_column zp[2]:23 100001.0 -(byte*) eorfill::fill_column#5 fill_column zp[2]:23 133444.88888888888 +(byte*) eorfill::fill_column#1 fill_column zp[2]:31 100001.0 +(byte*) eorfill::fill_column#2 fill_column zp[2]:31 130100.5 (byte*) eorfill::line_buffer (byte*) eorfill::line_column -(byte*) eorfill::line_column#1 line_column zp[2]:21 66667.33333333333 -(byte*) eorfill::line_column#2 line_column zp[2]:21 162500.5 +(byte*) eorfill::line_column#1 line_column zp[2]:28 66667.33333333333 +(byte*) eorfill::line_column#2 line_column zp[2]:28 144444.88888888888 (byte) eorfill::x (byte) eorfill::x#1 reg byte x 200002.0 -(byte) eorfill::x#2 reg byte x 30000.300000000003 +(byte) eorfill::x#2 reg byte x 27273.0 (byte) eorfill::y (byte) eorfill::y#1 reg byte y 2000002.0 (byte) eorfill::y#2 reg byte y 1250001.25 -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -(label) gotoxy::@1 -(label) gotoxy::@return -(word) gotoxy::offset -(const word) gotoxy::offset#0 offset = (word)(const byte) gotoxy::y#2*(byte) $28 -(byte) gotoxy::x -(const byte) gotoxy::x#2 x = (byte) 0 -(byte) gotoxy::y -(const byte) gotoxy::y#2 y = (byte) $18 interrupt(KERNEL_MIN)(void()) irq_bottom_1() (label) irq_bottom_1::@1 (label) irq_bottom_1::@return @@ -14667,7 +8010,13 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) irq_bottom_2::@1 (label) irq_bottom_2::@2 (label) irq_bottom_2::@3 +(label) irq_bottom_2::@4 (label) irq_bottom_2::@return +(label) irq_bottom_2::toD0181 +(byte*) irq_bottom_2::toD0181_gfx +(byte) irq_bottom_2::toD0181_return +(const byte) irq_bottom_2::toD0181_return#0 toD0181_return = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) LINE_BUFFER/(byte) 4&(byte) $f +(byte*) irq_bottom_2::toD0181_screen (byte()) kbhit() (label) kbhit::@return (byte) kbhit::return @@ -14681,7 +8030,14 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) line::@13 (label) line::@14 (label) line::@15 +(label) line::@16 +(label) line::@17 +(label) line::@18 +(label) line::@19 (label) line::@2 +(label) line::@20 +(label) line::@21 +(label) line::@22 (label) line::@3 (label) line::@4 (label) line::@5 @@ -14692,95 +8048,120 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) line::@return (byte*) line::canvas (byte) line::dx -(byte) line::dx#0 dx zp[1]:36 5941.294117647059 +(byte) line::dx#0 dx zp[1]:23 19462.805970149253 (byte) line::dy -(byte) line::dy#0 dy zp[1]:37 6446.936170212766 +(byte) line::dy#0 dy zp[1]:24 22285.85714285714 (byte) line::e -(byte) line::e#0 reg byte x 333.6666666666667 -(byte) line::e#1 reg byte x 133334.66666666666 -(byte) line::e#2 reg byte x 33333.666666666664 +(byte) line::e#0 reg byte x 2002.0 +(byte) line::e#1 reg byte x 44444.88888888889 +(byte) line::e#2 reg byte x 200002.0 (byte) line::e#3 reg byte x 100501.5 (byte) line::e#5 reg byte x 150001.5 (byte) line::e1 -(byte) line::e1#0 reg byte x 2002.0 -(byte) line::e1#1 reg byte x 133334.66666666666 -(byte) line::e1#2 reg byte x 200002.0 -(byte) line::e1#3 reg byte x 28714.714285714286 -(byte) line::e1#7 reg byte x 150001.5 +(byte) line::e1#0 e1 zp[1]:14 2002.0 +(byte) line::e1#1 e1 zp[1]:14 1033334.6666666666 +(byte) line::e1#2 e1 zp[1]:14 28571.714285714286 +(byte) line::e1#3 e1 zp[1]:14 1050502.0 +(byte) line::e2 +(byte) line::e2#0 reg byte x 2002.0 +(byte) line::e2#1 reg byte x 133334.66666666666 +(byte) line::e2#2 reg byte x 200002.0 +(byte) line::e2#3 reg byte x 28714.714285714286 +(byte) line::e2#7 reg byte x 150001.5 (label) line::plot1 (byte~) line::plot1_$0 reg byte a 2002.0 -(byte~) line::plot1_$1 zp[1]:42 2002.0 +(byte~) line::plot1_$1 reg byte a 2002.0 (byte~) line::plot1_$2 reg byte a 2002.0 (byte*) line::plot1_column -(byte*) line::plot1_column#0 plot1_column zp[2]:40 1501.5 +(byte*) line::plot1_column#0 plot1_column zp[2]:33 1501.5 (byte) line::plot1_x (byte) line::plot1_y (label) line::plot2 (byte~) line::plot2_$0 reg byte a 200002.0 -(byte~) line::plot2_$1 zp[1]:45 200002.0 +(byte~) line::plot2_$1 zp[1]:30 200002.0 (byte~) line::plot2_$2 reg byte a 200002.0 (byte*) line::plot2_column -(byte*) line::plot2_column#0 plot2_column zp[2]:43 150001.5 +(byte*) line::plot2_column#0 plot2_column zp[2]:28 150001.5 (byte) line::plot2_x -(byte) line::plot2_x#0 plot2_x zp[1]:17 57143.42857142857 (byte) line::plot2_y +(byte) line::plot2_y#0 plot2_y zp[1]:27 60000.600000000006 (label) line::plot3 -(byte~) line::plot3_$0 reg byte a 200002.0 -(byte~) line::plot3_$1 zp[1]:48 200002.0 -(byte~) line::plot3_$2 reg byte a 200002.0 +(byte~) line::plot3_$0 reg byte a 2002.0 +(byte~) line::plot3_$1 reg byte a 2002.0 +(byte~) line::plot3_$2 reg byte a 2002.0 (byte*) line::plot3_column -(byte*) line::plot3_column#0 plot3_column zp[2]:46 150001.5 +(byte*) line::plot3_column#0 plot3_column zp[2]:31 1501.5 (byte) line::plot3_x (byte) line::plot3_y (label) line::plot4 -(byte~) line::plot4_$0 reg byte a 2002.0 -(byte~) line::plot4_$1 reg byte a 2002.0 -(byte~) line::plot4_$2 reg byte a 2002.0 +(byte~) line::plot4_$0 reg byte a 200002.0 +(byte~) line::plot4_$1 reg byte a 200002.0 +(byte~) line::plot4_$2 reg byte a 200002.0 (byte*) line::plot4_column -(byte*) line::plot4_column#0 plot4_column zp[2]:49 1501.5 +(byte*) line::plot4_column#0 plot4_column zp[2]:35 150001.5 (byte) line::plot4_x (byte) line::plot4_y +(label) line::plot5 +(byte~) line::plot5_$0 reg byte a 200002.0 +(byte~) line::plot5_$1 zp[1]:39 200002.0 +(byte~) line::plot5_$2 reg byte a 200002.0 +(byte*) line::plot5_column +(byte*) line::plot5_column#0 plot5_column zp[2]:37 150001.5 +(byte) line::plot5_x +(byte) line::plot5_y +(label) line::plot6 +(byte~) line::plot6_$0 reg byte a 2002.0 +(byte~) line::plot6_$1 reg byte a 2002.0 +(byte~) line::plot6_$2 reg byte a 2002.0 +(byte*) line::plot6_column +(byte*) line::plot6_column#0 plot6_column zp[2]:40 1501.5 +(byte) line::plot6_x +(byte) line::plot6_y (byte) line::sx -(byte) line::sx#0 sx zp[1]:38 4697.767441860465 +(byte) line::sx#0 sx zp[1]:25 5135.6949152542375 (byte) line::sy -(byte) line::sy#0 sy zp[1]:39 5153.923076923076 +(byte) line::sy#0 sy zp[1]:26 23672.836363636365 (byte) line::x -(byte) line::x#0 x zp[1]:17 217.55172413793105 -(byte) line::x#10 x zp[1]:17 75251.0 -(byte) line::x#12 x zp[1]:17 66834.16666666666 -(byte) line::x#13 x zp[1]:17 30200.5 -(byte) line::x#16 x zp[1]:17 150001.5 +(byte) line::x#0 x zp[1]:15 228.4375 +(byte) line::x#1 x zp[1]:15 100001.0 +(byte) line::x#10 x zp[1]:15 66834.16666666666 +(byte) line::x#12 x zp[1]:15 30200.5 +(byte) line::x#15 x zp[1]:15 50100.6 +(byte) line::x#17 x zp[1]:15 60401.0 +(byte) line::x#18 x zp[1]:15 550251.25 +(byte) line::x#19 x zp[1]:15 62500.625 (byte) line::x1 -(byte) line::x1#0 x1 zp[1]:17 50.5 -(byte) line::x1#1 x1 zp[1]:17 50.5 -(byte) line::x1#2 x1 zp[1]:17 50.5 +(byte) line::x1#0 x1 zp[1]:15 50.5 +(byte) line::x1#1 x1 zp[1]:15 50.5 +(byte) line::x1#2 x1 zp[1]:15 50.5 (byte) line::x2 -(byte) line::x2#0 x2 zp[1]:15 101.0 -(byte) line::x2#1 x2 zp[1]:15 101.0 -(byte) line::x2#11 x2 zp[1]:15 2841.8333333333335 -(byte) line::x2#2 x2 zp[1]:15 101.0 +(byte) line::x2#0 x2 zp[1]:12 101.0 +(byte) line::x2#1 x2 zp[1]:12 101.0 +(byte) line::x2#15 x2 zp[1]:12 3612.625 +(byte) line::x2#2 x2 zp[1]:12 101.0 (byte) line::y -(byte) line::y#0 y zp[1]:18 239.27777777777777 -(byte) line::y#1 y zp[1]:18 1001.0 -(byte) line::y#10 y zp[1]:18 55667.33333333333 -(byte) line::y#11 y zp[1]:18 50334.16666666667 -(byte) line::y#13 y zp[1]:18 667.3333333333333 -(byte) line::y#15 y zp[1]:18 41667.08333333333 -(byte) line::y#3 y zp[1]:18 100001.0 -(byte) line::y#6 y zp[1]:18 201003.0 +(byte) line::y#0 y zp[1]:16 239.27777777777777 +(byte) line::y#1 y zp[1]:16 1001.0 +(byte) line::y#10 y zp[1]:16 23647.411764705877 +(byte) line::y#11 y zp[1]:16 2101004.0 +(byte) line::y#12 y zp[1]:16 209091.36363636365 +(byte) line::y#13 y zp[1]:16 55667.33333333333 +(byte) line::y#15 y zp[1]:16 50334.16666666667 +(byte) line::y#17 y zp[1]:16 583.9166666666667 +(byte) line::y#4 y zp[1]:16 100001.0 +(byte) line::y#7 y zp[1]:16 201003.0 (byte) line::y1 -(byte) line::y1#0 y1 zp[1]:18 67.33333333333333 -(byte) line::y1#1 y1 zp[1]:18 67.33333333333333 -(byte) line::y1#2 y1 zp[1]:18 67.33333333333333 +(byte) line::y1#0 y1 zp[1]:16 67.33333333333333 +(byte) line::y1#1 y1 zp[1]:16 67.33333333333333 +(byte) line::y1#2 y1 zp[1]:16 67.33333333333333 (byte) line::y2 -(byte) line::y2#0 y2 zp[1]:16 202.0 -(byte) line::y2#1 y2 zp[1]:16 202.0 -(byte) line::y2#10 y2 zp[1]:16 226.68421052631578 -(byte) line::y2#13 y2 zp[1]:16 4857.285714285714 -(byte) line::y2#2 y2 zp[1]:16 202.0 -(byte) line::y2#3 y2 zp[1]:16 2002.0 +(byte) line::y2#0 y2 zp[1]:13 202.0 +(byte) line::y2#1 y2 zp[1]:13 202.0 +(byte) line::y2#10 y2 zp[1]:13 226.68421052631578 +(byte) line::y2#13 y2 zp[1]:13 5666.833333333334 +(byte) line::y2#2 y2 zp[1]:13 202.0 +(byte) line::y2#3 y2 zp[1]:13 2002.0 (void()) main() -(dword~) main::$18 zp[4]:11 202.0 (label) main::@1 (label) main::@10 (label) main::@11 @@ -14795,11 +8176,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) main::@2 (label) main::@20 (label) main::@21 -(label) main::@22 -(label) main::@23 -(label) main::@24 -(label) main::@25 -(label) main::@26 (label) main::@3 (label) main::@4 (label) main::@5 @@ -14812,28 +8188,24 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::c#2 reg byte x 776.0 (byte) main::c#4 reg byte x 202.0 (byte*) main::canvas -(word) main::canvas#1 canvas zp[2]:9 5.611111111111111 -(byte*) main::canvas#10 canvas zp[2]:9 8.911764705882353 -(byte*) main::canvas#24 canvas zp[2]:9 202.0 +(word) main::canvas#1 canvas zp[2]:10 16.833333333333332 +(byte*) main::canvas#10 canvas zp[2]:10 8.911764705882353 +(byte*) main::canvas#19 canvas zp[2]:10 202.0 (byte*) main::cols -(byte*) main::cols#1 cols zp[2]:2 67.33333333333333 -(byte*) main::cols#5 cols zp[2]:2 133.66666666666669 -(dword) main::cyclecount -(dword) main::cyclecount#0 cyclecount zp[4]:11 25.25 +(byte*) main::cols#1 cols zp[2]:3 67.33333333333333 +(byte*) main::cols#5 cols zp[2]:3 133.66666666666669 (byte) main::p0_idx -(byte) main::p0_idx#1 p0_idx zp[1]:6 11.222222222222223 -(byte) main::p0_idx#11 p0_idx zp[1]:6 15.538461538461538 +(byte) main::p0_idx#1 p0_idx zp[1]:7 13.466666666666667 +(byte) main::p0_idx#2 p0_idx zp[1]:7 15.538461538461538 (byte) main::p1_idx -(byte) main::p1_idx#1 p1_idx zp[1]:7 7.769230769230769 -(byte) main::p1_idx#2 p1_idx zp[1]:7 14.962962962962964 +(byte) main::p1_idx#1 p1_idx zp[1]:8 14.428571428571429 +(byte) main::p1_idx#2 p1_idx zp[1]:8 14.962962962962964 (byte) main::p2_idx -(byte) main::p2_idx#1 p2_idx zp[1]:8 8.08 -(byte) main::p2_idx#2 p2_idx zp[1]:8 14.428571428571429 -(const byte*) main::s[(byte) 8] = (byte*) "frame: " -(const byte*) main::s1[(byte) $a] = (byte*) " cycles: " +(byte) main::p2_idx#1 p2_idx zp[1]:9 15.538461538461538 +(byte) main::p2_idx#2 p2_idx zp[1]:9 14.428571428571429 (byte*) main::screen -(byte*) main::screen#1 screen zp[2]:4 101.0 -(byte*) main::screen#5 screen zp[2]:4 120.3 +(byte*) main::screen#1 screen zp[2]:5 101.0 +(byte*) main::screen#5 screen zp[2]:5 120.3 (label) main::toD0181 (byte*) main::toD0181_gfx (byte) main::toD0181_return @@ -14848,62 +8220,40 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::x#1 reg byte y 2002.0 (byte) main::x#2 reg byte y 1001.0 (byte) main::x0 -(byte) main::x0#0 x0 zp[1]:28 16.833333333333332 +(byte) main::x0#0 x0 zp[1]:19 16.833333333333332 (byte) main::x1 -(byte) main::x1#0 x1 zp[1]:15 33.666666666666664 +(byte) main::x1#0 x1 zp[1]:12 33.666666666666664 (byte) main::x2 -(byte) main::x2#0 x2 zp[1]:15 43.285714285714285 +(byte) main::x2#0 x2 zp[1]:12 43.285714285714285 (byte) main::y -(byte) main::y#1 y zp[1]:19 202.0 -(byte) main::y#2 y zp[1]:19 36.72727272727273 +(byte) main::y#1 y zp[1]:2 202.0 +(byte) main::y#2 y zp[1]:2 36.72727272727273 (byte) main::y0 -(byte) main::y0#0 y0 zp[1]:29 16.833333333333332 +(byte) main::y0#0 y0 zp[1]:20 16.833333333333332 (byte) main::y1 -(byte) main::y1#0 y1 zp[1]:30 33.666666666666664 +(byte) main::y1#0 y1 zp[1]:21 33.666666666666664 (byte) main::y2 -(byte) main::y2#0 y2 zp[1]:31 43.285714285714285 -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -(label) memcpy::@1 -(label) memcpy::@2 -(label) memcpy::@return -(void*) memcpy::destination -(void*) memcpy::destination#2 destination zp[2]:49 -(byte*) memcpy::dst -(byte*) memcpy::dst#1 dst zp[2]:49 1.00000000000001E14 -(byte*) memcpy::dst#2 dst zp[2]:49 1.0003333333333467E14 -(byte*) memcpy::dst#4 dst zp[2]:49 2.00000000002E11 -(word) memcpy::num -(void*) memcpy::return -(void*) memcpy::source -(void*) memcpy::source#2 source zp[2]:40 -(byte*) memcpy::src -(byte*) memcpy::src#1 src zp[2]:40 2.00000000000002E14 -(byte*) memcpy::src#2 src zp[2]:40 1.0002500000000125E14 -(byte*) memcpy::src#4 src zp[2]:40 1.00000000001E11 -(byte*) memcpy::src_end -(byte*) memcpy::src_end#0 src_end zp[2]:43 1.251250000000025E13 +(byte) main::y2#0 y2 zp[1]:22 43.285714285714285 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) (label) memset::@1 (label) memset::@2 (label) memset::@3 (label) memset::@return (byte) memset::c -(byte) memset::c#1 reg byte x 2.0000000002E10 -(byte) memset::c#8 reg byte x 1.25125000000025E12 +(byte) memset::c#6 reg byte x 12500.125 (byte*) memset::dst -(byte*) memset::dst#1 dst zp[2]:49 2.0000000000002E13 -(byte*) memset::dst#2 dst zp[2]:49 1.3366666666668332E13 -(byte*) memset::dst#4 dst zp[2]:49 2.00000000002E11 +(byte*) memset::dst#1 dst zp[2]:31 200002.0 +(byte*) memset::dst#2 dst zp[2]:31 133668.3333333333 +(byte*) memset::dst#4 dst zp[2]:31 2002.0 (byte*) memset::end -(byte*) memset::end#0 end zp[2]:40 1.6833333333336665E12 +(byte*) memset::end#0 end zp[2]:28 16833.666666666664 (word) memset::num -(word) memset::num#6 num zp[2]:40 1.00000000001E11 +(word) memset::num#4 num zp[2]:28 1001.0 (void*) memset::return (void*) memset::str -(void*) memset::str#7 str zp[2]:49 +(void*) memset::str#5 str zp[2]:31 (const byte*) plot_bit[(number) 8] = { (byte) $80, (byte) $40, (byte) $20, (byte) $10, (byte) 8, (byte) 4, (byte) 2, (byte) 1 } (const byte**) plot_column[(number) $10] = { (const nomodify byte*) LINE_BUFFER, (const nomodify byte*) LINE_BUFFER+(byte)(number) 1*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 2*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 3*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 4*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 5*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 6*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 7*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 8*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 9*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $a*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $b*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $c*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $d*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $e*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $f*(number) $80 } -(struct printf_buffer_number) printf_buffer loadstore mem[12] = {} (const byte*) printf_buffer_number::digits[(number) $b] = { fill( $b, 0) } (byte) printf_buffer_number::sign (byte) printf_format_number::justify_left @@ -14914,103 +8264,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -(word~) printf_number_buffer::$19 zp[2]:49 10001.0 -(label) printf_number_buffer::@1 -(label) printf_number_buffer::@10 -(label) printf_number_buffer::@11 -(label) printf_number_buffer::@12 -(label) printf_number_buffer::@13 -(label) printf_number_buffer::@14 -(label) printf_number_buffer::@15 -(label) printf_number_buffer::@16 -(label) printf_number_buffer::@17 -(label) printf_number_buffer::@18 -(label) printf_number_buffer::@19 -(label) printf_number_buffer::@2 -(label) printf_number_buffer::@20 -(label) printf_number_buffer::@21 -(label) printf_number_buffer::@3 -(label) printf_number_buffer::@4 -(label) printf_number_buffer::@5 -(label) printf_number_buffer::@6 -(label) printf_number_buffer::@7 -(label) printf_number_buffer::@8 -(label) printf_number_buffer::@9 -(label) printf_number_buffer::@return -(struct printf_buffer_number) printf_number_buffer::buffer -(byte*) printf_number_buffer::buffer_digits -(byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:31 2002.0 -(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:31 2002.0 -(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:31 1600.25 -(struct printf_format_number) printf_number_buffer::format -(byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:29 645.2258064516129 -(byte) printf_number_buffer::format_min_length -(byte) printf_number_buffer::format_min_length#2 reg byte x 1000.1 -(byte) printf_number_buffer::format_radix -(byte) printf_number_buffer::format_sign_always -(byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:15 384.65384615384613 -(byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:30 937.59375 -(signed byte) printf_number_buffer::len -(signed byte) printf_number_buffer::len#0 reg byte y 15001.5 -(signed byte) printf_number_buffer::len#1 reg byte y 20002.0 -(signed byte) printf_number_buffer::len#2 reg byte y 30003.0 -(signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 padding zp[1]:16 10001.0 -(signed byte) printf_number_buffer::padding#10 padding zp[1]:16 1904.952380952381 -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -(label) printf_padding::@1 -(label) printf_padding::@2 -(label) printf_padding::@3 -(label) printf_padding::@return -(byte) printf_padding::i -(byte) printf_padding::i#1 i zp[1]:28 2.0000002E7 -(byte) printf_padding::i#2 i zp[1]:28 7500000.75 -(byte) printf_padding::length -(byte) printf_padding::length#0 length zp[1]:17 20002.0 -(byte) printf_padding::length#1 length zp[1]:17 20002.0 -(byte) printf_padding::length#2 length zp[1]:17 20002.0 -(byte) printf_padding::length#4 length zp[1]:17 1671667.3333333333 -(byte) printf_padding::pad -(byte) printf_padding::pad#5 pad zp[1]:18 1666666.8333333333 -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -(label) printf_uchar::@1 -(label) printf_uchar::@2 -(label) printf_uchar::@return -(struct printf_format_number) printf_uchar::format -(byte) printf_uchar::format_justify_left -(const byte) printf_uchar::format_justify_left#0 format_justify_left = (byte) 0 -(byte) printf_uchar::format_min_length -(const byte) printf_uchar::format_min_length#0 format_min_length = (byte) 2 -(byte) printf_uchar::format_radix -(byte) printf_uchar::format_sign_always -(byte) printf_uchar::format_upper_case -(const byte) printf_uchar::format_upper_case#0 format_upper_case = (byte) 0 -(byte) printf_uchar::format_zero_padding -(const byte) printf_uchar::format_zero_padding#0 format_zero_padding = (byte) 1 -(byte) printf_uchar::uvalue -(byte) printf_uchar::uvalue#0 reg byte x 367.33333333333337 -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -(label) printf_ulong::@1 -(label) printf_ulong::@2 -(label) printf_ulong::@return -(struct printf_format_number) printf_ulong::format -(byte) printf_ulong::format_justify_left -(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0 -(byte) printf_ulong::format_min_length -(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 6 -(byte) printf_ulong::format_radix -(byte) printf_ulong::format_sign_always -(byte) printf_ulong::format_upper_case -(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0 -(byte) printf_ulong::format_zero_padding -(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0 -(dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 uvalue zp[4]:11 367.33333333333337 (void()) setup_irq() (label) setup_irq::@return (byte()) sgn_u8((byte) sgn_u8::u) @@ -15025,30 +8278,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) sgn_u8::u#0 reg byte a 2002.0 (byte) sgn_u8::u#1 reg byte a 2002.0 (byte) sgn_u8::u#2 reg byte a 12003.0 -(word()) strlen((byte*) strlen::str) -(label) strlen::@1 -(label) strlen::@2 -(label) strlen::@return -(word) strlen::len -(word) strlen::len#1 len zp[2]:49 1.0000001E7 -(word) strlen::len#2 len zp[2]:49 5002500.75 -(word) strlen::return -(word) strlen::return#2 return zp[2]:49 20002.0 -(byte*) strlen::str -(byte*) strlen::str#0 str zp[2]:40 2.0000002E7 -(byte*) strlen::str#2 str zp[2]:40 1.0000001E7 -(byte*()) strupr((byte*) strupr::str) -(byte~) strupr::$0 reg byte a 2.0000002E7 -(label) strupr::@1 -(label) strupr::@2 -(label) strupr::@3 -(label) strupr::@return -(byte*) strupr::return -(byte*) strupr::src -(byte*) strupr::src#1 src zp[2]:46 2.0000002E7 -(byte*) strupr::src#2 src zp[2]:46 7142857.857142856 -(byte*) strupr::str -(const byte*) strupr::str#0 str = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (byte()) textcolor((byte) textcolor::color) (label) textcolor::@return (byte) textcolor::color @@ -15059,201 +8288,78 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) toD0181_return (const byte) toD0181_return#0 toD0181_return = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) CANVAS2/(byte) 4&(byte) $f (byte*) toD0181_screen -(byte()) toupper((byte) toupper::ch) -(label) toupper::@1 -(label) toupper::@2 -(label) toupper::@return -(byte) toupper::ch -(byte) toupper::ch#0 reg byte a 1.70000002E8 -(byte) toupper::return -(byte) toupper::return#0 reg byte a 2.00000002E8 -(byte) toupper::return#2 reg byte a 1.0333333466666667E8 -(byte) toupper::return#3 reg byte a 2.0000002E7 -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -(label) uctoa::@1 -(label) uctoa::@2 -(label) uctoa::@3 -(label) uctoa::@4 -(label) uctoa::@5 -(label) uctoa::@6 -(label) uctoa::@7 -(label) uctoa::@return -(byte*) uctoa::buffer -(byte*) uctoa::buffer#11 buffer zp[2]:49 335000.50000000006 -(byte*) uctoa::buffer#14 buffer zp[2]:49 1500001.5 -(byte*) uctoa::buffer#3 buffer zp[2]:49 20002.0 -(byte*) uctoa::buffer#4 buffer zp[2]:49 2000002.0 -(byte) uctoa::digit -(byte) uctoa::digit#1 digit zp[1]:30 2000002.0 -(byte) uctoa::digit#2 digit zp[1]:30 307692.6153846154 -(byte) uctoa::digit_value -(byte) uctoa::digit_value#0 digit_value zp[1]:36 600000.6000000001 -(byte*) uctoa::digit_values -(byte) uctoa::max_digits -(const byte) uctoa::max_digits#2 max_digits = (byte) 2 -(byte) uctoa::radix -(byte) uctoa::started -(byte) uctoa::started#2 started zp[1]:31 600000.6000000001 -(byte) uctoa::started#4 started zp[1]:31 1000001.0 -(byte) uctoa::value -(byte) uctoa::value#0 reg byte x 1000001.0 -(byte) uctoa::value#1 reg byte x 5501.0 -(byte) uctoa::value#2 reg byte x 670001.0000000001 -(byte) uctoa::value#6 reg byte x 1500001.5 -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -(label) uctoa_append::@1 -(label) uctoa_append::@2 -(label) uctoa_append::@3 -(label) uctoa_append::@return -(byte*) uctoa_append::buffer -(byte*) uctoa_append::buffer#0 buffer zp[2]:49 1375000.25 -(byte) uctoa_append::digit -(byte) uctoa_append::digit#1 reg byte y 1.0000000001E10 -(byte) uctoa_append::digit#2 reg byte y 1.00050000015E10 -(byte) uctoa_append::return -(byte) uctoa_append::return#0 reg byte x 2000002.0 -(byte) uctoa_append::sub -(byte) uctoa_append::sub#0 sub zp[1]:36 3.3335000005E9 -(byte) uctoa_append::value -(byte) uctoa_append::value#0 reg byte x 3666667.333333333 -(byte) uctoa_append::value#1 reg byte x 2.0000000002E10 -(byte) uctoa_append::value#2 reg byte x 5.001833334166666E9 -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -(byte~) ultoa::$10 reg byte a 2000002.0 -(byte~) ultoa::$11 reg byte a 20002.0 -(label) ultoa::@1 -(label) ultoa::@2 -(label) ultoa::@3 -(label) ultoa::@4 -(label) ultoa::@5 -(label) ultoa::@6 -(label) ultoa::@7 -(label) ultoa::@return -(byte*) ultoa::buffer -(byte*) ultoa::buffer#11 buffer zp[2]:40 287143.2857142857 -(byte*) ultoa::buffer#14 buffer zp[2]:40 1500001.5 -(byte*) ultoa::buffer#3 buffer zp[2]:40 20002.0 -(byte*) ultoa::buffer#4 buffer zp[2]:40 2000002.0 -(byte) ultoa::digit -(byte) ultoa::digit#1 digit zp[1]:29 2000002.0 -(byte) ultoa::digit#2 digit zp[1]:29 285714.5714285714 -(dword) ultoa::digit_value -(dword) ultoa::digit_value#0 digit_value zp[4]:32 600000.6000000001 -(dword*) ultoa::digit_values -(byte) ultoa::max_digits -(const byte) ultoa::max_digits#1 max_digits = (byte) $a -(byte) ultoa::radix -(byte) ultoa::started -(byte) ultoa::started#2 reg byte x 500000.5 -(byte) ultoa::started#4 reg byte x 1000001.0 -(dword) ultoa::value -(dword) ultoa::value#0 value zp[4]:11 1000001.0 -(dword) ultoa::value#1 value zp[4]:11 5501.0 -(dword) ultoa::value#2 value zp[4]:11 572857.857142857 -(dword) ultoa::value#6 value zp[4]:11 1500001.5 -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -(label) ultoa_append::@1 -(label) ultoa_append::@2 -(label) ultoa_append::@3 -(label) ultoa_append::@return -(byte*) ultoa_append::buffer -(byte*) ultoa_append::buffer#0 buffer zp[2]:40 1375000.25 -(byte) ultoa_append::digit -(byte) ultoa_append::digit#1 reg byte x 1.0000000001E10 -(byte) ultoa_append::digit#2 reg byte x 1.00050000015E10 -(dword) ultoa_append::return -(dword) ultoa_append::return#0 return zp[4]:11 2000002.0 -(dword) ultoa_append::sub -(dword) ultoa_append::sub#0 sub zp[4]:32 3.3335000005E9 -(dword) ultoa_append::value -(dword) ultoa_append::value#0 value zp[4]:11 3666667.333333333 -(dword) ultoa_append::value#1 value zp[4]:11 2.0000000002E10 -(dword) ultoa_append::value#2 value zp[4]:11 5.001833334166666E9 -zp[2]:2 [ main::cols#5 main::cols#1 ] -zp[2]:4 [ main::screen#5 main::screen#1 ] -zp[1]:6 [ main::p0_idx#11 main::p0_idx#1 ] -zp[1]:7 [ main::p1_idx#2 main::p1_idx#1 ] -zp[1]:8 [ main::p2_idx#2 main::p2_idx#1 ] -zp[2]:9 [ main::canvas#10 main::canvas#24 main::canvas#1 ] +zp[1]:2 [ main::y#2 main::y#1 ] +zp[2]:3 [ main::cols#5 main::cols#1 ] +zp[2]:5 [ main::screen#5 main::screen#1 ] +zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] +zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] +zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] +zp[2]:10 [ main::canvas#10 main::canvas#19 main::canvas#1 ] reg byte y [ main::x#2 main::x#1 ] reg byte x [ main::c#2 main::c#4 main::c#1 ] -reg byte x [ printf_number_buffer::format_min_length#2 ] -reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -reg byte a [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -reg byte x [ memset::c#8 memset::c#1 ] -reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -zp[4]:11 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 main::cyclecount#0 clock::return#2 main::$18 clock::return#0 ] -reg byte x [ ultoa::started#2 ultoa::started#4 ] -reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] -reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] reg byte x [ eorfill::x#2 eorfill::x#1 ] reg byte y [ eorfill::y#2 eorfill::y#1 ] reg byte a [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] -zp[1]:15 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 printf_number_buffer::format_upper_case#10 ] -zp[1]:16 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -reg byte x [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -zp[1]:17 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -zp[1]:18 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 printf_padding::pad#5 ] -reg byte x [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] +zp[1]:12 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 ] +zp[1]:13 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +reg byte x [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +zp[1]:14 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +zp[1]:15 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +zp[1]:16 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +reg byte x [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] reg byte a [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] reg byte a [ sgn_u8::return#4 ] reg byte a [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] -zp[1]:19 [ conio_cursor_x main::y#2 main::y#1 ] -zp[1]:20 [ conio_cursor_y ] -zp[2]:21 [ conio_cursor_text cputln::$1 cscroll::$7 eorfill::line_column#2 eorfill::line_column#1 ] -zp[2]:23 [ conio_cursor_color cputln::$2 cscroll::$8 eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] -zp[1]:25 [ conio_textcolor ] -zp[1]:26 [ canvas_show_memory ] -zp[1]:27 [ canvas_show_flag ] -zp[1]:28 [ main::x0#0 printf_padding::i#2 printf_padding::i#1 ] -zp[1]:29 [ main::y0#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] -zp[1]:30 [ main::y1#0 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_zero_padding#10 ] -zp[1]:31 [ main::y2#0 uctoa::started#2 uctoa::started#4 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -reg byte x [ printf_uchar::uvalue#0 ] -reg byte a [ cputs::c#1 ] -reg byte a [ toupper::return#3 ] -reg byte a [ strupr::$0 ] -reg byte a [ ultoa::$11 ] -reg byte a [ ultoa::$10 ] -zp[4]:32 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -reg byte x [ uctoa_append::return#0 ] +reg byte x [ memset::c#6 ] +zp[1]:17 [ canvas_show_memory ] +zp[1]:18 [ canvas_show_flag ] +zp[1]:19 [ main::x0#0 ] +zp[1]:20 [ main::y0#0 ] +zp[1]:21 [ main::y1#0 ] +zp[1]:22 [ main::y2#0 ] reg byte a [ abs_u8::return#0 ] -zp[1]:36 [ line::dx#0 uctoa::digit_value#0 uctoa_append::sub#0 ] +zp[1]:23 [ line::dx#0 ] reg byte a [ abs_u8::return#1 ] -zp[1]:37 [ line::dy#0 ] +zp[1]:24 [ line::dy#0 ] reg byte a [ sgn_u8::return#0 ] -zp[1]:38 [ line::sx#0 ] +zp[1]:25 [ line::sx#0 ] reg byte a [ sgn_u8::return#1 ] -zp[1]:39 [ line::sy#0 ] -reg byte a [ line::plot1_$0 ] -reg byte a [ line::plot1_$2 ] -zp[2]:40 [ line::plot1_column#0 cputln::ln_offset#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::str#2 strlen::str#0 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::num#6 memset::end#0 ] -zp[1]:42 [ line::plot1_$1 ] +zp[1]:26 [ line::sy#0 ] +zp[1]:27 [ line::plot2_y#0 ] reg byte a [ line::plot2_$0 ] reg byte a [ line::plot2_$2 ] -zp[2]:43 [ line::plot2_column#0 memcpy::src_end#0 ] -zp[1]:45 [ line::plot2_$1 ] +zp[2]:28 [ line::plot2_column#0 memset::num#4 memset::end#0 eorfill::line_column#2 eorfill::line_column#1 ] +zp[1]:30 [ line::plot2_$1 ] reg byte a [ line::plot3_$0 ] reg byte a [ line::plot3_$2 ] -zp[2]:46 [ line::plot3_column#0 strupr::src#2 strupr::src#1 cputs::s#4 cputs::s#5 cputs::s#0 ] -zp[1]:48 [ line::plot3_$1 ] +zp[2]:31 [ line::plot3_column#0 memset::str#5 memset::dst#2 memset::dst#4 memset::dst#1 eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] +reg byte a [ line::plot3_$1 ] +reg byte a [ line::plot1_$0 ] +reg byte a [ line::plot1_$2 ] +zp[2]:33 [ line::plot1_column#0 ] +reg byte a [ line::plot1_$1 ] reg byte a [ line::plot4_$0 ] reg byte a [ line::plot4_$2 ] -zp[2]:49 [ line::plot4_column#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 memset::str#7 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:35 [ line::plot4_column#0 ] reg byte a [ line::plot4_$1 ] +reg byte a [ line::plot5_$0 ] +reg byte a [ line::plot5_$2 ] +zp[2]:37 [ line::plot5_column#0 ] +zp[1]:39 [ line::plot5_$1 ] +reg byte a [ line::plot6_$0 ] +reg byte a [ line::plot6_$2 ] +zp[2]:40 [ line::plot6_column#0 ] +reg byte a [ line::plot6_$1 ] reg byte a [ sgn_u8::$0 ] reg byte x [ abs_u8::$0 ] reg byte a [ kbhit::return#2 ] reg byte a [ irq_bottom_2::$0 ] reg byte a [ kbhit::return#0 ] -mem[12] [ printf_buffer ] FINAL ASSEMBLER -Score: 271154 +Score: 106699 // File Comments // Filling a simple 16x16 2D polygon using EOR-filling @@ -15280,12 +8386,7 @@ Score: 271154 .const BLACK = 0 .const WHITE = 1 .const RED = 2 - // Clock cycles used to start & read the cycle clock by calling clock_start() and clock() once. Can be subtracted when calculating the number of cycles used by a routine. - // To make precise cycle measurements interrupts and the display must be disabled so neither steals any cycles from the code. - .const CLOCKS_PER_INIT = $12 - // The default text color - .const CONIO_TEXTCOLOR_DEFAULT = $e - .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const DARK_GREY = $b .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f .const OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 @@ -15297,7 +8398,6 @@ Score: 271154 .const OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 .const OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c // The VIC-II MOS 6567/6569 .label VICII = $d000 // Color Ram @@ -15310,13 +8410,6 @@ Score: 271154 .label CIA2_TIMER_AB = $dd04 // The vector used when the KERNAL serves IRQ interrupts .label KERNEL_IRQ = $314 - // The screen width - // The screen height - // The screen bytes - // The text screen address - .label CONIO_SCREEN_TEXT = $400 - // The color screen address - .label CONIO_SCREEN_COLORS = $d800 // CIA#1 Port A: keyboard matrix columns and joystick #2 .label CONIO_CIA1_PORT_A = $dc00 // CIA#1 Port B: keyboard matrix rows and joystick #1. @@ -15333,159 +8426,123 @@ Score: 271154 // The default charset address .label PETSCII = $1000 .label COSTAB = SINTAB+$40 - .label conio_cursor_x = $13 - .label conio_cursor_y = $14 - .label conio_cursor_text = $15 - .label conio_cursor_color = $17 - .label conio_textcolor = $19 - .label canvas_show_memory = $1a - .label canvas_show_flag = $1b + .label canvas_show_memory = $11 + .label canvas_show_flag = $12 // @begin __bbegin: - // @1 - // conio_cursor_x = 0 - // [1] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - // The current cursor x-position - lda #0 - sta.z conio_cursor_x - // conio_cursor_y = 0 - // [2] (byte) conio_cursor_y ← (byte) 0 -- vbuz1=vbuc1 - // The current cursor y-position - sta.z conio_cursor_y - // conio_cursor_text = CONIO_SCREEN_TEXT - // [3] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT -- pbuz1=pbuc1 - // The current cursor address - lda #CONIO_SCREEN_TEXT - sta.z conio_cursor_text+1 - // conio_cursor_color = CONIO_SCREEN_COLORS - // [4] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS -- pbuz1=pbuc1 - // The current cursor address - lda #CONIO_SCREEN_COLORS - sta.z conio_cursor_color+1 - // conio_textcolor = CONIO_TEXTCOLOR_DEFAULT - // [5] (byte) conio_textcolor ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- vbuz1=vbuc1 - // The current text color - lda #CONIO_TEXTCOLOR_DEFAULT - sta.z conio_textcolor - // [6] phi from @1 to toD0181 [phi:@1->toD0181] + // [1] phi from @begin to toD0181 [phi:@begin->toD0181] // toD0181 - // @3 + // @2 // canvas_show_memory = toD018(SCREEN, CANVAS2) - // [7] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 -- vbuz1=vbuc1 + // [2] (volatile byte) canvas_show_memory ← (const byte) toD0181_return#0 -- vbuz1=vbuc1 // The current canvas being rendered to the screen - in D018 format. lda #toD0181_return sta.z canvas_show_memory // canvas_show_flag = 0 - // [8] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 + // [3] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 // Flag signalling that the canvas on screen needs to be updated. // Set to 1 by the renderer when a new canvas is ready for showing, and to 0 by the raster when the canvas is shown on screen. lda #0 sta.z canvas_show_flag - // [9] phi from @3 to @2 [phi:@3->@2] - // @2 - // [10] call main - // [12] phi from @2 to main [phi:@2->main] + // [4] phi from @2 to @1 [phi:@2->@1] + // @1 + // [5] call main + // [7] phi from @1 to main [phi:@1->main] jsr main rts - // [11] phi from @2 to @end [phi:@2->@end] + // [6] phi from @1 to @end [phi:@1->@end] // @end // main main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CANVAS1)/4&$f .const toD0182_return = (>(SCREEN&$3fff)*4)|(>CANVAS2)/4&$f - .label __18 = $b - .label cols = 2 + .label cols = 3 // Setup 16x16 canvas for rendering - .label screen = 4 - .label y = $13 - .label x0 = $1c - .label y0 = $1d - .label x1 = $f - .label y1 = $1e - .label x2 = $f - .label y2 = $1f - .label p0_idx = 6 - .label p1_idx = 7 - .label p2_idx = 8 + .label screen = 5 + .label y = 2 + .label x0 = $13 + .label y0 = $14 + .label x1 = $c + .label y1 = $15 + .label x2 = $c + .label y2 = $16 + .label p0_idx = 7 + .label p1_idx = 8 + .label p2_idx = 9 // The current canvas being rendered to - .label canvas = 9 - .label cyclecount = $b + .label canvas = $a // memset(CONSOLE, ' ', 40*25) - // [13] call memset + // [8] call memset // Clear the console - // [177] phi from main to memset [phi:main->memset] - // [177] phi (byte) memset::c#8 = (byte) ' ' [phi:main->memset#0] -- vbuxx=vbuc1 + // [181] phi from main to memset [phi:main->memset] + // [181] phi (byte) memset::c#6 = (byte) ' ' [phi:main->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONSOLE [phi:main->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) CONSOLE [phi:main->memset#1] -- pvoz1=pvoc1 lda #CONSOLE sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [14] phi from main to main::@12 [phi:main->main::@12] + // [9] phi from main to main::@12 [phi:main->main::@12] // main::@12 // memset(SCREEN, 0, 40*25) - // [15] call memset + // [10] call memset // Clear the screen - // [177] phi from main::@12 to memset [phi:main::@12->memset] - // [177] phi (byte) memset::c#8 = (byte) 0 [phi:main::@12->memset#0] -- vbuxx=vbuc1 + // [181] phi from main::@12 to memset [phi:main::@12->memset] + // [181] phi (byte) memset::c#6 = (byte) 0 [phi:main::@12->memset#0] -- vbuxx=vbuc1 ldx #0 - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) SCREEN [phi:main::@12->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) SCREEN [phi:main::@12->memset#1] -- pvoz1=pvoc1 lda #SCREEN sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main::@12->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main::@12->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [16] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [11] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // memset(COLS, BLACK, 40*25) - // [17] call memset - // [177] phi from main::@13 to memset [phi:main::@13->memset] - // [177] phi (byte) memset::c#8 = (const nomodify byte) BLACK [phi:main::@13->memset#0] -- vbuxx=vbuc1 + // [12] call memset + // [181] phi from main::@13 to memset [phi:main::@13->memset] + // [181] phi (byte) memset::c#6 = (const nomodify byte) BLACK [phi:main::@13->memset#0] -- vbuxx=vbuc1 ldx #BLACK - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) COLS [phi:main::@13->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) COLS [phi:main::@13->memset#1] -- pvoz1=pvoc1 lda #COLS sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word)(number) $28*(number) $19 [phi:main::@13->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word)(number) $28*(number) $19 [phi:main::@13->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 sta.z memset.num+1 jsr memset - // [18] phi from main::@13 to main::@1 [phi:main::@13->main::@1] - // [18] phi (byte*) main::screen#5 = (const nomodify byte*) SCREEN+(byte) $c [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 + // [13] phi from main::@13 to main::@1 [phi:main::@13->main::@1] + // [13] phi (byte*) main::screen#5 = (const nomodify byte*) SCREEN+(byte) $c [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 lda #SCREEN+$c sta.z screen+1 - // [18] phi (byte*) main::cols#5 = (const nomodify byte*) COLS+(byte) $c [phi:main::@13->main::@1#1] -- pbuz1=pbuc1 + // [13] phi (byte*) main::cols#5 = (const nomodify byte*) COLS+(byte) $c [phi:main::@13->main::@1#1] -- pbuz1=pbuc1 lda #COLS+$c sta.z cols+1 - // [18] phi (byte) main::y#2 = (byte) 0 [phi:main::@13->main::@1#2] -- vbuz1=vbuc1 + // [13] phi (byte) main::y#2 = (byte) 0 [phi:main::@13->main::@1#2] -- vbuz1=vbuc1 lda #0 sta.z y // main::@1 __b1: // for(char y=0;y<16;y++) - // [19] if((byte) main::y#2<(byte) $10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 + // [14] if((byte) main::y#2<(byte) $10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z y cmp #$10 bcs !__b2+ @@ -15493,58 +8550,59 @@ main: { !__b2: // main::@3 // VICII->BORDER_COLOR = BLACK - // [20] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [15] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->BG_COLOR = BLACK - // [21] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [16] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // setup_irq() - // [22] call setup_irq + // [17] call setup_irq // Set-up the raster IRQ jsr setup_irq - // [23] phi from main::@3 to main::@14 [phi:main::@3->main::@14] + // [18] phi from main::@3 to main::@14 [phi:main::@3->main::@14] // main::@14 // textcolor(WHITE) - // [24] call textcolor - // Set text color + // [19] call textcolor + // Set text color + // [196] phi from main::@14 to textcolor [phi:main::@14->textcolor] jsr textcolor - // [25] phi from main::@14 to main::@7 [phi:main::@14->main::@7] - // [25] phi (byte*) main::canvas#10 = (const nomodify byte*) CANVAS1 [phi:main::@14->main::@7#0] -- pbuz1=pbuc1 + // [20] phi from main::@14 to main::@7 [phi:main::@14->main::@7] + // [20] phi (byte*) main::canvas#10 = (const nomodify byte*) CANVAS1 [phi:main::@14->main::@7#0] -- pbuz1=pbuc1 lda #CANVAS1 sta.z canvas+1 - // [25] phi (byte) main::p2_idx#2 = (byte) $f0+(byte) $aa [phi:main::@14->main::@7#1] -- vbuz1=vbuc1 - lda #$f0+$aa + // [20] phi (byte) main::p2_idx#2 = (byte) $b5+(byte) $aa [phi:main::@14->main::@7#1] -- vbuz1=vbuc1 + lda #$b5+$aa sta.z p2_idx - // [25] phi (byte) main::p1_idx#2 = (byte) $f0+(byte) $f [phi:main::@14->main::@7#2] -- vbuz1=vbuc1 - lda #$f0+$f + // [20] phi (byte) main::p1_idx#2 = (byte) $b5+(byte) $f [phi:main::@14->main::@7#2] -- vbuz1=vbuc1 + lda #$b5+$f sta.z p1_idx - // [25] phi (byte) main::p0_idx#11 = (byte) $f0 [phi:main::@14->main::@7#3] -- vbuz1=vbuc1 - lda #$f0 + // [20] phi (byte) main::p0_idx#2 = (byte) $b5 [phi:main::@14->main::@7#3] -- vbuz1=vbuc1 + lda #$b5 sta.z p0_idx // main::@7 - // [26] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [21] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 __b8: // clock_start() - // [27] call clock_start + // [22] call clock_start jsr clock_start - // [28] phi from main::@8 to main::@15 [phi:main::@8->main::@15] + // [23] phi from main::@8 to main::@15 [phi:main::@8->main::@15] // main::@15 // memset(LINE_BUFFER, 0, 0x0800) - // [29] call memset + // [24] call memset // Clear line buffer - // [177] phi from main::@15 to memset [phi:main::@15->memset] - // [177] phi (byte) memset::c#8 = (byte) 0 [phi:main::@15->memset#0] -- vbuxx=vbuc1 + // [181] phi from main::@15 to memset [phi:main::@15->memset] + // [181] phi (byte) memset::c#6 = (byte) 0 [phi:main::@15->memset#0] -- vbuxx=vbuc1 ldx #0 - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) LINE_BUFFER [phi:main::@15->memset#1] -- pvoz1=pvoc1 + // [181] phi (void*) memset::str#5 = (void*)(const nomodify byte*) LINE_BUFFER [phi:main::@15->memset#1] -- pvoz1=pvoc1 lda #LINE_BUFFER sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (word) $800 [phi:main::@15->memset#2] -- vwuz1=vwuc1 + // [181] phi (word) memset::num#4 = (word) $800 [phi:main::@15->memset#2] -- vwuz1=vwuc1 lda #<$800 sta.z memset.num lda #>$800 @@ -15552,131 +8610,131 @@ main: { jsr memset // main::@16 // x0 = COSTAB[p0_idx] - // [30] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#11) -- vbuz1=pbuc1_derefidx_vbuz2 + // [25] (byte) main::x0#0 ← *((const byte*) COSTAB + (byte) main::p0_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 // Plot in line buffer ldy.z p0_idx lda COSTAB,y sta.z x0 // y0 = SINTAB[p0_idx] - // [31] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#11) -- vbuz1=pbuc1_derefidx_vbuz2 + // [26] (byte) main::y0#0 ← *((const byte*) SINTAB + (byte) main::p0_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 lda SINTAB,y sta.z y0 // x1 = COSTAB[p1_idx] - // [32] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [27] (byte) main::x1#0 ← *((const byte*) COSTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p1_idx lda COSTAB,y sta.z x1 // y1 = SINTAB[p1_idx] - // [33] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [28] (byte) main::y1#0 ← *((const byte*) SINTAB + (byte) main::p1_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 lda SINTAB,y sta.z y1 // line(LINE_BUFFER, x0, y0, x1, y1) - // [34] (byte) line::x1#0 ← (byte) main::x0#0 -- vbuz1=vbuz2 + // [29] (byte) line::x1#0 ← (byte) main::x0#0 -- vbuz1=vbuz2 lda.z x0 sta.z line.x1 - // [35] (byte) line::y1#0 ← (byte) main::y0#0 -- vbuz1=vbuz2 + // [30] (byte) line::y1#0 ← (byte) main::y0#0 -- vbuz1=vbuz2 lda.z y0 sta.z line.y1 - // [36] (byte) line::x2#0 ← (byte) main::x1#0 - // [37] (byte) line::y2#0 ← (byte) main::y1#0 -- vbuz1=vbuz2 + // [31] (byte) line::x2#0 ← (byte) main::x1#0 + // [32] (byte) line::y2#0 ← (byte) main::y1#0 -- vbuz1=vbuz2 lda.z y1 sta.z line.y2 - // [38] call line - // [307] phi from main::@16 to line [phi:main::@16->line] - // [307] phi (byte) line::y2#10 = (byte) line::y2#0 [phi:main::@16->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#0 [phi:main::@16->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#0 [phi:main::@16->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#0 [phi:main::@16->line#3] -- register_copy + // [33] call line + // [87] phi from main::@16 to line [phi:main::@16->line] + // [87] phi (byte) line::y2#10 = (byte) line::y2#0 [phi:main::@16->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#0 [phi:main::@16->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#0 [phi:main::@16->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#0 [phi:main::@16->line#3] -- register_copy jsr line // main::@17 // x2 = COSTAB[p2_idx] - // [39] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [34] (byte) main::x2#0 ← *((const byte*) COSTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z p2_idx lda COSTAB,y sta.z x2 // y2 = SINTAB[p2_idx] - // [40] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [35] (byte) main::y2#0 ← *((const byte*) SINTAB + (byte) main::p2_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 lda SINTAB,y sta.z y2 // line(LINE_BUFFER, x1, y1, x2, y2) - // [41] (byte) line::x1#1 ← (byte) main::x1#0 -- vbuz1=vbuz2 + // [36] (byte) line::x1#1 ← (byte) main::x1#0 -- vbuz1=vbuz2 lda.z x1 sta.z line.x1 - // [42] (byte) line::y1#1 ← (byte) main::y1#0 -- vbuz1=vbuz2 + // [37] (byte) line::y1#1 ← (byte) main::y1#0 -- vbuz1=vbuz2 lda.z y1 sta.z line.y1 - // [43] (byte) line::x2#1 ← (byte) main::x2#0 - // [44] (byte) line::y2#1 ← (byte) main::y2#0 -- vbuz1=vbuz2 + // [38] (byte) line::x2#1 ← (byte) main::x2#0 + // [39] (byte) line::y2#1 ← (byte) main::y2#0 -- vbuz1=vbuz2 lda.z y2 sta.z line.y2 - // [45] call line - // [307] phi from main::@17 to line [phi:main::@17->line] - // [307] phi (byte) line::y2#10 = (byte) line::y2#1 [phi:main::@17->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#1 [phi:main::@17->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#1 [phi:main::@17->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#1 [phi:main::@17->line#3] -- register_copy + // [40] call line + // [87] phi from main::@17 to line [phi:main::@17->line] + // [87] phi (byte) line::y2#10 = (byte) line::y2#1 [phi:main::@17->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#1 [phi:main::@17->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#1 [phi:main::@17->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#1 [phi:main::@17->line#3] -- register_copy jsr line // main::@18 // line(LINE_BUFFER, x2, y2, x0, y0) - // [46] (byte) line::x1#2 ← (byte) main::x2#0 -- vbuz1=vbuz2 + // [41] (byte) line::x1#2 ← (byte) main::x2#0 -- vbuz1=vbuz2 lda.z x2 sta.z line.x1 - // [47] (byte) line::y1#2 ← (byte) main::y2#0 -- vbuz1=vbuz2 + // [42] (byte) line::y1#2 ← (byte) main::y2#0 -- vbuz1=vbuz2 lda.z y2 sta.z line.y1 - // [48] (byte) line::x2#2 ← (byte) main::x0#0 -- vbuz1=vbuz2 + // [43] (byte) line::x2#2 ← (byte) main::x0#0 -- vbuz1=vbuz2 lda.z x0 sta.z line.x2 - // [49] (byte) line::y2#2 ← (byte) main::y0#0 -- vbuz1=vbuz2 + // [44] (byte) line::y2#2 ← (byte) main::y0#0 -- vbuz1=vbuz2 lda.z y0 sta.z line.y2 - // [50] call line - // [307] phi from main::@18 to line [phi:main::@18->line] - // [307] phi (byte) line::y2#10 = (byte) line::y2#2 [phi:main::@18->line#0] -- register_copy - // [307] phi (byte) line::x2#11 = (byte) line::x2#2 [phi:main::@18->line#1] -- register_copy - // [307] phi (byte) line::y#0 = (byte) line::y1#2 [phi:main::@18->line#2] -- register_copy - // [307] phi (byte) line::x#0 = (byte) line::x1#2 [phi:main::@18->line#3] -- register_copy + // [45] call line + // [87] phi from main::@18 to line [phi:main::@18->line] + // [87] phi (byte) line::y2#10 = (byte) line::y2#2 [phi:main::@18->line#0] -- register_copy + // [87] phi (byte) line::x2#15 = (byte) line::x2#2 [phi:main::@18->line#1] -- register_copy + // [87] phi (byte) line::y#0 = (byte) line::y1#2 [phi:main::@18->line#2] -- register_copy + // [87] phi (byte) line::x#0 = (byte) line::x1#2 [phi:main::@18->line#3] -- register_copy jsr line // main::@19 // p0_idx++; - // [51] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#11 -- vbuz1=_inc_vbuz1 + // [46] (byte) main::p0_idx#1 ← ++ (byte) main::p0_idx#2 -- vbuz1=_inc_vbuz1 inc.z p0_idx // p1_idx++; - // [52] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 -- vbuz1=_inc_vbuz1 + // [47] (byte) main::p1_idx#1 ← ++ (byte) main::p1_idx#2 -- vbuz1=_inc_vbuz1 inc.z p1_idx // p2_idx++; - // [53] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 -- vbuz1=_inc_vbuz1 + // [48] (byte) main::p2_idx#1 ← ++ (byte) main::p2_idx#2 -- vbuz1=_inc_vbuz1 inc.z p2_idx // VICII->BORDER_COLOR = RED - // [54] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED -- _deref_pbuc1=vbuc2 + // [49] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) RED -- _deref_pbuc1=vbuc2 // Wait until the canvas on screen has been switched before starting work on the next frame lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // main::@9 __b9: // while(canvas_show_flag) - // [55] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -- vbuc1_neq_vbuz1_then_la1 + // [50] if((byte) 0!=(volatile byte) canvas_show_flag) goto main::@9 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z canvas_show_flag bne __b9 // main::@10 // VICII->BORDER_COLOR = BLACK - // [56] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [51] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // eorfill(LINE_BUFFER, canvas) - // [57] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 -- pbuz1=pbuz2 + // [52] (byte*) eorfill::canvas#0 ← (byte*) main::canvas#10 -- pbuz1=pbuz2 lda.z canvas sta.z eorfill.canvas lda.z canvas+1 sta.z eorfill.canvas+1 - // [58] call eorfill + // [53] call eorfill // Fill canvas - // [294] phi from main::@10 to eorfill [phi:main::@10->eorfill] + // [73] phi from main::@10 to eorfill [phi:main::@10->eorfill] jsr eorfill // main::@20 // canvas ^= (CANVAS1^CANVAS2) - // [59] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 -- vwuz1=pbuz1_bxor_vwuc1 + // [54] (word) main::canvas#1 ← (byte*) main::canvas#10 ^ (const nomodify byte*) CANVAS1^(const nomodify byte*) CANVAS2 -- vwuz1=pbuz1_bxor_vwuc1 // swap canvas being rendered to (using XOR) lda #CANVAS1^CANVAS2 eor.z canvas+1 sta.z canvas+1 - // [60] phi from main::@20 to main::toD0181 [phi:main::@20->main::toD0181] + // [55] phi from main::@20 to main::toD0181 [phi:main::@20->main::toD0181] // main::toD0181 - // [61] phi from main::toD0181 to main::toD0182 [phi:main::toD0181->main::toD0182] + // [56] phi from main::toD0181 to main::toD0182 [phi:main::toD0181->main::toD0182] // main::toD0182 // main::@11 // canvas_show_memory ^= toD018(SCREEN,CANVAS1)^toD018(SCREEN,CANVAS2) - // [62] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 -- vbuz1=vbuz1_bxor_vbuc1 + // [57] (volatile byte) canvas_show_memory ← (volatile byte) canvas_show_memory ^ (const byte) main::toD0181_return#0^(const byte) main::toD0182_return#0 -- vbuz1=vbuz1_bxor_vbuc1 // Swap canvas to show on screen (using XOR) lda #toD0181_return^toD0182_return eor.z canvas_show_memory sta.z canvas_show_memory // canvas_show_flag = 1 - // [63] (volatile byte) canvas_show_flag ← (byte) 1 -- vbuz1=vbuc1 + // [58] (volatile byte) canvas_show_flag ← (byte) 1 -- vbuz1=vbuc1 // Set flag used to signal when the canvas has been shown lda #1 sta.z canvas_show_flag // clock() - // [64] call clock + // [59] call clock + // [71] phi from main::@11 to clock [phi:main::@11->clock] jsr clock - // [65] (dword) clock::return#2 ← (dword) clock::return#0 // main::@21 - // [66] (dword~) main::$18 ← (dword) clock::return#2 - // cyclecount = clock()-CLOCKS_PER_INIT - // [67] (dword) main::cyclecount#0 ← (dword~) main::$18 - (const nomodify dword) CLOCKS_PER_INIT -- vduz1=vduz1_minus_vduc1 - lda.z cyclecount - sec - sbc #CLOCKS_PER_INIT - sta.z cyclecount+1 - lda.z cyclecount+2 - sbc #>$10 - sta.z cyclecount+2 - lda.z cyclecount+3 - sbc #>CLOCKS_PER_INIT>>$10 - sta.z cyclecount+3 - // gotoxy(0,24) - // [68] call gotoxy - // [286] phi from main::@21 to gotoxy [phi:main::@21->gotoxy] - jsr gotoxy - // [69] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - // main::@22 - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - // [70] call cputs - // [196] phi from main::@22 to cputs [phi:main::@22->cputs] - // [196] phi (to_nomodify byte*) cputs::s#5 = (const byte*) main::s [phi:main::@22->cputs#0] -- pbuz1=pbuc1 - lda #s - sta.z cputs.s+1 - jsr cputs - // main::@23 - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - // [71] (byte) printf_uchar::uvalue#0 ← (byte) main::p0_idx#1 -- vbuxx=vbuz1 - ldx.z p0_idx - // [72] call printf_uchar - // [253] phi from main::@23 to printf_uchar [phi:main::@23->printf_uchar] - jsr printf_uchar - // [73] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - // main::@24 - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - // [74] call cputs - // [196] phi from main::@24 to cputs [phi:main::@24->cputs] - // [196] phi (to_nomodify byte*) cputs::s#5 = (const byte*) main::s1 [phi:main::@24->cputs#0] -- pbuz1=pbuc1 - lda #s1 - sta.z cputs.s+1 - jsr cputs - // main::@25 - // printf("frame: %02x cycles: %6lu", p0_idx, cyclecount) - // [75] (dword) printf_ulong::uvalue#0 ← (dword) main::cyclecount#0 - // [76] call printf_ulong - // [88] phi from main::@25 to printf_ulong [phi:main::@25->printf_ulong] - jsr printf_ulong - // main::@26 - // [77] (byte*) main::canvas#24 ← (byte*)(word) main::canvas#1 - // [25] phi from main::@26 to main::@7 [phi:main::@26->main::@7] - // [25] phi (byte*) main::canvas#10 = (byte*) main::canvas#24 [phi:main::@26->main::@7#0] -- register_copy - // [25] phi (byte) main::p2_idx#2 = (byte) main::p2_idx#1 [phi:main::@26->main::@7#1] -- register_copy - // [25] phi (byte) main::p1_idx#2 = (byte) main::p1_idx#1 [phi:main::@26->main::@7#2] -- register_copy - // [25] phi (byte) main::p0_idx#11 = (byte) main::p0_idx#1 [phi:main::@26->main::@7#3] -- register_copy + // [60] (byte*) main::canvas#19 ← (byte*)(word) main::canvas#1 + // [20] phi from main::@21 to main::@7 [phi:main::@21->main::@7] + // [20] phi (byte*) main::canvas#10 = (byte*) main::canvas#19 [phi:main::@21->main::@7#0] -- register_copy + // [20] phi (byte) main::p2_idx#2 = (byte) main::p2_idx#1 [phi:main::@21->main::@7#1] -- register_copy + // [20] phi (byte) main::p1_idx#2 = (byte) main::p1_idx#1 [phi:main::@21->main::@7#2] -- register_copy + // [20] phi (byte) main::p0_idx#2 = (byte) main::p0_idx#1 [phi:main::@21->main::@7#3] -- register_copy jmp __b8 // main::@2 __b2: - // [78] (byte) main::c#4 ← (byte) main::y#2 -- vbuxx=vbuz1 + // [61] (byte) main::c#4 ← (byte) main::y#2 -- vbuxx=vbuz1 ldx.z y - // [79] phi from main::@2 to main::@4 [phi:main::@2->main::@4] - // [79] phi (byte) main::c#2 = (byte) main::c#4 [phi:main::@2->main::@4#0] -- register_copy - // [79] phi (byte) main::x#2 = (byte) 0 [phi:main::@2->main::@4#1] -- vbuyy=vbuc1 + // [62] phi from main::@2 to main::@4 [phi:main::@2->main::@4] + // [62] phi (byte) main::c#2 = (byte) main::c#4 [phi:main::@2->main::@4#0] -- register_copy + // [62] phi (byte) main::x#2 = (byte) 0 [phi:main::@2->main::@4#1] -- vbuyy=vbuc1 ldy #0 // main::@4 __b4: // for(char x=0;x<16;x++) - // [80] if((byte) main::x#2<(byte) $10) goto main::@5 -- vbuyy_lt_vbuc1_then_la1 + // [63] if((byte) main::x#2<(byte) $10) goto main::@5 -- vbuyy_lt_vbuc1_then_la1 cpy #$10 bcc __b5 // main::@6 // cols += 40 - // [81] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [64] (byte*) main::cols#1 ← (byte*) main::cols#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z cols @@ -15793,7 +8795,7 @@ main: { inc.z cols+1 !: // screen += 40 - // [82] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [65] (byte*) main::screen#1 ← (byte*) main::screen#5 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z screen @@ -15802,550 +8804,656 @@ main: { inc.z screen+1 !: // for(char y=0;y<16;y++) - // [83] (byte) main::y#1 ← ++ (byte) main::y#2 -- vbuz1=_inc_vbuz1 + // [66] (byte) main::y#1 ← ++ (byte) main::y#2 -- vbuz1=_inc_vbuz1 inc.z y - // [18] phi from main::@6 to main::@1 [phi:main::@6->main::@1] - // [18] phi (byte*) main::screen#5 = (byte*) main::screen#1 [phi:main::@6->main::@1#0] -- register_copy - // [18] phi (byte*) main::cols#5 = (byte*) main::cols#1 [phi:main::@6->main::@1#1] -- register_copy - // [18] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@6->main::@1#2] -- register_copy + // [13] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + // [13] phi (byte*) main::screen#5 = (byte*) main::screen#1 [phi:main::@6->main::@1#0] -- register_copy + // [13] phi (byte*) main::cols#5 = (byte*) main::cols#1 [phi:main::@6->main::@1#1] -- register_copy + // [13] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@6->main::@1#2] -- register_copy jmp __b1 // main::@5 __b5: // cols[x] = WHITE - // [84] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE -- pbuz1_derefidx_vbuyy=vbuc1 + // [67] *((byte*) main::cols#5 + (byte) main::x#2) ← (const nomodify byte) WHITE -- pbuz1_derefidx_vbuyy=vbuc1 lda #WHITE sta (cols),y // screen[x] = c - // [85] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 -- pbuz1_derefidx_vbuyy=vbuxx + // [68] *((byte*) main::screen#5 + (byte) main::x#2) ← (byte) main::c#2 -- pbuz1_derefidx_vbuyy=vbuxx txa sta (screen),y // c+=0x10 - // [86] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 -- vbuxx=vbuxx_plus_vbuc1 + // [69] (byte) main::c#1 ← (byte) main::c#2 + (byte) $10 -- vbuxx=vbuxx_plus_vbuc1 txa axs #-[$10] // for(char x=0;x<16;x++) - // [87] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuyy=_inc_vbuyy + // [70] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuyy=_inc_vbuyy iny - // [79] phi from main::@5 to main::@4 [phi:main::@5->main::@4] - // [79] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@5->main::@4#0] -- register_copy - // [79] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@5->main::@4#1] -- register_copy + // [62] phi from main::@5 to main::@4 [phi:main::@5->main::@4] + // [62] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@5->main::@4#0] -- register_copy + // [62] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@5->main::@4#1] -- register_copy jmp __b4 - s: .text "frame: " - .byte 0 - s1: .text " cycles: " - .byte 0 } - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp($b) uvalue) -printf_ulong: { - .const format_min_length = 6 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = $b - // printf_ulong::@1 - // printf_buffer.sign = format.sign_always?'+':0 - // [89] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // ultoa(uvalue, printf_buffer.digits, format.radix) - // [90] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - // [91] call ultoa - // Format number into buffer - // [225] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - jsr ultoa - // printf_ulong::@2 - // printf_number_buffer(printf_buffer, format) - // [92] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [93] call printf_number_buffer - // Print using format - // [95] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - // [95] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [95] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [95] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#2] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [95] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [95] phi (byte) printf_number_buffer::format_min_length#2 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuxx=vbuc1 - ldx #format_min_length - jsr printf_number_buffer - // printf_ulong::@return + // clock +// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). +// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() +clock: { + // clock::@return // } - // [94] return + // [72] return rts } - // printf_number_buffer -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($1f) buffer_sign, byte register(X) format_min_length, byte zp($1d) format_justify_left, byte zp($1e) format_zero_padding, byte zp($f) format_upper_case) -printf_number_buffer: { - .label __19 = $31 - .label buffer_sign = $1f - .label padding = $10 - .label format_zero_padding = $1e - .label format_justify_left = $1d - .label format_upper_case = $f - // if(format.min_length) - // [96] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -- vbuc1_eq_vbuxx_then_la1 - cpx #0 - beq __b6 - // [97] phi from printf_number_buffer to printf_number_buffer::@6 [phi:printf_number_buffer->printf_number_buffer::@6] - // printf_number_buffer::@6 - // strlen(buffer.digits) - // [98] call strlen - // [219] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] - jsr strlen - // strlen(buffer.digits) - // [99] (word) strlen::return#2 ← (word) strlen::len#2 - // printf_number_buffer::@14 - // [100] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - // len = (signed char)strlen(buffer.digits) - // [101] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 - // There is a minimum length - work out the padding - lda.z __19 - tay - // if(buffer.sign) - // [102] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b13 - // printf_number_buffer::@7 - // len++; - // [103] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy - iny - // [104] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - // [104] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy - // printf_number_buffer::@13 - __b13: - // padding = (signed char)format.min_length - len - // [105] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy - txa - sty.z $ff - sec - sbc.z $ff - sta.z padding - // if(padding<0) - // [106] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 - cmp #0 - bpl __b1 - // [108] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] - __b6: - // [108] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 - lda #0 - sta.z padding - // [107] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] - // printf_number_buffer::@21 - // [108] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - // [108] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy - // printf_number_buffer::@1 + // eorfill +// EOR fill from the line buffer onto the canvas +// eorfill(byte* zp($1f) canvas) +eorfill: { + .label canvas = $1f + .label line_column = $1c + .label fill_column = $1f + // [74] phi from eorfill to eorfill::@1 [phi:eorfill->eorfill::@1] + // [74] phi (byte*) eorfill::fill_column#2 = (byte*) eorfill::canvas#0 [phi:eorfill->eorfill::@1#0] -- register_copy + // [74] phi (byte*) eorfill::line_column#2 = (const nomodify byte*) LINE_BUFFER [phi:eorfill->eorfill::@1#1] -- pbuz1=pbuc1 + lda #LINE_BUFFER + sta.z line_column+1 + // [74] phi (byte) eorfill::x#2 = (byte) 0 [phi:eorfill->eorfill::@1#2] -- vbuxx=vbuc1 + ldx #0 + // eorfill::@1 __b1: - // if(!format.justify_left && !format.zero_padding && padding) - // [109] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - bne __b2 - // printf_number_buffer::@17 - // [110] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - cmp.z format_zero_padding - bne __b2 - // printf_number_buffer::@16 - // [111] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 - cmp.z padding - bne __b8 - jmp __b2 - // printf_number_buffer::@8 - __b8: - // printf_padding(' ',(char)padding) - // [112] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [113] call printf_padding - // [132] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - // [132] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy - jsr printf_padding - // printf_number_buffer::@2 - __b2: - // if(buffer.sign) - // [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b3 - // printf_number_buffer::@9 - // cputc(buffer.sign) - // [115] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuaa=vbuz1 - lda.z buffer_sign - // [116] call cputc - // [139] phi from printf_number_buffer::@9 to cputc [phi:printf_number_buffer::@9->cputc] - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#2 [phi:printf_number_buffer::@9->cputc#0] -- register_copy - jsr cputc - // printf_number_buffer::@3 - __b3: - // if(format.zero_padding && padding) - // [117] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - beq __b4 - // printf_number_buffer::@18 - // [118] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 - cmp.z padding - bne __b10 - jmp __b4 - // printf_number_buffer::@10 - __b10: - // printf_padding('0',(char)padding) - // [119] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [120] call printf_padding - // [132] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - // [132] phi (byte) printf_padding::pad#5 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 - lda #'0' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy - jsr printf_padding - // printf_number_buffer::@4 - __b4: - // if(format.upper_case) - // [121] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_upper_case - beq __b5 - // [122] phi from printf_number_buffer::@4 to printf_number_buffer::@11 [phi:printf_number_buffer::@4->printf_number_buffer::@11] - // printf_number_buffer::@11 - // strupr(buffer.digits) - // [123] call strupr - // [204] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] - jsr strupr - // [124] phi from printf_number_buffer::@11 printf_number_buffer::@4 to printf_number_buffer::@5 [phi:printf_number_buffer::@11/printf_number_buffer::@4->printf_number_buffer::@5] - // printf_number_buffer::@5 - __b5: - // cputs(buffer.digits) - // [125] call cputs - // [196] phi from printf_number_buffer::@5 to cputs [phi:printf_number_buffer::@5->cputs] - // [196] phi (to_nomodify byte*) cputs::s#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_number_buffer::@5->cputs#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z cputs.s+1 - jsr cputs - // printf_number_buffer::@15 - // if(format.justify_left && !format.zero_padding && padding) - // [126] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - beq __breturn - // printf_number_buffer::@20 - // [127] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 - cmp.z format_zero_padding - bne __breturn - // printf_number_buffer::@19 - // [128] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 - cmp.z padding - bne __b12 - rts - // printf_number_buffer::@12 - __b12: - // printf_padding(' ',(char)padding) - // [129] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [130] call printf_padding - // [132] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - // [132] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [132] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy - jsr printf_padding - // printf_number_buffer::@return - __breturn: - // } - // [131] return - rts -} - // printf_padding -// Print a padding char a number of times -// printf_padding(byte zp($12) pad, byte zp($11) length) -printf_padding: { - .label i = $1c - .label length = $11 - .label pad = $12 - // [133] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - // [133] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z i - // printf_padding::@1 - __b1: - // for(char i=0;icputc] - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#1 [phi:printf_padding::@2->cputc#0] -- register_copy - jsr cputc - // printf_padding::@3 - // for(char i=0;iprintf_padding::@1] - // [133] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // eor = line_column[0] + // [77] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) -- vbuaa=_deref_pbuz1 + ldy #0 + lda (line_column),y + // fill_column[0] = eor + // [78] *((byte*) eorfill::fill_column#2) ← (byte) eorfill::eor#0 -- _deref_pbuz1=vbuaa + sta (fill_column),y + // [79] phi from eorfill::@2 to eorfill::@3 [phi:eorfill::@2->eorfill::@3] + // [79] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#0 [phi:eorfill::@2->eorfill::@3#0] -- register_copy + // [79] phi (byte) eorfill::y#2 = (byte) 1 [phi:eorfill::@2->eorfill::@3#1] -- vbuyy=vbuc1 + ldy #1 + // eorfill::@3 + __b3: + // for(char y=1;y<16*8;y++) + // [80] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -- vbuyy_lt_vbuc1_then_la1 + cpy #$10*8 + bcc __b4 + // eorfill::@5 + // line_column += 16*8 + // [81] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 + lda #$10*8 + clc + adc.z line_column + sta.z line_column + bcc !+ + inc.z line_column+1 + !: + // fill_column += 16*8 + // [82] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 + lda #$10*8 + clc + adc.z fill_column + sta.z fill_column + bcc !+ + inc.z fill_column+1 + !: + // for(char x=0;x<16;x++) + // [83] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 -- vbuxx=_inc_vbuxx + inx + // [74] phi from eorfill::@5 to eorfill::@1 [phi:eorfill::@5->eorfill::@1] + // [74] phi (byte*) eorfill::fill_column#2 = (byte*) eorfill::fill_column#1 [phi:eorfill::@5->eorfill::@1#0] -- register_copy + // [74] phi (byte*) eorfill::line_column#2 = (byte*) eorfill::line_column#1 [phi:eorfill::@5->eorfill::@1#1] -- register_copy + // [74] phi (byte) eorfill::x#2 = (byte) eorfill::x#1 [phi:eorfill::@5->eorfill::@1#2] -- register_copy jmp __b1 + // eorfill::@4 + __b4: + // eor ^= line_column[y] + // [84] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) -- vbuaa=vbuaa_bxor_pbuz1_derefidx_vbuyy + eor (line_column),y + // fill_column[y] = eor + // [85] *((byte*) eorfill::fill_column#2 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 -- pbuz1_derefidx_vbuyy=vbuaa + sta (fill_column),y + // for(char y=1;y<16*8;y++) + // [86] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 -- vbuyy=_inc_vbuyy + iny + // [79] phi from eorfill::@4 to eorfill::@3 [phi:eorfill::@4->eorfill::@3] + // [79] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#1 [phi:eorfill::@4->eorfill::@3#0] -- register_copy + // [79] phi (byte) eorfill::y#2 = (byte) eorfill::y#1 [phi:eorfill::@4->eorfill::@3#1] -- register_copy + jmp __b3 } - // cputc -// Output one character at the current cursor position -// Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) -cputc: { - // if(c=='\n') - // [140] if((byte) cputc::c#3==(byte) ' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 - cmp #'\n' - beq __b1 - // cputc::@2 - // *conio_cursor_text++ = c - // [141] *((byte*) conio_cursor_text) ← (byte) cputc::c#3 -- _deref_pbuz1=vbuaa - ldy #0 - sta (conio_cursor_text),y - // *conio_cursor_text++ = c; - // [142] (byte*) conio_cursor_text ← ++ (byte*) conio_cursor_text -- pbuz1=_inc_pbuz1 - inc.z conio_cursor_text - bne !+ - inc.z conio_cursor_text+1 - !: - // *conio_cursor_color++ = conio_textcolor - // [143] *((byte*) conio_cursor_color) ← (byte) conio_textcolor -- _deref_pbuz1=vbuz2 - lda.z conio_textcolor - ldy #0 - sta (conio_cursor_color),y - // *conio_cursor_color++ = conio_textcolor; - // [144] (byte*) conio_cursor_color ← ++ (byte*) conio_cursor_color -- pbuz1=_inc_pbuz1 - inc.z conio_cursor_color - bne !+ - inc.z conio_cursor_color+1 - !: - // if(++conio_cursor_x==CONIO_WIDTH) - // [145] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_x - // [146] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 - lda #$28 - cmp.z conio_cursor_x - bne __breturn - // cputc::@3 - // conio_cursor_x = 0 - // [147] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_cursor_x - // ++conio_cursor_y; - // [148] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_y - // cscroll() - // [149] call cscroll - jsr cscroll - // cputc::@return - __breturn: - // } - // [150] return - rts - // [151] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] - // cputc::@1 + // line +// Draw a EOR friendly line between two points +// Uses bresenham line drawing routine +// line(byte zp($f) x1, byte zp($10) y1, byte zp($c) x2, byte zp($d) y2) +line: { + .label plot2___1 = $1e + .label plot5___1 = $27 + .label x1 = $f + .label y1 = $10 + .label x2 = $c + .label y2 = $d + .label x = $f + .label y = $10 + .label dx = $17 + .label dy = $18 + .label sx = $19 + .label sy = $1a + .label plot1_column = $21 + .label plot2_y = $1b + .label plot2_column = $1c + .label plot3_column = $1f + .label e1 = $e + .label plot4_column = $23 + .label plot5_column = $25 + .label plot6_column = $28 + // abs_u8(x2-x1) + // [88] (byte) abs_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z x2 + sec + sbc.z x + // [89] call abs_u8 + // [175] phi from line to abs_u8 [phi:line->abs_u8] + // [175] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#0 [phi:line->abs_u8#0] -- register_copy + jsr abs_u8 + // abs_u8(x2-x1) + // [90] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 + // line::@19 + // dx = abs_u8(x2-x1) + // [91] (byte) line::dx#0 ← (byte) abs_u8::return#0 -- vbuz1=vbuaa + sta.z dx + // abs_u8(y2-y1) + // [92] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z y2 + sec + sbc.z y + // [93] call abs_u8 + // [175] phi from line::@19 to abs_u8 [phi:line::@19->abs_u8] + // [175] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#1 [phi:line::@19->abs_u8#0] -- register_copy + jsr abs_u8 + // abs_u8(y2-y1) + // [94] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 + // line::@20 + // dy = abs_u8(y2-y1) + // [95] (byte) line::dy#0 ← (byte) abs_u8::return#1 -- vbuz1=vbuaa + sta.z dy + // sgn_u8(x2-x1) + // [96] (byte) sgn_u8::u#0 ← (byte) line::x2#15 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z x2 + sec + sbc.z x + // [97] call sgn_u8 + // [169] phi from line::@20 to sgn_u8 [phi:line::@20->sgn_u8] + // [169] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#0 [phi:line::@20->sgn_u8#0] -- register_copy + jsr sgn_u8 + // sgn_u8(x2-x1) + // [98] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 + // line::@21 + // sx = sgn_u8(x2-x1) + // [99] (byte) line::sx#0 ← (byte) sgn_u8::return#0 -- vbuz1=vbuaa + sta.z sx + // sgn_u8(y2-y1) + // [100] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 + lda.z y2 + sec + sbc.z y + // [101] call sgn_u8 + // [169] phi from line::@21 to sgn_u8 [phi:line::@21->sgn_u8] + // [169] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#1 [phi:line::@21->sgn_u8#0] -- register_copy + jsr sgn_u8 + // sgn_u8(y2-y1) + // [102] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 + // line::@22 + // sy = sgn_u8(y2-y1) + // [103] (byte) line::sy#0 ← (byte) sgn_u8::return#1 -- vbuz1=vbuaa + sta.z sy + // if(sx==0xff) + // [104] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z sx + bne __b1 + // line::@3 + // y++; + // [105] (byte) line::y#1 ← ++ (byte) line::y#0 -- vbuz1=_inc_vbuz1 + inc.z y + // y2++; + // [106] (byte) line::y2#3 ← ++ (byte) line::y2#10 -- vbuz1=_inc_vbuz1 + inc.z y2 + // [107] phi from line::@22 line::@3 to line::@1 [phi:line::@22/line::@3->line::@1] + // [107] phi (byte) line::y2#13 = (byte) line::y2#10 [phi:line::@22/line::@3->line::@1#0] -- register_copy + // [107] phi (byte) line::y#17 = (byte) line::y#0 [phi:line::@22/line::@3->line::@1#1] -- register_copy + // line::@1 __b1: - // cputln() - // [152] call cputln - jsr cputln + // if(dx > dy) + // [108] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -- vbuz1_gt_vbuz2_then_la1 + lda.z dy + cmp.z dx + bcs !__b2+ + jmp __b2 + !__b2: + // line::@4 + // if(sx==sy) + // [109] if((byte) line::sx#0==(byte) line::sy#0) goto line::plot1 -- vbuz1_eq_vbuz2_then_la1 + // Steep slope - Y is the driver - only plot one plot per X + lda.z sx + cmp.z sy + beq plot1 + // line::@5 + // e = dy/2 + // [110] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 + lda.z dy + lsr + tax + // [111] phi from line::@5 line::@7 to line::@6 [phi:line::@5/line::@7->line::@6] + // [111] phi (byte) line::x#15 = (byte) line::x#0 [phi:line::@5/line::@7->line::@6#0] -- register_copy + // [111] phi (byte) line::e#3 = (byte) line::e#0 [phi:line::@5/line::@7->line::@6#1] -- register_copy + // [111] phi (byte) line::y#7 = (byte) line::y#17 [phi:line::@5/line::@7->line::@6#2] -- register_copy + // line::@6 + __b6: + // y += sy + // [112] (byte) line::y#10 ← (byte) line::y#7 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // e += dx + // [113] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 -- vbuxx=vbuxx_plus_vbuz1 + txa + clc + adc.z dx + tax + // if(e>dy) + // [114] if((byte) line::e#1<=(byte) line::dy#0) goto line::@7 -- vbuxx_le_vbuz1_then_la1 + lda.z dy + stx.z $ff + cmp.z $ff + bcs __b7 + // line::@8 + // plot(x, y-sy) + // [115] (byte) line::plot2_y#0 ← (byte) line::y#10 - (byte) line::sy#0 -- vbuz1=vbuz2_minus_vbuz3 + lda.z y + sec + sbc.z sy + sta.z plot2_y + // line::plot2 + // x/8 + // [116] (byte~) line::plot2_$0 ← (byte) line::x#15 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + // [117] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [118] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot2_column + lda plot_column+1,y + sta.z plot2_column+1 + // x&7 + // [119] (byte~) line::plot2_$1 ← (byte) line::x#15 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot2___1 + // column[y] |= plot_bit[x&7] + // [120] *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) ← *((byte*) line::plot2_column#0 + (byte) line::plot2_y#0) | *((const byte*) plot_bit + (byte~) line::plot2_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z plot2_y + lda (plot2_column),y + ldy.z plot2___1 + ora plot_bit,y + ldy.z plot2_y + sta (plot2_column),y + // line::@16 + // x += sx + // [121] (byte) line::x#1 ← (byte) line::x#15 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // e -= dy + // [122] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 -- vbuxx=vbuxx_minus_vbuz1 + txa + sec + sbc.z dy + tax + // [123] phi from line::@16 line::@6 to line::@7 [phi:line::@16/line::@6->line::@7] + // [123] phi (byte) line::x#17 = (byte) line::x#1 [phi:line::@16/line::@6->line::@7#0] -- register_copy + // [123] phi (byte) line::e#5 = (byte) line::e#2 [phi:line::@16/line::@6->line::@7#1] -- register_copy + // line::@7 + __b7: + // while (y != y2) + // [124] if((byte) line::y#10!=(byte) line::y2#13) goto line::@6 -- vbuz1_neq_vbuz2_then_la1 + lda.z y + cmp.z y2 + bne __b6 + // line::plot3 + // x/8 + // [125] (byte~) line::plot3_$0 ← (byte) line::x#17 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + // [126] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [127] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot3_column + lda plot_column+1,y + sta.z plot3_column+1 + // x&7 + // [128] (byte~) line::plot3_$1 ← (byte) line::x#17 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // column[y] |= plot_bit[x&7] + // [129] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot3_column),y + ora plot_bit,x + sta (plot3_column),y + // line::@return + // } + // [130] return + rts + // line::plot1 + plot1: + // x/8 + // [131] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + // [132] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [133] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot1_column + lda plot_column+1,y + sta.z plot1_column+1 + // x&7 + // [134] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // column[y] |= plot_bit[x&7] + // [135] *((byte*) line::plot1_column#0 + (byte) line::y#17) ← *((byte*) line::plot1_column#0 + (byte) line::y#17) | *((const byte*) plot_bit + (byte~) line::plot1_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot1_column),y + ora plot_bit,x + sta (plot1_column),y + // line::@15 + // if(dx==0) + // [136] if((byte) line::dx#0!=(byte) 0) goto line::@9 -- vbuz1_neq_0_then_la1 + lda.z dx + cmp #0 + bne __b9 + rts + // line::@9 + __b9: + // e = dy/2 + // [137] (byte) line::e1#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1 + lda.z dy + lsr + sta.z e1 + // [138] phi from line::@10 line::@17 line::@9 to line::@10 [phi:line::@10/line::@17/line::@9->line::@10] + // [138] phi (byte) line::x#18 = (byte) line::x#18 [phi:line::@10/line::@17/line::@9->line::@10#0] -- register_copy + // [138] phi (byte) line::e1#3 = (byte) line::e1#1 [phi:line::@10/line::@17/line::@9->line::@10#1] -- register_copy + // [138] phi (byte) line::y#11 = (byte) line::y#12 [phi:line::@10/line::@17/line::@9->line::@10#2] -- register_copy + // line::@10 + __b10: + // y += sy + // [139] (byte) line::y#12 ← (byte) line::y#11 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z y + clc + adc.z sy + sta.z y + // e += dx + // [140] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z e1 + clc + adc.z dx + sta.z e1 + // while(e<=dy) + // [141] if((byte) line::e1#1<=(byte) line::dy#0) goto line::@10 -- vbuz1_le_vbuz2_then_la1 + lda.z dy + cmp.z e1 + bcs __b10 + // line::@11 + // x += sx + // [142] (byte) line::x#19 ← (byte) line::x#18 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // e -= dy + // [143] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dy#0 -- vbuz1=vbuz1_minus_vbuz2 + lda.z e1 + sec + sbc.z dy + sta.z e1 + // line::plot4 + // x/8 + // [144] (byte~) line::plot4_$0 ← (byte) line::x#19 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + // [145] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [146] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot4_column + lda plot_column+1,y + sta.z plot4_column+1 + // x&7 + // [147] (byte~) line::plot4_$1 ← (byte) line::x#19 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // column[y] |= plot_bit[x&7] + // [148] *((byte*) line::plot4_column#0 + (byte) line::y#12) ← *((byte*) line::plot4_column#0 + (byte) line::y#12) | *((const byte*) plot_bit + (byte~) line::plot4_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot4_column),y + ora plot_bit,x + sta (plot4_column),y + // line::@17 + // while (x != x2) + // [149] if((byte) line::x#19!=(byte) line::x2#15) goto line::@10 -- vbuz1_neq_vbuz2_then_la1 + lda.z x + cmp.z x2 + bne __b10 + rts + // line::@2 + __b2: + // e = dx/2 + // [150] (byte) line::e2#0 ← (byte) line::dx#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 + lda.z dx + lsr + tax + // [151] phi from line::@13 line::@2 to line::@12 [phi:line::@13/line::@2->line::@12] + // [151] phi (byte) line::e2#3 = (byte) line::e2#7 [phi:line::@13/line::@2->line::@12#0] -- register_copy + // [151] phi (byte) line::y#13 = (byte) line::y#15 [phi:line::@13/line::@2->line::@12#1] -- register_copy + // [151] phi (byte) line::x#10 = (byte) line::x#12 [phi:line::@13/line::@2->line::@12#2] -- register_copy + // line::@12 + // line::plot5 + plot5: + // x/8 + // [152] (byte~) line::plot5_$0 ← (byte) line::x#10 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lda.z x + lsr + lsr + lsr + // column = plot_column[x/8] + // [153] (byte~) line::plot5_$2 ← (byte~) line::plot5_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [154] (byte*) line::plot5_column#0 ← *((const byte**) plot_column + (byte~) line::plot5_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot5_column + lda plot_column+1,y + sta.z plot5_column+1 + // x&7 + // [155] (byte~) line::plot5_$1 ← (byte) line::x#10 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and.z x + sta.z plot5___1 + // column[y] |= plot_bit[x&7] + // [156] *((byte*) line::plot5_column#0 + (byte) line::y#13) ← *((byte*) line::plot5_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot5_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 + ldy.z y + lda (plot5_column),y + ldy.z plot5___1 + ora plot_bit,y + ldy.z y + sta (plot5_column),y + // line::@18 + // x += sx + // [157] (byte) line::x#12 ← (byte) line::x#10 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 + lda.z x + clc + adc.z sx + sta.z x + // e += dy + // [158] (byte) line::e2#1 ← (byte) line::e2#3 + (byte) line::dy#0 -- vbuxx=vbuxx_plus_vbuz1 + txa + clc + adc.z dy + tax + // if(e>dx) + // [159] if((byte) line::e2#1<=(byte) line::dx#0) goto line::@13 -- vbuxx_le_vbuz1_then_la1 + lda.z dx + stx.z $ff + cmp.z $ff + bcs __b13 + // line::@14 + // y += sy + // [160] (byte) line::y#4 ← (byte) line::y#13 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 + tya + clc + adc.z sy + sta.z y + // e -= dx + // [161] (byte) line::e2#2 ← (byte) line::e2#1 - (byte) line::dx#0 -- vbuxx=vbuxx_minus_vbuz1 + txa + sec + sbc.z dx + tax + // [162] phi from line::@14 line::@18 to line::@13 [phi:line::@14/line::@18->line::@13] + // [162] phi (byte) line::e2#7 = (byte) line::e2#2 [phi:line::@14/line::@18->line::@13#0] -- register_copy + // [162] phi (byte) line::y#15 = (byte) line::y#4 [phi:line::@14/line::@18->line::@13#1] -- register_copy + // line::@13 + __b13: + // while (x != x2) + // [163] if((byte) line::x#12!=(byte) line::x2#15) goto line::@12 -- vbuz1_neq_vbuz2_then_la1 + lda.z x + cmp.z x2 + bne plot5 + // line::plot6 + // x/8 + // [164] (byte~) line::plot6_$0 ← (byte) line::x#12 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + lsr + lsr + lsr + // column = plot_column[x/8] + // [165] (byte~) line::plot6_$2 ← (byte~) line::plot6_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + asl + // [166] (byte*) line::plot6_column#0 ← *((const byte**) plot_column + (byte~) line::plot6_$2) -- pbuz1=pptc1_derefidx_vbuaa + tay + lda plot_column,y + sta.z plot6_column + lda plot_column+1,y + sta.z plot6_column+1 + // x&7 + // [167] (byte~) line::plot6_$1 ← (byte) line::x#12 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + lda #7 + and.z x + // column[y] |= plot_bit[x&7] + // [168] *((byte*) line::plot6_column#0 + (byte) line::y#15) ← *((byte*) line::plot6_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot6_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa + ldy.z y + tax + lda (plot6_column),y + ora plot_bit,x + sta (plot6_column),y rts } - // cputln -// Print a newline -cputln: { - .label __1 = $15 - .label __2 = $17 - .label ln_offset = $28 - // ln_offset = CONIO_WIDTH - conio_cursor_x - // [153] (word) cputln::ln_offset#0 ← (byte) $28 - (byte) conio_cursor_x -- vwuz1=vbuc1_minus_vbuz2 - sec - lda #$28 - sbc.z conio_cursor_x - sta.z ln_offset - lda #0 - sbc #0 - sta.z ln_offset+1 - // conio_cursor_text + ln_offset - // [154] (byte*~) cputln::$1 ← (byte*) conio_cursor_text + (word) cputln::ln_offset#0 -- pbuz1=pbuz1_plus_vwuz2 - lda.z __1 - clc - adc.z ln_offset - sta.z __1 - lda.z __1+1 - adc.z ln_offset+1 - sta.z __1+1 - // conio_cursor_text = conio_cursor_text + ln_offset - // [155] (byte*) conio_cursor_text ← (byte*~) cputln::$1 - // conio_cursor_color + ln_offset - // [156] (byte*~) cputln::$2 ← (byte*) conio_cursor_color + (word) cputln::ln_offset#0 -- pbuz1=pbuz1_plus_vwuz2 - lda.z __2 - clc - adc.z ln_offset - sta.z __2 - lda.z __2+1 - adc.z ln_offset+1 - sta.z __2+1 - // conio_cursor_color = conio_cursor_color + ln_offset - // [157] (byte*) conio_cursor_color ← (byte*~) cputln::$2 - // conio_cursor_x = 0 - // [158] (byte) conio_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z conio_cursor_x - // conio_cursor_y++; - // [159] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y -- vbuz1=_inc_vbuz1 - inc.z conio_cursor_y - // cscroll() - // [160] call cscroll - jsr cscroll - // cputln::@return + // sgn_u8 +// Get the sign of a 8-bit unsigned number treated as a signed number. +// Returns unsigned -1 if the number is negative +// sgn_u8(byte register(A) u) +sgn_u8: { + // u & 0x80 + // [170] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -- vbuaa=vbuaa_band_vbuc1 + and #$80 + // if(u & 0x80) + // [171] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b1 + // [173] phi from sgn_u8 to sgn_u8::@return [phi:sgn_u8->sgn_u8::@return] + // [173] phi (byte) sgn_u8::return#4 = (byte) 1 [phi:sgn_u8->sgn_u8::@return#0] -- vbuaa=vbuc1 + lda #1 + rts + // [172] phi from sgn_u8 to sgn_u8::@1 [phi:sgn_u8->sgn_u8::@1] + // sgn_u8::@1 + __b1: + // [173] phi from sgn_u8::@1 to sgn_u8::@return [phi:sgn_u8::@1->sgn_u8::@return] + // [173] phi (byte) sgn_u8::return#4 = (byte) -1 [phi:sgn_u8::@1->sgn_u8::@return#0] -- vbuaa=vbuc1 + lda #-1 + // sgn_u8::@return // } - // [161] return + // [174] return rts } - // cscroll -// Scroll the entire screen if the cursor is beyond the last line -cscroll: { - .label __7 = $15 - .label __8 = $17 - // if(conio_cursor_y==CONIO_HEIGHT) - // [162] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 - lda #$19 - cmp.z conio_cursor_y - bne __breturn - // [163] 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) - // [164] call memcpy - // [186] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [186] phi (void*) memcpy::destination#2 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT - sta.z memcpy.destination+1 - // [186] phi (void*) memcpy::source#2 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(byte) $28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT+$28 - sta.z memcpy.source+1 - jsr memcpy - // [165] 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) - // [166] call memcpy - // [186] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [186] phi (void*) memcpy::destination#2 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS - sta.z memcpy.destination+1 - // [186] phi (void*) memcpy::source#2 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(byte) $28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS+$28 - sta.z memcpy.source+1 - jsr memcpy - // [167] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] - // cscroll::@3 - // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [168] call memset - // [177] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] - // [177] phi (byte) memset::c#8 = (byte) ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 - ldx #' ' - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONIO_SCREEN_TEXT+(word)(number) $19*(number) $28-(byte) $28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_TEXT+$19*$28-$28 - sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (byte) $28 [phi:cscroll::@3->memset#2] -- vwuz1=vbuc1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - // cscroll::@4 - // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [169] (byte) memset::c#1 ← (byte) conio_textcolor -- vbuxx=vbuz1 - ldx.z conio_textcolor - // [170] call memset - // [177] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] - // [177] phi (byte) memset::c#8 = (byte) memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy - // [177] phi (void*) memset::str#7 = (void*)(const nomodify byte*) CONIO_SCREEN_COLORS+(word)(number) $19*(number) $28-(byte) $28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 - lda #CONIO_SCREEN_COLORS+$19*$28-$28 - sta.z memset.str+1 - // [177] phi (word) memset::num#6 = (byte) $28 [phi:cscroll::@4->memset#2] -- vwuz1=vbuc1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - // cscroll::@5 - // conio_cursor_text-CONIO_WIDTH - // [171] (byte*~) cscroll::$7 ← (byte*) conio_cursor_text - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 - lda.z __7 - sec - sbc #<$28 - sta.z __7 - lda.z __7+1 - sbc #>$28 - sta.z __7+1 - // conio_cursor_text = conio_cursor_text-CONIO_WIDTH - // [172] (byte*) conio_cursor_text ← (byte*~) cscroll::$7 - // conio_cursor_color-CONIO_WIDTH - // [173] (byte*~) cscroll::$8 ← (byte*) conio_cursor_color - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 - lda.z __8 - sec - sbc #<$28 - sta.z __8 - lda.z __8+1 - sbc #>$28 - sta.z __8+1 - // conio_cursor_color = conio_cursor_color-CONIO_WIDTH - // [174] (byte*) conio_cursor_color ← (byte*~) cscroll::$8 - // conio_cursor_y--; - // [175] (byte) conio_cursor_y ← -- (byte) conio_cursor_y -- vbuz1=_dec_vbuz1 - dec.z conio_cursor_y - // cscroll::@return - __breturn: + // abs_u8 +// Get the absolute value of a u-bit unsigned number treated as a signed number. +// abs_u8(byte register(A) u) +abs_u8: { + // u & 0x80 + // [176] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 -- vbuxx=vbuaa_band_vbuc1 + ldx #$80 + axs #0 + // if(u & 0x80) + // [177] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -- vbuc1_neq_vbuxx_then_la1 + cpx #0 + bne __b1 + // [179] phi from abs_u8 abs_u8::@1 to abs_u8::@return [phi:abs_u8/abs_u8::@1->abs_u8::@return] + // [179] phi (byte) abs_u8::return#4 = (byte) abs_u8::u#2 [phi:abs_u8/abs_u8::@1->abs_u8::@return#0] -- register_copy + rts + // abs_u8::@1 + __b1: + // return -u; + // [178] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 -- vbuaa=_neg_vbuaa + eor #$ff + clc + adc #1 + // abs_u8::@return // } - // [176] return + // [180] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($31) str, byte register(X) c, word zp($28) num) +// memset(void* zp($1f) str, byte register(X) c, word zp($1c) num) memset: { - .label end = $28 - .label dst = $31 - .label num = $28 - .label str = $31 + .label end = $1c + .label dst = $1f + .label num = $1c + .label str = $1f // if(num>0) - // [178] if((word) memset::num#6<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + // [182] if((word) memset::num#4<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -16353,7 +9461,7 @@ memset: { !: // memset::@1 // end = (char*)str + num - // [179] (byte*) memset::end#0 ← (byte*)(void*) memset::str#7 + (word) memset::num#6 -- pbuz1=pbuz2_plus_vwuz1 + // [183] (byte*) memset::end#0 ← (byte*)(void*) memset::str#5 + (word) memset::num#4 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -16361,13 +9469,13 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [180] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#7 - // [181] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] - // [181] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [184] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#5 + // [185] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [185] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 __b2: // for(char* dst = str; dst!=end; dst++) - // [182] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [186] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -16377,1202 +9485,38 @@ memset: { // memset::@return __breturn: // } - // [183] return + // [187] return rts // memset::@3 __b3: // *dst = c - // [184] *((byte*) memset::dst#2) ← (byte) memset::c#8 -- _deref_pbuz1=vbuxx + // [188] *((byte*) memset::dst#2) ← (byte) memset::c#6 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [185] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [189] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: jmp __b2 -} - // 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. -// memcpy(void* zp($31) destination, void* zp($28) source) -memcpy: { - .label src_end = $2b - .label dst = $31 - .label src = $28 - .label source = $28 - .label destination = $31 - // src_end = (char*)source+num - // [187] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $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 - // [188] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2 - // [189] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2 - // [190] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] - // [190] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy - // [190] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy - // memcpy::@1 - __b1: - // while(src!=src_end) - // [191] if((byte*) memcpy::src#2!=(byte*) 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 - // } - // [192] return - rts - // memcpy::@2 - __b2: - // *dst++ = *src++ - // [193] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 - ldy #0 - lda (src),y - sta (dst),y - // *dst++ = *src++; - // [194] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 - inc.z dst - bne !+ - inc.z dst+1 - !: - // [195] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 - inc.z src - bne !+ - inc.z src+1 - !: - jmp __b1 -} - // cputs -// Output a NUL-terminated string at the current cursor position -// cputs(byte* zp($2e) s) -cputs: { - .label s = $2e - // [197] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] - // [197] phi (to_nomodify byte*) cputs::s#4 = (to_nomodify byte*) cputs::s#5 [phi:cputs/cputs::@2->cputs::@1#0] -- register_copy - // cputs::@1 - __b1: - // c=*s++ - // [198] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#4) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (s),y - // while(c=*s++) - // [199] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#4 -- pbuz1=_inc_pbuz1 - inc.z s - bne !+ - inc.z s+1 - !: - // [200] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuaa_then_la1 - cmp #0 - bne __b2 - // cputs::@return - // } - // [201] return - rts - // cputs::@2 - __b2: - // cputc(c) - // [202] (byte) cputc::c#0 ← (byte) cputs::c#1 - // [203] call cputc - // [139] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] - // [139] phi (byte) cputc::c#3 = (byte) cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy - jsr cputc - jmp __b1 -} - // strupr -// Converts a string to uppercase. -strupr: { - .label str = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - .label src = $2e - // [205] phi from strupr to strupr::@1 [phi:strupr->strupr::@1] - // [205] phi (byte*) strupr::src#2 = (const byte*) strupr::str#0 [phi:strupr->strupr::@1#0] -- pbuz1=pbuc1 - lda #str - sta.z src+1 - // strupr::@1 - __b1: - // while(*src) - // [206] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (src),y - cmp #0 - bne __b2 - // strupr::@return - // } - // [207] return - rts - // strupr::@2 - __b2: - // toupper(*src) - // [208] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (src),y - // [209] call toupper - jsr toupper - // [210] (byte) toupper::return#3 ← (byte) toupper::return#2 - // strupr::@3 - // [211] (byte~) strupr::$0 ← (byte) toupper::return#3 - // *src = toupper(*src) - // [212] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuaa - ldy #0 - sta (src),y - // src++; - // [213] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 - inc.z src - bne !+ - inc.z src+1 - !: - // [205] phi from strupr::@3 to strupr::@1 [phi:strupr::@3->strupr::@1] - // [205] phi (byte*) strupr::src#2 = (byte*) strupr::src#1 [phi:strupr::@3->strupr::@1#0] -- register_copy - jmp __b1 -} - // toupper -// Convert lowercase alphabet to uppercase -// Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte register(A) ch) -toupper: { - // if(ch>='a' && ch<='z') - // [214] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 - cmp #'a' - bcc __breturn - // toupper::@2 - // [215] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 - cmp #'z' - bcc __b1 - beq __b1 - // [217] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - // [217] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy - rts - // toupper::@1 - __b1: - // return ch + ('A'-'a'); - // [216] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuaa=vbuaa_plus_vbuc1 - clc - adc #'A'-'a' - // toupper::@return - __breturn: - // } - // [218] return - rts -} - // strlen -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($28) str) -strlen: { - .label len = $31 - .label str = $28 - .label return = $31 - // [220] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [220] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z len - sta.z len+1 - // [220] phi (byte*) strlen::str#2 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z str+1 - // strlen::@1 - __b1: - // while(*str) - // [221] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - // strlen::@return - // } - // [222] return - rts - // strlen::@2 - __b2: - // len++; - // [223] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 - inc.z len - bne !+ - inc.z len+1 - !: - // str++; - // [224] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [220] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [220] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [220] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy - jmp __b1 -} - // ultoa -// 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) -// ultoa(dword zp($b) value, byte* zp($28) buffer) -ultoa: { - .const max_digits = $a - .label digit_value = $20 - .label buffer = $28 - .label digit = $1d - .label value = $b - // [226] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] - // [226] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [226] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 - ldx #0 - // [226] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [226] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 - txa - sta.z digit - // ultoa::@1 - __b1: - // for( char digit=0; digit= digit_value) - // [235] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuxx_then_la1 - cpx #0 - bne __b5 - // ultoa::@7 - // [236] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 - lda.z value+3 - cmp.z digit_value+3 - bcc !+ - bne __b5 - lda.z value+2 - cmp.z digit_value+2 - bcc !+ - bne __b5 - lda.z value+1 - cmp.z digit_value+1 - bcc !+ - bne __b5 - lda.z value - cmp.z digit_value - bcs __b5 - !: - // [237] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] - // [237] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [237] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [237] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy - // ultoa::@4 - __b4: - // for( char digit=0; digitultoa::@1] - // [226] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [226] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [226] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [226] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy - jmp __b1 - // ultoa::@5 - __b5: - // ultoa_append(buffer++, value, digit_value) - // [239] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - // [240] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - // [241] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - // [242] call ultoa_append - // [246] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] - jsr ultoa_append - // ultoa_append(buffer++, value, digit_value) - // [243] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 - // ultoa::@6 - // value = ultoa_append(buffer++, value, digit_value) - // [244] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - // value = ultoa_append(buffer++, value, digit_value); - // [245] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [237] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] - // [237] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [237] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 - ldx #1 - // [237] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy - jmp __b4 -} - // ultoa_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. -// ultoa_append(byte* zp($28) buffer, dword zp($b) value, dword zp($20) sub) -ultoa_append: { - .label buffer = $28 - .label value = $b - .label sub = $20 - .label return = $b - // [247] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] - // [247] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 - ldx #0 - // [247] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy - // ultoa_append::@1 - __b1: - // while (value >= sub) - // [248] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 - lda.z value+3 - cmp.z sub+3 - bcc !+ - bne __b2 - lda.z value+2 - cmp.z sub+2 - bcc !+ - bne __b2 - lda.z value+1 - cmp.z sub+1 - bcc !+ - bne __b2 - lda.z value - cmp.z sub - bcs __b2 - !: - // ultoa_append::@3 - // *buffer = DIGITS[digit] - // [249] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx - lda DIGITS,x - ldy #0 - sta (buffer),y - // ultoa_append::@return - // } - // [250] return - rts - // ultoa_append::@2 - __b2: - // digit++; - // [251] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuxx=_inc_vbuxx - inx - // value -= sub - // [252] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 - lda.z value - sec - sbc.z sub - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - lda.z value+2 - sbc.z sub+2 - sta.z value+2 - lda.z value+3 - sbc.z sub+3 - sta.z value+3 - // [247] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] - // [247] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [247] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) -printf_uchar: { - .const format_min_length = 2 - .const format_justify_left = 0 - .const format_zero_padding = 1 - .const format_upper_case = 0 - // printf_uchar::@1 - // printf_buffer.sign = format.sign_always?'+':0 - // [254] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // uctoa(uvalue, printf_buffer.digits, format.radix) - // [255] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#0 - // [256] call uctoa - // Format number into buffer - // [260] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - jsr uctoa - // printf_uchar::@2 - // printf_number_buffer(printf_buffer, format) - // [257] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [258] call printf_number_buffer - // Print using format - // [95] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - // [95] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uchar::format_upper_case#0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [95] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [95] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uchar::format_zero_padding#0 [phi:printf_uchar::@2->printf_number_buffer#2] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [95] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uchar::format_justify_left#0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [95] phi (byte) printf_number_buffer::format_min_length#2 = (const byte) printf_uchar::format_min_length#0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuxx=vbuc1 - ldx #format_min_length - jsr printf_number_buffer - // printf_uchar::@return - // } - // [259] return - rts -} - // uctoa -// 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) -// uctoa(byte register(X) value, byte* zp($31) buffer) -uctoa: { - .const max_digits = 2 - .label digit_value = $24 - .label buffer = $31 - .label digit = $1e - .label started = $1f - // [261] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - // [261] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [261] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [261] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [261] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - sta.z digit - // uctoa::@1 - __b1: - // for( char digit=0; digit= digit_value) - // [268] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - // uctoa::@7 - // [269] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuxx_ge_vbuz1_then_la1 - cpx.z digit_value - bcs __b5 - // [270] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - // [270] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [270] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [270] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - // uctoa::@4 - __b4: - // for( char digit=0; digituctoa::@1] - // [261] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [261] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [261] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [261] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // uctoa_append(buffer++, value, digit_value) - // [272] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [273] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [274] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - // [275] call uctoa_append - // [279] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - jsr uctoa_append - // uctoa_append(buffer++, value, digit_value) - // [276] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - // uctoa::@6 - // value = uctoa_append(buffer++, value, digit_value) - // [277] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // value = uctoa_append(buffer++, value, digit_value); - // [278] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [270] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - // [270] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [270] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [270] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_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. -// uctoa_append(byte* zp($31) buffer, byte register(X) value, byte zp($24) sub) -uctoa_append: { - .label buffer = $31 - .label sub = $24 - // [280] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - // [280] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [280] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy - // uctoa_append::@1 - __b1: - // while (value >= sub) - // [281] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuxx_ge_vbuz1_then_la1 - cpx.z sub - bcs __b2 - // uctoa_append::@3 - // *buffer = DIGITS[digit] - // [282] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuyy - lda DIGITS,y - ldy #0 - sta (buffer),y - // uctoa_append::@return - // } - // [283] return - rts - // uctoa_append::@2 - __b2: - // digit++; - // [284] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy - iny - // value -= sub - // [285] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuxx=vbuxx_minus_vbuz1 - txa - sec - sbc.z sub - tax - // [280] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - // [280] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [280] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // gotoxy -// Set the cursor to the specified position -gotoxy: { - .const x = 0 - .const y = $18 - .const offset = y*$28 - // gotoxy::@1 - // conio_cursor_x = x - // [287] (byte) conio_cursor_x ← (const byte) gotoxy::x#2 -- vbuz1=vbuc1 - lda #x - sta.z conio_cursor_x - // conio_cursor_y = y - // [288] (byte) conio_cursor_y ← (const byte) gotoxy::y#2 -- vbuz1=vbuc1 - lda #y - sta.z conio_cursor_y - // conio_cursor_text = CONIO_SCREEN_TEXT + offset - // [289] (byte*) conio_cursor_text ← (const nomodify byte*) CONIO_SCREEN_TEXT+(const word) gotoxy::offset#0 -- pbuz1=pbuc1 - lda #CONIO_SCREEN_TEXT+offset - sta.z conio_cursor_text+1 - // conio_cursor_color = CONIO_SCREEN_COLORS + offset - // [290] (byte*) conio_cursor_color ← (const nomodify byte*) CONIO_SCREEN_COLORS+(const word) gotoxy::offset#0 -- pbuz1=pbuc1 - lda #CONIO_SCREEN_COLORS+offset - sta.z conio_cursor_color+1 - // gotoxy::@return - // } - // [291] return - rts -} - // clock -// Returns the processor clock time used since the beginning of an implementation defined era (normally the beginning of the program). -// This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() -clock: { - .label return = $b - // 0xffffffff - *CIA2_TIMER_AB - // [292] (dword) clock::return#0 ← (dword) $ffffffff - *((const nomodify dword*) CIA2_TIMER_AB) -- vduz1=vduc1_minus__deref_pduc2 - lda #<$ffffffff - sec - sbc CIA2_TIMER_AB - sta.z return - lda #>$ffffffff - sbc CIA2_TIMER_AB+1 - sta.z return+1 - lda #<$ffffffff>>$10 - sbc CIA2_TIMER_AB+2 - sta.z return+2 - lda #>$ffffffff>>$10 - sbc CIA2_TIMER_AB+3 - sta.z return+3 - // clock::@return - // } - // [293] return - rts -} - // eorfill -// EOR fill from the line buffer onto the canvas -// eorfill(byte* zp($17) canvas) -eorfill: { - .label canvas = $17 - .label line_column = $15 - .label fill_column = $17 - // [295] phi from eorfill to eorfill::@1 [phi:eorfill->eorfill::@1] - // [295] phi (byte*) eorfill::fill_column#5 = (byte*) eorfill::canvas#0 [phi:eorfill->eorfill::@1#0] -- register_copy - // [295] phi (byte*) eorfill::line_column#2 = (const nomodify byte*) LINE_BUFFER [phi:eorfill->eorfill::@1#1] -- pbuz1=pbuc1 - lda #LINE_BUFFER - sta.z line_column+1 - // [295] phi (byte) eorfill::x#2 = (byte) 0 [phi:eorfill->eorfill::@1#2] -- vbuxx=vbuc1 - ldx #0 - // eorfill::@1 - __b1: - // for(char x=0;x<16;x++) - // [296] if((byte) eorfill::x#2<(byte) $10) goto eorfill::@2 -- vbuxx_lt_vbuc1_then_la1 - cpx #$10 - bcc __b2 - // eorfill::@return - // } - // [297] return - rts - // eorfill::@2 - __b2: - // eor = line_column[0] - // [298] (byte) eorfill::eor#0 ← *((byte*) eorfill::line_column#2) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (line_column),y - // [299] phi from eorfill::@2 to eorfill::@3 [phi:eorfill::@2->eorfill::@3] - // [299] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#0 [phi:eorfill::@2->eorfill::@3#0] -- register_copy - // [299] phi (byte) eorfill::y#2 = (byte) 1 [phi:eorfill::@2->eorfill::@3#1] -- vbuyy=vbuc1 - ldy #1 - // eorfill::@3 - __b3: - // for(char y=1;y<16*8;y++) - // [300] if((byte) eorfill::y#2<(byte)(number) $10*(number) 8) goto eorfill::@4 -- vbuyy_lt_vbuc1_then_la1 - cpy #$10*8 - bcc __b4 - // eorfill::@5 - // line_column += 16*8 - // [301] (byte*) eorfill::line_column#1 ← (byte*) eorfill::line_column#2 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 - lda #$10*8 - clc - adc.z line_column - sta.z line_column - bcc !+ - inc.z line_column+1 - !: - // fill_column += 16*8 - // [302] (byte*) eorfill::fill_column#1 ← (byte*) eorfill::fill_column#5 + (byte)(number) $10*(number) 8 -- pbuz1=pbuz1_plus_vbuc1 - lda #$10*8 - clc - adc.z fill_column - sta.z fill_column - bcc !+ - inc.z fill_column+1 - !: - // for(char x=0;x<16;x++) - // [303] (byte) eorfill::x#1 ← ++ (byte) eorfill::x#2 -- vbuxx=_inc_vbuxx - inx - // [295] phi from eorfill::@5 to eorfill::@1 [phi:eorfill::@5->eorfill::@1] - // [295] phi (byte*) eorfill::fill_column#5 = (byte*) eorfill::fill_column#1 [phi:eorfill::@5->eorfill::@1#0] -- register_copy - // [295] phi (byte*) eorfill::line_column#2 = (byte*) eorfill::line_column#1 [phi:eorfill::@5->eorfill::@1#1] -- register_copy - // [295] phi (byte) eorfill::x#2 = (byte) eorfill::x#1 [phi:eorfill::@5->eorfill::@1#2] -- register_copy - jmp __b1 - // eorfill::@4 - __b4: - // eor ^= line_column[y] - // [304] (byte) eorfill::eor#1 ← (byte) eorfill::eor#2 ^ *((byte*) eorfill::line_column#2 + (byte) eorfill::y#2) -- vbuaa=vbuaa_bxor_pbuz1_derefidx_vbuyy - eor (line_column),y - // fill_column[y] = eor - // [305] *((byte*) eorfill::fill_column#5 + (byte) eorfill::y#2) ← (byte) eorfill::eor#1 -- pbuz1_derefidx_vbuyy=vbuaa - sta (fill_column),y - // for(char y=1;y<16*8;y++) - // [306] (byte) eorfill::y#1 ← ++ (byte) eorfill::y#2 -- vbuyy=_inc_vbuyy - iny - // [299] phi from eorfill::@4 to eorfill::@3 [phi:eorfill::@4->eorfill::@3] - // [299] phi (byte) eorfill::eor#2 = (byte) eorfill::eor#1 [phi:eorfill::@4->eorfill::@3#0] -- register_copy - // [299] phi (byte) eorfill::y#2 = (byte) eorfill::y#1 [phi:eorfill::@4->eorfill::@3#1] -- register_copy - jmp __b3 -} - // line -// Draw a EOR friendly line between two points -// Uses bresenham line drawing routine -// line(byte zp($11) x1, byte zp($12) y1, byte zp($f) x2, byte zp($10) y2) -line: { - .label plot1___1 = $2a - .label plot2___1 = $2d - .label plot3___1 = $30 - .label x1 = $11 - .label y1 = $12 - .label x2 = $f - .label y2 = $10 - .label x = $11 - .label y = $12 - .label dx = $24 - .label dy = $25 - .label sx = $26 - .label sy = $27 - .label plot1_column = $28 - .label plot2_x = $11 - .label plot2_column = $2b - .label plot3_column = $2e - .label plot4_column = $31 - // abs_u8(x2-x1) - // [308] (byte) abs_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z x2 - sec - sbc.z x - // [309] call abs_u8 - // [374] phi from line to abs_u8 [phi:line->abs_u8] - // [374] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#0 [phi:line->abs_u8#0] -- register_copy - jsr abs_u8 - // abs_u8(x2-x1) - // [310] (byte) abs_u8::return#0 ← (byte) abs_u8::return#4 - // line::@12 - // dx = abs_u8(x2-x1) - // [311] (byte) line::dx#0 ← (byte) abs_u8::return#0 -- vbuz1=vbuaa - sta.z dx - // abs_u8(y2-y1) - // [312] (byte) abs_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z y2 - sec - sbc.z y - // [313] call abs_u8 - // [374] phi from line::@12 to abs_u8 [phi:line::@12->abs_u8] - // [374] phi (byte) abs_u8::u#2 = (byte) abs_u8::u#1 [phi:line::@12->abs_u8#0] -- register_copy - jsr abs_u8 - // abs_u8(y2-y1) - // [314] (byte) abs_u8::return#1 ← (byte) abs_u8::return#4 - // line::@13 - // dy = abs_u8(y2-y1) - // [315] (byte) line::dy#0 ← (byte) abs_u8::return#1 -- vbuz1=vbuaa - sta.z dy - // sgn_u8(x2-x1) - // [316] (byte) sgn_u8::u#0 ← (byte) line::x2#11 - (byte) line::x#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z x2 - sec - sbc.z x - // [317] call sgn_u8 - // [368] phi from line::@13 to sgn_u8 [phi:line::@13->sgn_u8] - // [368] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#0 [phi:line::@13->sgn_u8#0] -- register_copy - jsr sgn_u8 - // sgn_u8(x2-x1) - // [318] (byte) sgn_u8::return#0 ← (byte) sgn_u8::return#4 - // line::@14 - // sx = sgn_u8(x2-x1) - // [319] (byte) line::sx#0 ← (byte) sgn_u8::return#0 -- vbuz1=vbuaa - sta.z sx - // sgn_u8(y2-y1) - // [320] (byte) sgn_u8::u#1 ← (byte) line::y2#10 - (byte) line::y#0 -- vbuaa=vbuz1_minus_vbuz2 - lda.z y2 - sec - sbc.z y - // [321] call sgn_u8 - // [368] phi from line::@14 to sgn_u8 [phi:line::@14->sgn_u8] - // [368] phi (byte) sgn_u8::u#2 = (byte) sgn_u8::u#1 [phi:line::@14->sgn_u8#0] -- register_copy - jsr sgn_u8 - // sgn_u8(y2-y1) - // [322] (byte) sgn_u8::return#1 ← (byte) sgn_u8::return#4 - // line::@15 - // sy = sgn_u8(y2-y1) - // [323] (byte) line::sy#0 ← (byte) sgn_u8::return#1 -- vbuz1=vbuaa - sta.z sy - // if(sx==0xff) - // [324] if((byte) line::sx#0!=(byte) $ff) goto line::@1 -- vbuz1_neq_vbuc1_then_la1 - lda #$ff - cmp.z sx - bne __b1 - // line::@3 - // y++; - // [325] (byte) line::y#1 ← ++ (byte) line::y#0 -- vbuz1=_inc_vbuz1 - inc.z y - // y2++; - // [326] (byte) line::y2#3 ← ++ (byte) line::y2#10 -- vbuz1=_inc_vbuz1 - inc.z y2 - // [327] phi from line::@15 line::@3 to line::@1 [phi:line::@15/line::@3->line::@1] - // [327] phi (byte) line::y2#13 = (byte) line::y2#10 [phi:line::@15/line::@3->line::@1#0] -- register_copy - // [327] phi (byte) line::y#13 = (byte) line::y#0 [phi:line::@15/line::@3->line::@1#1] -- register_copy - // line::@1 - __b1: - // if(dx > dy) - // [328] if((byte) line::dx#0>(byte) line::dy#0) goto line::@2 -- vbuz1_gt_vbuz2_then_la1 - lda.z dy - cmp.z dx - bcc __b2 - // line::@4 - // e = dy/2 - // [329] (byte) line::e#0 ← (byte) line::dy#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 - lsr - tax - // line::plot1 - // x/8 - // [330] (byte~) line::plot1_$0 ← (byte) line::x#0 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z x - lsr - lsr - lsr - // column = plot_column[x/8] - // [331] (byte~) line::plot1_$2 ← (byte~) line::plot1_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [332] (byte*) line::plot1_column#0 ← *((const byte**) plot_column + (byte~) line::plot1_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot1_column - lda plot_column+1,y - sta.z plot1_column+1 - // x&7 - // [333] (byte~) line::plot1_$1 ← (byte) line::x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot1___1 - // column[y] |= plot_bit[x&7] - // [334] *((byte*) line::plot1_column#0 + (byte) line::y#13) ← *((byte*) line::plot1_column#0 + (byte) line::y#13) | *((const byte*) plot_bit + (byte~) line::plot1_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot1_column),y - ldy.z plot1___1 - ora plot_bit,y - ldy.z y - sta (plot1_column),y - // [335] phi from line::@6 line::plot1 to line::@5 [phi:line::@6/line::plot1->line::@5] - // [335] phi (byte) line::x#10 = (byte) line::x#16 [phi:line::@6/line::plot1->line::@5#0] -- register_copy - // [335] phi (byte) line::e#3 = (byte) line::e#5 [phi:line::@6/line::plot1->line::@5#1] -- register_copy - // [335] phi (byte) line::y#6 = (byte) line::y#15 [phi:line::@6/line::plot1->line::@5#2] -- register_copy - // line::@5 - __b5: - // y += sy - // [336] (byte) line::y#15 ← (byte) line::y#6 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z y - clc - adc.z sy - sta.z y - // e += dx - // [337] (byte) line::e#1 ← (byte) line::e#3 + (byte) line::dx#0 -- vbuxx=vbuxx_plus_vbuz1 - txa - clc - adc.z dx - tax - // if(dy=(byte) line::e#1) goto line::@6 -- vbuz1_ge_vbuxx_then_la1 - lda.z dy - stx.z $ff - cmp.z $ff - bcs __b6 - // line::@7 - // x += sx - // [339] (byte) line::plot2_x#0 ← (byte) line::x#10 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z plot2_x - clc - adc.z sx - sta.z plot2_x - // e -= dy - // [340] (byte) line::e#2 ← (byte) line::e#1 - (byte) line::dy#0 -- vbuxx=vbuxx_minus_vbuz1 - txa - sec - sbc.z dy - tax - // line::plot2 - // x/8 - // [341] (byte~) line::plot2_$0 ← (byte) line::plot2_x#0 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z plot2_x - lsr - lsr - lsr - // column = plot_column[x/8] - // [342] (byte~) line::plot2_$2 ← (byte~) line::plot2_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [343] (byte*) line::plot2_column#0 ← *((const byte**) plot_column + (byte~) line::plot2_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot2_column - lda plot_column+1,y - sta.z plot2_column+1 - // x&7 - // [344] (byte~) line::plot2_$1 ← (byte) line::plot2_x#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z plot2_x - sta.z plot2___1 - // column[y] |= plot_bit[x&7] - // [345] *((byte*) line::plot2_column#0 + (byte) line::y#15) ← *((byte*) line::plot2_column#0 + (byte) line::y#15) | *((const byte*) plot_bit + (byte~) line::plot2_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot2_column),y - ldy.z plot2___1 - ora plot_bit,y - ldy.z y - sta (plot2_column),y - // [346] phi from line::@5 line::plot2 to line::@6 [phi:line::@5/line::plot2->line::@6] - // [346] phi (byte) line::x#16 = (byte) line::x#10 [phi:line::@5/line::plot2->line::@6#0] -- register_copy - // [346] phi (byte) line::e#5 = (byte) line::e#1 [phi:line::@5/line::plot2->line::@6#1] -- register_copy - // line::@6 - __b6: - // while (y != y2) - // [347] if((byte) line::y#15!=(byte) line::y2#13) goto line::@5 -- vbuz1_neq_vbuz2_then_la1 - lda.z y - cmp.z y2 - bne __b5 - // line::@return - // } - // [348] return - rts - // line::@2 - __b2: - // e = dx/2 - // [349] (byte) line::e1#0 ← (byte) line::dx#0 >> (byte) 1 -- vbuxx=vbuz1_ror_1 - lda.z dx - lsr - tax - // [350] phi from line::@2 line::@9 to line::@8 [phi:line::@2/line::@9->line::@8] - // [350] phi (byte) line::e1#3 = (byte) line::e1#0 [phi:line::@2/line::@9->line::@8#0] -- register_copy - // [350] phi (byte) line::y#10 = (byte) line::y#13 [phi:line::@2/line::@9->line::@8#1] -- register_copy - // [350] phi (byte) line::x#12 = (byte) line::x#0 [phi:line::@2/line::@9->line::@8#2] -- register_copy - // line::@8 - __b8: - // line::plot3 - // x/8 - // [351] (byte~) line::plot3_$0 ← (byte) line::x#12 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lda.z x - lsr - lsr - lsr - // column = plot_column[x/8] - // [352] (byte~) line::plot3_$2 ← (byte~) line::plot3_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [353] (byte*) line::plot3_column#0 ← *((const byte**) plot_column + (byte~) line::plot3_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot3_column - lda plot_column+1,y - sta.z plot3_column+1 - // x&7 - // [354] (byte~) line::plot3_$1 ← (byte) line::x#12 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 - lda #7 - and.z x - sta.z plot3___1 - // column[y] |= plot_bit[x&7] - // [355] *((byte*) line::plot3_column#0 + (byte) line::y#10) ← *((byte*) line::plot3_column#0 + (byte) line::y#10) | *((const byte*) plot_bit + (byte~) line::plot3_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuz3 - ldy.z y - lda (plot3_column),y - ldy.z plot3___1 - ora plot_bit,y - ldy.z y - sta (plot3_column),y - // line::@11 - // x += sx - // [356] (byte) line::x#13 ← (byte) line::x#12 + (byte) line::sx#0 -- vbuz1=vbuz1_plus_vbuz2 - lda.z x - clc - adc.z sx - sta.z x - // e += dy - // [357] (byte) line::e1#1 ← (byte) line::e1#3 + (byte) line::dy#0 -- vbuxx=vbuxx_plus_vbuz1 - txa - clc - adc.z dy - tax - // if(dx < e) - // [358] if((byte) line::dx#0>=(byte) line::e1#1) goto line::@9 -- vbuz1_ge_vbuxx_then_la1 - lda.z dx - stx.z $ff - cmp.z $ff - bcs __b9 - // line::@10 - // y += sy - // [359] (byte) line::y#3 ← (byte) line::y#10 + (byte) line::sy#0 -- vbuz1=vbuz1_plus_vbuz2 - tya - clc - adc.z sy - sta.z y - // e -= dx - // [360] (byte) line::e1#2 ← (byte) line::e1#1 - (byte) line::dx#0 -- vbuxx=vbuxx_minus_vbuz1 - txa - sec - sbc.z dx - tax - // [361] phi from line::@10 line::@11 to line::@9 [phi:line::@10/line::@11->line::@9] - // [361] phi (byte) line::e1#7 = (byte) line::e1#2 [phi:line::@10/line::@11->line::@9#0] -- register_copy - // [361] phi (byte) line::y#11 = (byte) line::y#3 [phi:line::@10/line::@11->line::@9#1] -- register_copy - // line::@9 - __b9: - // while (x != x2) - // [362] if((byte) line::x#13!=(byte) line::x2#11) goto line::@8 -- vbuz1_neq_vbuz2_then_la1 - lda.z x - cmp.z x2 - bne __b8 - // line::plot4 - // x/8 - // [363] (byte~) line::plot4_$0 ← (byte) line::x#13 >> (byte) 3 -- vbuaa=vbuz1_ror_3 - lsr - lsr - lsr - // column = plot_column[x/8] - // [364] (byte~) line::plot4_$2 ← (byte~) line::plot4_$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 - asl - // [365] (byte*) line::plot4_column#0 ← *((const byte**) plot_column + (byte~) line::plot4_$2) -- pbuz1=pptc1_derefidx_vbuaa - tay - lda plot_column,y - sta.z plot4_column - lda plot_column+1,y - sta.z plot4_column+1 - // x&7 - // [366] (byte~) line::plot4_$1 ← (byte) line::x#13 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 - lda #7 - and.z x - // column[y] |= plot_bit[x&7] - // [367] *((byte*) line::plot4_column#0 + (byte) line::y#11) ← *((byte*) line::plot4_column#0 + (byte) line::y#11) | *((const byte*) plot_bit + (byte~) line::plot4_$1) -- pbuz1_derefidx_vbuz2=pbuz1_derefidx_vbuz2_bor_pbuc1_derefidx_vbuaa - ldy.z y - tax - lda (plot4_column),y - ora plot_bit,x - sta (plot4_column),y - rts -} - // sgn_u8 -// Get the sign of a 8-bit unsigned number treated as a signed number. -// Returns unsigned -1 if the number is negative -// sgn_u8(byte register(A) u) -sgn_u8: { - // u & 0x80 - // [369] (byte~) sgn_u8::$0 ← (byte) sgn_u8::u#2 & (byte) $80 -- vbuaa=vbuaa_band_vbuc1 - and #$80 - // if(u & 0x80) - // [370] if((byte) 0!=(byte~) sgn_u8::$0) goto sgn_u8::@1 -- vbuc1_neq_vbuaa_then_la1 - cmp #0 - bne __b1 - // [372] phi from sgn_u8 to sgn_u8::@return [phi:sgn_u8->sgn_u8::@return] - // [372] phi (byte) sgn_u8::return#4 = (byte) 1 [phi:sgn_u8->sgn_u8::@return#0] -- vbuaa=vbuc1 - lda #1 - rts - // [371] phi from sgn_u8 to sgn_u8::@1 [phi:sgn_u8->sgn_u8::@1] - // sgn_u8::@1 - __b1: - // [372] phi from sgn_u8::@1 to sgn_u8::@return [phi:sgn_u8::@1->sgn_u8::@return] - // [372] phi (byte) sgn_u8::return#4 = (byte) -1 [phi:sgn_u8::@1->sgn_u8::@return#0] -- vbuaa=vbuc1 - lda #-1 - // sgn_u8::@return - // } - // [373] return - rts -} - // abs_u8 -// Get the absolute value of a u-bit unsigned number treated as a signed number. -// abs_u8(byte register(A) u) -abs_u8: { - // u & 0x80 - // [375] (byte~) abs_u8::$0 ← (byte) abs_u8::u#2 & (byte) $80 -- vbuxx=vbuaa_band_vbuc1 - ldx #$80 - axs #0 - // if(u & 0x80) - // [376] if((byte) 0!=(byte~) abs_u8::$0) goto abs_u8::@1 -- vbuc1_neq_vbuxx_then_la1 - cpx #0 - bne __b1 - // [378] phi from abs_u8 abs_u8::@1 to abs_u8::@return [phi:abs_u8/abs_u8::@1->abs_u8::@return] - // [378] phi (byte) abs_u8::return#4 = (byte) abs_u8::u#2 [phi:abs_u8/abs_u8::@1->abs_u8::@return#0] -- register_copy - rts - // abs_u8::@1 - __b1: - // return -u; - // [377] (byte) abs_u8::return#2 ← - (byte) abs_u8::u#2 -- vbuaa=_neg_vbuaa - eor #$ff - clc - adc #1 - // abs_u8::@return - // } - // [379] return - rts } // clock_start // Reset & start the processor clock time. The value can be read using clock(). // This uses CIA #2 Timer A+B on the C64 clock_start: { // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [380] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [190] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // CIA2->TIMER_B_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - // [381] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [191] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // *CIA2_TIMER_AB = 0xffffffff - // [382] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff -- _deref_pduc1=vduc2 + // [192] *((const nomodify dword*) CIA2_TIMER_AB) ← (dword) $ffffffff -- _deref_pduc1=vduc2 lda #<$ffffffff sta CIA2_TIMER_AB lda #>$ffffffff @@ -17582,28 +9526,23 @@ clock_start: { lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 // CIA2->TIMER_B_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - // [383] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [193] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START|(const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [384] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [194] *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← (const nomodify byte) CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // clock_start::@return // } - // [385] return + // [195] return rts } // textcolor // Set the color for text output. The old color setting is returned. textcolor: { - // conio_textcolor = color - // [386] (byte) conio_textcolor ← (const nomodify byte) WHITE -- vbuz1=vbuc1 - lda #WHITE - sta.z conio_textcolor // textcolor::@return - // } - // [387] return + // [197] return rts } // setup_irq @@ -17613,27 +9552,27 @@ setup_irq: { // asm { sei } sei // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [389] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [199] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) ← (const nomodify byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &= 0x7f - // [390] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [200] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) ← *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to 8 pixels before the border lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->RASTER = BORDER_YPOS_BOTTOM-8 - // [391] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 + // [201] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 lda #BORDER_YPOS_BOTTOM-8 sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // VICII->IRQ_ENABLE = IRQ_RASTER - // [392] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [202] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE // *KERNEL_IRQ = &irq_bottom_1 - // [393] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 + // [203] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 // Set the IRQ routine lda #(SCREEN&$3fff)*4)|(>LINE_BUFFER)/4&$f // entry interrupt(KERNEL_KEYBOARD) // VICII->BORDER_COLOR = BLACK - // [396] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 + // [206] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) BLACK -- _deref_pbuc1=vbuc2 // Change border color lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // kbhit() - // [397] call kbhit + // [207] call kbhit jsr kbhit - // [398] (byte) kbhit::return#2 ← (byte) kbhit::return#0 - // irq_bottom_2::@3 - // [399] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 + // [208] (byte) kbhit::return#2 ← (byte) kbhit::return#0 + // irq_bottom_2::@4 + // [209] (byte~) irq_bottom_2::$0 ← (byte) kbhit::return#2 // if(!kbhit()) - // [400] if((byte) 0!=(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -- vbuc1_neq_vbuaa_then_la1 + // [210] if((byte) 0==(byte~) irq_bottom_2::$0) goto irq_bottom_2::@1 -- vbuc1_eq_vbuaa_then_la1 + // Show the current canvas (unless a key is being pressed) cmp #0 - bne __b1 - // irq_bottom_2::@2 - // VICII->MEMORY = canvas_show_memory - // [401] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory -- _deref_pbuc1=vbuz1 - lda.z canvas_show_memory + beq __b1 + // [211] phi from irq_bottom_2::@4 to irq_bottom_2::toD0181 [phi:irq_bottom_2::@4->irq_bottom_2::toD0181] + // irq_bottom_2::toD0181 + // irq_bottom_2::@3 + // VICII->MEMORY = toD018(SCREEN, LINE_BUFFER) + // [212] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_2::toD0181_return#0 -- _deref_pbuc1=vbuc2 + lda #toD0181_return sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY - // irq_bottom_2::@1 - __b1: + // irq_bottom_2::@2 + __b2: // canvas_show_flag = 0 - // [402] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 + // [213] (volatile byte) canvas_show_flag ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z canvas_show_flag // VICII->IRQ_STATUS = IRQ_RASTER - // [403] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [214] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // VICII->RASTER = BORDER_YPOS_BOTTOM-8 - // [404] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 + // [215] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM-(byte) 8 -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at 8 pixels before the border lda #BORDER_YPOS_BOTTOM-8 sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // *KERNEL_IRQ = &irq_bottom_1 - // [405] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 + // [216] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -- _deref_pptc1=pprc2 lda #irq_bottom_1 sta KERNEL_IRQ+1 // irq_bottom_2::@return // } - // [406] return - exit interrupt(KERNEL_KEYBOARD) + // [217] return - exit interrupt(KERNEL_KEYBOARD) jmp $ea31 + // irq_bottom_2::@1 + __b1: + // VICII->MEMORY = canvas_show_memory + // [218] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (volatile byte) canvas_show_memory -- _deref_pbuc1=vbuz1 + lda.z canvas_show_memory + sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY + jmp __b2 } // kbhit // Return true if there's a key waiting, return false if not kbhit: { // *CONIO_CIA1_PORT_A = 0 - // [407] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [219] *((const nomodify byte*) CONIO_CIA1_PORT_A) ← (byte) 0 -- _deref_pbuc1=vbuc2 lda #0 sta CONIO_CIA1_PORT_A // ~*CONIO_CIA1_PORT_B - // [408] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [220] (byte) kbhit::return#0 ← ~ *((const nomodify byte*) CONIO_CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CONIO_CIA1_PORT_B eor #$ff // kbhit::@return // } - // [409] return + // [221] return rts } // irq_bottom_1 @@ -17719,56 +9669,48 @@ kbhit: { irq_bottom_1: { .const toD0181_return = (>(CONSOLE&$3fff)*4)|(>PETSCII)/4&$f // entry interrupt(KERNEL_MIN) - // VICII->BORDER_COLOR = WHITE - // [410] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) WHITE -- _deref_pbuc1=vbuc2 + // VICII->BORDER_COLOR = DARK_GREY + // [222] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) ← (const nomodify byte) DARK_GREY -- _deref_pbuc1=vbuc2 // Change border color - lda #WHITE + lda #DARK_GREY sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [411] phi from irq_bottom_1 to irq_bottom_1::toD0181 [phi:irq_bottom_1->irq_bottom_1::toD0181] + // [223] phi from irq_bottom_1 to irq_bottom_1::toD0181 [phi:irq_bottom_1->irq_bottom_1::toD0181] // irq_bottom_1::toD0181 // irq_bottom_1::@1 // VICII->MEMORY = toD018(CONSOLE, PETSCII) - // [412] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 -- _deref_pbuc1=vbuc2 + // [224] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY) ← (const byte) irq_bottom_1::toD0181_return#0 -- _deref_pbuc1=vbuc2 // Show the cycle counter lda #toD0181_return sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY // VICII->IRQ_STATUS = IRQ_RASTER - // [413] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [225] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) ← (const nomodify byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // VICII->RASTER = BORDER_YPOS_BOTTOM - // [414] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM -- _deref_pbuc1=vbuc2 + // [226] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER) ← (const nomodify byte) BORDER_YPOS_BOTTOM -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at bottom of text-line lda #BORDER_YPOS_BOTTOM sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // *KERNEL_IRQ = &irq_bottom_2 - // [415] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() -- _deref_pptc1=pprc2 + // [227] *((const nomodify void()**) KERNEL_IRQ) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() -- _deref_pptc1=pprc2 lda #irq_bottom_2 sta KERNEL_IRQ+1 // irq_bottom_1::@return // } - // [416] return - exit interrupt(KERNEL_MIN) + // [228] return - exit interrupt(KERNEL_MIN) jmp $ea81 } // File Data - // The digits used for numbers - DIGITS: .text "0123456789abcdef" - // Values of hexadecimal digits - RADIX_HEXADECIMAL_VALUES_CHAR: .byte $10 - // Values of decimal digits - RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a // SIN/COS tables .align $100 SINTAB: -.fill $200, 63 + 63*sin(i*2*PI/$100) +.fill $200, round(63 + 63*sin(i*2*PI/$100)) // Column offsets plot_column: .word LINE_BUFFER, LINE_BUFFER+1*$80, LINE_BUFFER+2*$80, LINE_BUFFER+3*$80, LINE_BUFFER+4*$80, LINE_BUFFER+5*$80, LINE_BUFFER+6*$80, LINE_BUFFER+7*$80, LINE_BUFFER+8*$80, LINE_BUFFER+9*$80, LINE_BUFFER+$a*$80, LINE_BUFFER+$b*$80, LINE_BUFFER+$c*$80, LINE_BUFFER+$d*$80, LINE_BUFFER+$e*$80, LINE_BUFFER+$f*$80 // The bits used for plotting a pixel plot_bit: .byte $80, $40, $20, $10, 8, 4, 2, 1 - // Buffer used for stringified number being printed - printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 diff --git a/src/test/ref/complex/polygon/polygon.sym b/src/test/ref/complex/polygon/polygon.sym index 82de539b4..0b4318af8 100644 --- a/src/test/ref/complex/polygon/polygon.sym +++ b/src/test/ref/complex/polygon/polygon.sym @@ -1,6 +1,5 @@ (label) @1 (label) @2 -(label) @3 (label) @begin (label) @end (const nomodify byte) BLACK = (byte) 0 @@ -13,16 +12,12 @@ (const nomodify byte) CIA_INTERRUPT_CLEAR = (byte) $7f (const nomodify byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = (byte) $40 (const nomodify byte) CIA_TIMER_CONTROL_START = (byte) 1 -(const nomodify dword) CLOCKS_PER_INIT = (dword) $12 (const nomodify byte*) COLS = (byte*) 55296 (const nomodify byte*) CONIO_CIA1_PORT_A = (byte*) 56320 (const nomodify byte*) CONIO_CIA1_PORT_B = (byte*) 56321 -(const nomodify byte*) CONIO_SCREEN_COLORS = (byte*) 55296 -(const nomodify byte*) CONIO_SCREEN_TEXT = (byte*) 1024 -(const nomodify byte) CONIO_TEXTCOLOR_DEFAULT = (byte) $e (const nomodify byte*) CONSOLE = (byte*) 1024 (const byte*) COSTAB = (const byte*) SINTAB+(byte) $40 -(const byte*) DIGITS[] = (byte*) "0123456789abcdef"z +(const nomodify byte) DARK_GREY = (byte) $b (const nomodify byte) IRQ_RASTER = (byte) 1 (const nomodify void()**) KERNEL_IRQ = (void()**) 788 (const nomodify byte*) LINE_BUFFER = (byte*) 8192 @@ -120,19 +115,15 @@ (const byte) OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = (byte) $19 (const byte) OFFSET_STRUCT_MOS6569_VICII_MEMORY = (byte) $18 (const byte) OFFSET_STRUCT_MOS6569_VICII_RASTER = (byte) $12 -(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1 (const nomodify byte*) PETSCII = (byte*) 4096 (const byte) RADIX::BINARY = (number) 2 (const byte) RADIX::DECIMAL = (number) $a (const byte) RADIX::HEXADECIMAL = (number) $10 (const byte) RADIX::OCTAL = (number) 8 -(const dword*) RADIX_DECIMAL_VALUES_LONG[] = { (dword) $3b9aca00, (dword) $5f5e100, (dword) $989680, (dword) $f4240, (dword) $186a0, (dword) $2710, (dword) $3e8, (dword) $64, (dword) $a } -(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR[] = { (byte) $10 } (const nomodify byte) RED = (byte) 2 (const nomodify byte*) SCREEN = (byte*) 11264 -(const byte*) SINTAB[(number) $140] = kickasm {{ .fill $200, 63 + 63*sin(i*2*PI/$100) +(const byte*) SINTAB[(number) $140] = kickasm {{ .fill $200, round(63 + 63*sin(i*2*PI/$100)) }} -(const byte) SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = (byte) $c (const nomodify struct MOS6569_VICII*) VICII = (struct MOS6569_VICII*) 53248 (const nomodify byte) WHITE = (byte) 1 (byte()) abs_u8((byte) abs_u8::u) @@ -148,55 +139,13 @@ (byte) abs_u8::u#0 reg byte a 2002.0 (byte) abs_u8::u#1 reg byte a 2002.0 (byte) abs_u8::u#2 reg byte a 10668.333333333332 -(volatile byte) canvas_show_flag loadstore zp[1]:27 15.577464788732396 -(volatile byte) canvas_show_memory loadstore zp[1]:26 2.452380952380952 +(volatile byte) canvas_show_flag loadstore zp[1]:18 18.74576271186441 +(volatile byte) canvas_show_memory loadstore zp[1]:17 2.8611111111111107 (dword()) clock() (label) clock::@return (dword) clock::return -(dword) clock::return#0 return zp[4]:11 367.33333333333337 -(dword) clock::return#2 return zp[4]:11 202.0 (void()) clock_start() (label) clock_start::@return -(byte*) conio_cursor_color loadstore zp[2]:23 2.027272819090909E8 -(byte*) conio_cursor_text loadstore zp[2]:21 2.0090091E8 -(byte) conio_cursor_x loadstore zp[1]:19 2.5263168515789475E7 -(byte) conio_cursor_y loadstore zp[1]:20 2.824561492105263E8 -(byte) conio_textcolor loadstore zp[1]:25 6.312500065625E7 -(void()) cputc((byte) cputc::c) -(label) cputc::@1 -(label) cputc::@2 -(label) cputc::@3 -(label) cputc::@return -(byte) cputc::c -(byte) cputc::c#0 reg byte a 2.0000002E7 -(byte) cputc::c#1 reg byte a 2.0000002E7 -(byte) cputc::c#2 reg byte a 20002.0 -(byte) cputc::c#3 reg byte a 1.100050025E8 -(void()) cputln() -(byte*~) cputln::$1 zp[2]:21 2.000000002E9 -(byte*~) cputln::$2 zp[2]:23 2.000000002E9 -(label) cputln::@return -(word) cputln::ln_offset -(word) cputln::ln_offset#0 ln_offset zp[2]:40 1.000000001E9 -(void()) cputs((to_nomodify byte*) cputs::s) -(label) cputs::@1 -(label) cputs::@2 -(label) cputs::@return -(byte) cputs::c -(byte) cputs::c#1 reg byte a 1.0000001E7 -(to_nomodify byte*) cputs::s -(to_nomodify byte*) cputs::s#0 s zp[2]:46 5000000.5 -(to_nomodify byte*) cputs::s#4 s zp[2]:46 1.5050002E7 -(to_nomodify byte*) cputs::s#5 s zp[2]:46 100001.0 -(void()) cscroll() -(byte*~) cscroll::$7 zp[2]:21 2.0000000002E10 -(byte*~) cscroll::$8 zp[2]:23 2.0000000002E10 -(label) cscroll::@1 -(label) cscroll::@2 -(label) cscroll::@3 -(label) cscroll::@4 -(label) cscroll::@5 -(label) cscroll::@return (void()) eorfill((byte*) eorfill::line_buffer , (byte*) eorfill::canvas) (label) eorfill::@1 (label) eorfill::@2 @@ -205,33 +154,24 @@ (label) eorfill::@5 (label) eorfill::@return (byte*) eorfill::canvas -(byte*) eorfill::canvas#0 canvas zp[2]:23 551.0 +(byte*) eorfill::canvas#0 canvas zp[2]:31 551.0 (byte) eorfill::eor -(byte) eorfill::eor#0 reg byte a 200002.0 +(byte) eorfill::eor#0 reg byte a 150001.5 (byte) eorfill::eor#1 reg byte a 1000001.0 (byte) eorfill::eor#2 reg byte a 1050001.5 (byte*) eorfill::fill_column -(byte*) eorfill::fill_column#1 fill_column zp[2]:23 100001.0 -(byte*) eorfill::fill_column#5 fill_column zp[2]:23 133444.88888888888 +(byte*) eorfill::fill_column#1 fill_column zp[2]:31 100001.0 +(byte*) eorfill::fill_column#2 fill_column zp[2]:31 130100.5 (byte*) eorfill::line_buffer (byte*) eorfill::line_column -(byte*) eorfill::line_column#1 line_column zp[2]:21 66667.33333333333 -(byte*) eorfill::line_column#2 line_column zp[2]:21 162500.5 +(byte*) eorfill::line_column#1 line_column zp[2]:28 66667.33333333333 +(byte*) eorfill::line_column#2 line_column zp[2]:28 144444.88888888888 (byte) eorfill::x (byte) eorfill::x#1 reg byte x 200002.0 -(byte) eorfill::x#2 reg byte x 30000.300000000003 +(byte) eorfill::x#2 reg byte x 27273.0 (byte) eorfill::y (byte) eorfill::y#1 reg byte y 2000002.0 (byte) eorfill::y#2 reg byte y 1250001.25 -(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -(label) gotoxy::@1 -(label) gotoxy::@return -(word) gotoxy::offset -(const word) gotoxy::offset#0 offset = (word)(const byte) gotoxy::y#2*(byte) $28 -(byte) gotoxy::x -(const byte) gotoxy::x#2 x = (byte) 0 -(byte) gotoxy::y -(const byte) gotoxy::y#2 y = (byte) $18 interrupt(KERNEL_MIN)(void()) irq_bottom_1() (label) irq_bottom_1::@1 (label) irq_bottom_1::@return @@ -245,7 +185,13 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) irq_bottom_2::@1 (label) irq_bottom_2::@2 (label) irq_bottom_2::@3 +(label) irq_bottom_2::@4 (label) irq_bottom_2::@return +(label) irq_bottom_2::toD0181 +(byte*) irq_bottom_2::toD0181_gfx +(byte) irq_bottom_2::toD0181_return +(const byte) irq_bottom_2::toD0181_return#0 toD0181_return = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) LINE_BUFFER/(byte) 4&(byte) $f +(byte*) irq_bottom_2::toD0181_screen (byte()) kbhit() (label) kbhit::@return (byte) kbhit::return @@ -259,7 +205,14 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) line::@13 (label) line::@14 (label) line::@15 +(label) line::@16 +(label) line::@17 +(label) line::@18 +(label) line::@19 (label) line::@2 +(label) line::@20 +(label) line::@21 +(label) line::@22 (label) line::@3 (label) line::@4 (label) line::@5 @@ -270,95 +223,120 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) line::@return (byte*) line::canvas (byte) line::dx -(byte) line::dx#0 dx zp[1]:36 5941.294117647059 +(byte) line::dx#0 dx zp[1]:23 19462.805970149253 (byte) line::dy -(byte) line::dy#0 dy zp[1]:37 6446.936170212766 +(byte) line::dy#0 dy zp[1]:24 22285.85714285714 (byte) line::e -(byte) line::e#0 reg byte x 333.6666666666667 -(byte) line::e#1 reg byte x 133334.66666666666 -(byte) line::e#2 reg byte x 33333.666666666664 +(byte) line::e#0 reg byte x 2002.0 +(byte) line::e#1 reg byte x 44444.88888888889 +(byte) line::e#2 reg byte x 200002.0 (byte) line::e#3 reg byte x 100501.5 (byte) line::e#5 reg byte x 150001.5 (byte) line::e1 -(byte) line::e1#0 reg byte x 2002.0 -(byte) line::e1#1 reg byte x 133334.66666666666 -(byte) line::e1#2 reg byte x 200002.0 -(byte) line::e1#3 reg byte x 28714.714285714286 -(byte) line::e1#7 reg byte x 150001.5 +(byte) line::e1#0 e1 zp[1]:14 2002.0 +(byte) line::e1#1 e1 zp[1]:14 1033334.6666666666 +(byte) line::e1#2 e1 zp[1]:14 28571.714285714286 +(byte) line::e1#3 e1 zp[1]:14 1050502.0 +(byte) line::e2 +(byte) line::e2#0 reg byte x 2002.0 +(byte) line::e2#1 reg byte x 133334.66666666666 +(byte) line::e2#2 reg byte x 200002.0 +(byte) line::e2#3 reg byte x 28714.714285714286 +(byte) line::e2#7 reg byte x 150001.5 (label) line::plot1 (byte~) line::plot1_$0 reg byte a 2002.0 -(byte~) line::plot1_$1 zp[1]:42 2002.0 +(byte~) line::plot1_$1 reg byte a 2002.0 (byte~) line::plot1_$2 reg byte a 2002.0 (byte*) line::plot1_column -(byte*) line::plot1_column#0 plot1_column zp[2]:40 1501.5 +(byte*) line::plot1_column#0 plot1_column zp[2]:33 1501.5 (byte) line::plot1_x (byte) line::plot1_y (label) line::plot2 (byte~) line::plot2_$0 reg byte a 200002.0 -(byte~) line::plot2_$1 zp[1]:45 200002.0 +(byte~) line::plot2_$1 zp[1]:30 200002.0 (byte~) line::plot2_$2 reg byte a 200002.0 (byte*) line::plot2_column -(byte*) line::plot2_column#0 plot2_column zp[2]:43 150001.5 +(byte*) line::plot2_column#0 plot2_column zp[2]:28 150001.5 (byte) line::plot2_x -(byte) line::plot2_x#0 plot2_x zp[1]:17 57143.42857142857 (byte) line::plot2_y +(byte) line::plot2_y#0 plot2_y zp[1]:27 60000.600000000006 (label) line::plot3 -(byte~) line::plot3_$0 reg byte a 200002.0 -(byte~) line::plot3_$1 zp[1]:48 200002.0 -(byte~) line::plot3_$2 reg byte a 200002.0 +(byte~) line::plot3_$0 reg byte a 2002.0 +(byte~) line::plot3_$1 reg byte a 2002.0 +(byte~) line::plot3_$2 reg byte a 2002.0 (byte*) line::plot3_column -(byte*) line::plot3_column#0 plot3_column zp[2]:46 150001.5 +(byte*) line::plot3_column#0 plot3_column zp[2]:31 1501.5 (byte) line::plot3_x (byte) line::plot3_y (label) line::plot4 -(byte~) line::plot4_$0 reg byte a 2002.0 -(byte~) line::plot4_$1 reg byte a 2002.0 -(byte~) line::plot4_$2 reg byte a 2002.0 +(byte~) line::plot4_$0 reg byte a 200002.0 +(byte~) line::plot4_$1 reg byte a 200002.0 +(byte~) line::plot4_$2 reg byte a 200002.0 (byte*) line::plot4_column -(byte*) line::plot4_column#0 plot4_column zp[2]:49 1501.5 +(byte*) line::plot4_column#0 plot4_column zp[2]:35 150001.5 (byte) line::plot4_x (byte) line::plot4_y +(label) line::plot5 +(byte~) line::plot5_$0 reg byte a 200002.0 +(byte~) line::plot5_$1 zp[1]:39 200002.0 +(byte~) line::plot5_$2 reg byte a 200002.0 +(byte*) line::plot5_column +(byte*) line::plot5_column#0 plot5_column zp[2]:37 150001.5 +(byte) line::plot5_x +(byte) line::plot5_y +(label) line::plot6 +(byte~) line::plot6_$0 reg byte a 2002.0 +(byte~) line::plot6_$1 reg byte a 2002.0 +(byte~) line::plot6_$2 reg byte a 2002.0 +(byte*) line::plot6_column +(byte*) line::plot6_column#0 plot6_column zp[2]:40 1501.5 +(byte) line::plot6_x +(byte) line::plot6_y (byte) line::sx -(byte) line::sx#0 sx zp[1]:38 4697.767441860465 +(byte) line::sx#0 sx zp[1]:25 5135.6949152542375 (byte) line::sy -(byte) line::sy#0 sy zp[1]:39 5153.923076923076 +(byte) line::sy#0 sy zp[1]:26 23672.836363636365 (byte) line::x -(byte) line::x#0 x zp[1]:17 217.55172413793105 -(byte) line::x#10 x zp[1]:17 75251.0 -(byte) line::x#12 x zp[1]:17 66834.16666666666 -(byte) line::x#13 x zp[1]:17 30200.5 -(byte) line::x#16 x zp[1]:17 150001.5 +(byte) line::x#0 x zp[1]:15 228.4375 +(byte) line::x#1 x zp[1]:15 100001.0 +(byte) line::x#10 x zp[1]:15 66834.16666666666 +(byte) line::x#12 x zp[1]:15 30200.5 +(byte) line::x#15 x zp[1]:15 50100.6 +(byte) line::x#17 x zp[1]:15 60401.0 +(byte) line::x#18 x zp[1]:15 550251.25 +(byte) line::x#19 x zp[1]:15 62500.625 (byte) line::x1 -(byte) line::x1#0 x1 zp[1]:17 50.5 -(byte) line::x1#1 x1 zp[1]:17 50.5 -(byte) line::x1#2 x1 zp[1]:17 50.5 +(byte) line::x1#0 x1 zp[1]:15 50.5 +(byte) line::x1#1 x1 zp[1]:15 50.5 +(byte) line::x1#2 x1 zp[1]:15 50.5 (byte) line::x2 -(byte) line::x2#0 x2 zp[1]:15 101.0 -(byte) line::x2#1 x2 zp[1]:15 101.0 -(byte) line::x2#11 x2 zp[1]:15 2841.8333333333335 -(byte) line::x2#2 x2 zp[1]:15 101.0 +(byte) line::x2#0 x2 zp[1]:12 101.0 +(byte) line::x2#1 x2 zp[1]:12 101.0 +(byte) line::x2#15 x2 zp[1]:12 3612.625 +(byte) line::x2#2 x2 zp[1]:12 101.0 (byte) line::y -(byte) line::y#0 y zp[1]:18 239.27777777777777 -(byte) line::y#1 y zp[1]:18 1001.0 -(byte) line::y#10 y zp[1]:18 55667.33333333333 -(byte) line::y#11 y zp[1]:18 50334.16666666667 -(byte) line::y#13 y zp[1]:18 667.3333333333333 -(byte) line::y#15 y zp[1]:18 41667.08333333333 -(byte) line::y#3 y zp[1]:18 100001.0 -(byte) line::y#6 y zp[1]:18 201003.0 +(byte) line::y#0 y zp[1]:16 239.27777777777777 +(byte) line::y#1 y zp[1]:16 1001.0 +(byte) line::y#10 y zp[1]:16 23647.411764705877 +(byte) line::y#11 y zp[1]:16 2101004.0 +(byte) line::y#12 y zp[1]:16 209091.36363636365 +(byte) line::y#13 y zp[1]:16 55667.33333333333 +(byte) line::y#15 y zp[1]:16 50334.16666666667 +(byte) line::y#17 y zp[1]:16 583.9166666666667 +(byte) line::y#4 y zp[1]:16 100001.0 +(byte) line::y#7 y zp[1]:16 201003.0 (byte) line::y1 -(byte) line::y1#0 y1 zp[1]:18 67.33333333333333 -(byte) line::y1#1 y1 zp[1]:18 67.33333333333333 -(byte) line::y1#2 y1 zp[1]:18 67.33333333333333 +(byte) line::y1#0 y1 zp[1]:16 67.33333333333333 +(byte) line::y1#1 y1 zp[1]:16 67.33333333333333 +(byte) line::y1#2 y1 zp[1]:16 67.33333333333333 (byte) line::y2 -(byte) line::y2#0 y2 zp[1]:16 202.0 -(byte) line::y2#1 y2 zp[1]:16 202.0 -(byte) line::y2#10 y2 zp[1]:16 226.68421052631578 -(byte) line::y2#13 y2 zp[1]:16 4857.285714285714 -(byte) line::y2#2 y2 zp[1]:16 202.0 -(byte) line::y2#3 y2 zp[1]:16 2002.0 +(byte) line::y2#0 y2 zp[1]:13 202.0 +(byte) line::y2#1 y2 zp[1]:13 202.0 +(byte) line::y2#10 y2 zp[1]:13 226.68421052631578 +(byte) line::y2#13 y2 zp[1]:13 5666.833333333334 +(byte) line::y2#2 y2 zp[1]:13 202.0 +(byte) line::y2#3 y2 zp[1]:13 2002.0 (void()) main() -(dword~) main::$18 zp[4]:11 202.0 (label) main::@1 (label) main::@10 (label) main::@11 @@ -373,11 +351,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (label) main::@2 (label) main::@20 (label) main::@21 -(label) main::@22 -(label) main::@23 -(label) main::@24 -(label) main::@25 -(label) main::@26 (label) main::@3 (label) main::@4 (label) main::@5 @@ -390,28 +363,24 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::c#2 reg byte x 776.0 (byte) main::c#4 reg byte x 202.0 (byte*) main::canvas -(word) main::canvas#1 canvas zp[2]:9 5.611111111111111 -(byte*) main::canvas#10 canvas zp[2]:9 8.911764705882353 -(byte*) main::canvas#24 canvas zp[2]:9 202.0 +(word) main::canvas#1 canvas zp[2]:10 16.833333333333332 +(byte*) main::canvas#10 canvas zp[2]:10 8.911764705882353 +(byte*) main::canvas#19 canvas zp[2]:10 202.0 (byte*) main::cols -(byte*) main::cols#1 cols zp[2]:2 67.33333333333333 -(byte*) main::cols#5 cols zp[2]:2 133.66666666666669 -(dword) main::cyclecount -(dword) main::cyclecount#0 cyclecount zp[4]:11 25.25 +(byte*) main::cols#1 cols zp[2]:3 67.33333333333333 +(byte*) main::cols#5 cols zp[2]:3 133.66666666666669 (byte) main::p0_idx -(byte) main::p0_idx#1 p0_idx zp[1]:6 11.222222222222223 -(byte) main::p0_idx#11 p0_idx zp[1]:6 15.538461538461538 +(byte) main::p0_idx#1 p0_idx zp[1]:7 13.466666666666667 +(byte) main::p0_idx#2 p0_idx zp[1]:7 15.538461538461538 (byte) main::p1_idx -(byte) main::p1_idx#1 p1_idx zp[1]:7 7.769230769230769 -(byte) main::p1_idx#2 p1_idx zp[1]:7 14.962962962962964 +(byte) main::p1_idx#1 p1_idx zp[1]:8 14.428571428571429 +(byte) main::p1_idx#2 p1_idx zp[1]:8 14.962962962962964 (byte) main::p2_idx -(byte) main::p2_idx#1 p2_idx zp[1]:8 8.08 -(byte) main::p2_idx#2 p2_idx zp[1]:8 14.428571428571429 -(const byte*) main::s[(byte) 8] = (byte*) "frame: " -(const byte*) main::s1[(byte) $a] = (byte*) " cycles: " +(byte) main::p2_idx#1 p2_idx zp[1]:9 15.538461538461538 +(byte) main::p2_idx#2 p2_idx zp[1]:9 14.428571428571429 (byte*) main::screen -(byte*) main::screen#1 screen zp[2]:4 101.0 -(byte*) main::screen#5 screen zp[2]:4 120.3 +(byte*) main::screen#1 screen zp[2]:5 101.0 +(byte*) main::screen#5 screen zp[2]:5 120.3 (label) main::toD0181 (byte*) main::toD0181_gfx (byte) main::toD0181_return @@ -426,62 +395,40 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) main::x#1 reg byte y 2002.0 (byte) main::x#2 reg byte y 1001.0 (byte) main::x0 -(byte) main::x0#0 x0 zp[1]:28 16.833333333333332 +(byte) main::x0#0 x0 zp[1]:19 16.833333333333332 (byte) main::x1 -(byte) main::x1#0 x1 zp[1]:15 33.666666666666664 +(byte) main::x1#0 x1 zp[1]:12 33.666666666666664 (byte) main::x2 -(byte) main::x2#0 x2 zp[1]:15 43.285714285714285 +(byte) main::x2#0 x2 zp[1]:12 43.285714285714285 (byte) main::y -(byte) main::y#1 y zp[1]:19 202.0 -(byte) main::y#2 y zp[1]:19 36.72727272727273 +(byte) main::y#1 y zp[1]:2 202.0 +(byte) main::y#2 y zp[1]:2 36.72727272727273 (byte) main::y0 -(byte) main::y0#0 y0 zp[1]:29 16.833333333333332 +(byte) main::y0#0 y0 zp[1]:20 16.833333333333332 (byte) main::y1 -(byte) main::y1#0 y1 zp[1]:30 33.666666666666664 +(byte) main::y1#0 y1 zp[1]:21 33.666666666666664 (byte) main::y2 -(byte) main::y2#0 y2 zp[1]:31 43.285714285714285 -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -(label) memcpy::@1 -(label) memcpy::@2 -(label) memcpy::@return -(void*) memcpy::destination -(void*) memcpy::destination#2 destination zp[2]:49 -(byte*) memcpy::dst -(byte*) memcpy::dst#1 dst zp[2]:49 1.00000000000001E14 -(byte*) memcpy::dst#2 dst zp[2]:49 1.0003333333333467E14 -(byte*) memcpy::dst#4 dst zp[2]:49 2.00000000002E11 -(word) memcpy::num -(void*) memcpy::return -(void*) memcpy::source -(void*) memcpy::source#2 source zp[2]:40 -(byte*) memcpy::src -(byte*) memcpy::src#1 src zp[2]:40 2.00000000000002E14 -(byte*) memcpy::src#2 src zp[2]:40 1.0002500000000125E14 -(byte*) memcpy::src#4 src zp[2]:40 1.00000000001E11 -(byte*) memcpy::src_end -(byte*) memcpy::src_end#0 src_end zp[2]:43 1.251250000000025E13 +(byte) main::y2#0 y2 zp[1]:22 43.285714285714285 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) (label) memset::@1 (label) memset::@2 (label) memset::@3 (label) memset::@return (byte) memset::c -(byte) memset::c#1 reg byte x 2.0000000002E10 -(byte) memset::c#8 reg byte x 1.25125000000025E12 +(byte) memset::c#6 reg byte x 12500.125 (byte*) memset::dst -(byte*) memset::dst#1 dst zp[2]:49 2.0000000000002E13 -(byte*) memset::dst#2 dst zp[2]:49 1.3366666666668332E13 -(byte*) memset::dst#4 dst zp[2]:49 2.00000000002E11 +(byte*) memset::dst#1 dst zp[2]:31 200002.0 +(byte*) memset::dst#2 dst zp[2]:31 133668.3333333333 +(byte*) memset::dst#4 dst zp[2]:31 2002.0 (byte*) memset::end -(byte*) memset::end#0 end zp[2]:40 1.6833333333336665E12 +(byte*) memset::end#0 end zp[2]:28 16833.666666666664 (word) memset::num -(word) memset::num#6 num zp[2]:40 1.00000000001E11 +(word) memset::num#4 num zp[2]:28 1001.0 (void*) memset::return (void*) memset::str -(void*) memset::str#7 str zp[2]:49 +(void*) memset::str#5 str zp[2]:31 (const byte*) plot_bit[(number) 8] = { (byte) $80, (byte) $40, (byte) $20, (byte) $10, (byte) 8, (byte) 4, (byte) 2, (byte) 1 } (const byte**) plot_column[(number) $10] = { (const nomodify byte*) LINE_BUFFER, (const nomodify byte*) LINE_BUFFER+(byte)(number) 1*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 2*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 3*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 4*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 5*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 6*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 7*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 8*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) 9*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $a*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $b*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $c*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $d*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $e*(number) $80, (const nomodify byte*) LINE_BUFFER+(word)(number) $f*(number) $80 } -(struct printf_buffer_number) printf_buffer loadstore mem[12] = {} (const byte*) printf_buffer_number::digits[(number) $b] = { fill( $b, 0) } (byte) printf_buffer_number::sign (byte) printf_format_number::justify_left @@ -492,103 +439,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_upper_case , (byte) printf_number_buffer::format_radix) -(word~) printf_number_buffer::$19 zp[2]:49 10001.0 -(label) printf_number_buffer::@1 -(label) printf_number_buffer::@10 -(label) printf_number_buffer::@11 -(label) printf_number_buffer::@12 -(label) printf_number_buffer::@13 -(label) printf_number_buffer::@14 -(label) printf_number_buffer::@15 -(label) printf_number_buffer::@16 -(label) printf_number_buffer::@17 -(label) printf_number_buffer::@18 -(label) printf_number_buffer::@19 -(label) printf_number_buffer::@2 -(label) printf_number_buffer::@20 -(label) printf_number_buffer::@21 -(label) printf_number_buffer::@3 -(label) printf_number_buffer::@4 -(label) printf_number_buffer::@5 -(label) printf_number_buffer::@6 -(label) printf_number_buffer::@7 -(label) printf_number_buffer::@8 -(label) printf_number_buffer::@9 -(label) printf_number_buffer::@return -(struct printf_buffer_number) printf_number_buffer::buffer -(byte*) printf_number_buffer::buffer_digits -(byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:31 2002.0 -(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:31 2002.0 -(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:31 1600.25 -(struct printf_format_number) printf_number_buffer::format -(byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:29 645.2258064516129 -(byte) printf_number_buffer::format_min_length -(byte) printf_number_buffer::format_min_length#2 reg byte x 1000.1 -(byte) printf_number_buffer::format_radix -(byte) printf_number_buffer::format_sign_always -(byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:15 384.65384615384613 -(byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:30 937.59375 -(signed byte) printf_number_buffer::len -(signed byte) printf_number_buffer::len#0 reg byte y 15001.5 -(signed byte) printf_number_buffer::len#1 reg byte y 20002.0 -(signed byte) printf_number_buffer::len#2 reg byte y 30003.0 -(signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 padding zp[1]:16 10001.0 -(signed byte) printf_number_buffer::padding#10 padding zp[1]:16 1904.952380952381 -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -(label) printf_padding::@1 -(label) printf_padding::@2 -(label) printf_padding::@3 -(label) printf_padding::@return -(byte) printf_padding::i -(byte) printf_padding::i#1 i zp[1]:28 2.0000002E7 -(byte) printf_padding::i#2 i zp[1]:28 7500000.75 -(byte) printf_padding::length -(byte) printf_padding::length#0 length zp[1]:17 20002.0 -(byte) printf_padding::length#1 length zp[1]:17 20002.0 -(byte) printf_padding::length#2 length zp[1]:17 20002.0 -(byte) printf_padding::length#4 length zp[1]:17 1671667.3333333333 -(byte) printf_padding::pad -(byte) printf_padding::pad#5 pad zp[1]:18 1666666.8333333333 -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -(label) printf_uchar::@1 -(label) printf_uchar::@2 -(label) printf_uchar::@return -(struct printf_format_number) printf_uchar::format -(byte) printf_uchar::format_justify_left -(const byte) printf_uchar::format_justify_left#0 format_justify_left = (byte) 0 -(byte) printf_uchar::format_min_length -(const byte) printf_uchar::format_min_length#0 format_min_length = (byte) 2 -(byte) printf_uchar::format_radix -(byte) printf_uchar::format_sign_always -(byte) printf_uchar::format_upper_case -(const byte) printf_uchar::format_upper_case#0 format_upper_case = (byte) 0 -(byte) printf_uchar::format_zero_padding -(const byte) printf_uchar::format_zero_padding#0 format_zero_padding = (byte) 1 -(byte) printf_uchar::uvalue -(byte) printf_uchar::uvalue#0 reg byte x 367.33333333333337 -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -(label) printf_ulong::@1 -(label) printf_ulong::@2 -(label) printf_ulong::@return -(struct printf_format_number) printf_ulong::format -(byte) printf_ulong::format_justify_left -(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0 -(byte) printf_ulong::format_min_length -(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 6 -(byte) printf_ulong::format_radix -(byte) printf_ulong::format_sign_always -(byte) printf_ulong::format_upper_case -(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0 -(byte) printf_ulong::format_zero_padding -(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0 -(dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 uvalue zp[4]:11 367.33333333333337 (void()) setup_irq() (label) setup_irq::@return (byte()) sgn_u8((byte) sgn_u8::u) @@ -603,30 +453,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) sgn_u8::u#0 reg byte a 2002.0 (byte) sgn_u8::u#1 reg byte a 2002.0 (byte) sgn_u8::u#2 reg byte a 12003.0 -(word()) strlen((byte*) strlen::str) -(label) strlen::@1 -(label) strlen::@2 -(label) strlen::@return -(word) strlen::len -(word) strlen::len#1 len zp[2]:49 1.0000001E7 -(word) strlen::len#2 len zp[2]:49 5002500.75 -(word) strlen::return -(word) strlen::return#2 return zp[2]:49 20002.0 -(byte*) strlen::str -(byte*) strlen::str#0 str zp[2]:40 2.0000002E7 -(byte*) strlen::str#2 str zp[2]:40 1.0000001E7 -(byte*()) strupr((byte*) strupr::str) -(byte~) strupr::$0 reg byte a 2.0000002E7 -(label) strupr::@1 -(label) strupr::@2 -(label) strupr::@3 -(label) strupr::@return -(byte*) strupr::return -(byte*) strupr::src -(byte*) strupr::src#1 src zp[2]:46 2.0000002E7 -(byte*) strupr::src#2 src zp[2]:46 7142857.857142856 -(byte*) strupr::str -(const byte*) strupr::str#0 str = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (byte()) textcolor((byte) textcolor::color) (label) textcolor::@return (byte) textcolor::color @@ -637,194 +463,71 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (byte) toD0181_return (const byte) toD0181_return#0 toD0181_return = >(word)(const nomodify byte*) SCREEN&(word) $3fff*(byte) 4|>(word)(const nomodify byte*) CANVAS2/(byte) 4&(byte) $f (byte*) toD0181_screen -(byte()) toupper((byte) toupper::ch) -(label) toupper::@1 -(label) toupper::@2 -(label) toupper::@return -(byte) toupper::ch -(byte) toupper::ch#0 reg byte a 1.70000002E8 -(byte) toupper::return -(byte) toupper::return#0 reg byte a 2.00000002E8 -(byte) toupper::return#2 reg byte a 1.0333333466666667E8 -(byte) toupper::return#3 reg byte a 2.0000002E7 -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -(label) uctoa::@1 -(label) uctoa::@2 -(label) uctoa::@3 -(label) uctoa::@4 -(label) uctoa::@5 -(label) uctoa::@6 -(label) uctoa::@7 -(label) uctoa::@return -(byte*) uctoa::buffer -(byte*) uctoa::buffer#11 buffer zp[2]:49 335000.50000000006 -(byte*) uctoa::buffer#14 buffer zp[2]:49 1500001.5 -(byte*) uctoa::buffer#3 buffer zp[2]:49 20002.0 -(byte*) uctoa::buffer#4 buffer zp[2]:49 2000002.0 -(byte) uctoa::digit -(byte) uctoa::digit#1 digit zp[1]:30 2000002.0 -(byte) uctoa::digit#2 digit zp[1]:30 307692.6153846154 -(byte) uctoa::digit_value -(byte) uctoa::digit_value#0 digit_value zp[1]:36 600000.6000000001 -(byte*) uctoa::digit_values -(byte) uctoa::max_digits -(const byte) uctoa::max_digits#2 max_digits = (byte) 2 -(byte) uctoa::radix -(byte) uctoa::started -(byte) uctoa::started#2 started zp[1]:31 600000.6000000001 -(byte) uctoa::started#4 started zp[1]:31 1000001.0 -(byte) uctoa::value -(byte) uctoa::value#0 reg byte x 1000001.0 -(byte) uctoa::value#1 reg byte x 5501.0 -(byte) uctoa::value#2 reg byte x 670001.0000000001 -(byte) uctoa::value#6 reg byte x 1500001.5 -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -(label) uctoa_append::@1 -(label) uctoa_append::@2 -(label) uctoa_append::@3 -(label) uctoa_append::@return -(byte*) uctoa_append::buffer -(byte*) uctoa_append::buffer#0 buffer zp[2]:49 1375000.25 -(byte) uctoa_append::digit -(byte) uctoa_append::digit#1 reg byte y 1.0000000001E10 -(byte) uctoa_append::digit#2 reg byte y 1.00050000015E10 -(byte) uctoa_append::return -(byte) uctoa_append::return#0 reg byte x 2000002.0 -(byte) uctoa_append::sub -(byte) uctoa_append::sub#0 sub zp[1]:36 3.3335000005E9 -(byte) uctoa_append::value -(byte) uctoa_append::value#0 reg byte x 3666667.333333333 -(byte) uctoa_append::value#1 reg byte x 2.0000000002E10 -(byte) uctoa_append::value#2 reg byte x 5.001833334166666E9 -(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -(byte~) ultoa::$10 reg byte a 2000002.0 -(byte~) ultoa::$11 reg byte a 20002.0 -(label) ultoa::@1 -(label) ultoa::@2 -(label) ultoa::@3 -(label) ultoa::@4 -(label) ultoa::@5 -(label) ultoa::@6 -(label) ultoa::@7 -(label) ultoa::@return -(byte*) ultoa::buffer -(byte*) ultoa::buffer#11 buffer zp[2]:40 287143.2857142857 -(byte*) ultoa::buffer#14 buffer zp[2]:40 1500001.5 -(byte*) ultoa::buffer#3 buffer zp[2]:40 20002.0 -(byte*) ultoa::buffer#4 buffer zp[2]:40 2000002.0 -(byte) ultoa::digit -(byte) ultoa::digit#1 digit zp[1]:29 2000002.0 -(byte) ultoa::digit#2 digit zp[1]:29 285714.5714285714 -(dword) ultoa::digit_value -(dword) ultoa::digit_value#0 digit_value zp[4]:32 600000.6000000001 -(dword*) ultoa::digit_values -(byte) ultoa::max_digits -(const byte) ultoa::max_digits#1 max_digits = (byte) $a -(byte) ultoa::radix -(byte) ultoa::started -(byte) ultoa::started#2 reg byte x 500000.5 -(byte) ultoa::started#4 reg byte x 1000001.0 -(dword) ultoa::value -(dword) ultoa::value#0 value zp[4]:11 1000001.0 -(dword) ultoa::value#1 value zp[4]:11 5501.0 -(dword) ultoa::value#2 value zp[4]:11 572857.857142857 -(dword) ultoa::value#6 value zp[4]:11 1500001.5 -(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) -(label) ultoa_append::@1 -(label) ultoa_append::@2 -(label) ultoa_append::@3 -(label) ultoa_append::@return -(byte*) ultoa_append::buffer -(byte*) ultoa_append::buffer#0 buffer zp[2]:40 1375000.25 -(byte) ultoa_append::digit -(byte) ultoa_append::digit#1 reg byte x 1.0000000001E10 -(byte) ultoa_append::digit#2 reg byte x 1.00050000015E10 -(dword) ultoa_append::return -(dword) ultoa_append::return#0 return zp[4]:11 2000002.0 -(dword) ultoa_append::sub -(dword) ultoa_append::sub#0 sub zp[4]:32 3.3335000005E9 -(dword) ultoa_append::value -(dword) ultoa_append::value#0 value zp[4]:11 3666667.333333333 -(dword) ultoa_append::value#1 value zp[4]:11 2.0000000002E10 -(dword) ultoa_append::value#2 value zp[4]:11 5.001833334166666E9 -zp[2]:2 [ main::cols#5 main::cols#1 ] -zp[2]:4 [ main::screen#5 main::screen#1 ] -zp[1]:6 [ main::p0_idx#11 main::p0_idx#1 ] -zp[1]:7 [ main::p1_idx#2 main::p1_idx#1 ] -zp[1]:8 [ main::p2_idx#2 main::p2_idx#1 ] -zp[2]:9 [ main::canvas#10 main::canvas#24 main::canvas#1 ] +zp[1]:2 [ main::y#2 main::y#1 ] +zp[2]:3 [ main::cols#5 main::cols#1 ] +zp[2]:5 [ main::screen#5 main::screen#1 ] +zp[1]:7 [ main::p0_idx#2 main::p0_idx#1 ] +zp[1]:8 [ main::p1_idx#2 main::p1_idx#1 ] +zp[1]:9 [ main::p2_idx#2 main::p2_idx#1 ] +zp[2]:10 [ main::canvas#10 main::canvas#19 main::canvas#1 ] reg byte y [ main::x#2 main::x#1 ] reg byte x [ main::c#2 main::c#4 main::c#1 ] -reg byte x [ printf_number_buffer::format_min_length#2 ] -reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -reg byte a [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ] -reg byte x [ memset::c#8 memset::c#1 ] -reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -zp[4]:11 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 main::cyclecount#0 clock::return#2 main::$18 clock::return#0 ] -reg byte x [ ultoa::started#2 ultoa::started#4 ] -reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] -reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] reg byte x [ eorfill::x#2 eorfill::x#1 ] reg byte y [ eorfill::y#2 eorfill::y#1 ] reg byte a [ eorfill::eor#2 eorfill::eor#0 eorfill::eor#1 ] -zp[1]:15 [ line::x2#11 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 printf_number_buffer::format_upper_case#10 ] -zp[1]:16 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -reg byte x [ line::e#3 line::e#5 line::e#0 line::e#1 line::e#2 ] -zp[1]:17 [ line::x#12 line::x#10 line::x#16 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::plot2_x#0 line::x#13 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -zp[1]:18 [ line::y#10 line::y#6 line::y#15 line::y#13 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#11 line::y#3 printf_padding::pad#5 ] -reg byte x [ line::e1#3 line::e1#0 line::e1#7 line::e1#2 line::e1#1 ] +zp[1]:12 [ line::x2#15 line::x2#0 line::x2#1 line::x2#2 main::x1#0 main::x2#0 ] +zp[1]:13 [ line::y2#13 line::y2#10 line::y2#0 line::y2#1 line::y2#2 line::y2#3 ] +reg byte x [ line::e#3 line::e#0 line::e#5 line::e#2 line::e#1 ] +zp[1]:14 [ line::e1#3 line::e1#0 line::e1#1 line::e1#2 ] +zp[1]:15 [ line::x#10 line::x#12 line::x#18 line::x#15 line::x#0 line::x1#0 line::x1#1 line::x1#2 line::x#17 line::x#1 line::x#19 ] +zp[1]:16 [ line::y#13 line::y#15 line::y#11 line::y#7 line::y#17 line::y#0 line::y1#0 line::y1#1 line::y1#2 line::y#1 line::y#10 line::y#12 line::y#4 ] +reg byte x [ line::e2#3 line::e2#7 line::e2#0 line::e2#2 line::e2#1 ] reg byte a [ sgn_u8::u#2 sgn_u8::u#0 sgn_u8::u#1 ] reg byte a [ sgn_u8::return#4 ] reg byte a [ abs_u8::return#4 abs_u8::return#2 abs_u8::u#2 abs_u8::u#0 abs_u8::u#1 ] -zp[1]:19 [ conio_cursor_x main::y#2 main::y#1 ] -zp[1]:20 [ conio_cursor_y ] -zp[2]:21 [ conio_cursor_text cputln::$1 cscroll::$7 eorfill::line_column#2 eorfill::line_column#1 ] -zp[2]:23 [ conio_cursor_color cputln::$2 cscroll::$8 eorfill::fill_column#5 eorfill::canvas#0 eorfill::fill_column#1 ] -zp[1]:25 [ conio_textcolor ] -zp[1]:26 [ canvas_show_memory ] -zp[1]:27 [ canvas_show_flag ] -zp[1]:28 [ main::x0#0 printf_padding::i#2 printf_padding::i#1 ] -zp[1]:29 [ main::y0#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] -zp[1]:30 [ main::y1#0 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_zero_padding#10 ] -zp[1]:31 [ main::y2#0 uctoa::started#2 uctoa::started#4 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -reg byte x [ printf_uchar::uvalue#0 ] -reg byte a [ cputs::c#1 ] -reg byte a [ toupper::return#3 ] -reg byte a [ strupr::$0 ] -reg byte a [ ultoa::$11 ] -reg byte a [ ultoa::$10 ] -zp[4]:32 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -reg byte x [ uctoa_append::return#0 ] +reg byte x [ memset::c#6 ] +zp[1]:17 [ canvas_show_memory ] +zp[1]:18 [ canvas_show_flag ] +zp[1]:19 [ main::x0#0 ] +zp[1]:20 [ main::y0#0 ] +zp[1]:21 [ main::y1#0 ] +zp[1]:22 [ main::y2#0 ] reg byte a [ abs_u8::return#0 ] -zp[1]:36 [ line::dx#0 uctoa::digit_value#0 uctoa_append::sub#0 ] +zp[1]:23 [ line::dx#0 ] reg byte a [ abs_u8::return#1 ] -zp[1]:37 [ line::dy#0 ] +zp[1]:24 [ line::dy#0 ] reg byte a [ sgn_u8::return#0 ] -zp[1]:38 [ line::sx#0 ] +zp[1]:25 [ line::sx#0 ] reg byte a [ sgn_u8::return#1 ] -zp[1]:39 [ line::sy#0 ] -reg byte a [ line::plot1_$0 ] -reg byte a [ line::plot1_$2 ] -zp[2]:40 [ line::plot1_column#0 cputln::ln_offset#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::str#2 strlen::str#0 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::num#6 memset::end#0 ] -zp[1]:42 [ line::plot1_$1 ] +zp[1]:26 [ line::sy#0 ] +zp[1]:27 [ line::plot2_y#0 ] reg byte a [ line::plot2_$0 ] reg byte a [ line::plot2_$2 ] -zp[2]:43 [ line::plot2_column#0 memcpy::src_end#0 ] -zp[1]:45 [ line::plot2_$1 ] +zp[2]:28 [ line::plot2_column#0 memset::num#4 memset::end#0 eorfill::line_column#2 eorfill::line_column#1 ] +zp[1]:30 [ line::plot2_$1 ] reg byte a [ line::plot3_$0 ] reg byte a [ line::plot3_$2 ] -zp[2]:46 [ line::plot3_column#0 strupr::src#2 strupr::src#1 cputs::s#4 cputs::s#5 cputs::s#0 ] -zp[1]:48 [ line::plot3_$1 ] +zp[2]:31 [ line::plot3_column#0 memset::str#5 memset::dst#2 memset::dst#4 memset::dst#1 eorfill::fill_column#2 eorfill::canvas#0 eorfill::fill_column#1 ] +reg byte a [ line::plot3_$1 ] +reg byte a [ line::plot1_$0 ] +reg byte a [ line::plot1_$2 ] +zp[2]:33 [ line::plot1_column#0 ] +reg byte a [ line::plot1_$1 ] reg byte a [ line::plot4_$0 ] reg byte a [ line::plot4_$2 ] -zp[2]:49 [ line::plot4_column#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 memset::str#7 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:35 [ line::plot4_column#0 ] reg byte a [ line::plot4_$1 ] +reg byte a [ line::plot5_$0 ] +reg byte a [ line::plot5_$2 ] +zp[2]:37 [ line::plot5_column#0 ] +zp[1]:39 [ line::plot5_$1 ] +reg byte a [ line::plot6_$0 ] +reg byte a [ line::plot6_$2 ] +zp[2]:40 [ line::plot6_column#0 ] +reg byte a [ line::plot6_$1 ] reg byte a [ sgn_u8::$0 ] reg byte x [ abs_u8::$0 ] reg byte a [ kbhit::return#2 ] reg byte a [ irq_bottom_2::$0 ] reg byte a [ kbhit::return#0 ] -mem[12] [ printf_buffer ] diff --git a/src/test/ref/examples/plus4walk/plus4walk.asm b/src/test/ref/examples/plus4walk/plus4walk.asm new file mode 100644 index 000000000..d1a7d01ec --- /dev/null +++ b/src/test/ref/examples/plus4walk/plus4walk.asm @@ -0,0 +1,299 @@ +// Random walk with color fading for Commodore Plus/4 / C16 + .file [name="plus4walk.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$1001] +.segmentdef Code [start=$1010] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__bbegin) +.segment Code + + + .label SCREEN = $c00 + .label COLORRAM = $800 + .label BGCOLOR = $ff19 + .label BORDERCOLOR = $ff15 + .label RASTER = $ff1d + // The random state variable + .label rand_state = 3 +__bbegin: +.segment Code +main: { + .label __3 = 5 + .label __5 = 9 + .label __6 = $b + .label __8 = 5 + .label __10 = $d + .label __24 = 5 + .label offset = 5 + .label y = 2 + .label __29 = 7 + .label __30 = 5 + // memset(SCREEN, 0xa0, 1000) + ldx #$a0 + lda #SCREEN + sta.z memset.str+1 + jsr memset + // memset(COLORRAM, 0, 1000) + ldx #0 + lda #COLORRAM + sta.z memset.str+1 + jsr memset + // memset(COUNT, 0, 1000) + ldx #0 + lda #COUNT + sta.z memset.str+1 + jsr memset + // *BORDERCOLOR = 0 + lda #0 + sta BORDERCOLOR + // *BGCOLOR = 0 + sta BGCOLOR + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + ldx #$14 + lda #$c + sta.z y + __b2: + // (unsigned int)y*40 + lda.z y + sta.z __24 + lda #0 + sta.z __24+1 + lda.z __24 + asl + sta.z __29 + lda.z __24+1 + rol + sta.z __29+1 + asl.z __29 + rol.z __29+1 + lda.z __30 + clc + adc.z __29 + sta.z __30 + lda.z __30+1 + adc.z __29+1 + sta.z __30+1 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + // offset = (unsigned int)y*40+x + txa + clc + adc.z offset + sta.z offset + bcc !+ + inc.z offset+1 + !: + // COUNT+offset + lda.z offset + clc + adc #COUNT + sta.z __5+1 + // cnt = ++*(COUNT+offset) + ldy #0 + lda (__5),y + clc + adc #1 + sta (__5),y + // COUNT+offset + lda.z offset + clc + adc #COUNT + sta.z __6+1 + // cnt = ++*(COUNT+offset) + lda (__6),y + tay + // COLORRAM+offset + clc + lda.z __8 + adc #COLORRAM + sta.z __8+1 + // cnt&0xf + tya + and #$f + // *(COLORRAM+offset) = FADE[cnt&0xf] + tay + lda FADE,y + ldy #0 + sta (__8),y + // rand() + jsr rand + // rnd = >rand() + ldy.z __10+1 + // rnd & 0x80 + tya + and #$80 + // if(rnd & 0x80) + cmp #0 + bne __b3 + // rnd & 0x40 + tya + and #$40 + // if(rnd & 0x40) + cmp #0 + bne __b4 + // y--; + dec.z y + // if(y==0xff) + lda #$ff + cmp.z y + bne __b6 + lda #0 + sta.z y + __b6: + // while(*RASTER!=0xff) + lda #$ff + cmp RASTER + bne __b6 + jmp __b2 + __b4: + // y++; + inc.z y + // if(y==25) + lda #$19 + cmp.z y + bne __b6 + lda #$18 + sta.z y + jmp __b6 + __b3: + // rnd& 0x40 + tya + and #$40 + // if(rnd& 0x40) + cmp #0 + bne __b5 + // x--; + dex + // if(x==0xff) + cpx #$ff + bne __b6 + ldx #0 + jmp __b6 + __b5: + // x++; + inx + // if(x==40) + cpx #$28 + bne __b6 + ldx #$27 + jmp __b6 +} +// Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) +// Uses an xorshift pseudorandom number generator that hits all different values +// Information https://en.wikipedia.org/wiki/Xorshift +// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html +rand: { + .label __0 = $13 + .label __1 = $f + .label __2 = $11 + .label return = $d + // rand_state << 7 + lda.z rand_state+1 + lsr + lda.z rand_state + ror + sta.z __0+1 + lda #0 + ror + sta.z __0 + // rand_state ^= rand_state << 7 + lda.z rand_state + eor.z __0 + sta.z rand_state + lda.z rand_state+1 + eor.z __0+1 + sta.z rand_state+1 + // rand_state >> 9 + lsr + sta.z __1 + lda #0 + sta.z __1+1 + // rand_state ^= rand_state >> 9 + lda.z rand_state + eor.z __1 + sta.z rand_state + lda.z rand_state+1 + eor.z __1+1 + sta.z rand_state+1 + // rand_state << 8 + lda.z rand_state + sta.z __2+1 + lda #0 + sta.z __2 + // rand_state ^= rand_state << 8 + lda.z rand_state + eor.z __2 + sta.z rand_state + lda.z rand_state+1 + eor.z __2+1 + sta.z rand_state+1 + // return rand_state; + lda.z rand_state + sta.z return + lda.z rand_state+1 + sta.z return+1 + // } + rts +} +// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// memset(void* zp(5) str, byte register(X) c) +memset: { + .label end = $13 + .label dst = 5 + .label str = 5 + // end = (char*)str + num + lda.z str + clc + adc #<$3e8 + sta.z end + lda.z str+1 + adc #>$3e8 + sta.z end+1 + __b2: + // for(char* dst = str; dst!=end; dst++) + lda.z dst+1 + cmp.z end+1 + bne __b3 + lda.z dst + cmp.z end + bne __b3 + // } + rts + __b3: + // *dst = c + txa + ldy #0 + sta (dst),y + // for(char* dst = str; dst!=end; dst++) + inc.z dst + bne !+ + inc.z dst+1 + !: + jmp __b2 +} +.segment Data + FADE: .byte 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 + COUNT: .fill $3e8, 0 diff --git a/src/test/ref/examples/plus4walk/plus4walk.cfg b/src/test/ref/examples/plus4walk/plus4walk.cfg new file mode 100644 index 000000000..1acdeaa77 --- /dev/null +++ b/src/test/ref/examples/plus4walk/plus4walk.cfg @@ -0,0 +1,130 @@ +@begin: scope:[] from + [0] phi() + to:@1 +@1: scope:[] from @begin + [1] phi() + [2] call main + to:@end +@end: scope:[] from @1 + [3] phi() + +(void()) main() +main: scope:[main] from @1 + [4] phi() + [5] call memset + to:main::@10 +main::@10: scope:[main] from main + [6] phi() + [7] call memset + to:main::@11 +main::@11: scope:[main] from main::@10 + [8] phi() + [9] call memset + to:main::@12 +main::@12: scope:[main] from main::@11 + [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 + [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 + to:main::@1 +main::@1: scope:[main] from main::@12 main::@6 + [12] (word) rand_state#11 ← phi( main::@12/(word) 1 main::@6/(word) rand_state#3 ) + [12] (byte) main::x#11 ← phi( main::@12/(byte) $14 main::@6/(byte) main::x#10 ) + [12] (byte) main::y#11 ← phi( main::@12/(byte) $c main::@6/(byte) main::y#10 ) + to:main::@2 +main::@2: scope:[main] from main::@1 + [13] (word~) main::$24 ← (word)(byte) main::y#11 + [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 + [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 + [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 + [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 + [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 + [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) + [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 + [21] (byte) main::cnt#0 ← *((byte*~) main::$6) + [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 + [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f + [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) + [25] call rand + [26] (word) rand::return#2 ← (word) rand::return#0 + to:main::@13 +main::@13: scope:[main] from main::@2 + [27] (word~) main::$10 ← (word) rand::return#2 + [28] (byte) main::rnd#0 ← > (word~) main::$10 + [29] (byte~) main::$12 ← (byte) main::rnd#0 & (byte) $80 + [30] if((byte) 0!=(byte~) main::$12) goto main::@3 + to:main::@7 +main::@7: scope:[main] from main::@13 + [31] (byte~) main::$13 ← (byte) main::rnd#0 & (byte) $40 + [32] if((byte) 0!=(byte~) main::$13) goto main::@4 + to:main::@8 +main::@8: scope:[main] from main::@7 + [33] (byte) main::y#2 ← -- (byte) main::y#11 + [34] if((byte) main::y#2!=(byte) $ff) goto main::@14 + to:main::@6 +main::@14: scope:[main] from main::@8 + [35] phi() + to:main::@6 +main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 + [36] (byte) main::x#10 ← phi( main::@14/(byte) main::x#11 main::@8/(byte) main::x#11 main::@15/(byte) main::x#2 main::@9/(byte) 0 main::@16/(byte) main::x#11 main::@4/(byte) main::x#11 main::@17/(byte) main::x#1 main::@5/(byte) $27 main::@6/(byte) main::x#10 ) + [36] (byte) main::y#10 ← phi( main::@14/(byte) main::y#2 main::@8/(byte) 0 main::@15/(byte) main::y#11 main::@9/(byte) main::y#11 main::@16/(byte) main::y#1 main::@4/(byte) $18 main::@17/(byte) main::y#11 main::@5/(byte) main::y#11 main::@6/(byte) main::y#10 ) + [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 + to:main::@1 +main::@4: scope:[main] from main::@7 + [38] (byte) main::y#1 ← ++ (byte) main::y#11 + [39] if((byte) main::y#1!=(byte) $19) goto main::@16 + to:main::@6 +main::@16: scope:[main] from main::@4 + [40] phi() + to:main::@6 +main::@3: scope:[main] from main::@13 + [41] (byte~) main::$18 ← (byte) main::rnd#0 & (byte) $40 + [42] if((byte) 0!=(byte~) main::$18) goto main::@5 + to:main::@9 +main::@9: scope:[main] from main::@3 + [43] (byte) main::x#2 ← -- (byte) main::x#11 + [44] if((byte) main::x#2!=(byte) $ff) goto main::@15 + to:main::@6 +main::@15: scope:[main] from main::@9 + [45] phi() + to:main::@6 +main::@5: scope:[main] from main::@3 + [46] (byte) main::x#1 ← ++ (byte) main::x#11 + [47] if((byte) main::x#1!=(byte) $28) goto main::@17 + to:main::@6 +main::@17: scope:[main] from main::@5 + [48] phi() + to:main::@6 + +(word()) rand() +rand: scope:[rand] from main::@2 + [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 + [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 + [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 + [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 + [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 + [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 + [55] (word) rand::return#0 ← (word) rand_state#3 + to:rand::@return +rand::@return: scope:[rand] from rand + [56] return + to:@return + +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from main main::@10 main::@11 + [57] (byte) memset::c#5 ← phi( main/(byte) $a0 main::@10/(byte) 0 main::@11/(byte) 0 ) + [57] (void*) memset::str#4 ← phi( main/(void*)(const nomodify byte*) SCREEN main::@10/(void*)(const nomodify byte*) COLORRAM main::@11/(void*)(const byte*) COUNT ) + to:memset::@1 +memset::@1: scope:[memset] from memset + [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 + [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 + to:memset::@2 +memset::@2: scope:[memset] from memset::@1 memset::@3 + [60] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [61] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + to:memset::@return +memset::@return: scope:[memset] from memset::@2 + [62] return + to:@return +memset::@3: scope:[memset] from memset::@2 + [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 + [64] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + to:memset::@2 diff --git a/src/test/ref/examples/plus4walk/plus4walk.log b/src/test/ref/examples/plus4walk/plus4walk.log new file mode 100644 index 000000000..dfc800dfe --- /dev/null +++ b/src/test/ref/examples/plus4walk/plus4walk.log @@ -0,0 +1,2758 @@ +Loading link script "plus4.ld" + +CONTROL FLOW GRAPH SSA +@begin: scope:[] from + to:@1 + +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from main main::@14 main::@15 + (byte) memset::c#6 ← phi( main/(byte) memset::c#0 main::@14/(byte) memset::c#1 main::@15/(byte) memset::c#2 ) + (void*) memset::str#5 ← phi( main/(void*) memset::str#0 main::@14/(void*) memset::str#1 main::@15/(void*) memset::str#2 ) + (word) memset::num#3 ← phi( main/(word) memset::num#0 main::@14/(word) memset::num#1 main::@15/(word) memset::num#2 ) + (bool~) memset::$0 ← (word) memset::num#3 > (number) 0 + (bool~) memset::$1 ← ! (bool~) memset::$0 + if((bool~) memset::$1) goto memset::@1 + to:memset::@2 +memset::@1: scope:[memset] from memset memset::@3 + (void*) memset::str#3 ← phi( memset/(void*) memset::str#5 memset::@3/(void*) memset::str#6 ) + (void*) memset::return#0 ← (void*) memset::str#3 + to:memset::@return +memset::@2: scope:[memset] from memset + (byte) memset::c#5 ← phi( memset/(byte) memset::c#6 ) + (word) memset::num#4 ← phi( memset/(word) memset::num#3 ) + (void*) memset::str#4 ← phi( memset/(void*) memset::str#5 ) + (byte*~) memset::$4 ← (byte*)(void*) memset::str#4 + (byte*~) memset::$2 ← (byte*~) memset::$4 + (word) memset::num#4 + (byte*) memset::end#0 ← (byte*~) memset::$2 + (byte*) memset::dst#0 ← ((byte*)) (void*) memset::str#4 + to:memset::@3 +memset::@3: scope:[memset] from memset::@2 memset::@4 + (byte) memset::c#4 ← phi( memset::@2/(byte) memset::c#5 memset::@4/(byte) memset::c#3 ) + (void*) memset::str#6 ← phi( memset::@2/(void*) memset::str#4 memset::@4/(void*) memset::str#7 ) + (byte*) memset::end#1 ← phi( memset::@2/(byte*) memset::end#0 memset::@4/(byte*) memset::end#2 ) + (byte*) memset::dst#2 ← phi( memset::@2/(byte*) memset::dst#0 memset::@4/(byte*) memset::dst#1 ) + (bool~) memset::$3 ← (byte*) memset::dst#2 != (byte*) memset::end#1 + if((bool~) memset::$3) goto memset::@4 + to:memset::@1 +memset::@4: scope:[memset] from memset::@3 + (void*) memset::str#7 ← phi( memset::@3/(void*) memset::str#6 ) + (byte*) memset::end#2 ← phi( memset::@3/(byte*) memset::end#1 ) + (byte*) memset::dst#3 ← phi( memset::@3/(byte*) memset::dst#2 ) + (byte) memset::c#3 ← phi( memset::@3/(byte) memset::c#4 ) + *((byte*) memset::dst#3) ← (byte) memset::c#3 + (byte*) memset::dst#1 ← ++ (byte*) memset::dst#3 + to:memset::@3 +memset::@return: scope:[memset] from memset::@1 + (void*) memset::return#5 ← phi( memset::@1/(void*) memset::return#0 ) + (void*) memset::return#1 ← (void*) memset::return#5 + return + to:@return +@1: scope:[] from @begin + (word) rand_state#0 ← (word) 1 + to:@2 + +(word()) rand() +rand: scope:[rand] from main::@2 + (word) rand_state#8 ← phi( main::@2/(word) rand_state#13 ) + (word~) rand::$0 ← (word) rand_state#8 << (number) 7 + (word) rand_state#1 ← (word) rand_state#8 ^ (word~) rand::$0 + (word~) rand::$1 ← (word) rand_state#1 >> (number) 9 + (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 + (word~) rand::$2 ← (word) rand_state#2 << (number) 8 + (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 + (word) rand::return#0 ← (word) rand_state#3 + to:rand::@return +rand::@return: scope:[rand] from rand + (word) rand_state#9 ← phi( rand/(word) rand_state#3 ) + (word) rand::return#3 ← phi( rand/(word) rand::return#0 ) + (word) rand::return#1 ← (word) rand::return#3 + (word) rand_state#4 ← (word) rand_state#9 + return + to:@return + +(void()) main() +main: scope:[main] from @2 + (word) rand_state#30 ← phi( @2/(word) rand_state#15 ) + (void*) memset::str#0 ← (void*)(const nomodify byte*) SCREEN + (byte) memset::c#0 ← (number) $a0 + (word) memset::num#0 ← (number) $3e8 + call memset + (void*) memset::return#2 ← (void*) memset::return#1 + to:main::@14 +main::@14: scope:[main] from main + (word) rand_state#27 ← phi( main/(word) rand_state#30 ) + (void*) memset::str#1 ← (void*)(const nomodify byte*) COLORRAM + (byte) memset::c#1 ← (number) 0 + (word) memset::num#1 ← (number) $3e8 + call memset + (void*) memset::return#3 ← (void*) memset::return#1 + to:main::@15 +main::@15: scope:[main] from main::@14 + (word) rand_state#18 ← phi( main::@14/(word) rand_state#27 ) + (void*) memset::str#2 ← (void*)(const byte*) COUNT + (byte) memset::c#2 ← (number) 0 + (word) memset::num#2 ← (number) $3e8 + call memset + (void*) memset::return#4 ← (void*) memset::return#1 + to:main::@16 +main::@16: scope:[main] from main::@15 + (word) rand_state#16 ← phi( main::@15/(word) rand_state#18 ) + *((const nomodify byte*) BORDERCOLOR) ← (number) 0 + *((const nomodify byte*) BGCOLOR) ← (number) 0 + (byte) main::x#0 ← (byte) $14 + (byte) main::y#0 ← (byte) $c + to:main::@1 +main::@1: scope:[main] from main::@16 main::@8 + (word) rand_state#14 ← phi( main::@16/(word) rand_state#16 main::@8/(word) rand_state#17 ) + (byte) main::x#8 ← phi( main::@16/(byte) main::x#0 main::@8/(byte) main::x#10 ) + (byte) main::y#8 ← phi( main::@16/(byte) main::y#0 main::@8/(byte) main::y#10 ) + (bool~) main::$25 ← (number) 0 != (number) 1 + if((bool~) main::$25) goto main::@2 + to:main::@return +main::@2: scope:[main] from main::@1 + (word) rand_state#13 ← phi( main::@1/(word) rand_state#14 ) + (byte) main::x#5 ← phi( main::@1/(byte) main::x#8 ) + (byte) main::y#5 ← phi( main::@1/(byte) main::y#8 ) + (word~) main::$24 ← (word)(byte) main::y#5 + (number~) main::$3 ← (word~) main::$24 * (number) $28 + (number~) main::$4 ← (number~) main::$3 + (byte) main::x#5 + (word) main::offset#0 ← (number~) main::$4 + (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 + *((byte*~) main::$5) ← ++ *((byte*~) main::$5) + (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 + (byte) main::cnt#0 ← *((byte*~) main::$6) + (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 + (number~) main::$9 ← (byte) main::cnt#0 & (number) $f + *((byte*~) main::$8) ← *((const byte*) FADE + (number~) main::$9) + call rand + (word) rand::return#2 ← (word) rand::return#1 + to:main::@17 +main::@17: scope:[main] from main::@2 + (byte) main::y#11 ← phi( main::@2/(byte) main::y#5 ) + (byte) main::x#11 ← phi( main::@2/(byte) main::x#5 ) + (word) rand_state#10 ← phi( main::@2/(word) rand_state#4 ) + (word) rand::return#4 ← phi( main::@2/(word) rand::return#2 ) + (word~) main::$10 ← (word) rand::return#4 + (word) rand_state#5 ← (word) rand_state#10 + (byte~) main::$11 ← > (word~) main::$10 + (byte) main::rnd#0 ← (byte~) main::$11 + (number~) main::$12 ← (byte) main::rnd#0 & (number) $80 + (bool~) main::$26 ← (number) 0 != (number~) main::$12 + if((bool~) main::$26) goto main::@3 + to:main::@9 +main::@3: scope:[main] from main::@17 + (word) rand_state#29 ← phi( main::@17/(word) rand_state#5 ) + (byte) main::y#16 ← phi( main::@17/(byte) main::y#11 ) + (byte) main::x#9 ← phi( main::@17/(byte) main::x#11 ) + (byte) main::rnd#1 ← phi( main::@17/(byte) main::rnd#0 ) + (number~) main::$18 ← (byte) main::rnd#1 & (number) $40 + (bool~) main::$27 ← (number) 0 != (number~) main::$18 + if((bool~) main::$27) goto main::@6 + to:main::@12 +main::@9: scope:[main] from main::@17 + (word) rand_state#28 ← phi( main::@17/(word) rand_state#5 ) + (byte) main::x#16 ← phi( main::@17/(byte) main::x#11 ) + (byte) main::y#9 ← phi( main::@17/(byte) main::y#11 ) + (byte) main::rnd#2 ← phi( main::@17/(byte) main::rnd#0 ) + (number~) main::$13 ← (byte) main::rnd#2 & (number) $40 + (bool~) main::$28 ← (number) 0 != (number~) main::$13 + if((bool~) main::$28) goto main::@4 + to:main::@10 +main::@4: scope:[main] from main::@9 + (word) rand_state#23 ← phi( main::@9/(word) rand_state#28 ) + (byte) main::x#14 ← phi( main::@9/(byte) main::x#16 ) + (byte) main::y#6 ← phi( main::@9/(byte) main::y#9 ) + (byte) main::y#1 ← ++ (byte) main::y#6 + (bool~) main::$16 ← (byte) main::y#1 == (number) $19 + (bool~) main::$17 ← ! (bool~) main::$16 + if((bool~) main::$17) goto main::@8 + to:main::@5 +main::@10: scope:[main] from main::@9 + (word) rand_state#19 ← phi( main::@9/(word) rand_state#28 ) + (byte) main::x#12 ← phi( main::@9/(byte) main::x#16 ) + (byte) main::y#7 ← phi( main::@9/(byte) main::y#9 ) + (byte) main::y#2 ← -- (byte) main::y#7 + (bool~) main::$14 ← (byte) main::y#2 == (number) $ff + (bool~) main::$15 ← ! (bool~) main::$14 + if((bool~) main::$15) goto main::@8 + to:main::@11 +main::@11: scope:[main] from main::@10 + (word) rand_state#20 ← phi( main::@10/(word) rand_state#19 ) + (byte) main::x#13 ← phi( main::@10/(byte) main::x#12 ) + (byte) main::y#3 ← (number) 0 + to:main::@8 +main::@5: scope:[main] from main::@4 + (word) rand_state#24 ← phi( main::@4/(word) rand_state#23 ) + (byte) main::x#15 ← phi( main::@4/(byte) main::x#14 ) + (byte) main::y#4 ← (number) $18 + to:main::@8 +main::@6: scope:[main] from main::@3 + (word) rand_state#25 ← phi( main::@3/(word) rand_state#29 ) + (byte) main::y#14 ← phi( main::@3/(byte) main::y#16 ) + (byte) main::x#6 ← phi( main::@3/(byte) main::x#9 ) + (byte) main::x#1 ← ++ (byte) main::x#6 + (bool~) main::$21 ← (byte) main::x#1 == (number) $28 + (bool~) main::$22 ← ! (bool~) main::$21 + if((bool~) main::$22) goto main::@8 + to:main::@7 +main::@12: scope:[main] from main::@3 + (word) rand_state#21 ← phi( main::@3/(word) rand_state#29 ) + (byte) main::y#12 ← phi( main::@3/(byte) main::y#16 ) + (byte) main::x#7 ← phi( main::@3/(byte) main::x#9 ) + (byte) main::x#2 ← -- (byte) main::x#7 + (bool~) main::$19 ← (byte) main::x#2 == (number) $ff + (bool~) main::$20 ← ! (bool~) main::$19 + if((bool~) main::$20) goto main::@8 + to:main::@13 +main::@13: scope:[main] from main::@12 + (word) rand_state#22 ← phi( main::@12/(word) rand_state#21 ) + (byte) main::y#13 ← phi( main::@12/(byte) main::y#12 ) + (byte) main::x#3 ← (number) 0 + to:main::@8 +main::@7: scope:[main] from main::@6 + (word) rand_state#26 ← phi( main::@6/(word) rand_state#25 ) + (byte) main::y#15 ← phi( main::@6/(byte) main::y#14 ) + (byte) main::x#4 ← (number) $27 + to:main::@8 +main::@8: scope:[main] from main::@10 main::@11 main::@12 main::@13 main::@4 main::@5 main::@6 main::@7 main::@8 + (word) rand_state#17 ← phi( main::@10/(word) rand_state#19 main::@11/(word) rand_state#20 main::@12/(word) rand_state#21 main::@13/(word) rand_state#22 main::@4/(word) rand_state#23 main::@5/(word) rand_state#24 main::@6/(word) rand_state#25 main::@7/(word) rand_state#26 main::@8/(word) rand_state#17 ) + (byte) main::x#10 ← phi( main::@10/(byte) main::x#12 main::@11/(byte) main::x#13 main::@12/(byte) main::x#2 main::@13/(byte) main::x#3 main::@4/(byte) main::x#14 main::@5/(byte) main::x#15 main::@6/(byte) main::x#1 main::@7/(byte) main::x#4 main::@8/(byte) main::x#10 ) + (byte) main::y#10 ← phi( main::@10/(byte) main::y#2 main::@11/(byte) main::y#3 main::@12/(byte) main::y#12 main::@13/(byte) main::y#13 main::@4/(byte) main::y#1 main::@5/(byte) main::y#4 main::@6/(byte) main::y#14 main::@7/(byte) main::y#15 main::@8/(byte) main::y#10 ) + (bool~) main::$23 ← *((const nomodify byte*) RASTER) != (number) $ff + if((bool~) main::$23) goto main::@8 + to:main::@1 +main::@return: scope:[main] from main::@1 + (word) rand_state#11 ← phi( main::@1/(word) rand_state#14 ) + (word) rand_state#6 ← (word) rand_state#11 + return + to:@return +@2: scope:[] from @1 + (word) rand_state#15 ← phi( @1/(word) rand_state#0 ) + call main + to:@3 +@3: scope:[] from @2 + (word) rand_state#12 ← phi( @2/(word) rand_state#6 ) + (word) rand_state#7 ← (word) rand_state#12 + to:@end +@end: scope:[] from @3 + +SYMBOL TABLE SSA +(label) @1 +(label) @2 +(label) @3 +(label) @begin +(label) @end +(const nomodify byte*) BGCOLOR = (byte*)(number) $ff19 +(const nomodify byte*) BORDERCOLOR = (byte*)(number) $ff15 +(const nomodify byte*) COLORRAM = (byte*)(number) $800 +(const byte*) COUNT[(number) $3e8] = { fill( $3e8, 0) } +(const byte*) FADE[(number) $10] = { (byte) 2, (byte) $12, (byte) $22, (byte) $32, (byte) $42, (byte) $52, (byte) $62, (byte) $72, (byte) $76, (byte) $66, (byte) $56, (byte) $46, (byte) $36, (byte) $26, (byte) $16, (byte) 6 } +(const byte) RADIX::BINARY = (number) 2 +(const byte) RADIX::DECIMAL = (number) $a +(const byte) RADIX::HEXADECIMAL = (number) $10 +(const byte) RADIX::OCTAL = (number) 8 +(const nomodify byte*) RASTER = (byte*)(number) $ff1d +(const nomodify byte*) SCREEN = (byte*)(number) $c00 +(void()) main() +(word~) main::$10 +(byte~) main::$11 +(number~) main::$12 +(number~) main::$13 +(bool~) main::$14 +(bool~) main::$15 +(bool~) main::$16 +(bool~) main::$17 +(number~) main::$18 +(bool~) main::$19 +(bool~) main::$20 +(bool~) main::$21 +(bool~) main::$22 +(bool~) main::$23 +(word~) main::$24 +(bool~) main::$25 +(bool~) main::$26 +(bool~) main::$27 +(bool~) main::$28 +(number~) main::$3 +(number~) main::$4 +(byte*~) main::$5 +(byte*~) main::$6 +(byte*~) main::$8 +(number~) main::$9 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(label) main::@return +(byte) main::cnt +(byte) main::cnt#0 +(word) main::offset +(word) main::offset#0 +(byte) main::rnd +(byte) main::rnd#0 +(byte) main::rnd#1 +(byte) main::rnd#2 +(byte) main::x +(byte) main::x#0 +(byte) main::x#1 +(byte) main::x#10 +(byte) main::x#11 +(byte) main::x#12 +(byte) main::x#13 +(byte) main::x#14 +(byte) main::x#15 +(byte) main::x#16 +(byte) main::x#2 +(byte) main::x#3 +(byte) main::x#4 +(byte) main::x#5 +(byte) main::x#6 +(byte) main::x#7 +(byte) main::x#8 +(byte) main::x#9 +(byte) main::y +(byte) main::y#0 +(byte) main::y#1 +(byte) main::y#10 +(byte) main::y#11 +(byte) main::y#12 +(byte) main::y#13 +(byte) main::y#14 +(byte) main::y#15 +(byte) main::y#16 +(byte) main::y#2 +(byte) main::y#3 +(byte) main::y#4 +(byte) main::y#5 +(byte) main::y#6 +(byte) main::y#7 +(byte) main::y#8 +(byte) main::y#9 +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +(bool~) memset::$0 +(bool~) memset::$1 +(byte*~) memset::$2 +(bool~) memset::$3 +(byte*~) memset::$4 +(label) memset::@1 +(label) memset::@2 +(label) memset::@3 +(label) memset::@4 +(label) memset::@return +(byte) memset::c +(byte) memset::c#0 +(byte) memset::c#1 +(byte) memset::c#2 +(byte) memset::c#3 +(byte) memset::c#4 +(byte) memset::c#5 +(byte) memset::c#6 +(byte*) memset::dst +(byte*) memset::dst#0 +(byte*) memset::dst#1 +(byte*) memset::dst#2 +(byte*) memset::dst#3 +(byte*) memset::end +(byte*) memset::end#0 +(byte*) memset::end#1 +(byte*) memset::end#2 +(word) memset::num +(word) memset::num#0 +(word) memset::num#1 +(word) memset::num#2 +(word) memset::num#3 +(word) memset::num#4 +(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::return#5 +(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 +(void*) memset::str#7 +(word()) rand() +(word~) rand::$0 +(word~) rand::$1 +(word~) rand::$2 +(label) rand::@return +(word) rand::return +(word) rand::return#0 +(word) rand::return#1 +(word) rand::return#2 +(word) rand::return#3 +(word) rand::return#4 +(word) rand_state +(word) rand_state#0 +(word) rand_state#1 +(word) rand_state#10 +(word) rand_state#11 +(word) rand_state#12 +(word) rand_state#13 +(word) rand_state#14 +(word) rand_state#15 +(word) rand_state#16 +(word) rand_state#17 +(word) rand_state#18 +(word) rand_state#19 +(word) rand_state#2 +(word) rand_state#20 +(word) rand_state#21 +(word) rand_state#22 +(word) rand_state#23 +(word) rand_state#24 +(word) rand_state#25 +(word) rand_state#26 +(word) rand_state#27 +(word) rand_state#28 +(word) rand_state#29 +(word) rand_state#3 +(word) rand_state#30 +(word) rand_state#4 +(word) rand_state#5 +(word) rand_state#6 +(word) rand_state#7 +(word) rand_state#8 +(word) rand_state#9 + +Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#3 > (number) 0 +Adding number conversion cast (unumber) 7 in (word~) rand::$0 ← (word) rand_state#8 << (number) 7 +Adding number conversion cast (unumber) 9 in (word~) rand::$1 ← (word) rand_state#1 >> (number) 9 +Adding number conversion cast (unumber) 8 in (word~) rand::$2 ← (word) rand_state#2 << (number) 8 +Adding number conversion cast (unumber) $a0 in (byte) memset::c#0 ← (number) $a0 +Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8 +Adding number conversion cast (unumber) 0 in (byte) memset::c#1 ← (number) 0 +Adding number conversion cast (unumber) $3e8 in (word) memset::num#1 ← (number) $3e8 +Adding number conversion cast (unumber) 0 in (byte) memset::c#2 ← (number) 0 +Adding number conversion cast (unumber) $3e8 in (word) memset::num#2 ← (number) $3e8 +Adding number conversion cast (unumber) 0 in *((const nomodify byte*) BORDERCOLOR) ← (number) 0 +Adding number conversion cast (unumber) 0 in *((const nomodify byte*) BGCOLOR) ← (number) 0 +Adding number conversion cast (unumber) $28 in (number~) main::$3 ← (word~) main::$24 * (number) $28 +Adding number conversion cast (unumber) main::$3 in (number~) main::$3 ← (word~) main::$24 * (unumber)(number) $28 +Adding number conversion cast (unumber) main::$4 in (number~) main::$4 ← (unumber~) main::$3 + (byte) main::x#5 +Adding number conversion cast (unumber) $f in (number~) main::$9 ← (byte) main::cnt#0 & (number) $f +Adding number conversion cast (unumber) main::$9 in (number~) main::$9 ← (byte) main::cnt#0 & (unumber)(number) $f +Adding number conversion cast (unumber) $80 in (number~) main::$12 ← (byte) main::rnd#0 & (number) $80 +Adding number conversion cast (unumber) main::$12 in (number~) main::$12 ← (byte) main::rnd#0 & (unumber)(number) $80 +Adding number conversion cast (unumber) 0 in (bool~) main::$26 ← (number) 0 != (unumber~) main::$12 +Adding number conversion cast (unumber) $40 in (number~) main::$18 ← (byte) main::rnd#1 & (number) $40 +Adding number conversion cast (unumber) main::$18 in (number~) main::$18 ← (byte) main::rnd#1 & (unumber)(number) $40 +Adding number conversion cast (unumber) 0 in (bool~) main::$27 ← (number) 0 != (unumber~) main::$18 +Adding number conversion cast (unumber) $40 in (number~) main::$13 ← (byte) main::rnd#2 & (number) $40 +Adding number conversion cast (unumber) main::$13 in (number~) main::$13 ← (byte) main::rnd#2 & (unumber)(number) $40 +Adding number conversion cast (unumber) 0 in (bool~) main::$28 ← (number) 0 != (unumber~) main::$13 +Adding number conversion cast (unumber) $19 in (bool~) main::$16 ← (byte) main::y#1 == (number) $19 +Adding number conversion cast (unumber) $ff in (bool~) main::$14 ← (byte) main::y#2 == (number) $ff +Adding number conversion cast (unumber) 0 in (byte) main::y#3 ← (number) 0 +Adding number conversion cast (unumber) $18 in (byte) main::y#4 ← (number) $18 +Adding number conversion cast (unumber) $28 in (bool~) main::$21 ← (byte) main::x#1 == (number) $28 +Adding number conversion cast (unumber) $ff in (bool~) main::$19 ← (byte) main::x#2 == (number) $ff +Adding number conversion cast (unumber) 0 in (byte) main::x#3 ← (number) 0 +Adding number conversion cast (unumber) $27 in (byte) main::x#4 ← (number) $27 +Adding number conversion cast (unumber) $ff in (bool~) main::$23 ← *((const nomodify byte*) RASTER) != (number) $ff +Successful SSA optimization PassNAddNumberTypeConversions +Inlining cast (byte*) memset::dst#0 ← (byte*)(void*) memset::str#4 +Inlining cast (byte) memset::c#0 ← (unumber)(number) $a0 +Inlining cast (word) memset::num#0 ← (unumber)(number) $3e8 +Inlining cast (byte) memset::c#1 ← (unumber)(number) 0 +Inlining cast (word) memset::num#1 ← (unumber)(number) $3e8 +Inlining cast (byte) memset::c#2 ← (unumber)(number) 0 +Inlining cast (word) memset::num#2 ← (unumber)(number) $3e8 +Inlining cast *((const nomodify byte*) BORDERCOLOR) ← (unumber)(number) 0 +Inlining cast *((const nomodify byte*) BGCOLOR) ← (unumber)(number) 0 +Inlining cast (byte) main::y#3 ← (unumber)(number) 0 +Inlining cast (byte) main::y#4 ← (unumber)(number) $18 +Inlining cast (byte) main::x#3 ← (unumber)(number) 0 +Inlining cast (byte) main::x#4 ← (unumber)(number) $27 +Successful SSA optimization Pass2InlineCast +Simplifying constant pointer cast (byte*) 3072 +Simplifying constant pointer cast (byte*) 2048 +Simplifying constant pointer cast (byte*) 65305 +Simplifying constant pointer cast (byte*) 65301 +Simplifying constant pointer cast (byte*) 65309 +Simplifying constant integer cast 0 +Simplifying constant integer cast 7 +Simplifying constant integer cast 9 +Simplifying constant integer cast 8 +Simplifying constant integer cast $a0 +Simplifying constant integer cast $3e8 +Simplifying constant integer cast 0 +Simplifying constant integer cast $3e8 +Simplifying constant integer cast 0 +Simplifying constant integer cast $3e8 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast $28 +Simplifying constant integer cast $f +Simplifying constant integer cast $80 +Simplifying constant integer cast 0 +Simplifying constant integer cast $40 +Simplifying constant integer cast 0 +Simplifying constant integer cast $40 +Simplifying constant integer cast 0 +Simplifying constant integer cast $19 +Simplifying constant integer cast $ff +Simplifying constant integer cast 0 +Simplifying constant integer cast $18 +Simplifying constant integer cast $28 +Simplifying constant integer cast $ff +Simplifying constant integer cast 0 +Simplifying constant integer cast $27 +Simplifying constant integer cast $ff +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 7 +Finalized unsigned number type (byte) 9 +Finalized unsigned number type (byte) 8 +Finalized unsigned number type (byte) $a0 +Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $28 +Finalized unsigned number type (byte) $f +Finalized unsigned number type (byte) $80 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $40 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $40 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $19 +Finalized unsigned number type (byte) $ff +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $18 +Finalized unsigned number type (byte) $28 +Finalized unsigned number type (byte) $ff +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $27 +Finalized unsigned number type (byte) $ff +Successful SSA optimization PassNFinalizeNumberTypeConversions +Inferred type updated to word in (unumber~) main::$3 ← (word~) main::$24 * (byte) $28 +Inferred type updated to word in (unumber~) main::$4 ← (word~) main::$3 + (byte) main::x#5 +Inferred type updated to byte in (unumber~) main::$9 ← (byte) main::cnt#0 & (byte) $f +Inferred type updated to byte in (unumber~) main::$12 ← (byte) main::rnd#0 & (byte) $80 +Inferred type updated to byte in (unumber~) main::$18 ← (byte) main::rnd#1 & (byte) $40 +Inferred type updated to byte in (unumber~) main::$13 ← (byte) main::rnd#2 & (byte) $40 +Inversing boolean not [2] (bool~) memset::$1 ← (word) memset::num#3 <= (byte) 0 from [1] (bool~) memset::$0 ← (word) memset::num#3 > (byte) 0 +Inversing boolean not [92] (bool~) main::$17 ← (byte) main::y#1 != (byte) $19 from [91] (bool~) main::$16 ← (byte) main::y#1 == (byte) $19 +Inversing boolean not [97] (bool~) main::$15 ← (byte) main::y#2 != (byte) $ff from [96] (bool~) main::$14 ← (byte) main::y#2 == (byte) $ff +Inversing boolean not [106] (bool~) main::$22 ← (byte) main::x#1 != (byte) $28 from [105] (bool~) main::$21 ← (byte) main::x#1 == (byte) $28 +Inversing boolean not [111] (bool~) main::$20 ← (byte) main::x#2 != (byte) $ff from [110] (bool~) main::$19 ← (byte) main::x#2 == (byte) $ff +Successful SSA optimization Pass2UnaryNotSimplification +Alias memset::return#0 = memset::str#3 memset::return#5 memset::return#1 +Alias memset::str#4 = memset::str#5 +Alias memset::num#3 = memset::num#4 +Alias memset::c#5 = memset::c#6 +Alias memset::end#0 = memset::$2 +Alias memset::c#3 = memset::c#4 +Alias memset::dst#2 = memset::dst#3 +Alias memset::end#1 = memset::end#2 +Alias memset::str#6 = memset::str#7 +Alias rand::return#0 = rand::return#3 rand::return#1 +Alias rand_state#3 = rand_state#9 rand_state#4 +Alias rand_state#16 = rand_state#27 rand_state#30 rand_state#18 +Alias main::y#11 = main::y#5 main::y#8 main::y#16 main::y#9 main::y#6 main::y#7 main::y#14 main::y#12 main::y#13 main::y#15 +Alias main::x#11 = main::x#5 main::x#8 main::x#9 main::x#16 main::x#14 main::x#12 main::x#13 main::x#15 main::x#6 main::x#7 +Alias rand_state#11 = rand_state#13 rand_state#14 rand_state#6 +Alias main::offset#0 = main::$4 +Alias rand::return#2 = rand::return#4 +Alias rand_state#10 = rand_state#5 rand_state#29 rand_state#28 rand_state#23 rand_state#19 rand_state#20 rand_state#24 rand_state#25 rand_state#21 rand_state#22 rand_state#26 +Alias main::rnd#0 = main::$11 main::rnd#1 main::rnd#2 +Alias rand_state#0 = rand_state#15 +Alias rand_state#12 = rand_state#7 +Successful SSA optimization Pass2AliasElimination +Identical Phi Values (byte*) memset::end#1 (byte*) memset::end#0 +Identical Phi Values (void*) memset::str#6 (void*) memset::str#4 +Identical Phi Values (byte) memset::c#3 (byte) memset::c#5 +Identical Phi Values (word) rand_state#8 (word) rand_state#11 +Identical Phi Values (word) rand_state#16 (word) rand_state#0 +Identical Phi Values (word) rand_state#10 (word) rand_state#3 +Identical Phi Values (word) rand_state#17 (word) rand_state#10 +Identical Phi Values (word) rand_state#12 (word) rand_state#11 +Successful SSA optimization Pass2IdenticalPhiElimination +Identical Phi Values (void*) memset::return#0 (void*) memset::str#4 +Successful SSA optimization Pass2IdenticalPhiElimination +Simple Condition (bool~) memset::$1 [2] if((word) memset::num#3<=(byte) 0) goto memset::@1 +Simple Condition (bool~) memset::$3 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@4 +Simple Condition (bool~) main::$25 [45] if((number) 0!=(number) 1) goto main::@2 +Simple Condition (bool~) main::$26 [63] if((byte) 0!=(byte~) main::$12) goto main::@3 +Simple Condition (bool~) main::$27 [66] if((byte) 0!=(byte~) main::$18) goto main::@6 +Simple Condition (bool~) main::$28 [69] if((byte) 0!=(byte~) main::$13) goto main::@4 +Simple Condition (bool~) main::$17 [72] if((byte) main::y#1!=(byte) $19) goto main::@8 +Simple Condition (bool~) main::$15 [75] if((byte) main::y#2!=(byte) $ff) goto main::@8 +Simple Condition (bool~) main::$22 [80] if((byte) main::x#1!=(byte) $28) goto main::@8 +Simple Condition (bool~) main::$20 [83] if((byte) main::x#2!=(byte) $ff) goto main::@8 +Simple Condition (bool~) main::$23 [88] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@8 +Successful SSA optimization Pass2ConditionalJumpSimplification +Constant (const word) rand_state#0 = 1 +Constant (const void*) memset::str#0 = (void*)SCREEN +Constant (const byte) memset::c#0 = $a0 +Constant (const word) memset::num#0 = $3e8 +Constant (const void*) memset::str#1 = (void*)COLORRAM +Constant (const byte) memset::c#1 = 0 +Constant (const word) memset::num#1 = $3e8 +Constant (const void*) memset::str#2 = (void*)COUNT +Constant (const byte) memset::c#2 = 0 +Constant (const word) memset::num#2 = $3e8 +Constant (const byte) main::x#0 = $14 +Constant (const byte) main::y#0 = $c +Constant (const byte) main::y#3 = 0 +Constant (const byte) main::y#4 = $18 +Constant (const byte) main::x#3 = 0 +Constant (const byte) main::x#4 = $27 +Successful SSA optimization Pass2ConstantIdentification +if() condition always true - replacing block destination [45] if((number) 0!=(number) 1) goto main::@2 +Successful SSA optimization Pass2ConstantIfs +Eliminating unused variable (void*) memset::return#2 and assignment [19] (void*) memset::return#2 ← (void*) memset::str#4 +Eliminating unused variable (void*) memset::return#3 and assignment [21] (void*) memset::return#3 ← (void*) memset::str#4 +Eliminating unused variable (void*) memset::return#4 and assignment [23] (void*) memset::return#4 ← (void*) memset::str#4 +Successful SSA optimization PassNEliminateUnusedVars +Removing unused block main::@return +Successful SSA optimization Pass2EliminateUnusedBlocks +Inlining Noop Cast [2] (byte*~) memset::$4 ← (byte*)(void*) memset::str#4 keeping memset::str#4 +Inlining Noop Cast [4] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#4 keeping memset::str#4 +Successful SSA optimization Pass2NopCastInlining +Rewriting multiplication to use shift and addition[25] (word~) main::$3 ← (word~) main::$24 * (byte) $28 +Inlining constant with var siblings (const void*) memset::str#0 +Inlining constant with var siblings (const byte) memset::c#0 +Inlining constant with var siblings (const word) memset::num#0 +Inlining constant with var siblings (const void*) memset::str#1 +Inlining constant with var siblings (const byte) memset::c#1 +Inlining constant with var siblings (const word) memset::num#1 +Inlining constant with var siblings (const void*) memset::str#2 +Inlining constant with var siblings (const byte) memset::c#2 +Inlining constant with var siblings (const word) memset::num#2 +Inlining constant with var siblings (const byte) main::x#0 +Inlining constant with var siblings (const byte) main::y#0 +Inlining constant with var siblings (const byte) main::y#3 +Inlining constant with var siblings (const byte) main::y#4 +Inlining constant with var siblings (const byte) main::x#3 +Inlining constant with var siblings (const byte) main::x#4 +Inlining constant with var siblings (const word) rand_state#0 +Constant inlined memset::str#2 = (void*)(const byte*) COUNT +Constant inlined memset::str#1 = (void*)(const nomodify byte*) COLORRAM +Constant inlined memset::str#0 = (void*)(const nomodify byte*) SCREEN +Constant inlined memset::num#2 = (word) $3e8 +Constant inlined main::x#3 = (byte) 0 +Constant inlined memset::num#1 = (word) $3e8 +Constant inlined main::x#0 = (byte) $14 +Constant inlined memset::num#0 = (word) $3e8 +Constant inlined main::y#0 = (byte) $c +Constant inlined rand_state#0 = (word) 1 +Constant inlined main::y#3 = (byte) 0 +Constant inlined main::x#4 = (byte) $27 +Constant inlined main::y#4 = (byte) $18 +Constant inlined memset::c#0 = (byte) $a0 +Constant inlined memset::c#1 = (byte) 0 +Constant inlined memset::c#2 = (byte) 0 +Successful SSA optimization Pass2ConstantInlining +Alias main::$3 = main::$31 +Successful SSA optimization Pass2AliasElimination +Identical Phi Values (word) memset::num#3 (word) $3e8 +Successful SSA optimization Pass2IdenticalPhiElimination +if() condition always false - eliminating [1] if((word) $3e8<=(byte) 0) goto memset::@1 +Successful SSA optimization Pass2ConstantIfs +Added new block during phi lifting main::@18(between main::@8 and main::@1) +Added new block during phi lifting main::@19(between main::@10 and main::@8) +Added new block during phi lifting main::@20(between main::@12 and main::@8) +Added new block during phi lifting main::@21(between main::@4 and main::@8) +Added new block during phi lifting main::@22(between main::@6 and main::@8) +Added new block during phi lifting main::@23(between main::@8 and main::@8) +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @2 +Adding NOP phi() at start of @3 +Adding NOP phi() at start of @end +Adding NOP phi() at start of main +Adding NOP phi() at start of main::@14 +Adding NOP phi() at start of main::@15 +Adding NOP phi() at start of memset::@1 +CALL GRAPH +Calls in [] to main:3 +Calls in [main] to memset:7 memset:9 memset:11 rand:27 + +Created 8 initial phi equivalence classes +Coalesced [37] main::x#19 ← main::x#11 +Coalesced [40] main::y#17 ← main::y#10 +Coalesced (already) [41] main::x#17 ← main::x#10 +Coalesced [42] rand_state#31 ← rand_state#3 +Coalesced (already) [43] main::y#24 ← main::y#10 +Coalesced (already) [44] main::x#24 ← main::x#10 +Coalesced [45] main::y#18 ← main::y#2 +Coalesced (already) [46] main::x#18 ← main::x#11 +Coalesced (already) [49] main::x#22 ← main::x#11 +Coalesced [50] main::y#21 ← main::y#1 +Coalesced (already) [51] main::x#21 ← main::x#11 +Coalesced (already) [56] main::y#20 ← main::y#11 +Coalesced (already) [57] main::y#19 ← main::y#11 +Coalesced [58] main::x#20 ← main::x#2 +Coalesced (already) [61] main::y#23 ← main::y#11 +Coalesced (already) [62] main::y#22 ← main::y#11 +Coalesced [63] main::x#23 ← main::x#1 +Coalesced [81] memset::dst#5 ← memset::dst#1 +Coalesced down to 6 phi equivalence classes +Culled Empty Block (label) @1 +Culled Empty Block (label) @3 +Culled Empty Block (label) main::@11 +Culled Empty Block (label) main::@18 +Culled Empty Block (label) main::@23 +Culled Empty Block (label) main::@5 +Culled Empty Block (label) main::@13 +Culled Empty Block (label) main::@7 +Culled Empty Block (label) memset::@1 +Renumbering block @2 to @1 +Renumbering block memset::@2 to memset::@1 +Renumbering block memset::@3 to memset::@2 +Renumbering block memset::@4 to memset::@3 +Renumbering block main::@6 to main::@5 +Renumbering block main::@8 to main::@6 +Renumbering block main::@9 to main::@7 +Renumbering block main::@10 to main::@8 +Renumbering block main::@12 to main::@9 +Renumbering block main::@14 to main::@10 +Renumbering block main::@15 to main::@11 +Renumbering block main::@16 to main::@12 +Renumbering block main::@17 to main::@13 +Renumbering block main::@19 to main::@14 +Renumbering block main::@20 to main::@15 +Renumbering block main::@21 to main::@16 +Renumbering block main::@22 to main::@17 +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @end +Adding NOP phi() at start of main +Adding NOP phi() at start of main::@10 +Adding NOP phi() at start of main::@11 +Adding NOP phi() at start of main::@14 +Adding NOP phi() at start of main::@16 +Adding NOP phi() at start of main::@15 +Adding NOP phi() at start of main::@17 + +FINAL CONTROL FLOW GRAPH +@begin: scope:[] from + [0] phi() + to:@1 +@1: scope:[] from @begin + [1] phi() + [2] call main + to:@end +@end: scope:[] from @1 + [3] phi() + +(void()) main() +main: scope:[main] from @1 + [4] phi() + [5] call memset + to:main::@10 +main::@10: scope:[main] from main + [6] phi() + [7] call memset + to:main::@11 +main::@11: scope:[main] from main::@10 + [8] phi() + [9] call memset + to:main::@12 +main::@12: scope:[main] from main::@11 + [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 + [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 + to:main::@1 +main::@1: scope:[main] from main::@12 main::@6 + [12] (word) rand_state#11 ← phi( main::@12/(word) 1 main::@6/(word) rand_state#3 ) + [12] (byte) main::x#11 ← phi( main::@12/(byte) $14 main::@6/(byte) main::x#10 ) + [12] (byte) main::y#11 ← phi( main::@12/(byte) $c main::@6/(byte) main::y#10 ) + to:main::@2 +main::@2: scope:[main] from main::@1 + [13] (word~) main::$24 ← (word)(byte) main::y#11 + [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 + [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 + [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 + [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 + [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 + [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) + [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 + [21] (byte) main::cnt#0 ← *((byte*~) main::$6) + [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 + [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f + [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) + [25] call rand + [26] (word) rand::return#2 ← (word) rand::return#0 + to:main::@13 +main::@13: scope:[main] from main::@2 + [27] (word~) main::$10 ← (word) rand::return#2 + [28] (byte) main::rnd#0 ← > (word~) main::$10 + [29] (byte~) main::$12 ← (byte) main::rnd#0 & (byte) $80 + [30] if((byte) 0!=(byte~) main::$12) goto main::@3 + to:main::@7 +main::@7: scope:[main] from main::@13 + [31] (byte~) main::$13 ← (byte) main::rnd#0 & (byte) $40 + [32] if((byte) 0!=(byte~) main::$13) goto main::@4 + to:main::@8 +main::@8: scope:[main] from main::@7 + [33] (byte) main::y#2 ← -- (byte) main::y#11 + [34] if((byte) main::y#2!=(byte) $ff) goto main::@14 + to:main::@6 +main::@14: scope:[main] from main::@8 + [35] phi() + to:main::@6 +main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 + [36] (byte) main::x#10 ← phi( main::@14/(byte) main::x#11 main::@8/(byte) main::x#11 main::@15/(byte) main::x#2 main::@9/(byte) 0 main::@16/(byte) main::x#11 main::@4/(byte) main::x#11 main::@17/(byte) main::x#1 main::@5/(byte) $27 main::@6/(byte) main::x#10 ) + [36] (byte) main::y#10 ← phi( main::@14/(byte) main::y#2 main::@8/(byte) 0 main::@15/(byte) main::y#11 main::@9/(byte) main::y#11 main::@16/(byte) main::y#1 main::@4/(byte) $18 main::@17/(byte) main::y#11 main::@5/(byte) main::y#11 main::@6/(byte) main::y#10 ) + [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 + to:main::@1 +main::@4: scope:[main] from main::@7 + [38] (byte) main::y#1 ← ++ (byte) main::y#11 + [39] if((byte) main::y#1!=(byte) $19) goto main::@16 + to:main::@6 +main::@16: scope:[main] from main::@4 + [40] phi() + to:main::@6 +main::@3: scope:[main] from main::@13 + [41] (byte~) main::$18 ← (byte) main::rnd#0 & (byte) $40 + [42] if((byte) 0!=(byte~) main::$18) goto main::@5 + to:main::@9 +main::@9: scope:[main] from main::@3 + [43] (byte) main::x#2 ← -- (byte) main::x#11 + [44] if((byte) main::x#2!=(byte) $ff) goto main::@15 + to:main::@6 +main::@15: scope:[main] from main::@9 + [45] phi() + to:main::@6 +main::@5: scope:[main] from main::@3 + [46] (byte) main::x#1 ← ++ (byte) main::x#11 + [47] if((byte) main::x#1!=(byte) $28) goto main::@17 + to:main::@6 +main::@17: scope:[main] from main::@5 + [48] phi() + to:main::@6 + +(word()) rand() +rand: scope:[rand] from main::@2 + [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 + [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 + [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 + [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 + [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 + [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 + [55] (word) rand::return#0 ← (word) rand_state#3 + to:rand::@return +rand::@return: scope:[rand] from rand + [56] return + to:@return + +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from main main::@10 main::@11 + [57] (byte) memset::c#5 ← phi( main/(byte) $a0 main::@10/(byte) 0 main::@11/(byte) 0 ) + [57] (void*) memset::str#4 ← phi( main/(void*)(const nomodify byte*) SCREEN main::@10/(void*)(const nomodify byte*) COLORRAM main::@11/(void*)(const byte*) COUNT ) + to:memset::@1 +memset::@1: scope:[memset] from memset + [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 + [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 + to:memset::@2 +memset::@2: scope:[memset] from memset::@1 memset::@3 + [60] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [61] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + to:memset::@return +memset::@return: scope:[memset] from memset::@2 + [62] return + to:@return +memset::@3: scope:[memset] from memset::@2 + [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 + [64] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + to:memset::@2 + + +VARIABLE REGISTER WEIGHTS +(void()) main() +(word~) main::$10 202.0 +(byte~) main::$12 202.0 +(byte~) main::$13 202.0 +(byte~) main::$18 202.0 +(word~) main::$24 151.5 +(word~) main::$29 202.0 +(word~) main::$3 202.0 +(word~) main::$30 202.0 +(byte*~) main::$5 303.0 +(byte*~) main::$6 202.0 +(byte*~) main::$8 101.0 +(byte~) main::$9 202.0 +(byte) main::cnt +(byte) main::cnt#0 101.0 +(word) main::offset +(word) main::offset#0 80.8 +(byte) main::rnd +(byte) main::rnd#0 134.66666666666666 +(byte) main::x +(byte) main::x#1 101.0 +(byte) main::x#10 1804.5 +(byte) main::x#11 58.89655172413795 +(byte) main::x#2 101.0 +(byte) main::y +(byte) main::y#1 101.0 +(byte) main::y#10 1804.5 +(byte) main::y#11 55.41379310344829 +(byte) main::y#2 101.0 +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +(byte) memset::c +(byte) memset::c#5 143.0 +(byte*) memset::dst +(byte*) memset::dst#1 2002.0 +(byte*) memset::dst#2 1368.3333333333335 +(byte*) memset::dst#4 202.0 +(byte*) memset::end +(byte*) memset::end#0 183.66666666666669 +(word) memset::num +(void*) memset::return +(void*) memset::str +(void*) memset::str#4 +(word()) rand() +(word~) rand::$0 2002.0 +(word~) rand::$1 2002.0 +(word~) rand::$2 2002.0 +(word) rand::return +(word) rand::return#0 367.33333333333337 +(word) rand::return#2 202.0 +(word) rand_state +(word) rand_state#1 1501.5 +(word) rand_state#11 214.5 +(word) rand_state#2 1501.5 +(word) rand_state#3 111.22222222222223 + +Initial phi equivalence classes +[ main::y#11 main::y#10 main::y#2 main::y#1 ] +[ main::x#11 main::x#10 main::x#2 main::x#1 ] +[ rand_state#11 rand_state#3 ] +[ memset::str#4 ] +[ memset::c#5 ] +[ memset::dst#2 memset::dst#4 memset::dst#1 ] +Added variable main::$24 to live range equivalence class [ main::$24 ] +Added variable main::$29 to live range equivalence class [ main::$29 ] +Added variable main::$30 to live range equivalence class [ main::$30 ] +Added variable main::$3 to live range equivalence class [ main::$3 ] +Added variable main::offset#0 to live range equivalence class [ main::offset#0 ] +Added variable main::$5 to live range equivalence class [ main::$5 ] +Added variable main::$6 to live range equivalence class [ main::$6 ] +Added variable main::cnt#0 to live range equivalence class [ main::cnt#0 ] +Added variable main::$8 to live range equivalence class [ main::$8 ] +Added variable main::$9 to live range equivalence class [ main::$9 ] +Added variable rand::return#2 to live range equivalence class [ rand::return#2 ] +Added variable main::$10 to live range equivalence class [ main::$10 ] +Added variable main::rnd#0 to live range equivalence class [ main::rnd#0 ] +Added variable main::$12 to live range equivalence class [ main::$12 ] +Added variable main::$13 to live range equivalence class [ main::$13 ] +Added variable main::$18 to live range equivalence class [ main::$18 ] +Added variable rand::$0 to live range equivalence class [ rand::$0 ] +Added variable rand_state#1 to live range equivalence class [ rand_state#1 ] +Added variable rand::$1 to live range equivalence class [ rand::$1 ] +Added variable rand_state#2 to live range equivalence class [ rand_state#2 ] +Added variable rand::$2 to live range equivalence class [ rand::$2 ] +Added variable rand::return#0 to live range equivalence class [ rand::return#0 ] +Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] +Complete equivalence classes +[ main::y#11 main::y#10 main::y#2 main::y#1 ] +[ main::x#11 main::x#10 main::x#2 main::x#1 ] +[ rand_state#11 rand_state#3 ] +[ memset::str#4 ] +[ memset::c#5 ] +[ memset::dst#2 memset::dst#4 memset::dst#1 ] +[ main::$24 ] +[ main::$29 ] +[ main::$30 ] +[ main::$3 ] +[ main::offset#0 ] +[ main::$5 ] +[ main::$6 ] +[ main::cnt#0 ] +[ main::$8 ] +[ main::$9 ] +[ rand::return#2 ] +[ main::$10 ] +[ main::rnd#0 ] +[ main::$12 ] +[ main::$13 ] +[ main::$18 ] +[ rand::$0 ] +[ rand_state#1 ] +[ rand::$1 ] +[ rand_state#2 ] +[ rand::$2 ] +[ rand::return#0 ] +[ memset::end#0 ] +Allocated zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +Allocated zp[1]:3 [ main::x#11 main::x#10 main::x#2 main::x#1 ] +Allocated zp[2]:4 [ rand_state#11 rand_state#3 ] +Allocated zp[2]:6 [ memset::str#4 ] +Allocated zp[1]:8 [ memset::c#5 ] +Allocated zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] +Allocated zp[2]:11 [ main::$24 ] +Allocated zp[2]:13 [ main::$29 ] +Allocated zp[2]:15 [ main::$30 ] +Allocated zp[2]:17 [ main::$3 ] +Allocated zp[2]:19 [ main::offset#0 ] +Allocated zp[2]:21 [ main::$5 ] +Allocated zp[2]:23 [ main::$6 ] +Allocated zp[1]:25 [ main::cnt#0 ] +Allocated zp[2]:26 [ main::$8 ] +Allocated zp[1]:28 [ main::$9 ] +Allocated zp[2]:29 [ rand::return#2 ] +Allocated zp[2]:31 [ main::$10 ] +Allocated zp[1]:33 [ main::rnd#0 ] +Allocated zp[1]:34 [ main::$12 ] +Allocated zp[1]:35 [ main::$13 ] +Allocated zp[1]:36 [ main::$18 ] +Allocated zp[2]:37 [ rand::$0 ] +Allocated zp[2]:39 [ rand_state#1 ] +Allocated zp[2]:41 [ rand::$1 ] +Allocated zp[2]:43 [ rand_state#2 ] +Allocated zp[2]:45 [ rand::$2 ] +Allocated zp[2]:47 [ rand::return#0 ] +Allocated zp[2]:49 [ memset::end#0 ] + +INITIAL ASM +Target platform is custom / MOS6502X + // File Comments +// Random walk with color fading for Commodore Plus/4 / C16 + // Upstart + .file [name="plus4walk.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$1001] +.segmentdef Code [start=$1010] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__bbegin) +.segment Code + + + // Global Constants & labels + .label SCREEN = $c00 + .label COLORRAM = $800 + .label BGCOLOR = $ff19 + .label BORDERCOLOR = $ff15 + .label RASTER = $ff1d + // The random state variable + .label rand_state = $27 + // The random state variable + .label rand_state_1 = $2b + // The random state variable + .label rand_state_2 = 4 + // @begin +__bbegin: + // [1] phi from @begin to @1 [phi:@begin->@1] +__b1_from___bbegin: + jmp __b1 + // @1 +__b1: + // [2] call main + // [4] phi from @1 to main [phi:@1->main] +main_from___b1: + jsr main + // [3] phi from @1 to @end [phi:@1->@end] +__bend_from___b1: + jmp __bend + // @end +__bend: +.segment Code + // main +main: { + .label __3 = $11 + .label __5 = $15 + .label __6 = $17 + .label __8 = $1a + .label __9 = $1c + .label __10 = $1f + .label __12 = $22 + .label __13 = $23 + .label __18 = $24 + .label __24 = $b + .label offset = $13 + .label cnt = $19 + .label rnd = $21 + .label y = 2 + .label x = 3 + .label __29 = $d + .label __30 = $f + // [5] call memset + // [57] phi from main to memset [phi:main->memset] + memset_from_main: + // [57] phi (byte) memset::c#5 = (byte) $a0 [phi:main->memset#0] -- vbuz1=vbuc1 + lda #$a0 + sta.z memset.c + // [57] phi (void*) memset::str#4 = (void*)(const nomodify byte*) SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + lda #SCREEN + sta.z memset.str+1 + jsr memset + // [6] phi from main to main::@10 [phi:main->main::@10] + __b10_from_main: + jmp __b10 + // main::@10 + __b10: + // [7] call memset + // [57] phi from main::@10 to memset [phi:main::@10->memset] + memset_from___b10: + // [57] phi (byte) memset::c#5 = (byte) 0 [phi:main::@10->memset#0] -- vbuz1=vbuc1 + lda #0 + sta.z memset.c + // [57] phi (void*) memset::str#4 = (void*)(const nomodify byte*) COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + lda #COLORRAM + sta.z memset.str+1 + jsr memset + // [8] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + __b11_from___b10: + jmp __b11 + // main::@11 + __b11: + // [9] call memset + // [57] phi from main::@11 to memset [phi:main::@11->memset] + memset_from___b11: + // [57] phi (byte) memset::c#5 = (byte) 0 [phi:main::@11->memset#0] -- vbuz1=vbuc1 + lda #0 + sta.z memset.c + // [57] phi (void*) memset::str#4 = (void*)(const byte*) COUNT [phi:main::@11->memset#1] -- pvoz1=pvoc1 + lda #COUNT + sta.z memset.str+1 + jsr memset + jmp __b12 + // main::@12 + __b12: + // [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta BORDERCOLOR + // [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta BGCOLOR + // [12] phi from main::@12 to main::@1 [phi:main::@12->main::@1] + __b1_from___b12: + // [12] phi (word) rand_state#11 = (word) 1 [phi:main::@12->main::@1#0] -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state_2 + lda #>1 + sta.z rand_state_2+1 + // [12] phi (byte) main::x#11 = (byte) $14 [phi:main::@12->main::@1#1] -- vbuz1=vbuc1 + lda #$14 + sta.z x + // [12] phi (byte) main::y#11 = (byte) $c [phi:main::@12->main::@1#2] -- vbuz1=vbuc1 + lda #$c + sta.z y + jmp __b1 + // main::@1 + __b1: + jmp __b2 + // main::@2 + __b2: + // [13] (word~) main::$24 ← (word)(byte) main::y#11 -- vwuz1=_word_vbuz2 + lda.z y + sta.z __24 + lda #0 + sta.z __24+1 + // [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 -- vwuz1=vwuz2_rol_2 + lda.z __24 + asl + sta.z __29 + lda.z __24+1 + rol + sta.z __29+1 + asl.z __29 + rol.z __29+1 + // [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 -- vwuz1=vwuz2_plus_vwuz3 + lda.z __29 + clc + adc.z __24 + sta.z __30 + lda.z __29+1 + adc.z __24+1 + sta.z __30+1 + // [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 -- vwuz1=vwuz2_rol_3 + lda.z __30 + asl + sta.z __3 + lda.z __30+1 + rol + sta.z __3+1 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + // [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 -- vwuz1=vwuz2_plus_vbuz3 + lda.z x + clc + adc.z __3 + sta.z offset + lda #0 + adc.z __3+1 + sta.z offset+1 + // [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COUNT + sta.z __5+1 + // [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) -- _deref_pbuz1=_inc__deref_pbuz1 + ldy #0 + lda (__5),y + clc + adc #1 + ldy #0 + sta (__5),y + // [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COUNT + sta.z __6+1 + // [21] (byte) main::cnt#0 ← *((byte*~) main::$6) -- vbuz1=_deref_pbuz2 + ldy #0 + lda (__6),y + sta.z cnt + // [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COLORRAM + sta.z __8+1 + // [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z cnt + sta.z __9 + // [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + ldy.z __9 + lda FADE,y + ldy #0 + sta (__8),y + // [25] call rand + jsr rand + // [26] (word) rand::return#2 ← (word) rand::return#0 -- vwuz1=vwuz2 + lda.z rand.return + sta.z rand.return_1 + lda.z rand.return+1 + sta.z rand.return_1+1 + jmp __b13 + // main::@13 + __b13: + // [27] (word~) main::$10 ← (word) rand::return#2 -- vwuz1=vwuz2 + lda.z rand.return_1 + sta.z __10 + lda.z rand.return_1+1 + sta.z __10+1 + // [28] (byte) main::rnd#0 ← > (word~) main::$10 -- vbuz1=_hi_vwuz2 + lda.z __10+1 + sta.z rnd + // [29] (byte~) main::$12 ← (byte) main::rnd#0 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 + lda #$80 + and.z rnd + sta.z __12 + // [30] if((byte) 0!=(byte~) main::$12) goto main::@3 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z __12 + bne __b3 + jmp __b7 + // main::@7 + __b7: + // [31] (byte~) main::$13 ← (byte) main::rnd#0 & (byte) $40 -- vbuz1=vbuz2_band_vbuc1 + lda #$40 + and.z rnd + sta.z __13 + // [32] if((byte) 0!=(byte~) main::$13) goto main::@4 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z __13 + bne __b4 + jmp __b8 + // main::@8 + __b8: + // [33] (byte) main::y#2 ← -- (byte) main::y#11 -- vbuz1=_dec_vbuz1 + dec.z y + // [34] if((byte) main::y#2!=(byte) $ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z y + bne __b14_from___b8 + // [36] phi from main::@8 to main::@6 [phi:main::@8->main::@6] + __b6_from___b8: + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@8->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 + lda #0 + sta.z y + jmp __b6 + // [35] phi from main::@8 to main::@14 [phi:main::@8->main::@14] + __b14_from___b8: + jmp __b14 + // main::@14 + __b14: + // [36] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] + __b6_from___b14: + __b6_from___b15: + __b6_from___b16: + __b6_from___b17: + __b6_from___b6: + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy + jmp __b6 + // main::@6 + __b6: + // [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + lda #$ff + cmp RASTER + bne __b6_from___b6 + // [12] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + __b1_from___b6: + // [12] phi (word) rand_state#11 = (word) rand_state#3 [phi:main::@6->main::@1#0] -- register_copy + // [12] phi (byte) main::x#11 = (byte) main::x#10 [phi:main::@6->main::@1#1] -- register_copy + // [12] phi (byte) main::y#11 = (byte) main::y#10 [phi:main::@6->main::@1#2] -- register_copy + jmp __b1 + // main::@4 + __b4: + // [38] (byte) main::y#1 ← ++ (byte) main::y#11 -- vbuz1=_inc_vbuz1 + inc.z y + // [39] if((byte) main::y#1!=(byte) $19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 + lda #$19 + cmp.z y + bne __b16_from___b4 + // [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + __b6_from___b4: + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@4->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 + lda #$18 + sta.z y + jmp __b6 + // [40] phi from main::@4 to main::@16 [phi:main::@4->main::@16] + __b16_from___b4: + jmp __b16 + // main::@16 + __b16: + jmp __b6_from___b16 + // main::@3 + __b3: + // [41] (byte~) main::$18 ← (byte) main::rnd#0 & (byte) $40 -- vbuz1=vbuz2_band_vbuc1 + lda #$40 + and.z rnd + sta.z __18 + // [42] if((byte) 0!=(byte~) main::$18) goto main::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z __18 + bne __b5 + jmp __b9 + // main::@9 + __b9: + // [43] (byte) main::x#2 ← -- (byte) main::x#11 -- vbuz1=_dec_vbuz1 + dec.z x + // [44] if((byte) main::x#2!=(byte) $ff) goto main::@15 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z x + bne __b15_from___b9 + // [36] phi from main::@9 to main::@6 [phi:main::@9->main::@6] + __b6_from___b9: + // [36] phi (byte) main::x#10 = (byte) 0 [phi:main::@9->main::@6#0] -- vbuz1=vbuc1 + lda #0 + sta.z x + // [36] phi (byte) main::y#10 = (byte) main::y#11 [phi:main::@9->main::@6#1] -- register_copy + jmp __b6 + // [45] phi from main::@9 to main::@15 [phi:main::@9->main::@15] + __b15_from___b9: + jmp __b15 + // main::@15 + __b15: + jmp __b6_from___b15 + // main::@5 + __b5: + // [46] (byte) main::x#1 ← ++ (byte) main::x#11 -- vbuz1=_inc_vbuz1 + inc.z x + // [47] if((byte) main::x#1!=(byte) $28) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 + lda #$28 + cmp.z x + bne __b17_from___b5 + // [36] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + __b6_from___b5: + // [36] phi (byte) main::x#10 = (byte) $27 [phi:main::@5->main::@6#0] -- vbuz1=vbuc1 + lda #$27 + sta.z x + // [36] phi (byte) main::y#10 = (byte) main::y#11 [phi:main::@5->main::@6#1] -- register_copy + jmp __b6 + // [48] phi from main::@5 to main::@17 [phi:main::@5->main::@17] + __b17_from___b5: + jmp __b17 + // main::@17 + __b17: + jmp __b6_from___b17 +} + // rand +// Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) +// Uses an xorshift pseudorandom number generator that hits all different values +// Information https://en.wikipedia.org/wiki/Xorshift +// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html +rand: { + .label __0 = $25 + .label __1 = $29 + .label __2 = $2d + .label return = $2f + .label return_1 = $1d + // [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 -- vwuz1=vwuz2_rol_7 + lda.z rand_state_2+1 + lsr + lda.z rand_state_2 + ror + sta.z __0+1 + lda #0 + ror + sta.z __0 + // [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 -- vwuz1=vwuz2_bxor_vwuz3 + lda.z rand_state_2 + eor.z __0 + sta.z rand_state + lda.z rand_state_2+1 + eor.z __0+1 + sta.z rand_state+1 + // [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 -- vwuz1=vwuz2_ror_9 + lda.z rand_state+1 + lsr + sta.z __1 + lda #0 + sta.z __1+1 + // [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 -- vwuz1=vwuz2_bxor_vwuz3 + lda.z rand_state + eor.z __1 + sta.z rand_state_1 + lda.z rand_state+1 + eor.z __1+1 + sta.z rand_state_1+1 + // [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 -- vwuz1=vwuz2_rol_8 + lda.z rand_state_1 + sta.z __2+1 + lda #0 + sta.z __2 + // [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 -- vwuz1=vwuz2_bxor_vwuz3 + lda.z rand_state_1 + eor.z __2 + sta.z rand_state_2 + lda.z rand_state_1+1 + eor.z __2+1 + sta.z rand_state_2+1 + // [55] (word) rand::return#0 ← (word) rand_state#3 -- vwuz1=vwuz2 + lda.z rand_state_2 + sta.z return + lda.z rand_state_2+1 + sta.z return+1 + jmp __breturn + // rand::@return + __breturn: + // [56] return + rts +} + // memset +// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// memset(void* zp(6) str, byte zp(8) c) +memset: { + .label end = $31 + .label dst = 9 + .label str = 6 + .label c = 8 + jmp __b1 + // memset::@1 + __b1: + // [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 -- pbuz1=pbuz2_plus_vwuc1 + lda.z str + clc + adc #<$3e8 + sta.z end + lda.z str+1 + adc #>$3e8 + sta.z end+1 + // [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 -- pbuz1=pbuz2 + lda.z str + sta.z dst + lda.z str+1 + sta.z dst+1 + // [60] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + __b2_from___b1: + __b2_from___b3: + // [60] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + jmp __b2 + // memset::@2 + __b2: + // [61] if((byte*) memset::dst#2!=(byte*) 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: + // [62] return + rts + // memset::@3 + __b3: + // [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 -- _deref_pbuz1=vbuz2 + lda.z c + ldy #0 + sta (dst),y + // [64] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + inc.z dst + bne !+ + inc.z dst+1 + !: + jmp __b2_from___b3 +} + // File Data +.segment Data + FADE: .byte 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 + COUNT: .fill $3e8, 0 + +REGISTER UPLIFT POTENTIAL REGISTERS +Statement [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 [ ] ( main:2 [ ] { } ) always clobbers reg byte a +Statement [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 [ ] ( main:2 [ ] { } ) always clobbers reg byte a +Statement [13] (word~) main::$24 ← (word)(byte) main::y#11 [ main::y#11 main::x#11 rand_state#11 main::$24 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::x#11 main::x#10 main::x#2 main::x#1 ] +Statement [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 [ main::y#11 main::x#11 rand_state#11 main::$24 main::$29 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 [ main::y#11 main::x#11 rand_state#11 main::$30 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 [ main::y#11 main::x#11 rand_state#11 main::$3 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$5 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$5 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::x#11 main::x#10 main::x#2 main::x#1 ] +Statement [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$6 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [21] (byte) main::cnt#0 ← *((byte*~) main::$6) [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::cnt#0 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::cnt#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 [ main::y#11 main::x#11 rand_state#11 main::cnt#0 main::$8 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::cnt#0 main::$8 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:25 [ main::cnt#0 ] +Statement [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f [ main::y#11 main::x#11 rand_state#11 main::$8 main::$9 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$8 main::$9 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) [ main::y#11 main::x#11 rand_state#11 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [26] (word) rand::return#2 ← (word) rand::return#0 [ main::y#11 main::x#11 rand_state#3 rand::return#2 ] ( main:2 [ main::y#11 main::x#11 rand_state#3 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [27] (word~) main::$10 ← (word) rand::return#2 [ main::y#11 main::x#11 rand_state#3 main::$10 ] ( main:2 [ main::y#11 main::x#11 rand_state#3 main::$10 ] { } ) always clobbers reg byte a +Statement [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 [ main::y#10 main::x#10 rand_state#3 ] ( main:2 [ main::y#10 main::x#10 rand_state#3 ] { } ) always clobbers reg byte a +Statement [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 [ rand_state#11 rand::$0 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#11 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 [ rand_state#1 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 [ rand_state#1 rand::$1 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#1 rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 [ rand_state#2 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 [ rand_state#2 rand::$2 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#2 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 [ rand_state#3 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [55] (word) rand::return#0 ← (word) rand_state#3 [ rand_state#3 rand::return#0 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#3 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( main:2::memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } main:2::memset:7 [ memset::str#4 memset::c#5 memset::end#0 ] { } main:2::memset:9 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:8 [ memset::c#5 ] +Statement [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( main:2::memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } main:2::memset:7 [ memset::c#5 memset::end#0 memset::dst#4 ] { } main:2::memset:9 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [61] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:2::memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:7 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:9 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:2::memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:7 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:9 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:8 [ memset::c#5 ] +Statement [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 [ ] ( main:2 [ ] { } ) always clobbers reg byte a +Statement [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 [ ] ( main:2 [ ] { } ) always clobbers reg byte a +Statement [13] (word~) main::$24 ← (word)(byte) main::y#11 [ main::y#11 main::x#11 rand_state#11 main::$24 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 [ main::y#11 main::x#11 rand_state#11 main::$24 main::$29 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 [ main::y#11 main::x#11 rand_state#11 main::$30 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 [ main::y#11 main::x#11 rand_state#11 main::$3 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$5 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$5 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$6 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::$6 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [21] (byte) main::cnt#0 ← *((byte*~) main::$6) [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::cnt#0 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::offset#0 main::cnt#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 [ main::y#11 main::x#11 rand_state#11 main::cnt#0 main::$8 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::cnt#0 main::$8 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f [ main::y#11 main::x#11 rand_state#11 main::$8 main::$9 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 main::$8 main::$9 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) [ main::y#11 main::x#11 rand_state#11 ] ( main:2 [ main::y#11 main::x#11 rand_state#11 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y +Statement [26] (word) rand::return#2 ← (word) rand::return#0 [ main::y#11 main::x#11 rand_state#3 rand::return#2 ] ( main:2 [ main::y#11 main::x#11 rand_state#3 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [27] (word~) main::$10 ← (word) rand::return#2 [ main::y#11 main::x#11 rand_state#3 main::$10 ] ( main:2 [ main::y#11 main::x#11 rand_state#3 main::$10 ] { } ) always clobbers reg byte a +Statement [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 [ main::y#10 main::x#10 rand_state#3 ] ( main:2 [ main::y#10 main::x#10 rand_state#3 ] { } ) always clobbers reg byte a +Statement [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 [ rand_state#11 rand::$0 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#11 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 [ rand_state#1 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 [ rand_state#1 rand::$1 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#1 rand::$1 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 [ rand_state#2 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 [ rand_state#2 rand::$2 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#2 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 [ rand_state#3 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [55] (word) rand::return#0 ← (word) rand_state#3 [ rand_state#3 rand::return#0 ] ( main:2::rand:25 [ main::y#11 main::x#11 rand_state#3 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( main:2::memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } main:2::memset:7 [ memset::str#4 memset::c#5 memset::end#0 ] { } main:2::memset:9 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Statement [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( main:2::memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } main:2::memset:7 [ memset::c#5 memset::end#0 memset::dst#4 ] { } main:2::memset:9 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [61] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:2::memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:7 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:9 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( main:2::memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:7 [ memset::c#5 memset::end#0 memset::dst#2 ] { } main:2::memset:9 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Potential registers zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] : zp[1]:2 , reg byte x , +Potential registers zp[1]:3 [ main::x#11 main::x#10 main::x#2 main::x#1 ] : zp[1]:3 , reg byte x , +Potential registers zp[2]:4 [ rand_state#11 rand_state#3 ] : zp[2]:4 , +Potential registers zp[2]:6 [ memset::str#4 ] : zp[2]:6 , +Potential registers zp[1]:8 [ memset::c#5 ] : zp[1]:8 , reg byte x , +Potential registers zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:9 , +Potential registers zp[2]:11 [ main::$24 ] : zp[2]:11 , +Potential registers zp[2]:13 [ main::$29 ] : zp[2]:13 , +Potential registers zp[2]:15 [ main::$30 ] : zp[2]:15 , +Potential registers zp[2]:17 [ main::$3 ] : zp[2]:17 , +Potential registers zp[2]:19 [ main::offset#0 ] : zp[2]:19 , +Potential registers zp[2]:21 [ main::$5 ] : zp[2]:21 , +Potential registers zp[2]:23 [ main::$6 ] : zp[2]:23 , +Potential registers zp[1]:25 [ main::cnt#0 ] : zp[1]:25 , reg byte x , reg byte y , +Potential registers zp[2]:26 [ main::$8 ] : zp[2]:26 , +Potential registers zp[1]:28 [ main::$9 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:29 [ rand::return#2 ] : zp[2]:29 , +Potential registers zp[2]:31 [ main::$10 ] : zp[2]:31 , +Potential registers zp[1]:33 [ main::rnd#0 ] : zp[1]:33 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:34 [ main::$12 ] : zp[1]:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:35 [ main::$13 ] : zp[1]:35 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:36 [ main::$18 ] : zp[1]:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:37 [ rand::$0 ] : zp[2]:37 , +Potential registers zp[2]:39 [ rand_state#1 ] : zp[2]:39 , +Potential registers zp[2]:41 [ rand::$1 ] : zp[2]:41 , +Potential registers zp[2]:43 [ rand_state#2 ] : zp[2]:43 , +Potential registers zp[2]:45 [ rand::$2 ] : zp[2]:45 , +Potential registers zp[2]:47 [ rand::return#0 ] : zp[2]:47 , +Potential registers zp[2]:49 [ memset::end#0 ] : zp[2]:49 , + +REGISTER UPLIFT SCOPES +Uplift Scope [main] 2,065.4: zp[1]:3 [ main::x#11 main::x#10 main::x#2 main::x#1 ] 2,061.91: zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] 303: zp[2]:21 [ main::$5 ] 202: zp[2]:13 [ main::$29 ] 202: zp[2]:15 [ main::$30 ] 202: zp[2]:17 [ main::$3 ] 202: zp[2]:23 [ main::$6 ] 202: zp[1]:28 [ main::$9 ] 202: zp[2]:31 [ main::$10 ] 202: zp[1]:34 [ main::$12 ] 202: zp[1]:35 [ main::$13 ] 202: zp[1]:36 [ main::$18 ] 151.5: zp[2]:11 [ main::$24 ] 134.67: zp[1]:33 [ main::rnd#0 ] 101: zp[1]:25 [ main::cnt#0 ] 101: zp[2]:26 [ main::$8 ] 80.8: zp[2]:19 [ main::offset#0 ] +Uplift Scope [rand] 2,002: zp[2]:37 [ rand::$0 ] 2,002: zp[2]:41 [ rand::$1 ] 2,002: zp[2]:45 [ rand::$2 ] 367.33: zp[2]:47 [ rand::return#0 ] 202: zp[2]:29 [ rand::return#2 ] +Uplift Scope [memset] 3,572.33: zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 183.67: zp[2]:49 [ memset::end#0 ] 143: zp[1]:8 [ memset::c#5 ] 0: zp[2]:6 [ memset::str#4 ] +Uplift Scope [] 1,501.5: zp[2]:39 [ rand_state#1 ] 1,501.5: zp[2]:43 [ rand_state#2 ] 325.72: zp[2]:4 [ rand_state#11 rand_state#3 ] +Uplift Scope [RADIX] + +Uplifting [main] best 8346 combination reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] zp[2]:21 [ main::$5 ] zp[2]:13 [ main::$29 ] zp[2]:15 [ main::$30 ] zp[2]:17 [ main::$3 ] zp[2]:23 [ main::$6 ] reg byte a [ main::$9 ] zp[2]:31 [ main::$10 ] reg byte a [ main::$12 ] reg byte a [ main::$13 ] zp[1]:36 [ main::$18 ] zp[2]:11 [ main::$24 ] zp[1]:33 [ main::rnd#0 ] zp[1]:25 [ main::cnt#0 ] zp[2]:26 [ main::$8 ] zp[2]:19 [ main::offset#0 ] +Limited combination testing to 100 combinations of 12288 possible. +Uplifting [rand] best 8346 combination zp[2]:37 [ rand::$0 ] zp[2]:41 [ rand::$1 ] zp[2]:45 [ rand::$2 ] zp[2]:47 [ rand::return#0 ] zp[2]:29 [ rand::return#2 ] +Uplifting [memset] best 8327 combination zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:49 [ memset::end#0 ] reg byte x [ memset::c#5 ] zp[2]:6 [ memset::str#4 ] +Uplifting [] best 8327 combination zp[2]:39 [ rand_state#1 ] zp[2]:43 [ rand_state#2 ] zp[2]:4 [ rand_state#11 rand_state#3 ] +Uplifting [RADIX] best 8327 combination +Attempting to uplift remaining variables inzp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +Uplifting [main] best 8327 combination zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +Attempting to uplift remaining variables inzp[1]:36 [ main::$18 ] +Uplifting [main] best 8267 combination reg byte a [ main::$18 ] +Attempting to uplift remaining variables inzp[1]:33 [ main::rnd#0 ] +Uplifting [main] best 8207 combination reg byte y [ main::rnd#0 ] +Attempting to uplift remaining variables inzp[1]:25 [ main::cnt#0 ] +Uplifting [main] best 8187 combination reg byte y [ main::cnt#0 ] +Coalescing zero page register [ zp[2]:4 [ rand_state#11 rand_state#3 ] ] with [ zp[2]:39 [ rand_state#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:4 [ rand_state#11 rand_state#3 rand_state#1 ] ] with [ zp[2]:43 [ rand_state#2 ] ] - score: 1 +Coalescing zero page register [ zp[2]:6 [ memset::str#4 ] ] with [ zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:11 [ main::$24 ] ] with [ zp[2]:15 [ main::$30 ] ] - score: 1 +Coalescing zero page register [ zp[2]:17 [ main::$3 ] ] with [ zp[2]:19 [ main::offset#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:29 [ rand::return#2 ] ] with [ zp[2]:31 [ main::$10 ] ] - score: 1 +Coalescing zero page register [ zp[2]:29 [ rand::return#2 main::$10 ] ] with [ zp[2]:47 [ rand::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:11 [ main::$24 main::$30 ] ] with [ zp[2]:17 [ main::$3 main::offset#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:11 [ main::$24 main::$30 main::$3 main::offset#0 ] ] with [ zp[2]:26 [ main::$8 ] ] - score: 1 +Coalescing zero page register [ zp[2]:11 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 ] ] with [ zp[2]:6 [ memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] ] +Coalescing zero page register [ zp[2]:49 [ memset::end#0 ] ] with [ zp[2]:37 [ rand::$0 ] ] +Allocated (was zp[2]:4) zp[2]:3 [ rand_state#11 rand_state#3 rand_state#1 rand_state#2 ] +Allocated (was zp[2]:11) zp[2]:5 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] +Allocated (was zp[2]:13) zp[2]:7 [ main::$29 ] +Allocated (was zp[2]:21) zp[2]:9 [ main::$5 ] +Allocated (was zp[2]:23) zp[2]:11 [ main::$6 ] +Allocated (was zp[2]:29) zp[2]:13 [ rand::return#2 main::$10 rand::return#0 ] +Allocated (was zp[2]:41) zp[2]:15 [ rand::$1 ] +Allocated (was zp[2]:45) zp[2]:17 [ rand::$2 ] +Allocated (was zp[2]:49) zp[2]:19 [ memset::end#0 rand::$0 ] + +ASSEMBLER BEFORE OPTIMIZATION + // File Comments +// Random walk with color fading for Commodore Plus/4 / C16 + // Upstart + .file [name="plus4walk.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$1001] +.segmentdef Code [start=$1010] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__bbegin) +.segment Code + + + // Global Constants & labels + .label SCREEN = $c00 + .label COLORRAM = $800 + .label BGCOLOR = $ff19 + .label BORDERCOLOR = $ff15 + .label RASTER = $ff1d + // The random state variable + .label rand_state = 3 + // @begin +__bbegin: + // [1] phi from @begin to @1 [phi:@begin->@1] +__b1_from___bbegin: + jmp __b1 + // @1 +__b1: + // [2] call main + // [4] phi from @1 to main [phi:@1->main] +main_from___b1: + jsr main + // [3] phi from @1 to @end [phi:@1->@end] +__bend_from___b1: + jmp __bend + // @end +__bend: +.segment Code + // main +main: { + .label __3 = 5 + .label __5 = 9 + .label __6 = $b + .label __8 = 5 + .label __10 = $d + .label __24 = 5 + .label offset = 5 + .label y = 2 + .label __29 = 7 + .label __30 = 5 + // [5] call memset + // [57] phi from main to memset [phi:main->memset] + memset_from_main: + // [57] phi (byte) memset::c#5 = (byte) $a0 [phi:main->memset#0] -- vbuxx=vbuc1 + ldx #$a0 + // [57] phi (void*) memset::str#4 = (void*)(const nomodify byte*) SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + lda #SCREEN + sta.z memset.str+1 + jsr memset + // [6] phi from main to main::@10 [phi:main->main::@10] + __b10_from_main: + jmp __b10 + // main::@10 + __b10: + // [7] call memset + // [57] phi from main::@10 to memset [phi:main::@10->memset] + memset_from___b10: + // [57] phi (byte) memset::c#5 = (byte) 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 + ldx #0 + // [57] phi (void*) memset::str#4 = (void*)(const nomodify byte*) COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + lda #COLORRAM + sta.z memset.str+1 + jsr memset + // [8] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + __b11_from___b10: + jmp __b11 + // main::@11 + __b11: + // [9] call memset + // [57] phi from main::@11 to memset [phi:main::@11->memset] + memset_from___b11: + // [57] phi (byte) memset::c#5 = (byte) 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 + ldx #0 + // [57] phi (void*) memset::str#4 = (void*)(const byte*) COUNT [phi:main::@11->memset#1] -- pvoz1=pvoc1 + lda #COUNT + sta.z memset.str+1 + jsr memset + jmp __b12 + // main::@12 + __b12: + // [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta BORDERCOLOR + // [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta BGCOLOR + // [12] phi from main::@12 to main::@1 [phi:main::@12->main::@1] + __b1_from___b12: + // [12] phi (word) rand_state#11 = (word) 1 [phi:main::@12->main::@1#0] -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + // [12] phi (byte) main::x#11 = (byte) $14 [phi:main::@12->main::@1#1] -- vbuxx=vbuc1 + ldx #$14 + // [12] phi (byte) main::y#11 = (byte) $c [phi:main::@12->main::@1#2] -- vbuz1=vbuc1 + lda #$c + sta.z y + jmp __b1 + // main::@1 + __b1: + jmp __b2 + // main::@2 + __b2: + // [13] (word~) main::$24 ← (word)(byte) main::y#11 -- vwuz1=_word_vbuz2 + lda.z y + sta.z __24 + lda #0 + sta.z __24+1 + // [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 -- vwuz1=vwuz2_rol_2 + lda.z __24 + asl + sta.z __29 + lda.z __24+1 + rol + sta.z __29+1 + asl.z __29 + rol.z __29+1 + // [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 -- vwuz1=vwuz2_plus_vwuz1 + lda.z __30 + clc + adc.z __29 + sta.z __30 + lda.z __30+1 + adc.z __29+1 + sta.z __30+1 + // [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 -- vwuz1=vwuz1_rol_3 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + // [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 -- vwuz1=vwuz1_plus_vbuxx + txa + clc + adc.z offset + sta.z offset + bcc !+ + inc.z offset+1 + !: + // [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COUNT + sta.z __5+1 + // [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) -- _deref_pbuz1=_inc__deref_pbuz1 + ldy #0 + lda (__5),y + clc + adc #1 + ldy #0 + sta (__5),y + // [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COUNT + sta.z __6+1 + // [21] (byte) main::cnt#0 ← *((byte*~) main::$6) -- vbuyy=_deref_pbuz1 + ldy #0 + lda (__6),y + tay + // [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz1 + clc + lda.z __8 + adc #COLORRAM + sta.z __8+1 + // [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 + tya + and #$f + // [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) -- _deref_pbuz1=pbuc1_derefidx_vbuaa + tay + lda FADE,y + ldy #0 + sta (__8),y + // [25] call rand + jsr rand + // [26] (word) rand::return#2 ← (word) rand::return#0 + jmp __b13 + // main::@13 + __b13: + // [27] (word~) main::$10 ← (word) rand::return#2 + // [28] (byte) main::rnd#0 ← > (word~) main::$10 -- vbuyy=_hi_vwuz1 + ldy.z __10+1 + // [29] (byte~) main::$12 ← (byte) main::rnd#0 & (byte) $80 -- vbuaa=vbuyy_band_vbuc1 + tya + and #$80 + // [30] if((byte) 0!=(byte~) main::$12) goto main::@3 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b3 + jmp __b7 + // main::@7 + __b7: + // [31] (byte~) main::$13 ← (byte) main::rnd#0 & (byte) $40 -- vbuaa=vbuyy_band_vbuc1 + tya + and #$40 + // [32] if((byte) 0!=(byte~) main::$13) goto main::@4 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b4 + jmp __b8 + // main::@8 + __b8: + // [33] (byte) main::y#2 ← -- (byte) main::y#11 -- vbuz1=_dec_vbuz1 + dec.z y + // [34] if((byte) main::y#2!=(byte) $ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z y + bne __b14_from___b8 + // [36] phi from main::@8 to main::@6 [phi:main::@8->main::@6] + __b6_from___b8: + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@8->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 + lda #0 + sta.z y + jmp __b6 + // [35] phi from main::@8 to main::@14 [phi:main::@8->main::@14] + __b14_from___b8: + jmp __b14 + // main::@14 + __b14: + // [36] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] + __b6_from___b14: + __b6_from___b15: + __b6_from___b16: + __b6_from___b17: + __b6_from___b6: + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy + jmp __b6 + // main::@6 + __b6: + // [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + lda #$ff + cmp RASTER + bne __b6_from___b6 + // [12] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + __b1_from___b6: + // [12] phi (word) rand_state#11 = (word) rand_state#3 [phi:main::@6->main::@1#0] -- register_copy + // [12] phi (byte) main::x#11 = (byte) main::x#10 [phi:main::@6->main::@1#1] -- register_copy + // [12] phi (byte) main::y#11 = (byte) main::y#10 [phi:main::@6->main::@1#2] -- register_copy + jmp __b1 + // main::@4 + __b4: + // [38] (byte) main::y#1 ← ++ (byte) main::y#11 -- vbuz1=_inc_vbuz1 + inc.z y + // [39] if((byte) main::y#1!=(byte) $19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 + lda #$19 + cmp.z y + bne __b16_from___b4 + // [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + __b6_from___b4: + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@4->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 + lda #$18 + sta.z y + jmp __b6 + // [40] phi from main::@4 to main::@16 [phi:main::@4->main::@16] + __b16_from___b4: + jmp __b16 + // main::@16 + __b16: + jmp __b6_from___b16 + // main::@3 + __b3: + // [41] (byte~) main::$18 ← (byte) main::rnd#0 & (byte) $40 -- vbuaa=vbuyy_band_vbuc1 + tya + and #$40 + // [42] if((byte) 0!=(byte~) main::$18) goto main::@5 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b5 + jmp __b9 + // main::@9 + __b9: + // [43] (byte) main::x#2 ← -- (byte) main::x#11 -- vbuxx=_dec_vbuxx + dex + // [44] if((byte) main::x#2!=(byte) $ff) goto main::@15 -- vbuxx_neq_vbuc1_then_la1 + cpx #$ff + bne __b15_from___b9 + // [36] phi from main::@9 to main::@6 [phi:main::@9->main::@6] + __b6_from___b9: + // [36] phi (byte) main::x#10 = (byte) 0 [phi:main::@9->main::@6#0] -- vbuxx=vbuc1 + ldx #0 + // [36] phi (byte) main::y#10 = (byte) main::y#11 [phi:main::@9->main::@6#1] -- register_copy + jmp __b6 + // [45] phi from main::@9 to main::@15 [phi:main::@9->main::@15] + __b15_from___b9: + jmp __b15 + // main::@15 + __b15: + jmp __b6_from___b15 + // main::@5 + __b5: + // [46] (byte) main::x#1 ← ++ (byte) main::x#11 -- vbuxx=_inc_vbuxx + inx + // [47] if((byte) main::x#1!=(byte) $28) goto main::@17 -- vbuxx_neq_vbuc1_then_la1 + cpx #$28 + bne __b17_from___b5 + // [36] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + __b6_from___b5: + // [36] phi (byte) main::x#10 = (byte) $27 [phi:main::@5->main::@6#0] -- vbuxx=vbuc1 + ldx #$27 + // [36] phi (byte) main::y#10 = (byte) main::y#11 [phi:main::@5->main::@6#1] -- register_copy + jmp __b6 + // [48] phi from main::@5 to main::@17 [phi:main::@5->main::@17] + __b17_from___b5: + jmp __b17 + // main::@17 + __b17: + jmp __b6_from___b17 +} + // rand +// Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) +// Uses an xorshift pseudorandom number generator that hits all different values +// Information https://en.wikipedia.org/wiki/Xorshift +// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html +rand: { + .label __0 = $13 + .label __1 = $f + .label __2 = $11 + .label return = $d + // [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 -- vwuz1=vwuz2_rol_7 + lda.z rand_state+1 + lsr + lda.z rand_state + ror + sta.z __0+1 + lda #0 + ror + sta.z __0 + // [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 + lda.z rand_state + eor.z __0 + sta.z rand_state + lda.z rand_state+1 + eor.z __0+1 + sta.z rand_state+1 + // [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 -- vwuz1=vwuz2_ror_9 + lda.z rand_state+1 + lsr + sta.z __1 + lda #0 + sta.z __1+1 + // [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 + lda.z rand_state + eor.z __1 + sta.z rand_state + lda.z rand_state+1 + eor.z __1+1 + sta.z rand_state+1 + // [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 -- vwuz1=vwuz2_rol_8 + lda.z rand_state + sta.z __2+1 + lda #0 + sta.z __2 + // [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 + lda.z rand_state + eor.z __2 + sta.z rand_state + lda.z rand_state+1 + eor.z __2+1 + sta.z rand_state+1 + // [55] (word) rand::return#0 ← (word) rand_state#3 -- vwuz1=vwuz2 + lda.z rand_state + sta.z return + lda.z rand_state+1 + sta.z return+1 + jmp __breturn + // rand::@return + __breturn: + // [56] return + rts +} + // memset +// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// memset(void* zp(5) str, byte register(X) c) +memset: { + .label end = $13 + .label dst = 5 + .label str = 5 + jmp __b1 + // memset::@1 + __b1: + // [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 -- pbuz1=pbuz2_plus_vwuc1 + lda.z str + clc + adc #<$3e8 + sta.z end + lda.z str+1 + adc #>$3e8 + sta.z end+1 + // [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 + // [60] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + __b2_from___b1: + __b2_from___b3: + // [60] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + jmp __b2 + // memset::@2 + __b2: + // [61] if((byte*) memset::dst#2!=(byte*) 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: + // [62] return + rts + // memset::@3 + __b3: + // [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 -- _deref_pbuz1=vbuxx + txa + ldy #0 + sta (dst),y + // [64] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + inc.z dst + bne !+ + inc.z dst+1 + !: + jmp __b2_from___b3 +} + // File Data +.segment Data + FADE: .byte 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 + COUNT: .fill $3e8, 0 + +ASSEMBLER OPTIMIZATIONS +Removing instruction jmp __b1 +Removing instruction jmp __bend +Removing instruction jmp __b10 +Removing instruction jmp __b11 +Removing instruction jmp __b12 +Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __b13 +Removing instruction jmp __b7 +Removing instruction jmp __b8 +Removing instruction jmp __b14 +Removing instruction jmp __b6 +Removing instruction jmp __b16 +Removing instruction jmp __b9 +Removing instruction jmp __b15 +Removing instruction jmp __b17 +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 ldy #0 +Removing instruction ldy #0 +Removing instruction lda.z rand_state+1 +Succesful ASM optimization Pass5UnnecesaryLoadElimination +Replacing label __b14_from___b8 with __b6 +Replacing label __b6_from___b6 with __b6 +Replacing label __b1 with __b2 +Replacing label __b16_from___b4 with __b16 +Replacing label __b6_from___b16 with __b6 +Replacing label __b15_from___b9 with __b15 +Replacing label __b6_from___b15 with __b6 +Replacing label __b17_from___b5 with __b17 +Replacing label __b6_from___b17 with __b6 +Replacing label __b2_from___b3 with __b2 +Removing instruction __b1_from___bbegin: +Removing instruction __b1: +Removing instruction main_from___b1: +Removing instruction __bend_from___b1: +Removing instruction __b10_from_main: +Removing instruction memset_from___b10: +Removing instruction __b11_from___b10: +Removing instruction memset_from___b11: +Removing instruction __b1: +Removing instruction __b14_from___b8: +Removing instruction __b14: +Removing instruction __b6_from___b14: +Removing instruction __b6_from___b15: +Removing instruction __b6_from___b16: +Removing instruction __b6_from___b17: +Removing instruction __b6_from___b6: +Removing instruction __b16_from___b4: +Removing instruction __b15_from___b9: +Removing instruction __b17_from___b5: +Removing instruction __b2_from___b1: +Removing instruction __b2_from___b3: +Succesful ASM optimization Pass5RedundantLabelElimination +Removing instruction __bend: +Removing instruction memset_from_main: +Removing instruction __b10: +Removing instruction __b11: +Removing instruction __b12: +Removing instruction __b1_from___b12: +Removing instruction __b13: +Removing instruction __b7: +Removing instruction __b8: +Removing instruction __b6_from___b8: +Removing instruction __b1_from___b6: +Removing instruction __b6_from___b4: +Removing instruction __b9: +Removing instruction __b6_from___b9: +Removing instruction __b6_from___b5: +Removing instruction __breturn: +Removing instruction __b1: +Removing instruction __breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +Removing instruction jsr main +Succesful ASM optimization Pass5SkipBegin +Skipping double jump to __b6 in bne __b16 +Skipping double jump to __b6 in bne __b15 +Skipping double jump to __b6 in bne __b17 +Succesful ASM optimization Pass5DoubleJumpElimination +Removing instruction jmp __b6 +Succesful ASM optimization Pass5NextJumpElimination +Removing instruction __b16: +Removing instruction __b15: +Removing instruction __b17: +Succesful ASM optimization Pass5UnusedLabelElimination +Removing unreachable instruction jmp __b6 +Removing unreachable instruction jmp __b6 +Removing unreachable instruction jmp __b6 +Succesful ASM optimization Pass5UnreachableCodeElimination + +FINAL SYMBOL TABLE +(label) @1 +(label) @begin +(label) @end +(const nomodify byte*) BGCOLOR = (byte*) 65305 +(const nomodify byte*) BORDERCOLOR = (byte*) 65301 +(const nomodify byte*) COLORRAM = (byte*) 2048 +(const byte*) COUNT[(number) $3e8] = { fill( $3e8, 0) } +(const byte*) FADE[(number) $10] = { (byte) 2, (byte) $12, (byte) $22, (byte) $32, (byte) $42, (byte) $52, (byte) $62, (byte) $72, (byte) $76, (byte) $66, (byte) $56, (byte) $46, (byte) $36, (byte) $26, (byte) $16, (byte) 6 } +(const byte) RADIX::BINARY = (number) 2 +(const byte) RADIX::DECIMAL = (number) $a +(const byte) RADIX::HEXADECIMAL = (number) $10 +(const byte) RADIX::OCTAL = (number) 8 +(const nomodify byte*) RASTER = (byte*) 65309 +(const nomodify byte*) SCREEN = (byte*) 3072 +(void()) main() +(word~) main::$10 zp[2]:13 202.0 +(byte~) main::$12 reg byte a 202.0 +(byte~) main::$13 reg byte a 202.0 +(byte~) main::$18 reg byte a 202.0 +(word~) main::$24 zp[2]:5 151.5 +(word~) main::$29 zp[2]:7 202.0 +(word~) main::$3 zp[2]:5 202.0 +(word~) main::$30 zp[2]:5 202.0 +(byte*~) main::$5 zp[2]:9 303.0 +(byte*~) main::$6 zp[2]:11 202.0 +(byte*~) main::$8 zp[2]:5 101.0 +(byte~) main::$9 reg byte a 202.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::cnt +(byte) main::cnt#0 reg byte y 101.0 +(word) main::offset +(word) main::offset#0 offset zp[2]:5 80.8 +(byte) main::rnd +(byte) main::rnd#0 reg byte y 134.66666666666666 +(byte) main::x +(byte) main::x#1 reg byte x 101.0 +(byte) main::x#10 reg byte x 1804.5 +(byte) main::x#11 reg byte x 58.89655172413795 +(byte) main::x#2 reg byte x 101.0 +(byte) main::y +(byte) main::y#1 y zp[1]:2 101.0 +(byte) main::y#10 y zp[1]:2 1804.5 +(byte) main::y#11 y zp[1]:2 55.41379310344829 +(byte) main::y#2 y zp[1]:2 101.0 +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +(label) memset::@1 +(label) memset::@2 +(label) memset::@3 +(label) memset::@return +(byte) memset::c +(byte) memset::c#5 reg byte x 143.0 +(byte*) memset::dst +(byte*) memset::dst#1 dst zp[2]:5 2002.0 +(byte*) memset::dst#2 dst zp[2]:5 1368.3333333333335 +(byte*) memset::dst#4 dst zp[2]:5 202.0 +(byte*) memset::end +(byte*) memset::end#0 end zp[2]:19 183.66666666666669 +(word) memset::num +(void*) memset::return +(void*) memset::str +(void*) memset::str#4 str zp[2]:5 +(word()) rand() +(word~) rand::$0 zp[2]:19 2002.0 +(word~) rand::$1 zp[2]:15 2002.0 +(word~) rand::$2 zp[2]:17 2002.0 +(label) rand::@return +(word) rand::return +(word) rand::return#0 return zp[2]:13 367.33333333333337 +(word) rand::return#2 return zp[2]:13 202.0 +(word) rand_state +(word) rand_state#1 rand_state zp[2]:3 1501.5 +(word) rand_state#11 rand_state zp[2]:3 214.5 +(word) rand_state#2 rand_state zp[2]:3 1501.5 +(word) rand_state#3 rand_state zp[2]:3 111.22222222222223 + +zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] +zp[2]:3 [ rand_state#11 rand_state#3 rand_state#1 rand_state#2 ] +reg byte x [ memset::c#5 ] +zp[2]:5 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:7 [ main::$29 ] +zp[2]:9 [ main::$5 ] +zp[2]:11 [ main::$6 ] +reg byte y [ main::cnt#0 ] +reg byte a [ main::$9 ] +zp[2]:13 [ rand::return#2 main::$10 rand::return#0 ] +reg byte y [ main::rnd#0 ] +reg byte a [ main::$12 ] +reg byte a [ main::$13 ] +reg byte a [ main::$18 ] +zp[2]:15 [ rand::$1 ] +zp[2]:17 [ rand::$2 ] +zp[2]:19 [ memset::end#0 rand::$0 ] + + +FINAL ASSEMBLER +Score: 6721 + + // File Comments +// Random walk with color fading for Commodore Plus/4 / C16 + // Upstart + .file [name="plus4walk.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$1001] +.segmentdef Code [start=$1010] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(__bbegin) +.segment Code + + + // Global Constants & labels + .label SCREEN = $c00 + .label COLORRAM = $800 + .label BGCOLOR = $ff19 + .label BORDERCOLOR = $ff15 + .label RASTER = $ff1d + // The random state variable + .label rand_state = 3 + // @begin +__bbegin: + // [1] phi from @begin to @1 [phi:@begin->@1] + // @1 + // [2] call main + // [4] phi from @1 to main [phi:@1->main] + // [3] phi from @1 to @end [phi:@1->@end] + // @end +.segment Code + // main +main: { + .label __3 = 5 + .label __5 = 9 + .label __6 = $b + .label __8 = 5 + .label __10 = $d + .label __24 = 5 + .label offset = 5 + .label y = 2 + .label __29 = 7 + .label __30 = 5 + // memset(SCREEN, 0xa0, 1000) + // [5] call memset + // [57] phi from main to memset [phi:main->memset] + // [57] phi (byte) memset::c#5 = (byte) $a0 [phi:main->memset#0] -- vbuxx=vbuc1 + ldx #$a0 + // [57] phi (void*) memset::str#4 = (void*)(const nomodify byte*) SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + lda #SCREEN + sta.z memset.str+1 + jsr memset + // [6] phi from main to main::@10 [phi:main->main::@10] + // main::@10 + // memset(COLORRAM, 0, 1000) + // [7] call memset + // [57] phi from main::@10 to memset [phi:main::@10->memset] + // [57] phi (byte) memset::c#5 = (byte) 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 + ldx #0 + // [57] phi (void*) memset::str#4 = (void*)(const nomodify byte*) COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + lda #COLORRAM + sta.z memset.str+1 + jsr memset + // [8] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // main::@11 + // memset(COUNT, 0, 1000) + // [9] call memset + // [57] phi from main::@11 to memset [phi:main::@11->memset] + // [57] phi (byte) memset::c#5 = (byte) 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 + ldx #0 + // [57] phi (void*) memset::str#4 = (void*)(const byte*) COUNT [phi:main::@11->memset#1] -- pvoz1=pvoc1 + lda #COUNT + sta.z memset.str+1 + jsr memset + // main::@12 + // *BORDERCOLOR = 0 + // [10] *((const nomodify byte*) BORDERCOLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta BORDERCOLOR + // *BGCOLOR = 0 + // [11] *((const nomodify byte*) BGCOLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2 + sta BGCOLOR + // [12] phi from main::@12 to main::@1 [phi:main::@12->main::@1] + // [12] phi (word) rand_state#11 = (word) 1 [phi:main::@12->main::@1#0] -- vwuz1=vwuc1 + lda #<1 + sta.z rand_state + lda #>1 + sta.z rand_state+1 + // [12] phi (byte) main::x#11 = (byte) $14 [phi:main::@12->main::@1#1] -- vbuxx=vbuc1 + ldx #$14 + // [12] phi (byte) main::y#11 = (byte) $c [phi:main::@12->main::@1#2] -- vbuz1=vbuc1 + lda #$c + sta.z y + // main::@1 + // main::@2 + __b2: + // (unsigned int)y*40 + // [13] (word~) main::$24 ← (word)(byte) main::y#11 -- vwuz1=_word_vbuz2 + lda.z y + sta.z __24 + lda #0 + sta.z __24+1 + // [14] (word~) main::$29 ← (word~) main::$24 << (byte) 2 -- vwuz1=vwuz2_rol_2 + lda.z __24 + asl + sta.z __29 + lda.z __24+1 + rol + sta.z __29+1 + asl.z __29 + rol.z __29+1 + // [15] (word~) main::$30 ← (word~) main::$29 + (word~) main::$24 -- vwuz1=vwuz2_plus_vwuz1 + lda.z __30 + clc + adc.z __29 + sta.z __30 + lda.z __30+1 + adc.z __29+1 + sta.z __30+1 + // [16] (word~) main::$3 ← (word~) main::$30 << (byte) 3 -- vwuz1=vwuz1_rol_3 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + asl.z __3 + rol.z __3+1 + // offset = (unsigned int)y*40+x + // [17] (word) main::offset#0 ← (word~) main::$3 + (byte) main::x#11 -- vwuz1=vwuz1_plus_vbuxx + txa + clc + adc.z offset + sta.z offset + bcc !+ + inc.z offset+1 + !: + // COUNT+offset + // [18] (byte*~) main::$5 ← (const byte*) COUNT + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COUNT + sta.z __5+1 + // cnt = ++*(COUNT+offset) + // [19] *((byte*~) main::$5) ← ++ *((byte*~) main::$5) -- _deref_pbuz1=_inc__deref_pbuz1 + ldy #0 + lda (__5),y + clc + adc #1 + sta (__5),y + // COUNT+offset + // [20] (byte*~) main::$6 ← (const byte*) COUNT + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + lda.z offset + clc + adc #COUNT + sta.z __6+1 + // cnt = ++*(COUNT+offset) + // [21] (byte) main::cnt#0 ← *((byte*~) main::$6) -- vbuyy=_deref_pbuz1 + lda (__6),y + tay + // COLORRAM+offset + // [22] (byte*~) main::$8 ← (const nomodify byte*) COLORRAM + (word) main::offset#0 -- pbuz1=pbuc1_plus_vwuz1 + clc + lda.z __8 + adc #COLORRAM + sta.z __8+1 + // cnt&0xf + // [23] (byte~) main::$9 ← (byte) main::cnt#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 + tya + and #$f + // *(COLORRAM+offset) = FADE[cnt&0xf] + // [24] *((byte*~) main::$8) ← *((const byte*) FADE + (byte~) main::$9) -- _deref_pbuz1=pbuc1_derefidx_vbuaa + tay + lda FADE,y + ldy #0 + sta (__8),y + // rand() + // [25] call rand + jsr rand + // [26] (word) rand::return#2 ← (word) rand::return#0 + // main::@13 + // [27] (word~) main::$10 ← (word) rand::return#2 + // rnd = >rand() + // [28] (byte) main::rnd#0 ← > (word~) main::$10 -- vbuyy=_hi_vwuz1 + ldy.z __10+1 + // rnd & 0x80 + // [29] (byte~) main::$12 ← (byte) main::rnd#0 & (byte) $80 -- vbuaa=vbuyy_band_vbuc1 + tya + and #$80 + // if(rnd & 0x80) + // [30] if((byte) 0!=(byte~) main::$12) goto main::@3 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b3 + // main::@7 + // rnd & 0x40 + // [31] (byte~) main::$13 ← (byte) main::rnd#0 & (byte) $40 -- vbuaa=vbuyy_band_vbuc1 + tya + and #$40 + // if(rnd & 0x40) + // [32] if((byte) 0!=(byte~) main::$13) goto main::@4 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b4 + // main::@8 + // y--; + // [33] (byte) main::y#2 ← -- (byte) main::y#11 -- vbuz1=_dec_vbuz1 + dec.z y + // if(y==0xff) + // [34] if((byte) main::y#2!=(byte) $ff) goto main::@14 -- vbuz1_neq_vbuc1_then_la1 + lda #$ff + cmp.z y + bne __b6 + // [36] phi from main::@8 to main::@6 [phi:main::@8->main::@6] + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@8->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) 0 [phi:main::@8->main::@6#1] -- vbuz1=vbuc1 + lda #0 + sta.z y + // [35] phi from main::@8 to main::@14 [phi:main::@8->main::@14] + // main::@14 + // [36] phi from main::@14 main::@15 main::@16 main::@17 main::@6 to main::@6 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6] + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) main::y#2 [phi:main::@14/main::@15/main::@16/main::@17/main::@6->main::@6#1] -- register_copy + // main::@6 + __b6: + // while(*RASTER!=0xff) + // [37] if(*((const nomodify byte*) RASTER)!=(byte) $ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + lda #$ff + cmp RASTER + bne __b6 + // [12] phi from main::@6 to main::@1 [phi:main::@6->main::@1] + // [12] phi (word) rand_state#11 = (word) rand_state#3 [phi:main::@6->main::@1#0] -- register_copy + // [12] phi (byte) main::x#11 = (byte) main::x#10 [phi:main::@6->main::@1#1] -- register_copy + // [12] phi (byte) main::y#11 = (byte) main::y#10 [phi:main::@6->main::@1#2] -- register_copy + jmp __b2 + // main::@4 + __b4: + // y++; + // [38] (byte) main::y#1 ← ++ (byte) main::y#11 -- vbuz1=_inc_vbuz1 + inc.z y + // if(y==25) + // [39] if((byte) main::y#1!=(byte) $19) goto main::@16 -- vbuz1_neq_vbuc1_then_la1 + lda #$19 + cmp.z y + bne __b6 + // [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + // [36] phi (byte) main::x#10 = (byte) main::x#11 [phi:main::@4->main::@6#0] -- register_copy + // [36] phi (byte) main::y#10 = (byte) $18 [phi:main::@4->main::@6#1] -- vbuz1=vbuc1 + lda #$18 + sta.z y + jmp __b6 + // [40] phi from main::@4 to main::@16 [phi:main::@4->main::@16] + // main::@16 + // main::@3 + __b3: + // rnd& 0x40 + // [41] (byte~) main::$18 ← (byte) main::rnd#0 & (byte) $40 -- vbuaa=vbuyy_band_vbuc1 + tya + and #$40 + // if(rnd& 0x40) + // [42] if((byte) 0!=(byte~) main::$18) goto main::@5 -- vbuc1_neq_vbuaa_then_la1 + cmp #0 + bne __b5 + // main::@9 + // x--; + // [43] (byte) main::x#2 ← -- (byte) main::x#11 -- vbuxx=_dec_vbuxx + dex + // if(x==0xff) + // [44] if((byte) main::x#2!=(byte) $ff) goto main::@15 -- vbuxx_neq_vbuc1_then_la1 + cpx #$ff + bne __b6 + // [36] phi from main::@9 to main::@6 [phi:main::@9->main::@6] + // [36] phi (byte) main::x#10 = (byte) 0 [phi:main::@9->main::@6#0] -- vbuxx=vbuc1 + ldx #0 + // [36] phi (byte) main::y#10 = (byte) main::y#11 [phi:main::@9->main::@6#1] -- register_copy + jmp __b6 + // [45] phi from main::@9 to main::@15 [phi:main::@9->main::@15] + // main::@15 + // main::@5 + __b5: + // x++; + // [46] (byte) main::x#1 ← ++ (byte) main::x#11 -- vbuxx=_inc_vbuxx + inx + // if(x==40) + // [47] if((byte) main::x#1!=(byte) $28) goto main::@17 -- vbuxx_neq_vbuc1_then_la1 + cpx #$28 + bne __b6 + // [36] phi from main::@5 to main::@6 [phi:main::@5->main::@6] + // [36] phi (byte) main::x#10 = (byte) $27 [phi:main::@5->main::@6#0] -- vbuxx=vbuc1 + ldx #$27 + // [36] phi (byte) main::y#10 = (byte) main::y#11 [phi:main::@5->main::@6#1] -- register_copy + jmp __b6 + // [48] phi from main::@5 to main::@17 [phi:main::@5->main::@17] + // main::@17 +} + // rand +// Returns a pseudo-random number in the range of 0 to RAND_MAX (65535) +// Uses an xorshift pseudorandom number generator that hits all different values +// Information https://en.wikipedia.org/wiki/Xorshift +// Source http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html +rand: { + .label __0 = $13 + .label __1 = $f + .label __2 = $11 + .label return = $d + // rand_state << 7 + // [49] (word~) rand::$0 ← (word) rand_state#11 << (byte) 7 -- vwuz1=vwuz2_rol_7 + lda.z rand_state+1 + lsr + lda.z rand_state + ror + sta.z __0+1 + lda #0 + ror + sta.z __0 + // rand_state ^= rand_state << 7 + // [50] (word) rand_state#1 ← (word) rand_state#11 ^ (word~) rand::$0 -- vwuz1=vwuz1_bxor_vwuz2 + lda.z rand_state + eor.z __0 + sta.z rand_state + lda.z rand_state+1 + eor.z __0+1 + sta.z rand_state+1 + // rand_state >> 9 + // [51] (word~) rand::$1 ← (word) rand_state#1 >> (byte) 9 -- vwuz1=vwuz2_ror_9 + lsr + sta.z __1 + lda #0 + sta.z __1+1 + // rand_state ^= rand_state >> 9 + // [52] (word) rand_state#2 ← (word) rand_state#1 ^ (word~) rand::$1 -- vwuz1=vwuz1_bxor_vwuz2 + lda.z rand_state + eor.z __1 + sta.z rand_state + lda.z rand_state+1 + eor.z __1+1 + sta.z rand_state+1 + // rand_state << 8 + // [53] (word~) rand::$2 ← (word) rand_state#2 << (byte) 8 -- vwuz1=vwuz2_rol_8 + lda.z rand_state + sta.z __2+1 + lda #0 + sta.z __2 + // rand_state ^= rand_state << 8 + // [54] (word) rand_state#3 ← (word) rand_state#2 ^ (word~) rand::$2 -- vwuz1=vwuz1_bxor_vwuz2 + lda.z rand_state + eor.z __2 + sta.z rand_state + lda.z rand_state+1 + eor.z __2+1 + sta.z rand_state+1 + // return rand_state; + // [55] (word) rand::return#0 ← (word) rand_state#3 -- vwuz1=vwuz2 + lda.z rand_state + sta.z return + lda.z rand_state+1 + sta.z return+1 + // rand::@return + // } + // [56] return + rts +} + // memset +// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// memset(void* zp(5) str, byte register(X) c) +memset: { + .label end = $13 + .label dst = 5 + .label str = 5 + // memset::@1 + // end = (char*)str + num + // [58] (byte*) memset::end#0 ← (byte*)(void*) memset::str#4 + (word) $3e8 -- pbuz1=pbuz2_plus_vwuc1 + lda.z str + clc + adc #<$3e8 + sta.z end + lda.z str+1 + adc #>$3e8 + sta.z end+1 + // [59] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#4 + // [60] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [60] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // memset::@2 + __b2: + // for(char* dst = str; dst!=end; dst++) + // [61] if((byte*) memset::dst#2!=(byte*) 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 + // } + // [62] return + rts + // memset::@3 + __b3: + // *dst = c + // [63] *((byte*) memset::dst#2) ← (byte) memset::c#5 -- _deref_pbuz1=vbuxx + txa + ldy #0 + sta (dst),y + // for(char* dst = str; dst!=end; dst++) + // [64] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + inc.z dst + bne !+ + inc.z dst+1 + !: + jmp __b2 +} + // File Data +.segment Data + FADE: .byte 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 + COUNT: .fill $3e8, 0 + diff --git a/src/test/ref/examples/plus4walk/plus4walk.sym b/src/test/ref/examples/plus4walk/plus4walk.sym new file mode 100644 index 000000000..ea987f841 --- /dev/null +++ b/src/test/ref/examples/plus4walk/plus4walk.sym @@ -0,0 +1,109 @@ +(label) @1 +(label) @begin +(label) @end +(const nomodify byte*) BGCOLOR = (byte*) 65305 +(const nomodify byte*) BORDERCOLOR = (byte*) 65301 +(const nomodify byte*) COLORRAM = (byte*) 2048 +(const byte*) COUNT[(number) $3e8] = { fill( $3e8, 0) } +(const byte*) FADE[(number) $10] = { (byte) 2, (byte) $12, (byte) $22, (byte) $32, (byte) $42, (byte) $52, (byte) $62, (byte) $72, (byte) $76, (byte) $66, (byte) $56, (byte) $46, (byte) $36, (byte) $26, (byte) $16, (byte) 6 } +(const byte) RADIX::BINARY = (number) 2 +(const byte) RADIX::DECIMAL = (number) $a +(const byte) RADIX::HEXADECIMAL = (number) $10 +(const byte) RADIX::OCTAL = (number) 8 +(const nomodify byte*) RASTER = (byte*) 65309 +(const nomodify byte*) SCREEN = (byte*) 3072 +(void()) main() +(word~) main::$10 zp[2]:13 202.0 +(byte~) main::$12 reg byte a 202.0 +(byte~) main::$13 reg byte a 202.0 +(byte~) main::$18 reg byte a 202.0 +(word~) main::$24 zp[2]:5 151.5 +(word~) main::$29 zp[2]:7 202.0 +(word~) main::$3 zp[2]:5 202.0 +(word~) main::$30 zp[2]:5 202.0 +(byte*~) main::$5 zp[2]:9 303.0 +(byte*~) main::$6 zp[2]:11 202.0 +(byte*~) main::$8 zp[2]:5 101.0 +(byte~) main::$9 reg byte a 202.0 +(label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 +(label) main::@14 +(label) main::@15 +(label) main::@16 +(label) main::@17 +(label) main::@2 +(label) main::@3 +(label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 +(byte) main::cnt +(byte) main::cnt#0 reg byte y 101.0 +(word) main::offset +(word) main::offset#0 offset zp[2]:5 80.8 +(byte) main::rnd +(byte) main::rnd#0 reg byte y 134.66666666666666 +(byte) main::x +(byte) main::x#1 reg byte x 101.0 +(byte) main::x#10 reg byte x 1804.5 +(byte) main::x#11 reg byte x 58.89655172413795 +(byte) main::x#2 reg byte x 101.0 +(byte) main::y +(byte) main::y#1 y zp[1]:2 101.0 +(byte) main::y#10 y zp[1]:2 1804.5 +(byte) main::y#11 y zp[1]:2 55.41379310344829 +(byte) main::y#2 y zp[1]:2 101.0 +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +(label) memset::@1 +(label) memset::@2 +(label) memset::@3 +(label) memset::@return +(byte) memset::c +(byte) memset::c#5 reg byte x 143.0 +(byte*) memset::dst +(byte*) memset::dst#1 dst zp[2]:5 2002.0 +(byte*) memset::dst#2 dst zp[2]:5 1368.3333333333335 +(byte*) memset::dst#4 dst zp[2]:5 202.0 +(byte*) memset::end +(byte*) memset::end#0 end zp[2]:19 183.66666666666669 +(word) memset::num +(void*) memset::return +(void*) memset::str +(void*) memset::str#4 str zp[2]:5 +(word()) rand() +(word~) rand::$0 zp[2]:19 2002.0 +(word~) rand::$1 zp[2]:15 2002.0 +(word~) rand::$2 zp[2]:17 2002.0 +(label) rand::@return +(word) rand::return +(word) rand::return#0 return zp[2]:13 367.33333333333337 +(word) rand::return#2 return zp[2]:13 202.0 +(word) rand_state +(word) rand_state#1 rand_state zp[2]:3 1501.5 +(word) rand_state#11 rand_state zp[2]:3 214.5 +(word) rand_state#2 rand_state zp[2]:3 1501.5 +(word) rand_state#3 rand_state zp[2]:3 111.22222222222223 + +zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] +reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] +zp[2]:3 [ rand_state#11 rand_state#3 rand_state#1 rand_state#2 ] +reg byte x [ memset::c#5 ] +zp[2]:5 [ main::$24 main::$30 main::$3 main::offset#0 main::$8 memset::str#4 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:7 [ main::$29 ] +zp[2]:9 [ main::$5 ] +zp[2]:11 [ main::$6 ] +reg byte y [ main::cnt#0 ] +reg byte a [ main::$9 ] +zp[2]:13 [ rand::return#2 main::$10 rand::return#0 ] +reg byte y [ main::rnd#0 ] +reg byte a [ main::$12 ] +reg byte a [ main::$13 ] +reg byte a [ main::$18 ] +zp[2]:15 [ rand::$1 ] +zp[2]:17 [ rand::$2 ] +zp[2]:19 [ memset::end#0 rand::$0 ]