diff --git a/src/main/fragment/cache/fragment-cache-mos6502x.asm b/src/main/fragment/cache/fragment-cache-mos6502x.asm index 0f78935a1..1bea00baf 100644 --- a/src/main/fragment/cache/fragment-cache-mos6502x.asm +++ b/src/main/fragment/cache/fragment-cache-mos6502x.asm @@ -19767,3 +19767,23 @@ sta {z1} lda {z1}+1 adc {z2}+1 sta {z1}+1 +//FRAGMENT pwuz1=pbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_plus_vbuaa +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_plus_vbuyy +tya +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 diff --git a/src/main/java/dk/camelot64/kickc/model/Initializers.java b/src/main/java/dk/camelot64/kickc/model/Initializers.java index d5471b8c0..fab865981 100644 --- a/src/main/java/dk/camelot64/kickc/model/Initializers.java +++ b/src/main/java/dk/camelot64/kickc/model/Initializers.java @@ -131,10 +131,6 @@ public class Initializers { } } } - // Add pointer cast to integers - if(typeSpec.getType() instanceof SymbolTypePointer && initValue instanceof ConstantValue && SymbolType.isInteger(((ConstantValue) initValue).getType(program.getScope()))) { - initValue = new ConstantCastValue(typeSpec.getType(), (ConstantValue) initValue); - } return initValue; } diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java b/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java index c74ded345..807dc6cbb 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java @@ -5,6 +5,7 @@ import dk.camelot64.kickc.model.ControlFlowBlock; import dk.camelot64.kickc.model.Program; import dk.camelot64.kickc.model.statements.Statement; import dk.camelot64.kickc.model.statements.StatementAssignment; +import dk.camelot64.kickc.model.symbols.Variable; import dk.camelot64.kickc.model.types.SymbolType; import dk.camelot64.kickc.model.types.SymbolTypeConversion; import dk.camelot64.kickc.model.types.SymbolTypeInference; @@ -30,9 +31,24 @@ public class PassNAssertTypeMatch extends Pass2SsaAssertion { // TODO: Implement checking for calls / ... } } + for(Variable var : getScope().getAllVars(true)) { + if(var.getInitValue()!=null) { + checkVarInit(var); + } + } } + private void checkVarInit(Variable variable) { + + SymbolType lValueType = variable.getType(); + SymbolType rValueType = variable.getInitValue().getType(getScope()); + if(SymbolTypeConversion.assignmentTypeMatch(lValueType, rValueType)) return; + // Types do not match + getLog().append("ERROR! Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In initialization of " + variable.toString(getProgram())); + throw new CompileError("Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In initialization of " + variable.toString(getProgram())); + } + private void checkAssignment(StatementAssignment statement) { LValue lValue = statement.getlValue(); SymbolType lValueType = SymbolTypeInference.inferType(getScope(), lValue); diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNSizeOfSimplification.java b/src/main/java/dk/camelot64/kickc/passes/PassNSizeOfSimplification.java index 1249ae066..e155fbe62 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNSizeOfSimplification.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNSizeOfSimplification.java @@ -76,7 +76,7 @@ public class PassNSizeOfSimplification extends Pass2SsaOptimization { if(arraySize!=null) { getLog().append("Resolving array sizeof() " + unary.toString(getProgram())); ConstantRef sizeOfConstantVar = SizeOfConstants.getSizeOfConstantVar(getScope(), arrayType.getElementType()); - programValue.set(new ConstantBinary((ConstantValue) arraySize, Operators.MULTIPLY, sizeOfConstantVar)); + programValue.set(new ConstantBinary(arraySize, Operators.MULTIPLY, sizeOfConstantVar)); modified.set(true); } else if(constant.getInitValue() instanceof ConstantArrayList) { getLog().append("Resolving array sizeof() " + unary.toString(getProgram())); diff --git a/src/main/kc/include/atari-tia.h b/src/main/kc/include/atari-tia.h index 1e2e86209..72f5fa3e1 100644 --- a/src/main/kc/include/atari-tia.h +++ b/src/main/kc/include/atari-tia.h @@ -7,13 +7,13 @@ const char CYCLES_PER_SCANLINE = 76; // The TIA WSYNC register (for access from inline ASM) -char* const TIA_WSYNC = 0x02; +char* const TIA_WSYNC = (char*)0x02; // The TIA RESP0 register (for access from inline ASM) -char* const TIA_RESP0 = 0x10; +char* const TIA_RESP0 = (char*)0x10; // The TIA RESP1 register (for access from inline ASM) -char* const TIA_RESP1 = 0x11; +char* const TIA_RESP1 = (char*)0x11; // The TIA HMP0 register (for access from inline ASM) -char* const TIA_HMP0 = 0x20; +char* const TIA_HMP0 = (char*)0x20; struct ATARI_TIA_WRITE { // $00 0000 00x0 Vertical Sync Set-Clear diff --git a/src/main/kc/include/atari-xl.h b/src/main/kc/include/atari-xl.h index 9f3a707b1..e6ad2c77e 100644 --- a/src/main/kc/include/atari-xl.h +++ b/src/main/kc/include/atari-xl.h @@ -10,60 +10,60 @@ #include <atari-pokey.h> // Atari GTIA write registers -struct ATARI_GTIA_WRITE * const GTIA = 0xd000; +struct ATARI_GTIA_WRITE * const GTIA = (struct ATARI_GTIA_WRITE *)0xd000; // Atari GTIA read registers -struct ATARI_GTIA_READ * const GTIA_READ = 0xd000; +struct ATARI_GTIA_READ * const GTIA_READ = (struct ATARI_GTIA_READ *)0xd000; // Atari POKEY write registers -struct ATARI_POKEY_WRITE * const POKEY = 0xd200; +struct ATARI_POKEY_WRITE * const POKEY = (struct ATARI_POKEY_WRITE *)0xd200; // Atari POKEY read registers -struct ATARI_POKEY_READ * const POKEY_READ = 0xd200; +struct ATARI_POKEY_READ * const POKEY_READ = (struct ATARI_POKEY_READ *)0xd200; // Atari ANTIC registers -struct ATARI_ANTIC * const ANTIC = 0xd400; +struct ATARI_ANTIC * const ANTIC = (struct ATARI_ANTIC *)0xd400; // Atari ZP registers // 1-byte cursor row -char * ROWCRS = 0x54; +char * ROWCRS = (char*)0x54; // 2-byte cursor column -word * COLCRS = 0x55; +word * COLCRS = (word*)0x55; // 2-byte saved memory scan counter -char ** const SAVMSC = 0x58; +char ** const SAVMSC = (char**)0x58; // data under cursor -char * const OLDCHR = 0x5D; +char * const OLDCHR = (char*)0x5D; // 2-byte saved cursor memory address -char ** const OLDADR = 0x5E; +char ** const OLDADR = (char**)0x5E; // Atari OS Shadow registers // OS Shadow ANTIC Direct Memory Access Control ($D400) -char * const SDMCTL = 0x022f; +char * const SDMCTL = (char*)0x022f; // OS Shadow ANTIC Character Control ($D401) -char * const CHART = 0x02f3; +char * const CHART = (char*)0x02f3; // OS Shadow ANTIC Display List Pointer ($D402) -char ** const SDLST = 0x0230; +char ** const SDLST = (char**)0x0230; // OS Shadow ANTIC Character Set Base Address (D409) -char * CHBAS = 0x02f4; +char * CHBAS = (char*)0x02f4; // OS Shadow ANTIC Light Pen Horizontal Position ($D40C) -char * LPENH = 0x234; +char * LPENH = (char*)0x234; // OS Shadow ANTIC Light Pen Vertical Position ($D40D) -char * LPENV = 0x235; +char * LPENV = (char*)0x235; // Color register zero, color of playfield zero. Shadow for 53270 ($D016) -char * const COLOR0 = 0x2C4; +char * const COLOR0 = (char*)0x2C4; // Shadow for 53271 ($D017). Text color in Gr.0 -char * const COLOR1 = 0x2C5; +char * const COLOR1 = (char*)0x2C5; // Shadow for 53272 ($D018). Background color in GR.0 -char * const COLOR2 = 0x2C6; +char * const COLOR2 = (char*)0x2C6; // Shadow for 53273 ($D019) -char * const COLOR3 = 0x2C7; +char * const COLOR3 = (char*)0x2C7; // Shadow for 53274 ($D01A). Border color in GR.0 -char * const COLOR4 = 0x2C8; +char * const COLOR4 = (char*)0x2C8; // Cursor inhibit flag, 0 turns on, any other number turns off. Cursor doesn't change until it moves next. -char * const CRSINH = 0x2F0; +char * const CRSINH = (char*)0x2F0; // Internal hardware value for the last key pressed. Set to 0xFF to clear. -char * const CH = 0x2FC; +char * const CH = (char*)0x2FC; // Atari colours - names from Mapping the Atari. // Add luminance values 0-14 (even only) to increase brightness diff --git a/src/main/kc/include/atari2600.h b/src/main/kc/include/atari2600.h index 8137a0cbd..610853053 100644 --- a/src/main/kc/include/atari2600.h +++ b/src/main/kc/include/atari2600.h @@ -9,11 +9,11 @@ #include <mos6532.h> // Atari TIA write registers -struct ATARI_TIA_WRITE * const TIA = 0x00; +struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *)0x00; // Atari TIA read registers -struct ATARI_TIA_READ * const TIA_READ = 0x00; +struct ATARI_TIA_READ * const TIA_READ = (struct ATARI_TIA_READ *)0x00; // Atari RIOT registers -struct MOS6532_RIOT * const RIOT = 0x280; +struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *)0x280; diff --git a/src/main/kc/include/c64.h b/src/main/kc/include/c64.h index b01d5ad42..702f341dd 100644 --- a/src/main/kc/include/c64.h +++ b/src/main/kc/include/c64.h @@ -8,11 +8,11 @@ // Processor port data direction register -char* const PROCPORT_DDR = 0x00; +char* const PROCPORT_DDR = (char*)0x00; // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written const char PROCPORT_DDR_MEMORY_MASK = 0b00000111; // Processor Port Register controlling RAM/ROM configuration and the datasette -char* const PROCPORT = 0x01; +char* const PROCPORT = (char*)0x01; // RAM in all three areas 0xA000, 0xD000, 0xE000 const char PROCPORT_RAM_ALL = 0b00000000; // RAM in 0xA000, 0xE000 I/O in 0xD000 @@ -25,40 +25,40 @@ const char PROCPORT_KERNEL_IO = 0b00000110; const char PROCPORT_BASIC_KERNEL_IO = 0b00000111; // The address of the CHARGEN character set -char* const CHARGEN = 0xd000; +char* const CHARGEN = (char*)0xd000; // The SID MOS 6581/8580 -struct MOS6581_SID * const SID = 0xd400; +struct MOS6581_SID * const SID = (struct MOS6581_SID *)0xd400; // The VIC-II MOS 6567/6569 -struct MOS6569_VICII* const VICII = 0xd000; +struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)0xd000; // Color Ram -char * const COLORRAM = 0xd800; +char * const COLORRAM = (char*)0xd800; // Color Ram -char * const COLS = 0xd800; +char * const COLS = (char*)0xd800; // Default address of screen character matrix -char * const DEFAULT_SCREEN = 0x0400; +char * const DEFAULT_SCREEN = (char*)0x0400; // Default address of the chargen font (upper case) -char * const DEFAULT_FONT_UPPER = 0x1000; +char * const DEFAULT_FONT_UPPER = (char*)0x1000; // Default address of the chargen font (mixed case) -char * const DEFAULT_FONT_MIXED = 0x1800; +char * const DEFAULT_FONT_MIXED = (char*)0x1800; // The CIA#1: keyboard matrix, joystick #1/#2 -struct MOS6526_CIA * const CIA1 = 0xdc00; +struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)0xdc00; // The CIA#2: Serial bus, RS-232, VIC memory bank -struct MOS6526_CIA * const CIA2 = 0xdd00; +struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)0xdd00; // CIA#1 Interrupt for reading in ASM -char * const CIA1_INTERRUPT = 0xdc0d; +char * const CIA1_INTERRUPT = (char*)0xdc0d; // CIA#2 timer A&B as one single 32-bit value -unsigned long* const CIA2_TIMER_AB = 0xdd04; +unsigned long* const CIA2_TIMER_AB = (unsigned long*)0xdd04; // CIA#2 Interrupt for reading in ASM -char * const CIA2_INTERRUPT = 0xdd0d; +char * const CIA2_INTERRUPT = (char*)0xdd0d; // The vector used when the KERNAL serves IRQ interrupts -void()** const KERNEL_IRQ = 0x0314; +void()** const KERNEL_IRQ = (void()**)0x0314; // The vector used when the KERNAL serves NMI interrupts -void()** const KERNEL_NMI = 0x0318; +void()** const KERNEL_NMI = (void()**)0x0318; // The vector used when the HARDWARE serves IRQ interrupts -void()** const HARDWARE_IRQ = 0xfffe; +void()** const HARDWARE_IRQ = (void()**)0xfffe; // The colors of the C64 const char BLACK = 0x0; diff --git a/src/main/kc/include/c64dtv.h b/src/main/kc/include/c64dtv.h index 06be296b4..cc127e855 100644 --- a/src/main/kc/include/c64dtv.h +++ b/src/main/kc/include/c64dtv.h @@ -8,12 +8,12 @@ #include <c64.h> // Feature enables or disables the extra C64 DTV features -char* const DTV_FEATURE = $d03f; +char* const DTV_FEATURE = (char*)$d03f; const char DTV_FEATURE_ENABLE = 1; const char DTV_FEATURE_DISABLE_TIL_RESET = 2; // Controls the graphics modes of the C64 DTV -char* const DTV_CONTROL = $d03c; +char* const DTV_CONTROL = (char*)$d03c; const char DTV_LINEAR = $01; const char DTV_BORDER_OFF = $02; const char DTV_HIGHCOLOR = $04; @@ -23,43 +23,43 @@ const char DTV_BADLINE_OFF = $20; const char DTV_CHUNKY = $40; // Defines colors for the 16 first colors ($00-$0f) -char* const DTV_PALETTE = $d200; +char* const DTV_PALETTE = (char*)$d200; // Default vallues for the palette char DTV_PALETTE_DEFAULT[16] = { $00, $0f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, $05, $07, $df, $9a, $0a }; // Linear Graphics Plane A Counter Control -char* const DTV_PLANEA_START_LO = $d03a; -char* const DTV_PLANEA_START_MI = $d03b; -char* const DTV_PLANEA_START_HI = $d045; -char* const DTV_PLANEA_STEP = $d046; -char* const DTV_PLANEA_MODULO_LO = $d038; -char* const DTV_PLANEA_MODULO_HI = $d039; +char* const DTV_PLANEA_START_LO = (char*)$d03a; +char* const DTV_PLANEA_START_MI = (char*)$d03b; +char* const DTV_PLANEA_START_HI = (char*)$d045; +char* const DTV_PLANEA_STEP = (char*)$d046; +char* const DTV_PLANEA_MODULO_LO = (char*)$d038; +char* const DTV_PLANEA_MODULO_HI = (char*)$d039; // Linear Graphics Plane B Counter Control -char* const DTV_PLANEB_START_LO = $d049; -char* const DTV_PLANEB_START_MI = $d04a; -char* const DTV_PLANEB_START_HI = $d04b; -char* const DTV_PLANEB_STEP = $d04c; -char* const DTV_PLANEB_MODULO_LO = $d047; -char* const DTV_PLANEB_MODULO_HI = $d048; +char* const DTV_PLANEB_START_LO = (char*)$d049; +char* const DTV_PLANEB_START_MI = (char*)$d04a; +char* const DTV_PLANEB_START_HI = (char*)$d04b; +char* const DTV_PLANEB_STEP = (char*)$d04c; +char* const DTV_PLANEB_MODULO_LO = (char*)$d047; +char* const DTV_PLANEB_MODULO_HI = (char*)$d048; // Select memory bank where sprite data is fetched from (bits 5:0) - source only (J) // Memory address of Sprite RAM is SpriteBank*$10000 -char* const DTV_SPRITE_BANK = $d04d; +char* const DTV_SPRITE_BANK = (char*)$d04d; // Select memory bank where color data is fetched from (bits 11:0) // Memory address of Color RAM is ColorBank*$400 -char* const DTV_COLOR_BANK_LO = $d036; -char* const DTV_COLOR_BANK_HI = $d037; +char* const DTV_COLOR_BANK_LO = (char*)$d036; +char* const DTV_COLOR_BANK_HI = (char*)$d037; const unsigned long DTV_COLOR_BANK_DEFAULT = $1d800; // Selects memory bank for normal VIC color mode and lower data for high color modes. (bits 5:0) // Memory address of VIC Graphics is GraphicsBank*$10000 -char* const DTV_GRAPHICS_VIC_BANK = $d03d; +char* const DTV_GRAPHICS_VIC_BANK = (char*)$d03d; // Selects memory bank for upper data for high color modes. (bits 5:0) - source only (H) -char* const DTV_GRAPHICS_HICOL_BANK = $d03e; +char* const DTV_GRAPHICS_HICOL_BANK = (char*)$d03e; // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff @@ -67,46 +67,46 @@ char* const DTV_GRAPHICS_HICOL_BANK = $d03e; void dtvSetCpuBankSegment1(char cpuBankIdx); // Blitter Source A Start -char* const DTV_BLITTER_SRCA_LO = $d320; -char* const DTV_BLITTER_SRCA_MI = $d321; -char* const DTV_BLITTER_SRCA_HI = $d322; +char* const DTV_BLITTER_SRCA_LO = (char*)$d320; +char* const DTV_BLITTER_SRCA_MI = (char*)$d321; +char* const DTV_BLITTER_SRCA_HI = (char*)$d322; // Blitter Source A Modulo -char* const DTV_BLITTER_SRCA_MOD_LO = $d323; -char* const DTV_BLITTER_SRCA_MOD_HI = $d324; +char* const DTV_BLITTER_SRCA_MOD_LO = (char*)$d323; +char* const DTV_BLITTER_SRCA_MOD_HI = (char*)$d324; // Blitter Source A Line Length -char* const DTV_BLITTER_SRCA_LIN_LO = $d325; -char* const DTV_BLITTER_SRCA_LIN_HI = $d326; +char* const DTV_BLITTER_SRCA_LIN_LO = (char*)$d325; +char* const DTV_BLITTER_SRCA_LIN_HI = (char*)$d326; // Blitter Source A Step ([7:4] integral part, [3:0] fractional part) -char* const DTV_BLITTER_SRCA_STEP = $d327; +char* const DTV_BLITTER_SRCA_STEP = (char*)$d327; // Blitter Source B Start -char* const DTV_BLITTER_SRCB_LO = $d328; -char* const DTV_BLITTER_SRCB_MI = $d329; -char* const DTV_BLITTER_SRCB_HI = $d32a; +char* const DTV_BLITTER_SRCB_LO = (char*)$d328; +char* const DTV_BLITTER_SRCB_MI = (char*)$d329; +char* const DTV_BLITTER_SRCB_HI = (char*)$d32a; // Blitter Source B Modulo -char* const DTV_BLITTER_SRCB_MOD_LO = $d32b; -char* const DTV_BLITTER_SRCB_MOD_HI = $d32c; +char* const DTV_BLITTER_SRCB_MOD_LO = (char*)$d32b; +char* const DTV_BLITTER_SRCB_MOD_HI = (char*)$d32c; // Blitter Source B Line Length -char* const DTV_BLITTER_SRCB_LIN_LO = $d32d; -char* const DTV_BLITTER_SRCB_LIN_HI = $d32e; +char* const DTV_BLITTER_SRCB_LIN_LO = (char*)$d32d; +char* const DTV_BLITTER_SRCB_LIN_HI = (char*)$d32e; // Blitter Source B Step ([7:4] integral part, [3:0] fractional part) -char* const DTV_BLITTER_SRCB_STEP = $d32f; +char* const DTV_BLITTER_SRCB_STEP = (char*)$d32f; // Blitter Destination Start -char* const DTV_BLITTER_DEST_LO = $d330; -char* const DTV_BLITTER_DEST_MI = $d331; -char* const DTV_BLITTER_DEST_HI = $d332; +char* const DTV_BLITTER_DEST_LO = (char*)$d330; +char* const DTV_BLITTER_DEST_MI = (char*)$d331; +char* const DTV_BLITTER_DEST_HI = (char*)$d332; // Blitter Source B Modulo -char* const DTV_BLITTER_DEST_MOD_LO = $d333; -char* const DTV_BLITTER_DEST_MOD_HI = $d334; +char* const DTV_BLITTER_DEST_MOD_LO = (char*)$d333; +char* const DTV_BLITTER_DEST_MOD_HI = (char*)$d334; // Blitter Source B Line Length -char* const DTV_BLITTER_DEST_LIN_LO = $d335; -char* const DTV_BLITTER_DEST_LIN_HI = $d336; +char* const DTV_BLITTER_DEST_LIN_LO = (char*)$d335; +char* const DTV_BLITTER_DEST_LIN_HI = (char*)$d336; // Blitter Source B Step ([7:4] integral part, [3:0] fractional part) -char* const DTV_BLITTER_DEST_STEP = $d337; +char* const DTV_BLITTER_DEST_STEP = (char*)$d337; // Blitter Blit Length -char* const DTV_BLITTER_LEN_LO = $d338; -char* const DTV_BLITTER_LEN_HI = $d339; +char* const DTV_BLITTER_LEN_LO = (char*)$d338; +char* const DTV_BLITTER_LEN_HI = (char*)$d339; // Blitter Control -char* const DTV_BLITTER_CONTROL = $d33a; +char* const DTV_BLITTER_CONTROL = (char*)$d33a; // Bit[0] Force Start Strobe when set const char DTV_BLIT_FORCE_START = %00000001; // Bit[1] Source A Direction Positive when set @@ -124,7 +124,7 @@ const char DTV_BLIT_VBLANK = %01000000; // Bit[7] Blitter IRQ Enable when set const char DTV_BLIT_IRQ_EN = %10000000; // Blitter Transparency -char* const DTV_BLITTER_TRANSPARANCY = $d33b; +char* const DTV_BLITTER_TRANSPARANCY = (char*)$d33b; // Bit[0] Disable Channel B. // (data into b port of ALU is forced to %00000000. ALU functions as normal) const char DTV_BLIT_DISABLE_B = %00000001; @@ -138,7 +138,7 @@ const char DTV_BLIT_WRITE_NONTRANSPARENT = %00000100; // Bit[2]==Bit[1]==0: write in any case const char DTV_BLIT_TRANSPARANCY_NONE = %00000000; // Controls the ALU operation -char* DTV_BLITTER_ALU = $d33e; +char* DTV_BLITTER_ALU = (char*)$d33e; // Bit[2:0] Source A right Shift: 000 SourceA Data, 001 LastA[0],SourceA[7:1], ..., 111 LastA[6:0],SourceA[7] const char DTV_BLIT_SHIFT0 = %00000000; const char DTV_BLIT_SHIFT1 = %00000001; @@ -158,7 +158,7 @@ const char DTV_BLIT_XNOR = %00101000; const char DTV_BLIT_ADD = %00110000; const char DTV_BLIT_SUB = %00111000; // Blitter Control 2 -char* const DTV_BLITTER_CONTROL2 = $d33f; +char* const DTV_BLITTER_CONTROL2 = (char*)$d33f; // Bit[0] Clear Blitter IRQ const char DTV_BLIT_CLEAR_IRQ = %00000001; // Bit[1] Source A Continue diff --git a/src/main/kc/include/cx16-vera.h b/src/main/kc/include/cx16-vera.h index e015d6631..27e4b6975 100644 --- a/src/main/kc/include/cx16-vera.h +++ b/src/main/kc/include/cx16-vera.h @@ -29,15 +29,15 @@ const char LIGHT_GREY = 0xf; // See https://github.com/commanderx16/x16-emulator/wiki/(VERA-0.8)-Registers-$9F23-and-$9F24-(and-$9F25) // $9F20 VRAM Address (7:0) -char * const VERA_ADDRX_L = 0x9f20; +char * const VERA_ADDRX_L = (char*)0x9f20; // $9F21 VRAM Address (15:8) -char * const VERA_ADDRX_M = 0x9f21; +char * const VERA_ADDRX_M = (char*)0x9f21; // $9F22 VRAM Address (7:0) // Bit 4-7: Address Increment The following is the amount incremented per value value:increment // 0:0, 1:1, 2:2, 3:4, 4:8, 5:16, 6:32, 7:64, 8:128, 9:256, 10:512, 11:40, 12:80, 13:160, 14:320, 15:640 // Bit 3: DECR Setting the DECR bit, will decrement instead of increment by the value set by the 'Address Increment' field. // Bit 0: VRAM Address (16) -char * const VERA_ADDRX_H = 0x9f22; +char * const VERA_ADDRX_H = (char*)0x9f22; const char VERA_INC_0 = 0x00; const char VERA_INC_1 = 0x10; const char VERA_INC_2 = 0x20; @@ -71,14 +71,14 @@ const char VERA_DECR_160 = 0xd8; const char VERA_DECR_320 = 0xe8; const char VERA_DECR_640 = 0xf8; // $9F23 DATA0 VRAM Data port 0 -char * const VERA_DATA0 = 0x9f23; +char * const VERA_DATA0 = (char*)0x9f23; // $9F24 DATA1 VRAM Data port 1 -char * const VERA_DATA1 = 0x9f24; +char * const VERA_DATA1 = (char*)0x9f24; // $9F25 CTRL Control // Bit 7: Reset // Bit 1: DCSEL // Bit 2: ADDRSEL -char * const VERA_CTRL = 0x9f25; +char * const VERA_CTRL = (char*)0x9f25; const char VERA_DCSEL = 2; const char VERA_ADDRSEL = 1; // $9F26 IEN Interrupt Enable @@ -87,7 +87,7 @@ const char VERA_ADDRSEL = 1; // Bit 2: SPRCOL // Bit 1: LINE // Bit 0: VSYNC -char * const VERA_IEN = 0x9f26; +char * const VERA_IEN = (char*)0x9f26; const char VERA_AFLOW = 8; const char VERA_SPRCOL = 4; const char VERA_LINE = 2; @@ -100,12 +100,12 @@ const char VERA_VSYNC = 1; // Bit 2: SPRCOL // Bit 1: LINE // Bit 0: VSYNC -char * const VERA_ISR = 0x9f27; +char * const VERA_ISR = (char*)0x9f27; // $9F28 IRQLINE_L IRQ line (7:0) // IRQ_LINE specifies at which line the LINE interrupt will be generated. // Note that bit 8 of this value is present in the IEN register. // For interlaced modes the interrupt will be generated each field and the bit 0 of IRQ_LINE is ignored. -char * const VERA_IRQLINE_L = 0x9f28; +char * const VERA_IRQLINE_L = (char*)0x9f28; // $9F29 DC_VIDEO (DCSEL=0) // Bit 7: Current Field Read-only bit which reflects the active interlaced field in composite and RGB modes. (0: even, 1: odd) @@ -114,7 +114,7 @@ char * const VERA_IRQLINE_L = 0x9f28; // Bit 4: Layer0 Enable Enable output from the Layer0 renderer // Bit 2: Chroma Disable Setting 'Chroma Disable' disables output of chroma in NTSC composite mode and will give a better picture on a monochrome display. (Setting this bit will also disable the chroma output on the S-video output.) // Bit 0-1: Output Mode 0: Video disabled, 1: VGA output, 2: NTSC composite, 3: RGB interlaced, composite sync (via VGA connector) -char * const VERA_DC_VIDEO = 0x9f29; +char * const VERA_DC_VIDEO = (char*)0x9f29; const char VERA_SPRITES_ENABLE = 0x40; const char VERA_LAYER1_ENABLE = 0x20; const char VERA_LAYER0_ENABLE = 0x10; @@ -124,19 +124,19 @@ const char VERA_OUTPUT_VGA = 0x01; const char VERA_OUTPUT_NTSC = 0x02; const char VERA_OUTPUT_RGB = 0x03; // $9F2A DC_HSCALE (DCSEL=0) Active Display H-Scale -char * const VERA_DC_HSCALE = 0x9f2a; +char * const VERA_DC_HSCALE = (char*)0x9f2a; // $9F2B DC_VSCALE (DCSEL=0) Active Display V-Scale -char * const VERA_DC_VSCALE = 0x9f2b; +char * const VERA_DC_VSCALE = (char*)0x9f2b; // $9F2C DC_BORDER (DCSEL=0) Border Color -char * const VERA_DC_BORDER = 0x9f2c; +char * const VERA_DC_BORDER = (char*)0x9f2c; // $9F29 DC_HSTART (DCSEL=1) Active Display H-Start (9:2) -char * const VERA_DC_HSTART = 0x9f29; +char * const VERA_DC_HSTART = (char*)0x9f29; // $9F2A DC_HSTOP (DCSEL=1) Active Display H-Stop (9:2) -char * const VERA_DC_HSTOP = 0x9f2a; +char * const VERA_DC_HSTOP = (char*)0x9f2a; // $9F2B DC_VSTART (DCSEL=1) Active Display V-Start (8:1) -char * const VERA_DC_VSTART = 0x9f2b; +char * const VERA_DC_VSTART = (char*)0x9f2b; // $9F2C DC_VSTOP (DCSEL=1) Active Display V-Stop (8:1) -char * const VERA_DC_VSTOP = 0x9f2c; +char * const VERA_DC_VSTOP = (char*)0x9f2c; // Configuration work tables @@ -165,7 +165,7 @@ byte const VERA_LAYER_COLOR_DEPTH_MASK = 0x03; byte const VERA_LAYER_COLOR_DEPTH[4] = {1, 2, 4, 8}; // $9F2D L0_CONFIG Layer 0 Configuration -char * const VERA_L0_CONFIG = 0x9f2d; +char * const VERA_L0_CONFIG = (char*)0x9f2d; // Bit 2: Bitmap Mode (0:tile mode, 1: bitmap mode) char const VERA_LAYER_CONFIG_MODE_TILE = 0x00; char const VERA_LAYER_CONFIG_MODE_BITMAP = 0x04; @@ -173,7 +173,7 @@ char const VERA_LAYER_CONFIG_MODE_BITMAP = 0x04; char const VERA_LAYER_CONFIG_16C = 0x00; char const VERA_LAYER_CONFIG_256C = 0x08; // $9F2E L0_MAPBASE Layer 0 Map Base Address (16:9) -char * const VERA_L0_MAPBASE = 0x9f2e; +char * const VERA_L0_MAPBASE = (char*)0x9f2e; // $9F2F L0_TILEBASE Layer 0 Tile Base // Bit 2-7: Tile Base Address (16:11) // Bit 1: Tile Height (0:8 pixels, 1:16 pixels) @@ -185,49 +185,49 @@ byte const VERA_TILEBASE_HEIGHT_16 = 0x02; byte const VERA_TILEBASE_HEIGHT_MASK = 0x02; byte const VERA_LAYER_TILEBASE_MASK = 0xfC; // Bit 0: Tile Width (0:8 pixels, 1:16 pixels) -char * const VERA_L0_TILEBASE = 0x9f2f; +char * const VERA_L0_TILEBASE = (char*)0x9f2f; // $9F30 L0_HSCROLL_L Layer 0 H-Scroll (7:0) -char * const VERA_L0_HSCROLL_L = 0x9f30; +char * const VERA_L0_HSCROLL_L = (char*)0x9f30; // $9F31 L0_HSCROLL_H Layer 0 H-Scroll (11:8) -char * const VERA_L0_HSCROLL_H = 0x9f31; +char * const VERA_L0_HSCROLL_H = (char*)0x9f31; // $9F32 L0_VSCROLL_L Layer 0 V-Scroll (7:0) -char * const VERA_L0_VSCROLL_L = 0x9f32; +char * const VERA_L0_VSCROLL_L = (char*)0x9f32; // $9F33 L0_VSCROLL_H Layer 0 V-Scroll (11:8) -char * const VERA_L0_VSCROLL_H = 0x9f33; +char * const VERA_L0_VSCROLL_H = (char*)0x9f33; // $9F34 L1_CONFIG Layer 1 Configuration -char * const VERA_L1_CONFIG = 0x9f34; +char * const VERA_L1_CONFIG = (char*)0x9f34; // $9F35 L1_MAPBASE Layer 1 Map Base Address (16:9) -char * const VERA_L1_MAPBASE = 0x9f35; +char * const VERA_L1_MAPBASE = (char*)0x9f35; // $9F36 L1_TILEBASE Layer 1 Tile Base // Bit 2-7: Tile Base Address (16:11) // Bit 1: Tile Height (0:8 pixels, 1:16 pixels) // Bit 0: Tile Width (0:8 pixels, 1:16 pixels) -char * const VERA_L1_TILEBASE = 0x9f36; +char * const VERA_L1_TILEBASE = (char*)0x9f36; // $9F37 L1_HSCROLL_L Layer 1 H-Scroll (7:0) -char * const VERA_L1_HSCROLL_L = 0x9f37; +char * const VERA_L1_HSCROLL_L = (char*)0x9f37; // $9F38 L1_HSCROLL_H Layer 1 H-Scroll (11:8) -char * const VERA_L1_HSCROLL_H = 0x9f38; +char * const VERA_L1_HSCROLL_H = (char*)0x9f38; // $9F39 L1_VSCROLL_L Layer 1 V-Scroll (7:0) -char * const VERA_L1_VSCROLL_L = 0x9f39; +char * const VERA_L1_VSCROLL_L = (char*)0x9f39; // $9F3A L1_VSCROLL_H Layer 1 V-Scroll (11:8) -char * const VERA_L1_VSCROLL_H = 0x9f3a; +char * const VERA_L1_VSCROLL_H = (char*)0x9f3a; // $9F3B AUDIO_CTRL // Bit 7: FIFO Full / FIFO Reset // Bit 5: 16-Bit // Bit 4: Stereo // Bit 0-3: PCM Volume -char * const VERA_AUDIO_CTRL = 0x9f3b; +char * const VERA_AUDIO_CTRL = (char*)0x9f3b; // $9F3C AUDIO_RATE PCM Sample Rate -char * const VERA_AUDIO_RATE = 0x9f3c; +char * const VERA_AUDIO_RATE = (char*)0x9f3c; // $9F3D AUDIO_DATA Audio FIFO data (write-only) -char * const VERA_AUDIO_DATA = 0x9f3d; +char * const VERA_AUDIO_DATA = (char*)0x9f3d; // $9F3E SPI_DATA SPI Data -char * const VERA_SPI_DATA = 0x9f3e; +char * const VERA_SPI_DATA = (char*)0x9f3e; // $9F3F SPI_CTRL SPI Control // Bit 7: Busy // Bit 1: Slow clock // Bit 0: Select -char * const VERA_SPI_CTRL = 0x9f3f; +char * const VERA_SPI_CTRL = (char*)0x9f3f; // VERA Palette address in VRAM $1FA00 - $1FBFF // 256 entries of 2 bytes diff --git a/src/main/kc/include/cx16.h b/src/main/kc/include/cx16.h index ba9172380..3908a755b 100644 --- a/src/main/kc/include/cx16.h +++ b/src/main/kc/include/cx16.h @@ -11,7 +11,7 @@ // Port A Bits 0-7 RAM bank // Port B Bits 0-2 ROM bank // Port B Bits 3-7 [TBD] -struct MOS6522_VIA * const VIA1 = 0x9f60; +struct MOS6522_VIA * const VIA1 = (struct MOS6522_VIA *)0x9f60; // The VIA#2: Keyboard/Joy/Mouse // Port A Bit 0 KBD PS/2 DAT // Port A Bit 1 KBD PS/2 CLK @@ -25,23 +25,23 @@ struct MOS6522_VIA * const VIA1 = 0x9f60; // Port B Bit 1 MOUSE PS/2 CLK // Port B Bits 2-7 [TBD] // NOTE: The pin assignment of the NES/SNES controller is likely to change. -struct MOS6522_VIA * const VIA2 = 0x9f70; +struct MOS6522_VIA * const VIA2 = (struct MOS6522_VIA *)0x9f70; // Interrupt Vectors // https://github.com/commanderx16/x16-emulator/wiki/(ASM-Programming)-Interrupts-and-interrupt-handling // $FFFE (ROM) Universal interrupt vector - The vector used when the HARDWARE serves IRQ interrupts -void()** const HARDWARE_IRQ = 0xfffe; +void()** const HARDWARE_IRQ = (void()**)0xfffe; // $0314 (RAM) IRQ vector - The vector used when the KERNAL serves IRQ interrupts -void()** const KERNEL_IRQ = 0x0314; +void()** const KERNEL_IRQ = (void()**)0x0314; // $0316 (RAM) BRK vector - The vector used when the KERNAL serves IRQ caused by a BRK -void()** const KERNEL_BRK = 0x0316; +void()** const KERNEL_BRK = (void()**)0x0316; // VRAM Address of the default screen -char * const DEFAULT_SCREEN = 0x0000; +char * const DEFAULT_SCREEN = (char*)0x0000; // VRAM Bank (0/1) of the default screen -char * const DEFAULT_SCREEN_VBANK = 0; +char * const DEFAULT_SCREEN_VBANK = (char*)0; // Put a single byte into VRAM. // Uses VERA DATA0 diff --git a/src/main/kc/include/mega65-math.h b/src/main/kc/include/mega65-math.h index e2e16d78f..84f49abb2 100644 --- a/src/main/kc/include/mega65-math.h +++ b/src/main/kc/include/mega65-math.h @@ -13,43 +13,43 @@ // $D70F MATH BUSY // Bit 7: DIVBUSY // Bit 6: MULBUSY -char * const MATH_BUSY = 0xd70f; +char * const MATH_BUSY = (char *)0xd70f; // $D768-$D76F DIVOUT 64-bit output of MULTINA ÷ MULTINB // $D768-$D76B DIVOUT FRAC 32-bit output of MULTINA ÷ MULTINB -signed char volatile * const MATH_DIVOUT_FRAC_CHAR0 = 0xd768; -signed char volatile * const MATH_DIVOUT_FRAC_CHAR1 = 0xd769; -signed char volatile * const MATH_DIVOUT_FRAC_CHAR2 = 0xd76a; -signed char volatile * const MATH_DIVOUT_FRAC_CHAR3 = 0xd76b; -signed int volatile * const MATH_DIVOUT_FRAC_INT0 = 0xd768; -signed int volatile * const MATH_DIVOUT_FRAC_INT1 = 0xd76a; -signed long volatile * const MATH_DIVOUT_FRAC_LONG0 = 0xd768; +signed char volatile * const MATH_DIVOUT_FRAC_CHAR0 = (signed char*)0xd768; +signed char volatile * const MATH_DIVOUT_FRAC_CHAR1 = (signed char*)0xd769; +signed char volatile * const MATH_DIVOUT_FRAC_CHAR2 = (signed char*)0xd76a; +signed char volatile * const MATH_DIVOUT_FRAC_CHAR3 = (signed char*)0xd76b; +signed int volatile * const MATH_DIVOUT_FRAC_INT0 = (signed int*)0xd768; +signed int volatile * const MATH_DIVOUT_FRAC_INT1 = (signed int*)0xd76a; +signed long volatile * const MATH_DIVOUT_FRAC_LONG0 = (signed long*)0xd768; // $D768-$D76F DIVOUT 64-bit output of MULTINA ÷ MULTINB -signed char volatile * const MATH_DIVOUT_WHOLE_CHAR0 = 0xd76c; -signed int volatile * const MATH_DIVOUT_WHOLE_INT0 = 0xd76c; -signed int volatile * const MATH_DIVOUT_WHOLE_INT1 = 0xd76e; -signed long volatile * const MATH_DIVOUT_WHOLE_LONG = 0xd76c; +signed char volatile * const MATH_DIVOUT_WHOLE_CHAR0 = (signed char*)0xd76c; +signed int volatile * const MATH_DIVOUT_WHOLE_INT0 = (signed int*)0xd76c; +signed int volatile * const MATH_DIVOUT_WHOLE_INT1 = (signed int*)0xd76e; +signed long volatile * const MATH_DIVOUT_WHOLE_LONG = (signed long*)0xd76c; // $D770-$D773 MULTINA Multiplier input A / Divider numerator (32 bit) -signed char * const MATH_MULTINA_CHAR0 = 0xd770; -signed char * const MATH_MULTINA_CHAR1 = 0xd771; -signed char * const MATH_MULTINA_CHAR2 = 0xd772; -signed char * const MATH_MULTINA_CHAR3 = 0xd773; -signed int * const MATH_MULTINA_INT0 = 0xd770; -signed int * const MATH_MULTINA_INT1 = 0xd772; -signed long * const MATH_MULTINA_LONG = 0xd770; +signed char * const MATH_MULTINA_CHAR0 = (signed char*)0xd770; +signed char * const MATH_MULTINA_CHAR1 = (signed char*)0xd771; +signed char * const MATH_MULTINA_CHAR2 = (signed char*)0xd772; +signed char * const MATH_MULTINA_CHAR3 = (signed char*)0xd773; +signed int * const MATH_MULTINA_INT0 = (signed int*)0xd770; +signed int * const MATH_MULTINA_INT1 = (signed int*)0xd772; +signed long * const MATH_MULTINA_LONG = (signed long*)0xd770; // $D774-$D777 MULTINB Multiplier input B / Divider denominator (32 bit) -signed char * const MATH_MULTINB_CHAR0 = 0xd774; -signed char * const MATH_MULTINB_CHAR1 = 0xd775; -signed char * const MATH_MULTINB_CHAR2 = 0xd776; -signed char * const MATH_MULTINB_CHAR3 = 0xd777; -signed int * const MATH_MULTINB_INT0 = 0xd774; -signed int * const MATH_MULTINB_INT1 = 0xd776; -signed long * const MATH_MULTINB_LONG = 0xd774; +signed char * const MATH_MULTINB_CHAR0 = (signed char*)0xd774; +signed char * const MATH_MULTINB_CHAR1 = (signed char*)0xd775; +signed char * const MATH_MULTINB_CHAR2 = (signed char*)0xd776; +signed char * const MATH_MULTINB_CHAR3 = (signed char*)0xd777; +signed int * const MATH_MULTINB_INT0 = (signed int*)0xd774; +signed int * const MATH_MULTINB_INT1 = (signed int*)0xd776; +signed long * const MATH_MULTINB_LONG = (signed long*)0xd774; // $D778-$D77F MULTOUT 64-bit output of MULTINA × MULTINB -signed char volatile * const MATH_MULTOUT_CHAR0 = 0xd778; -signed int volatile * const MATH_MULTOUT_INT0 = 0xd778; -signed long volatile * const MATH_MULTOUT_LONG0 = 0xd778; -signed long volatile * const MATH_MULTOUT_LONG1 = 0xd77c; \ No newline at end of file +signed char volatile * const MATH_MULTOUT_CHAR0 = (signed char*)0xd778; +signed int volatile * const MATH_MULTOUT_INT0 = (signed int*)0xd778; +signed long volatile * const MATH_MULTOUT_LONG0 = (signed long*)0xd778; +signed long volatile * const MATH_MULTOUT_LONG1 = (signed long*)0xd77c; \ No newline at end of file diff --git a/src/main/kc/include/mega65.h b/src/main/kc/include/mega65.h index 739c9f460..57700cfc2 100644 --- a/src/main/kc/include/mega65.h +++ b/src/main/kc/include/mega65.h @@ -12,18 +12,18 @@ #include <mega65-math.h> // I/O Personality selection -volatile char * const IO_KEY = 0xd02f; +volatile char * const IO_KEY = (char*)0xd02f; // C65 Banking Register -volatile char * const IO_BANK = 0xd030; +volatile char * const IO_BANK = (char*)0xd030; // Map 2nd KB of colour RAM $DC00-$DFFF (hiding CIA's) const char CRAM2K = 0b00000001; // Processor port data direction register -char* const PROCPORT_DDR = 0x00; +char* const PROCPORT_DDR = (char*)0x00; // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written const char PROCPORT_DDR_MEMORY_MASK = 0b00000111; // Processor Port Register controlling RAM/ROM configuration and the datasette -char* const PROCPORT = 0x01; +char* const PROCPORT = (char*)0x01; // RAM in all three areas 0xA000, 0xD000, 0xE000 const char PROCPORT_RAM_ALL = 0b00000000; // RAM in 0xA000, 0xE000 I/O in 0xD000 @@ -36,50 +36,50 @@ const char PROCPORT_KERNEL_IO = 0b00000110; const char PROCPORT_BASIC_KERNEL_IO = 0b00000111; // The VIC-II MOS 6567/6569 -struct MOS6569_VICII* const VICII = 0xd000; +struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)0xd000; // The VIC III MOS 4567/4569 -struct MOS4569_VICIII* const VICIII = 0xd000; +struct MOS4569_VICIII* const VICIII = (struct MOS4569_VICIII*)0xd000; // The VIC IV -struct MEGA65_VICIV* const VICIV = 0xd000; +struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*)0xd000; // The address of the CHARGEN character set -char * const CHARGEN = 0xd000; +char * const CHARGEN = (char*)0xd000; // Palette RED -char * const PALETTE_RED = 0xd100; +char * const PALETTE_RED = (char*)0xd100; // Palette GREEN -char * const PALETTE_GREEN = 0xd200; +char * const PALETTE_GREEN = (char*)0xd200; // Palette BLUE -char * const PALETTE_BLUE = 0xd300; +char * const PALETTE_BLUE = (char*)0xd300; // The SID MOS 6581/8580 -struct MOS6581_SID * const SID = 0xd400; +struct MOS6581_SID * const SID = (struct MOS6581_SID *)0xd400; // DMAgic F018 Controller -struct F018_DMAGIC * const DMA = 0xd700; +struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)0xd700; // Color Ram -char * const COLORRAM = 0xd800; +char * const COLORRAM = (char*)0xd800; // Default address of screen character matrix #ifdef __MEGA65_C64__ - char * const DEFAULT_SCREEN = 0x0400; + char * const DEFAULT_SCREEN = (char*)0x0400; #else - char * const DEFAULT_SCREEN = 0x0800; + char * const DEFAULT_SCREEN = (char*)0x0800; #endif // The CIA#1: keyboard matrix, joystick #1/#2 -struct MOS6526_CIA * const CIA1 = 0xdc00; +struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)0xdc00; // The CIA#2: Serial bus, RS-232, VIC memory bank -struct MOS6526_CIA * const CIA2 = 0xdd00; +struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)0xdd00; // CIA#1 Interrupt for reading in ASM -char * const CIA1_INTERRUPT = 0xdc0d; +char * const CIA1_INTERRUPT = (char*)0xdc0d; // CIA#2 timer A&B as one single 32-bit value -unsigned long* const CIA2_TIMER_AB = 0xdd04; +unsigned long* const CIA2_TIMER_AB = (unsigned long*)0xdd04; // CIA#2 Interrupt for reading in ASM -char * const CIA2_INTERRUPT = 0xdd0d; +char * const CIA2_INTERRUPT = (char*)0xdd0d; // The vector used when the KERNAL serves IRQ interrupts -void()** const KERNEL_IRQ = 0x0314; +void()** const KERNEL_IRQ = (void()**)0x0314; // The vector used when the KERNAL serves NMI interrupts -void()** const KERNEL_NMI = 0x0318; +void()** const KERNEL_NMI = (void()**)0x0318; // The vector used when the HARDWARE serves IRQ interrupts -void()** const HARDWARE_IRQ = 0xfffe; +void()** const HARDWARE_IRQ = (void()**)0xfffe; // The colors of the C64 const char BLACK = 0x0; diff --git a/src/main/kc/include/mos6569.h b/src/main/kc/include/mos6569.h index 93f2b23e6..24d160b9e 100644 --- a/src/main/kc/include/mos6569.h +++ b/src/main/kc/include/mos6569.h @@ -152,46 +152,46 @@ const char BORDER_YPOS_BOTTOM=250; // The offset of the sprite pointers from the screen start address const unsigned int OFFSET_SPRITE_PTRS = 0x3f8; -char * const SPRITES_XPOS = $d000; -char * const SPRITES_YPOS = $d001; -char * const SPRITES_XMSB = $d010; -char * const SPRITES_COLOR = $d027; -char* const SPRITES_ENABLE = $d015; -char* const SPRITES_EXPAND_Y = $d017; -char* const SPRITES_PRIORITY = $d01b; -char* const SPRITES_MC = $d01c; -char* const SPRITES_EXPAND_X = $d01d; +char * const SPRITES_XPOS = (char*)$d000; +char * const SPRITES_YPOS = (char*)$d001; +char * const SPRITES_XMSB = (char*)$d010; +char * const SPRITES_COLOR = (char*)$d027; +char* const SPRITES_ENABLE = (char*)$d015; +char* const SPRITES_EXPAND_Y = (char*)$d017; +char* const SPRITES_PRIORITY = (char*)$d01b; +char* const SPRITES_MC = (char*)$d01c; +char* const SPRITES_EXPAND_X = (char*)$d01d; -char* const RASTER = $d012; -char* const BORDER_COLOR = $d020; -char* const BG_COLOR = $d021; -char* const BG_COLOR0 = $d021; -char* const BG_COLOR1 = $d022; -char* const BG_COLOR2 = $d023; -char* const BG_COLOR3 = $d024; -char* const SPRITES_MC1 = $d025; -char* const SPRITES_MC2 = $d026; +char* const RASTER = (char*)$d012; +char* const BORDER_COLOR = (char*)$d020; +char* const BG_COLOR = (char*)$d021; +char* const BG_COLOR0 = (char*)$d021; +char* const BG_COLOR1 = (char*)$d022; +char* const BG_COLOR2 = (char*)$d023; +char* const BG_COLOR3 = (char*)$d024; +char* const SPRITES_MC1 = (char*)$d025; +char* const SPRITES_MC2 = (char*)$d026; -char* const VICII_CONTROL1 = $d011; -char* const D011 = $d011; +char* const VICII_CONTROL1 = (char*)$d011; +char* const D011 = (char*)$d011; const char VICII_RST8 = %10000000; const char VICII_ECM = %01000000; const char VICII_BMM = %00100000; const char VICII_DEN = %00010000; const char VICII_RSEL = %00001000; -char* const VICII_CONTROL2 = $d016; -char* const D016 = $d016; +char* const VICII_CONTROL2 = (char*)$d016; +char* const D016 = (char*)$d016; const char VICII_MCM = %00010000; const char VICII_CSEL = %00001000; -char* const VICII_MEMORY = $d018; -char* const D018 = $d018; +char* const VICII_MEMORY = (char*)$d018; +char* const D018 = (char*)$d018; // VIC II IRQ Status Register -char* const IRQ_STATUS = $d019; +char* const IRQ_STATUS = (char*)$d019; // VIC II IRQ Enable Register -char* const IRQ_ENABLE = $d01a; +char* const IRQ_ENABLE = (char*)$d01a; // Bits for the VICII IRQ Status/Enable Registers const char IRQ_RASTER = %00000001; diff --git a/src/main/kc/include/mos6581.h b/src/main/kc/include/mos6581.h index 1d3fb4dfc..41ae1e0ab 100644 --- a/src/main/kc/include/mos6581.h +++ b/src/main/kc/include/mos6581.h @@ -50,29 +50,29 @@ struct MOS6581_SID { }; // Channel 1 Frequency Low byte -char * const SID_CH1_FREQ_LO = 0xd400; +char * const SID_CH1_FREQ_LO = (char*)0xd400; // Channel 1 Frequency High byte -char * const SID_CH1_FREQ_HI = 0xd401; +char * const SID_CH1_FREQ_HI = (char*)0xd401; // Channel 1 Pulse Width (0-4095) Low byte -char * const SID_CH1_PULSE_WIDTH_LO = 0xd402; +char * const SID_CH1_PULSE_WIDTH_LO = (char*)0xd402; // Channel 1 Pulse Width (0-4095) High byte -char * const SID_CH1_PULSE_WIDTH_HI = 0xd403; +char * const SID_CH1_PULSE_WIDTH_HI = (char*)0xd403; // Channel 2 Frequency Low byte -char * const SID_CH2_FREQ_LO = 0xd407; +char * const SID_CH2_FREQ_LO = (char*)0xd407; // Channel 2 Frequency High byte -char * const SID_CH2_FREQ_HI = 0xd408; +char * const SID_CH2_FREQ_HI = (char*)0xd408; // Channel 2 Pulse Width (0-4095) Low byte -char * const SID_CH2_PULSE_WIDTH_LO = 0xd409; +char * const SID_CH2_PULSE_WIDTH_LO = (char*)0xd409; // Channel 2 Pulse Width (0-4095) High byte -char * const SID_CH2_PULSE_WIDTH_HI = 0xd40a; +char * const SID_CH2_PULSE_WIDTH_HI = (char*)0xd40a; // Channel 3 Frequency Low byte -char * const SID_CH3_FREQ_LO = 0xd40e; +char * const SID_CH3_FREQ_LO = (char*)0xd40e; // Channel 3 Frequency High byte -char * const SID_CH3_FREQ_HI = 0xd40f; +char * const SID_CH3_FREQ_HI = (char*)0xd40f; // Channel 3 Pulse Width (0-4095) Low byte -char * const SID_CH3_PULSE_WIDTH_LO = 0xd410; +char * const SID_CH3_PULSE_WIDTH_LO = (char*)0xd410; // Channel 3 Pulse Width (0-4095) High byte -char * const SID_CH3_PULSE_WIDTH_HI = 0xd411; +char * const SID_CH3_PULSE_WIDTH_HI = (char*)0xd411; // SID Channel Control Register Noise Waveform const char SID_CONTROL_NOISE = 0x80; diff --git a/src/main/kc/include/nes.h b/src/main/kc/include/nes.h index 52ce861b8..afe34095d 100644 --- a/src/main/kc/include/nes.h +++ b/src/main/kc/include/nes.h @@ -8,13 +8,13 @@ #include <ricoh_2a03.h> // NES Picture Processing Unit (PPU) -struct RICOH_2C02 * PPU = 0x2000; +struct RICOH_2C02 * PPU = (struct RICOH_2C02 *)0x2000; // NES CPU and audion processing unit (APU) -struct RICOH_2A03 * APU = 0x4000; +struct RICOH_2A03 * APU = (struct RICOH_2A03 *)0x4000; // Pointer to the start of RAM memory -char * const MEMORY = 0; +char * const MEMORY = (char *)0; // Sprite Object Attribute Memory Structure // The memory layout of a sprite in the PPU's OAM memory diff --git a/src/main/kc/include/plus4.h b/src/main/kc/include/plus4.h index 7afde4e87..515ccaaeb 100644 --- a/src/main/kc/include/plus4.h +++ b/src/main/kc/include/plus4.h @@ -13,29 +13,29 @@ #endif // The processor port // Used for serial I/O and controlling the cassette -struct MOS7501_PORT * const PROCESSOR_PORT = 0x00; +struct MOS7501_PORT * const PROCESSOR_PORT = (struct MOS7501_PORT *)0x00; // Default address of screen luminance/color matrix -char * const DEFAULT_COLORRAM = 0x0800; +char * const DEFAULT_COLORRAM = (char*)0x0800; // Default address of screen character matrix -char * const DEFAULT_SCREEN = 0x0c00; +char * const DEFAULT_SCREEN = (char*)0x0c00; // The ACIA used for RS232 (only on the Plus/4) -struct MOS6551_ACIA * const ACIA = 0xfd00; +struct MOS6551_ACIA * const ACIA = (struct MOS6551_ACIA *)0xfd00; // User Port PIO (P0-P7) // Bit 2 (P2) is used to detect if play on cassette is pressed (CST sense) -struct MOS6529_PIO * const USER_PORT = 0xfd10; +struct MOS6529_PIO * const USER_PORT = (struct MOS6529_PIO *)0xfd10; // Keyboard Port PIO (P0-P7) // The input latch is part of the TED. -struct MOS6529_PIO * const KEYBOARD_PORT = 0xfd30; +struct MOS6529_PIO * const KEYBOARD_PORT = (struct MOS6529_PIO *)0xfd30; // ROM configuration for the machine, which normally has the BASIC and kernal ROMs enabled. // The ROM configuration is adjusted by writing to the registers (the value is irrelevant). // The upper portion of the kernal ROM at $FC00-$FCFF is always enabled no matter what the memory configuration, as are the I/O registers. -struct { +struct PLUS4_ROM_BANKING { // $FDD0 enables or disables BASIC, char BASIC; // $FDD1 the low function ROM, @@ -50,10 +50,12 @@ struct { char FUNCTION_HIGH; // $FDD6 the high cartridge ROM. char CARTRIDGE_HIGH; -} * const ROM_BANKING = 0xfdd0; +}; + +struct PLUS4_ROM_BANKING * const ROM_BANKING = (struct PLUS4_ROM_BANKING *)0xfdd0; // The TED chip controlling video and sound on the Plus/4 and Commodore 16 -struct MOS7360_TED * const TED = 0xff00; +struct MOS7360_TED * const TED = (struct MOS7360_TED *)0xff00; diff --git a/src/main/kc/include/ricoh_2a03.h b/src/main/kc/include/ricoh_2a03.h index 4a212242d..7d340d4bf 100644 --- a/src/main/kc/include/ricoh_2a03.h +++ b/src/main/kc/include/ricoh_2a03.h @@ -116,7 +116,7 @@ struct RICOH_2A03 { // ------+-----+--------------------------------------------------------------- // Side effects After 3 or 4 CPU clock cycles*, the timer is reset. // If the mode flag is set, then both "quarter frame" and "half frame" signals are also generated. -char * const FR_COUNTER = 0x4017; +char * const FR_COUNTER = (char*)0x4017; diff --git a/src/main/kc/include/ricoh_2c02.h b/src/main/kc/include/ricoh_2c02.h index 556f480b2..6440e9edd 100644 --- a/src/main/kc/include/ricoh_2c02.h +++ b/src/main/kc/include/ricoh_2c02.h @@ -7,28 +7,28 @@ // PPU Memory Map // $0000-$0fff $1000 Pattern table 0 -char * const PPU_PATTERN_TABLE_0 = 0x0000; +char * const PPU_PATTERN_TABLE_0 = (char*)0x0000; // $1000-$1fff $1000 Pattern table 1 -char * const PPU_PATTERN_TABLE_1 = 0x1000; +char * const PPU_PATTERN_TABLE_1 = (char*)0x1000; // $2000-$23bf $03c0 Name table 0 -char * const PPU_NAME_TABLE_0 = 0x2000; +char * const PPU_NAME_TABLE_0 = (char*)0x2000; // $23c0-$23ff $0040 Attribute table 0 -char * const PPU_ATTRIBUTE_TABLE_0 = 0x23c0; +char * const PPU_ATTRIBUTE_TABLE_0 = (char*)0x23c0; // $2400-$27bf $03c0 Name table 1 -char * const PPU_NAME_TABLE_1 = 0x2400; +char * const PPU_NAME_TABLE_1 = (char*)0x2400; // $27c0-$27ff $0040 Attribute table 1 -char * const PPU_ATTRIBUTE_TABLE_1 = 0x27c0; +char * const PPU_ATTRIBUTE_TABLE_1 = (char*)0x27c0; // $2800-$2bbf $03c0 Name table 2 -char * const PPU_NAME_TABLE_2 = 0x2800; +char * const PPU_NAME_TABLE_2 = (char*)0x2800; // $2bc0-$2bff $0040 Attribute table 2 -char * const PPU_ATTRIBUTE_TABLE_2 = 0x2bc0; +char * const PPU_ATTRIBUTE_TABLE_2 = (char*)0x2bc0; // $2c00-$2fbf $03c0 Name table 3 -char * const PPU_NAME_TABLE_3 = 0x2c00; +char * const PPU_NAME_TABLE_3 = (char*)0x2c00; // $2fc0-$2fff $0040 Attribute table 3 -char * const PPU_ATTRIBUTE_TABLE_3 = 0x2fc0; +char * const PPU_ATTRIBUTE_TABLE_3 = (char*)0x2fc0; // $3000-$3eff $0f00 Mirrors of $2000-$2eff // $3f00-$3f1f $0020 Palette RAM indexes -char * const PPU_PALETTE = 0x3f00; +char * const PPU_PALETTE = (char*)0x3f00; // $3f20-$3fff $00e0 Mirrors of $3f00-$3f1f struct RICOH_2C02 { @@ -136,7 +136,7 @@ struct RICOH_2C02 { }; // PPU Status Register for reading in ASM -volatile char * const PPU_PPUSTATUS = 0x2002; +volatile char * const PPU_PPUSTATUS = (char*)0x2002; // PPU Data Register for reading in ASM -volatile char * const PPU_PPUDATA = 0x2007; +volatile char * const PPU_PPUDATA = (char*)0x2007; diff --git a/src/main/kc/include/vic20.h b/src/main/kc/include/vic20.h index 8827f3283..05e34dafc 100644 --- a/src/main/kc/include/vic20.h +++ b/src/main/kc/include/vic20.h @@ -9,22 +9,22 @@ #endif // Default address of screen color matrix -char * const DEFAULT_COLORRAM = 0x9600; +char * const DEFAULT_COLORRAM = (char*)0x9600; // Address of screen color matrix if bit 7 of $9002 is 1 -char * const ALTERNATIVE_COLORRAM = 0x9400; +char * const ALTERNATIVE_COLORRAM = (char*)0x9400; // Default address of screen character matrix -char * const DEFAULT_SCREEN = 0x1e00; +char * const DEFAULT_SCREEN = (char*)0x1e00; // The address of the CHARGEN character set -char * const CHARGEN = 0x8000; +char * const CHARGEN = (char*)0x8000; // The MOS 6560/6561 VIC Video Interface Chip -struct MOS6561_VIC * const VIC = 0x9000; +struct MOS6561_VIC * const VIC = (struct MOS6561_VIC *)0x9000; // The VIA#1: User port, RS-232, Joystick, Lightpen, Cassette -struct MOS6522_VIA * const VIA1 = 0x9110; +struct MOS6522_VIA * const VIA1 = (struct MOS6522_VIA *)0x9110; // The VIA#2: Keyboard, Joystick, Cassette -struct MOS6522_VIA * const VIA2 = 0x9120; +struct MOS6522_VIA * const VIA2 = (struct MOS6522_VIA *)0x9120; // The colors of the VIC 20 const char BLACK = 0x0; diff --git a/src/main/kc/lib/c64-basic-floats.c b/src/main/kc/lib/c64-basic-floats.c index c7d4341e5..3f67e9630 100644 --- a/src/main/kc/lib/c64-basic-floats.c +++ b/src/main/kc/lib/c64-basic-floats.c @@ -5,8 +5,8 @@ #include <c64-basic-floats.h> // Zeropage addresses used to hold lo/hi-bytes of addresses of float numbers in MEM -char* const memLo = 0xfe; -char* const memHi = 0xff; +char* const memLo = (char*)0xfe; +char* const memHi = (char*)0xff; // Prepare MEM pointers for operations using MEM inline void prepareMEM(unsigned int mem) { diff --git a/src/main/kc/lib/c64-multiplexer.c b/src/main/kc/lib/c64-multiplexer.c index b659fe8f5..cc56a2310 100644 --- a/src/main/kc/lib/c64-multiplexer.c +++ b/src/main/kc/lib/c64-multiplexer.c @@ -28,7 +28,7 @@ char PLEX_YPOS[PLEX_COUNT]; char PLEX_PTR[PLEX_COUNT]; // The address of the sprite pointers on the current screen (screen+0x3f8). -char* volatile PLEX_SCREEN_PTR = 0x400+0x3f8; +char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8; // Indexes of the plex-sprites sorted by sprite y-position. Each call to plexSort() will fix the sorting if changes to the Y-positions have ruined it. char PLEX_SORTED_IDX[PLEX_COUNT]; diff --git a/src/main/kc/lib/c64-print.c b/src/main/kc/lib/c64-print.c index 4bb917307..c71b16da5 100644 --- a/src/main/kc/lib/c64-print.c +++ b/src/main/kc/lib/c64-print.c @@ -1,7 +1,7 @@ #include <stdlib.h> #include <string.h> -char* print_screen = $0400; +char* print_screen = (char*)$0400; char* print_line_cursor = print_screen; char* print_char_cursor = print_line_cursor; diff --git a/src/main/kc/lib/c64dtv.c b/src/main/kc/lib/c64dtv.c index e35d144c8..3434a012c 100644 --- a/src/main/kc/lib/c64dtv.c +++ b/src/main/kc/lib/c64dtv.c @@ -11,7 +11,7 @@ // The actual memory addressed will be $4000*cpuSegmentIdx void dtvSetCpuBankSegment1(char cpuBankIdx) { // Move CPU BANK 1 SEGMENT ($4000-$7fff) - char* cpuBank = $ff; + char* cpuBank = (char*)$ff; *cpuBank = cpuBankIdx; asm { // SAC $dd - A register points to 13 BANK 1 segment diff --git a/src/main/kc/lib/conio-c64.c b/src/main/kc/lib/conio-c64.c index a8eb6cd65..dd1b2f617 100644 --- a/src/main/kc/lib/conio-c64.c +++ b/src/main/kc/lib/conio-c64.c @@ -22,7 +22,7 @@ const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE; // Set initial cursor position void conio_c64_init() { // Position cursor at current line - char * const BASIC_CURSOR_LINE = 0xD6; + char * const BASIC_CURSOR_LINE = (char*)0xD6; char line = *BASIC_CURSOR_LINE; if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; gotoxy(0, line); @@ -31,9 +31,9 @@ void conio_c64_init() { // Return true if there's a key waiting, return false if not unsigned char kbhit (void) { // CIA#1 Port A: keyboard matrix columns and joystick #2 - char* const CIA1_PORT_A = 0xdc00; + char* const CIA1_PORT_A = (char*)0xdc00; // CIA#1 Port B: keyboard matrix rows and joystick #1. - char* const CIA1_PORT_B = 0xdc01; + char* const CIA1_PORT_B = (char*)0xdc01; *CIA1_PORT_A = 0; return ~*CIA1_PORT_B; } @@ -41,7 +41,7 @@ unsigned char kbhit (void) { // Set the color for the background. The old color setting is returned. unsigned char bgcolor(unsigned char color) { // The background color register address - char * const CONIO_BGCOLOR = 0xd021; + char * const CONIO_BGCOLOR = (char*)0xd021; char old = *CONIO_BGCOLOR; *CONIO_BGCOLOR = color; return old; @@ -50,7 +50,7 @@ unsigned char bgcolor(unsigned char color) { // Set the color for the border. The old color setting is returned. unsigned char bordercolor(unsigned char color) { // The border color register address - char * const CONIO_BORDERCOLOR = 0xd020; + char * const CONIO_BORDERCOLOR = (char*)0xd020; char old = *CONIO_BORDERCOLOR; *CONIO_BORDERCOLOR = color; return old; diff --git a/src/main/kc/lib/conio-cx16.c b/src/main/kc/lib/conio-cx16.c index 23dca6fbd..5dbe90d7f 100644 --- a/src/main/kc/lib/conio-cx16.c +++ b/src/main/kc/lib/conio-cx16.c @@ -69,7 +69,7 @@ __ma word conio_rowskip = 0; // Set initial cursor position void conio_x16_init() { // Position cursor at current line - char * const BASIC_CURSOR_LINE = 0xD6; + char * const BASIC_CURSOR_LINE = (char*)0xD6; char line = *BASIC_CURSOR_LINE; vera_layer_mode_text(1,(dword)0x00000,(dword)0x0F800,128,64,8,8,16); screensize(&conio_screen_width, &conio_screen_height); @@ -88,8 +88,8 @@ unsigned char kbhit(void) { char ch = 0; char* const chptr = &ch; - char* const IN_DEV = $028A; // Current input device number - char* const GETIN = $FFE4; // CBM GETIN API + char* const IN_DEV = (char*)$028A; // Current input device number + char* const GETIN = (char*)$FFE4; // CBM GETIN API kickasm(uses chptr, uses IN_DEV, uses GETIN) {{ diff --git a/src/main/kc/lib/conio-mega65.c b/src/main/kc/lib/conio-mega65.c index 32191cfe8..0e44f87be 100644 --- a/src/main/kc/lib/conio-mega65.c +++ b/src/main/kc/lib/conio-mega65.c @@ -37,7 +37,7 @@ void conio_mega65_init() { // Enable 2K Color RAM *IO_BANK |= CRAM2K; // Position cursor at current line - char * const BASIC_CURSOR_LINE = 0xeb; + char * const BASIC_CURSOR_LINE = (char*)0xeb; char line = *BASIC_CURSOR_LINE+1; if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; gotoxy(0, line); @@ -46,9 +46,9 @@ void conio_mega65_init() { // Return true if there's a key waiting, return false if not unsigned char kbhit (void) { // CIA#1 Port A: keyboard matrix columns and joystick #2 - char* const CIA1_PORT_A = 0xdc00; + char* const CIA1_PORT_A = (char*)0xdc00; // CIA#1 Port B: keyboard matrix rows and joystick #1. - char* const CIA1_PORT_B = 0xdc01; + char* const CIA1_PORT_B = (char*)0xdc01; // Map CIA I/O *IO_BANK &= ~CRAM2K; // Read keyboard @@ -62,7 +62,7 @@ unsigned char kbhit (void) { // Set the color for the background. The old color setting is returned. unsigned char bgcolor(unsigned char color) { // The background color register address - char * const CONIO_BGCOLOR = 0xd021; + char * const CONIO_BGCOLOR = (char*)0xd021; char old = *CONIO_BGCOLOR; *CONIO_BGCOLOR = color; return old; @@ -71,7 +71,7 @@ unsigned char bgcolor(unsigned char color) { // Set the color for the border. The old color setting is returned. unsigned char bordercolor(unsigned char color) { // The border color register address - char * const CONIO_BORDERCOLOR = 0xd020; + char * const CONIO_BORDERCOLOR = (char*)0xd020; char old = *CONIO_BORDERCOLOR; *CONIO_BORDERCOLOR = color; return old; diff --git a/src/main/kc/lib/conio-plus4.c b/src/main/kc/lib/conio-plus4.c index 53b53066f..a42715c72 100644 --- a/src/main/kc/lib/conio-plus4.c +++ b/src/main/kc/lib/conio-plus4.c @@ -22,7 +22,7 @@ const char CONIO_TEXTCOLOR_DEFAULT = 0; // Set initial cursor position void conio_plus4_init() { // Position cursor at current line - char * const BASIC_CURSOR_LINE = 0xCD; + char * const BASIC_CURSOR_LINE = (char*)0xCD; char line = *BASIC_CURSOR_LINE; if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; gotoxy(0, line); diff --git a/src/main/kc/lib/conio-vic20.c b/src/main/kc/lib/conio-vic20.c index e473da316..9e36aa2e1 100644 --- a/src/main/kc/lib/conio-vic20.c +++ b/src/main/kc/lib/conio-vic20.c @@ -22,7 +22,7 @@ const char CONIO_TEXTCOLOR_DEFAULT = BLUE; // Set initial cursor position void conio_vic20_init() { // Position cursor at current line - char * const BASIC_CURSOR_LINE = 0xD6; + char * const BASIC_CURSOR_LINE = (char*)0xD6; char line = *BASIC_CURSOR_LINE; if(line>=CONIO_HEIGHT) line=CONIO_HEIGHT-1; gotoxy(0, line); diff --git a/src/main/kc/lib/fastmultiply.c b/src/main/kc/lib/fastmultiply.c index 50cbd9b9e..1d0dfacca 100644 --- a/src/main/kc/lib/fastmultiply.c +++ b/src/main/kc/lib/fastmultiply.c @@ -50,7 +50,7 @@ void mulf_init() { // Prepare for fast multiply with an unsigned char to a unsigned int result void mulf8u_prepare(char a) { - char* const memA = $fd; + char* const memA = (char*)$fd; *memA = a; asm { lda memA @@ -65,8 +65,8 @@ void mulf8u_prepare(char a) { // Calculate fast multiply with a prepared unsigned char to a unsigned int result // The prepared number is set by calling mulf8u_prepare(char a) unsigned int mulf8u_prepared(char b) { - char* const resL = $fe; - char* const memB = $ff; + char* const resL = (char*)$fe; + char* const memB = (char*)$ff; *memB = b; asm { ldx memB @@ -99,7 +99,7 @@ inline void mulf8s_prepare(signed char a) { // Calculate fast multiply with a prepared unsigned char to a unsigned int result // The prepared number is set by calling mulf8s_prepare(char a) signed int mulf8s_prepared(signed char b) { - signed char* const memA = $fd; + signed char* const memA = (signed char*)$fd; unsigned int m = mulf8u_prepared((char) b); if(*memA<0) { >m = (>m)-(char)b; @@ -119,9 +119,9 @@ signed int mulf8s(signed char a, signed char b) { // Fast multiply two unsigned ints to a double unsigned int result // Done in assembler to utilize fast addition A+X unsigned long mulf16u(unsigned int a, unsigned int b) { - unsigned int* const memA = $f8; - unsigned int* const memB = $fa; - unsigned long* const memR = $fc; + unsigned int* const memA = (unsigned int*)$f8; + unsigned int* const memB = (unsigned int*)$fa; + unsigned long* const memR = (unsigned long*)$fc; *memA = a; *memB = b; asm { diff --git a/src/main/kc/lib/stdlib.c b/src/main/kc/lib/stdlib.c index 7ef5c5cdd..feaac76c8 100644 --- a/src/main/kc/lib/stdlib.c +++ b/src/main/kc/lib/stdlib.c @@ -4,7 +4,7 @@ #include <string.h> // Top of the heap used by malloc() -unsigned char* HEAP_TOP = 0xa000; +unsigned char* HEAP_TOP = (unsigned char*)0xa000; // Head of the heap. Moved backward each malloc() unsigned char* heap_head = HEAP_TOP; diff --git a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java index 179b6ba54..0ac0625d9 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java +++ b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java @@ -9,6 +9,11 @@ import java.io.IOException; */ public class TestProgramsFast extends TestPrograms { + @Test + public void testSizeOfProblem() throws IOException { + compileAndCompare("sizeof-problem.c"); + } + @Test public void testProcedureDeclare0() throws IOException { compileAndCompare("procedure-declare-0.c"); @@ -1982,7 +1987,7 @@ public class TestProgramsFast extends TestPrograms { @Test public void testStructPtr12() throws IOException { - compileAndCompare("struct-ptr-12.c", log()); + compileAndCompare("struct-ptr-12.c"); } @Test diff --git a/src/test/kc/address-0.c b/src/test/kc/address-0.c index 3e9edf129..d8b568c3a 100644 --- a/src/test/kc/address-0.c +++ b/src/test/kc/address-0.c @@ -1,7 +1,7 @@ // Test that address vars are turned into load/store and located at hardcoded addresses // Hard-coded zero-page address - global variable -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char __address(0x02) i = 3; diff --git a/src/test/kc/address-1.c b/src/test/kc/address-1.c index f524a6bc7..74ab5b2c6 100644 --- a/src/test/kc/address-1.c +++ b/src/test/kc/address-1.c @@ -1,7 +1,7 @@ // Test that address vars are turned into load/store and located at hardcoded addresses // Hard-coded zero-page address - local variable -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/address-10.c b/src/test/kc/address-10.c index d267009ab..cfafd249d 100644 --- a/src/test/kc/address-10.c +++ b/src/test/kc/address-10.c @@ -1,6 +1,6 @@ // Test that a local array with a fixed location results in an error -int * const SCREEN = 0x0400; +int * const SCREEN = (char*)0x0400; void main() { // Local data array at hard-coded location should produce an error diff --git a/src/test/kc/address-2.c b/src/test/kc/address-2.c index 69fe42c15..1a2e988bd 100644 --- a/src/test/kc/address-2.c +++ b/src/test/kc/address-2.c @@ -1,7 +1,7 @@ // Test that address vars are turned into load/store and located at hardcoded addresses // Hard-coded mainmem-page address - global variable -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char __address(0x2000) i = 3; diff --git a/src/test/kc/address-3.c b/src/test/kc/address-3.c index ff9c9dc41..646000171 100644 --- a/src/test/kc/address-3.c +++ b/src/test/kc/address-3.c @@ -1,7 +1,7 @@ // Test that address vars are turned into load/store and located at hardcoded addresses // Hard-coded mainmem address - local variable -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char __address(0x2000) i = 3; diff --git a/src/test/kc/address-4.c b/src/test/kc/address-4.c index 4691497c9..2ff76e5ba 100644 --- a/src/test/kc/address-4.c +++ b/src/test/kc/address-4.c @@ -1,7 +1,7 @@ // Test declaring a variable as at a hard-coded address // Incrementing a load/store variable will result in cause two *SIZEOF's -unsigned int* SCREEN = 0x0400; +unsigned int* SCREEN = (char*)0x0400; void main() { __address(0x2) char i=0; diff --git a/src/test/kc/address-5.c b/src/test/kc/address-5.c index 45f57fcbd..7a2adc2e2 100644 --- a/src/test/kc/address-5.c +++ b/src/test/kc/address-5.c @@ -7,7 +7,7 @@ void main() { print('l'); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; volatile char __address(0x03) idx; diff --git a/src/test/kc/address-6.c b/src/test/kc/address-6.c index 2df4ee1ec..6168f5d29 100644 --- a/src/test/kc/address-6.c +++ b/src/test/kc/address-6.c @@ -7,7 +7,7 @@ void main() { print('l'); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; volatile char __address(0x3000) idx; diff --git a/src/test/kc/address-8.c b/src/test/kc/address-8.c index 38e9ff626..e75b5781c 100644 --- a/src/test/kc/address-8.c +++ b/src/test/kc/address-8.c @@ -1,7 +1,7 @@ // Test declaring an array variable as at a hard-coded address // The screen -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Data to be put on the screen char __address(0x1000) DATA[1000]; diff --git a/src/test/kc/address-9.c b/src/test/kc/address-9.c index 3d2a721be..5718a58d1 100644 --- a/src/test/kc/address-9.c +++ b/src/test/kc/address-9.c @@ -1,7 +1,7 @@ // Test declaring an integer array variable as at a hard-coded address // The screen -int * const SCREEN = 0x0400; +int * const SCREEN = (int *)0x0400; // Data to be put on the screen int __address(0x1000) DATA[1000]; diff --git a/src/test/kc/address-of-0.c b/src/test/kc/address-of-0.c index 584d52282..4de4f2f9a 100644 --- a/src/test/kc/address-of-0.c +++ b/src/test/kc/address-of-0.c @@ -1,7 +1,7 @@ // Test address-of - use the pointer to get the value void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; for( byte b: 0..10) { byte* bp = &b; byte c = *bp +1; diff --git a/src/test/kc/address-of-1.c b/src/test/kc/address-of-1.c index 88337cd71..cf4b35643 100644 --- a/src/test/kc/address-of-1.c +++ b/src/test/kc/address-of-1.c @@ -1,7 +1,7 @@ // Test address-of - pass the pointer as parameter void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; byte b1 = 0; byte b2 = 0; byte b3 = 0; diff --git a/src/test/kc/address-of-2.c b/src/test/kc/address-of-2.c index 8ad5e03b6..edfde4166 100644 --- a/src/test/kc/address-of-2.c +++ b/src/test/kc/address-of-2.c @@ -3,7 +3,7 @@ byte val = 0; void main() { - byte* const SCREEN1 = 0x0400; + byte* const SCREEN1 = (char*)0x0400; byte* const SCREEN2 = SCREEN1+40; byte idx = 0; SCREEN1[idx] = val; diff --git a/src/test/kc/address-of-3.c b/src/test/kc/address-of-3.c index 422d84a13..d92c2e3ae 100644 --- a/src/test/kc/address-of-3.c +++ b/src/test/kc/address-of-3.c @@ -11,7 +11,7 @@ void main() { } -int* const SCREEN = 0x0400; +int* const SCREEN = (int*)0x0400; char idx = 0; void print(int* p) { diff --git a/src/test/kc/address-with-expression-value.c b/src/test/kc/address-with-expression-value.c index 18a3d7a67..6ae31556c 100644 --- a/src/test/kc/address-with-expression-value.c +++ b/src/test/kc/address-with-expression-value.c @@ -1,7 +1,7 @@ // Test declaring an address as expression // The screen -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; word const var1 = 0x800; diff --git a/src/test/kc/adventofcode/longlong.c b/src/test/kc/adventofcode/longlong.c index 4f7e84874..be8c70aeb 100644 --- a/src/test/kc/adventofcode/longlong.c +++ b/src/test/kc/adventofcode/longlong.c @@ -52,7 +52,7 @@ struct LongLong plusLongLong(__ma struct LongLong a, __ma struct LongLong b) { -struct LongLong * SCREEN = 0x0400; +struct LongLong * SCREEN = (char*)0x0400; void main() { struct LongLong a = toLongLong(1000); diff --git a/src/test/kc/array-16bit-lookup.c b/src/test/kc/array-16bit-lookup.c index 96dc3d695..e10ca7210 100644 --- a/src/test/kc/array-16bit-lookup.c +++ b/src/test/kc/array-16bit-lookup.c @@ -2,7 +2,7 @@ // http://8bitworkshop.com/blog/compilers/2019/03/17/cc65-optimization.html void main() { - unsigned int* SCREEN = 0x0400; + unsigned int* SCREEN = (unsigned int*)0x0400; for(unsigned char idx : 0..128) SCREEN[idx] = getValue(idx); } diff --git a/src/test/kc/array-length-mismatch.c b/src/test/kc/array-length-mismatch.c index 39847d192..5ada16b77 100644 --- a/src/test/kc/array-length-mismatch.c +++ b/src/test/kc/array-length-mismatch.c @@ -1,6 +1,6 @@ byte b[3] = { 1, 2, 3, 4, 5 }; void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; SCREEN[0] = b[0]; } \ No newline at end of file diff --git a/src/test/kc/array-uninitialized.c b/src/test/kc/array-uninitialized.c index 414a60c8f..d6a9bedb7 100644 --- a/src/test/kc/array-uninitialized.c +++ b/src/test/kc/array-uninitialized.c @@ -1,6 +1,6 @@ byte b[]; void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; SCREEN[0] = b[0]; } diff --git a/src/test/kc/arrays-init-kasm-0.c b/src/test/kc/arrays-init-kasm-0.c index b09f7f417..028f890eb 100644 --- a/src/test/kc/arrays-init-kasm-0.c +++ b/src/test/kc/arrays-init-kasm-0.c @@ -5,7 +5,7 @@ byte SINTAB[256] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }}; -byte* SCREEN = 0x400; +byte* SCREEN = (char*)0x400; void main() { SCREEN[0] = SINTAB[0]; diff --git a/src/test/kc/arrays-init-kasm-1.c b/src/test/kc/arrays-init-kasm-1.c index 0fb9915c0..264eab687 100644 --- a/src/test/kc/arrays-init-kasm-1.c +++ b/src/test/kc/arrays-init-kasm-1.c @@ -6,7 +6,7 @@ __address(0x1000) char SINTAB[256] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }}; -char* SCREEN = 0x400; +char* SCREEN = (char*)0x400; void main() { SCREEN[0] = SINTAB[0]; diff --git a/src/test/kc/arrays-init-short.c b/src/test/kc/arrays-init-short.c index 37facaf30..cea21e354 100644 --- a/src/test/kc/arrays-init-short.c +++ b/src/test/kc/arrays-init-short.c @@ -3,7 +3,7 @@ char msg1[16] ="camelot"; char msg2[16] = { 'c', 'm', 'l' }; -char* const SCREEN = 0x400; +char* const SCREEN = (char*)0x400; void main() { for(char i=0;msg1[i];i++) diff --git a/src/test/kc/arrays-init.c b/src/test/kc/arrays-init.c index 8b9466fdb..eb9695542 100644 --- a/src/test/kc/arrays-init.c +++ b/src/test/kc/arrays-init.c @@ -3,7 +3,7 @@ byte b[3]; byte c[] = {'c', 'm', 'l'}; byte d[] = "cml"z; -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { b[0] = 'c'; diff --git a/src/test/kc/arrays-nonstandard-syntax.c b/src/test/kc/arrays-nonstandard-syntax.c index e678021e8..3e47a1581 100644 --- a/src/test/kc/arrays-nonstandard-syntax.c +++ b/src/test/kc/arrays-nonstandard-syntax.c @@ -2,7 +2,7 @@ char[16] msg ="camelot"; -char* const SCREEN = 0x400; +char* const SCREEN = (char*)0x400; void main() { for(char i=0;msg[i];i++) diff --git a/src/test/kc/asm-mnemonic-names.c b/src/test/kc/asm-mnemonic-names.c index bc438c6bf..fe437244f 100644 --- a/src/test/kc/asm-mnemonic-names.c +++ b/src/test/kc/asm-mnemonic-names.c @@ -1,7 +1,7 @@ // Test using an ASM mnemonic as a C symbol names // Works if the C-lexer and the ASM-lexer are separated properly -char* const lda = 0x0400; +char* const lda = (char*)0x0400; void main() { char jmp = 1; diff --git a/src/test/kc/asm-uses-0.c b/src/test/kc/asm-uses-0.c index 43d624c63..5e0eaf2f1 100644 --- a/src/test/kc/asm-uses-0.c +++ b/src/test/kc/asm-uses-0.c @@ -6,7 +6,7 @@ void main() { } } -char* const BG_COLOR = 0xd020; +char* const BG_COLOR = (char*)0xd020; // Function only used inside the inline asm void init() { diff --git a/src/test/kc/assign-const.c b/src/test/kc/assign-const.c index 7bd3167f5..3b70a0eb9 100644 --- a/src/test/kc/assign-const.c +++ b/src/test/kc/assign-const.c @@ -2,6 +2,6 @@ const byte prime = 7; void main() { prime = 13; - byte* screen = $0400; + byte* screen = (byte*)$0400; *screen = prime; } \ No newline at end of file diff --git a/src/test/kc/assignment-chained.c b/src/test/kc/assignment-chained.c index b5211a560..53638ea3b 100644 --- a/src/test/kc/assignment-chained.c +++ b/src/test/kc/assignment-chained.c @@ -1,7 +1,7 @@ // Tests that chained assignments work as intended void main() { - byte* screen = $400; + byte* screen = (char*)$400; byte a; screen[0] = a = 'c'; screen[40] = a; diff --git a/src/test/kc/assignment-compound.c b/src/test/kc/assignment-compound.c index 6e418589d..057fc1642 100644 --- a/src/test/kc/assignment-compound.c +++ b/src/test/kc/assignment-compound.c @@ -1,8 +1,8 @@ // Test compound assignment operators byte ref[] = { 3, 4, 3, 18, 9, 1, 4, 2, 4, 5, 1 , 0}; -byte* screen1 = $400; +byte* screen1 = (char*)$400; byte* screen2 = screen1+40; -byte* cols = $d800; +byte* cols = (char*)$d800; byte GREEN = 5; byte RED = 2; diff --git a/src/test/kc/atarixl-md5b.c b/src/test/kc/atarixl-md5b.c index 177741ec3..aecbd272b 100644 --- a/src/test/kc/atarixl-md5b.c +++ b/src/test/kc/atarixl-md5b.c @@ -1,12 +1,12 @@ // 8 bit converted md5 calculator void main() { - for(char* s=0x0400;s<0x0800;s++) *s=' '; + for(char* s=(char*)0x0400;s<0x0800;s++) *s=' '; md5(); for(;;) ; } -__ma char * line = 0x0400; +__ma char * line = (char*)0x0400; __ma char idx = 0; char HEX[] = "0123456789abcdef"; diff --git a/src/test/kc/bgblacklib.c b/src/test/kc/bgblacklib.c index 4b66b0222..807257947 100644 --- a/src/test/kc/bgblacklib.c +++ b/src/test/kc/bgblacklib.c @@ -1,2 +1,2 @@ -char* const BG_COLOR = 0xd021; +char* const BG_COLOR = (char*)0xd021; const char BLACK = 0x00; \ No newline at end of file diff --git a/src/test/kc/bitmap-circle-2.c b/src/test/kc/bitmap-circle-2.c index 0c5c910cb..5c7114d28 100644 --- a/src/test/kc/bitmap-circle-2.c +++ b/src/test/kc/bitmap-circle-2.c @@ -1,8 +1,8 @@ #include <c64.h> -byte* const SCREEN = $400; -byte* const BITMAP = $2000; -byte* const COLORS = $d800; +byte* const SCREEN = (byte*)$400; +byte* const BITMAP = (byte*)$2000; +byte* const COLORS = (byte*)$d800; byte bitmask[] = { 128, 64, 32, 16, 8, 4, 2, 1 }; diff --git a/src/test/kc/bitmap-circle.c b/src/test/kc/bitmap-circle.c index 703689c16..c9a155f08 100644 --- a/src/test/kc/bitmap-circle.c +++ b/src/test/kc/bitmap-circle.c @@ -4,9 +4,9 @@ #include <c64.h> -byte* const SCREEN = $400; -byte* const BITMAP = $2000; -byte* const COLORS = $d800; +byte* const SCREEN = (byte*)$400; +byte* const BITMAP = (byte*)$2000; +byte* const COLORS = (byte*)$d800; byte bitmask[] = { 128, 64, 32, 16, 8, 4, 2, 1 }; diff --git a/src/test/kc/bitmap-line-anim-1.c b/src/test/kc/bitmap-line-anim-1.c index 054fde30b..088131dbc 100644 --- a/src/test/kc/bitmap-line-anim-1.c +++ b/src/test/kc/bitmap-line-anim-1.c @@ -4,8 +4,8 @@ #include <c64.h> #include <c64-bitmap.h> -byte* const SCREEN = $400; -byte* const BITMAP = $2000; +byte* const SCREEN = (byte*)$400; +byte* const BITMAP = (byte*)$2000; byte next=0; diff --git a/src/test/kc/bitmap-line-anim-2.c b/src/test/kc/bitmap-line-anim-2.c index 875f38ca3..c3f88a36e 100644 --- a/src/test/kc/bitmap-line-anim-2.c +++ b/src/test/kc/bitmap-line-anim-2.c @@ -4,8 +4,8 @@ #include <c64.h> #include <c64-bitmap.h> -byte* const SCREEN = $400; -byte* const BITMAP = $2000; +byte* const SCREEN = (byte*)$400; +byte* const BITMAP = (byte*)$2000; word next=0; diff --git a/src/test/kc/bitmap-plot-0.c b/src/test/kc/bitmap-plot-0.c index 0550effd6..b1d08ec4b 100644 --- a/src/test/kc/bitmap-plot-0.c +++ b/src/test/kc/bitmap-plot-0.c @@ -3,8 +3,8 @@ #include <c64.h> #include <c64-bitmap.h> -byte* BITMAP = 0x2000; -byte* SCREEN = 0x0400; +byte* BITMAP = (byte*)0x2000; +byte* SCREEN = (byte*)0x0400; byte plots_per_frame[0x100]; diff --git a/src/test/kc/bitmap-plot-1.c b/src/test/kc/bitmap-plot-1.c index 4525906e0..29a31ba4a 100644 --- a/src/test/kc/bitmap-plot-1.c +++ b/src/test/kc/bitmap-plot-1.c @@ -5,8 +5,8 @@ #include <multiply.h> #include <c64-bitmap.h> -byte* BITMAP = 0x2000; -byte* SCREEN = 0x0400; +byte* BITMAP = (byte*)0x2000; +byte* SCREEN = (byte*)0x0400; byte plots_per_frame[0x100]; diff --git a/src/test/kc/bitmap-plot-2.c b/src/test/kc/bitmap-plot-2.c index 39f047541..778f70709 100644 --- a/src/test/kc/bitmap-plot-2.c +++ b/src/test/kc/bitmap-plot-2.c @@ -5,8 +5,8 @@ #include <multiply.h> #include <c64-bitmap.h> -byte* BITMAP = 0x2000; -byte* SCREEN = 0x0400; +byte* BITMAP = (byte*)0x2000; +byte* SCREEN = (byte*)0x0400; byte plots_per_frame[0x100]; diff --git a/src/test/kc/bitmap-plot-3.c b/src/test/kc/bitmap-plot-3.c index c62f57565..bbc38b7ab 100644 --- a/src/test/kc/bitmap-plot-3.c +++ b/src/test/kc/bitmap-plot-3.c @@ -4,8 +4,8 @@ #include <c64-bitmap.h> #include <c64-print.h> -byte* BITMAP = 0x2000; -byte* SCREEN = 0x0400; +byte* BITMAP = (byte*)0x2000; +byte* SCREEN = (byte*)0x0400; byte __align(0x100) SINTAB[0x180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }}; byte* COSTAB = SINTAB+0x40; diff --git a/src/test/kc/bitmap-plotter.c b/src/test/kc/bitmap-plotter.c index 69544f769..aec7245e0 100644 --- a/src/test/kc/bitmap-plotter.c +++ b/src/test/kc/bitmap-plotter.c @@ -1,22 +1,22 @@ -byte* D011 = $d011; +byte* D011 = (byte*)$d011; byte RST8 = %10000000; byte ECM = %01000000; byte BMM = %00100000; byte DEN = %00010000; byte RSEL = %00001000; -byte* RASTER = $d012; -byte* D016 = $d016; +byte* RASTER = (byte*)$d012; +byte* D016 = (byte*)$d016; byte MCM = %00010000; byte CSEL = %00001000; -byte* D018 = $d018; -byte* BG_COLOR = $d020; -byte* FGCOL = $d021; +byte* D018 = (byte*)$d018; +byte* BG_COLOR = (byte*)$d020; +byte* FGCOL = (byte*)$d021; -byte* COLS = $d800; +byte* COLS = (byte*)$d800; -byte* SCREEN = $400; -byte* const BITMAP = $2000; +byte* SCREEN = (byte*)$400; +byte* const BITMAP = (byte*)$2000; void main() { *BG_COLOR = 0; @@ -50,7 +50,7 @@ const byte plot_yhi[256]; const byte plot_bit[256]; void plot(byte x, byte y) { - byte* plotter_x = 0; + byte* plotter_x = (byte*)0; word plotter_y = 0; >plotter_x = plot_xhi[x]; // Needs word arrays arranged as two underlying byte arrays to allow byte* plotter_x = plot_x[x]; - and eventually - byte* plotter = plot_x[x] + plot_y[y]; <plotter_x = plot_xlo[x]; @@ -71,7 +71,7 @@ void init_plot_tables() { bits = $80; } } - byte* yoffs = $0; + byte* yoffs = (byte*)$0; for(byte y : 0..255) { plot_ylo[y] = y&$7 | <yoffs; plot_yhi[y] = >yoffs; diff --git a/src/test/kc/bitwise-not-1.c b/src/test/kc/bitwise-not-1.c index eb2401aa7..01ce85845 100644 --- a/src/test/kc/bitwise-not-1.c +++ b/src/test/kc/bitwise-not-1.c @@ -1,7 +1,7 @@ // Test that bitwise NOT (~) is handled correctly void main() { - char* const screen = 0x0400; + char* const screen = (char*)0x0400; char b = ~0x10; *screen = b; } \ No newline at end of file diff --git a/src/test/kc/bitwise-not.c b/src/test/kc/bitwise-not.c index 1da5f5af6..f6ca6dd6a 100644 --- a/src/test/kc/bitwise-not.c +++ b/src/test/kc/bitwise-not.c @@ -1,6 +1,6 @@ void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; *SCREEN = ~1ub; for(byte c : 1..26) { diff --git a/src/test/kc/bool-const.c b/src/test/kc/bool-const.c index 406e3a79d..93270ac15 100644 --- a/src/test/kc/bool-const.c +++ b/src/test/kc/bool-const.c @@ -1,6 +1,6 @@ // A Minimal test of boolean constants. -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { bool_const_if(); diff --git a/src/test/kc/bool-function.c b/src/test/kc/bool-function.c index fa568a1ea..3d7bf3627 100644 --- a/src/test/kc/bool-function.c +++ b/src/test/kc/bool-function.c @@ -1,7 +1,7 @@ // Test a function taking boolean parameter and returning boolean result void main() { - byte* screen = $400; + byte* screen = (char*)$400; for(byte i: 0..100) { if( isSet(i, (i&1)==0)) { screen[i] = '*'; diff --git a/src/test/kc/bool-ifs-min.c b/src/test/kc/bool-ifs-min.c index 8fdc4def9..27095fcd5 100644 --- a/src/test/kc/bool-ifs-min.c +++ b/src/test/kc/bool-ifs-min.c @@ -1,7 +1,7 @@ // A test of boolean conditions using && || and ! void main() { - char* const screen = 0x400; + char* const screen = (char*)0x400; for( char i : 0..20) { if( (i<10) && ((i&1)==0) ) { screen[i] = '*'; diff --git a/src/test/kc/bool-ifs.c b/src/test/kc/bool-ifs.c index aed29d918..686fbc668 100644 --- a/src/test/kc/bool-ifs.c +++ b/src/test/kc/bool-ifs.c @@ -8,7 +8,7 @@ void main() { } void bool_and() { - byte* const screen = $400; + byte* const screen = (byte*)$400; for( byte i : 0..20) { if( (i<10) && ((i&1)==0) ) { screen[i] = '*'; @@ -19,7 +19,7 @@ void bool_and() { } void bool_or() { - byte* const screen = $428; + byte* const screen = (byte*)$428; for( byte i : 0..20) { if( (i<10) || ((i&1)==0) ) { screen[i] = '*'; @@ -30,7 +30,7 @@ void bool_or() { } void bool_not() { - byte* const screen = $450; + byte* const screen = (byte*)$450; for( byte i : 0..20) { if( !((i<10) || (i&1)==0)) { screen[i] = '*'; @@ -41,7 +41,7 @@ void bool_not() { } void bool_complex() { - byte* const screen = $478; + byte* const screen = (byte*)$478; for( byte i : 0..20) { if( ((i<10) && (i&1)==0) || !((i<10) || (i&1)==0) ) { screen[i] = '*'; diff --git a/src/test/kc/bool-not-operator-1.c b/src/test/kc/bool-not-operator-1.c index f52d7b86e..a76b6d0ea 100644 --- a/src/test/kc/bool-not-operator-1.c +++ b/src/test/kc/bool-not-operator-1.c @@ -4,7 +4,7 @@ // https://gitlab.com/camelot/kickc/issues/199 void main() { - char* const screen = 0x0400; + char* const screen = (char*)0x0400; for(char i: 0..7) { bool b = (i&1)==1; char c = !b ? 1 : 0 ; diff --git a/src/test/kc/bool-not-operator-2.c b/src/test/kc/bool-not-operator-2.c index 099105a49..12e3e8c84 100644 --- a/src/test/kc/bool-not-operator-2.c +++ b/src/test/kc/bool-not-operator-2.c @@ -4,7 +4,7 @@ // https://gitlab.com/camelot/kickc/issues/199 void main() { - char* const screen = 0x0400; + char* const screen = (char*)0x0400; for(char i: 0..7) { char b = i&1; char c = !b ? 1 : 0 ; diff --git a/src/test/kc/bool-not-operator-3.c b/src/test/kc/bool-not-operator-3.c index dcf5c457e..d0201462d 100644 --- a/src/test/kc/bool-not-operator-3.c +++ b/src/test/kc/bool-not-operator-3.c @@ -4,7 +4,7 @@ // https://gitlab.com/camelot/kickc/issues/295 void main() { - char* const screen = 0x0400; + char* const screen = (char*)0x0400; for(char i: 0..7) { char b = (i&1); screen[i] = !b; diff --git a/src/test/kc/bool-pointer.c b/src/test/kc/bool-pointer.c index 02046d487..c4b25658e 100644 --- a/src/test/kc/bool-pointer.c +++ b/src/test/kc/bool-pointer.c @@ -1,7 +1,7 @@ // Tests a pointer to a boolean void main() { - bool* bscreen = $400; + bool* bscreen = (bool*)$400; bscreen[0] = true; bscreen[1] = false; bscreen = bscreen+2; diff --git a/src/test/kc/bool-vars.c b/src/test/kc/bool-vars.c index 631b9309d..148e7a486 100644 --- a/src/test/kc/bool-vars.c +++ b/src/test/kc/bool-vars.c @@ -8,7 +8,7 @@ void main() { } void bool_and() { - byte* const screen = $400; + byte* const screen = (byte*)$400; for( byte i : 0..20) { bool o1 = (i<10); bool o2 = ((i&1)==0); @@ -22,7 +22,7 @@ void bool_and() { } void bool_or() { - byte* const screen = $428; + byte* const screen = (byte*)$428; for( byte i : 0..20) { bool o1 = (i<10); bool o2 = ((i&1)==0); @@ -36,7 +36,7 @@ void bool_or() { } void bool_not() { - byte* const screen = $450; + byte* const screen = (byte*)$450; for( byte i : 0..20) { bool o1 = (i<10); bool o2 = (i&1)==0; @@ -50,7 +50,7 @@ void bool_not() { } void bool_complex() { - byte* const screen = $478; + byte* const screen = (byte*)$478; for( byte i : 0..20) { bool o1 = (i<10); bool o2 = (i&1)==0; diff --git a/src/test/kc/bresenham.c b/src/test/kc/bresenham.c index 34aa1c88e..86521c18c 100644 --- a/src/test/kc/bresenham.c +++ b/src/test/kc/bresenham.c @@ -1,5 +1,5 @@ byte STAR = 81; -byte SCREEN[40*25] = $0400; +byte SCREEN[40*25] = (byte*)$0400; void main() { byte x0 = 4; diff --git a/src/test/kc/bresenhamarr.c b/src/test/kc/bresenhamarr.c index b5a08a275..2039fabba 100644 --- a/src/test/kc/bresenhamarr.c +++ b/src/test/kc/bresenhamarr.c @@ -1,7 +1,7 @@ void main() { byte STAR = 81; - byte screen[40*25] = $0400; + byte screen[40*25] = (byte*)$0400; byte x0 = 0; byte y0 = 0; byte x1 = 39; diff --git a/src/test/kc/c64dtv-8bppcharstretch.c b/src/test/kc/c64dtv-8bppcharstretch.c index ec2a7bdb6..88d8a38a9 100644 --- a/src/test/kc/c64dtv-8bppcharstretch.c +++ b/src/test/kc/c64dtv-8bppcharstretch.c @@ -2,9 +2,9 @@ #include <c64dtv.h> // Plane with the screen -byte* const SCREEN = $7c00; +byte* const SCREEN = (byte*)$7c00; // Plane with all pixels -byte* const CHARSET8 = $8000; +byte* const CHARSET8 = (byte*)$8000; void main() { asm { sei } // Disable normal interrupt (prevent keyboard reading glitches and allows to hide basic/kernal) @@ -95,7 +95,7 @@ void gfx_init_plane_charset8() { // 8bpp cells for Plane B (charset) - ROM charset with 256 colors byte gfxbCpuBank = (byte)(CHARSET8/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxa = $4000 + (((word)CHARSET8)& $3fff); + byte* gfxa = (char*)$4000 + (((word)CHARSET8)& $3fff); byte* chargen = CHARGEN+1; *PROCPORT = PROCPORT_RAM_CHARROM; byte col = 0; diff --git a/src/test/kc/c64dtv-8bppchunkystretch.c b/src/test/kc/c64dtv-8bppchunkystretch.c index 9f25f3a21..bd17253de 100644 --- a/src/test/kc/c64dtv-8bppchunkystretch.c +++ b/src/test/kc/c64dtv-8bppchunkystretch.c @@ -2,7 +2,7 @@ #include <c64dtv.h> // Plane with all pixels -byte* const CHUNKY = $8000; +byte* const CHUNKY = (byte*)$8000; void main() { asm { sei } // Disable normal interrupt (prevent keyboard reading glitches and allows to hide basic/kernal) diff --git a/src/test/kc/c64dtv-blitter-box.c b/src/test/kc/c64dtv-blitter-box.c index ca3c4486a..5f5e7eff6 100644 --- a/src/test/kc/c64dtv-blitter-box.c +++ b/src/test/kc/c64dtv-blitter-box.c @@ -2,7 +2,7 @@ #include <c64dtv.h> -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; const byte SRCA[] = "camelot rules!"; const byte SRCB[] = { $80 }; diff --git a/src/test/kc/c64dtv-blittermin.c b/src/test/kc/c64dtv-blittermin.c index fae896716..6914691dc 100644 --- a/src/test/kc/c64dtv-blittermin.c +++ b/src/test/kc/c64dtv-blittermin.c @@ -1,6 +1,6 @@ #include <c64dtv.h> -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; const byte SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' '}; const byte SRCA_LEN = 9; const byte SRCB[] = { $80 }; diff --git a/src/test/kc/c64dtv-gfxexplorer.c b/src/test/kc/c64dtv-gfxexplorer.c index d617c6e04..cfbd82cf4 100644 --- a/src/test/kc/c64dtv-gfxexplorer.c +++ b/src/test/kc/c64dtv-gfxexplorer.c @@ -22,15 +22,15 @@ void main() { } // VIC Screens -byte* const VICII_SCREEN0 = $4000; -byte* const VICII_SCREEN1 = $4400; -byte* const VICII_SCREEN2 = $4800; -byte* const VICII_SCREEN3 = $4c00; -byte* const VICII_SCREEN4 = $5000; +byte* const VICII_SCREEN0 = (byte*)$4000; +byte* const VICII_SCREEN1 = (byte*)$4400; +byte* const VICII_SCREEN2 = (byte*)$4800; +byte* const VICII_SCREEN3 = (byte*)$4c00; +byte* const VICII_SCREEN4 = (byte*)$5000; // VIC Charset from ROM -byte* const VICII_CHARSET_ROM = $5800; +byte* const VICII_CHARSET_ROM = (byte*)$5800; // VIC Bitmap -byte* const VICII_BITMAP = $6000; +byte* const VICII_BITMAP = (byte*)$6000; // 8BPP Chunky Bitmap (contains 8bpp pixels) const dword PLANE_8BPP_CHUNKY = $20000; @@ -110,9 +110,9 @@ byte* get_VICII_charset(byte idx) { } // Screen containing the FORM -byte* const FORM_SCREEN = $0400; +byte* const FORM_SCREEN = (byte*)$0400; // Charset used for the FORM -byte* const FORM_CHARSET = $1800; // Charset ROM +byte* const FORM_CHARSET = (byte*)$1800; // Charset ROM byte FORM_TEXT[] = " C64 DTV Graphics Mode Explorer @" @@ -500,7 +500,7 @@ void gfx_init_plane_8bppchunky() { // 320x200 8bpp pixels for Plane byte gfxbCpuBank = (byte)(PLANE_8BPP_CHUNKY/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxb = $4000; + byte* gfxb = (char*)$4000; for(byte y : 0..199) { for (word x : 0..319) { // If we have crossed to $8000 increase the CPU BANK segment and reset to $4000 @@ -520,7 +520,7 @@ void gfx_init_plane_8bppchunky() { void gfx_init_plane_horisontal() { byte gfxbCpuBank = (byte)(PLANE_HORISONTAL/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxa = $4000 + (PLANE_HORISONTAL & $3fff); + byte* gfxa = (char*)$4000 + (PLANE_HORISONTAL & $3fff); for(byte ay : 0..199) { for (byte ax : 0..39) { if((ay&4)==0) { @@ -538,7 +538,7 @@ void gfx_init_plane_horisontal() { void gfx_init_plane_horisontal2() { byte gfxbCpuBank = (byte)(PLANE_HORISONTAL2/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxa = $4000 + (PLANE_HORISONTAL2 & $3fff); + byte* gfxa = (char*)$4000 + (PLANE_HORISONTAL2 & $3fff); byte row_bitmask[] = { %00000000, %01010101, %10101010, %11111111 }; for(byte ay : 0..199) { for (byte ax : 0..39) { @@ -554,7 +554,7 @@ void gfx_init_plane_horisontal2() { void gfx_init_plane_vertical() { byte gfxbCpuBank = (byte)(PLANE_VERTICAL/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxb = $4000 + (PLANE_VERTICAL & $3fff); + byte* gfxb = (char*)$4000 + (PLANE_VERTICAL & $3fff); for(byte by : 0..199) { for ( byte bx : 0..39) { *gfxb++ = %00001111; @@ -569,7 +569,7 @@ void gfx_init_plane_charset8() { // 8bpp cells for Plane B (charset) - ROM charset with 256 colors byte gfxbCpuBank = (byte)(PLANE_CHARSET8/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxa = $4000 + (PLANE_CHARSET8 & $3fff); + byte* gfxa = (char*)$4000 + (PLANE_CHARSET8 & $3fff); byte* chargen = CHARGEN; *PROCPORT = PROCPORT_RAM_CHARROM; byte col = 0; diff --git a/src/test/kc/c64dtv-gfxmodes.c b/src/test/kc/c64dtv-gfxmodes.c index fbfc7ccf0..2b27bc743 100644 --- a/src/test/kc/c64dtv-gfxmodes.c +++ b/src/test/kc/c64dtv-gfxmodes.c @@ -42,8 +42,8 @@ byte MENU_TEXT[] = void menu() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9800; // Charset ROM + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9800; // Charset ROM // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -187,9 +187,9 @@ void mode_ctrl() { // - 0: 4bpp BG_COLORor0[3:0] // - 1: 4bpp ColorData[3:0] void mode_stdchar() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9000; // Charset ROM - byte* const COLORS = $d800; + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9000; // Charset ROM + byte* const COLORS = (byte*)$d800; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -238,9 +238,9 @@ void mode_stdchar() { // - CharData[7:6] 11: 4bpp BG_COLORor3[3:0] // - 1: 4bpp ColorData[3:0] void mode_ecmchar() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9000; // Charset ROM - byte* const COLORS = $d800; + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9000; // Charset ROM + byte* const COLORS = (byte*)$d800; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -294,9 +294,9 @@ void mode_ecmchar() { // - 10: 4bpp BG_COLORor2[3:0] // - 11: 4bpp ColorData[2:0]// Standard Character Mode (LINEAR/HICOL/CHUNK/COLDIS/ECM/MCM/BMM = 0) void mode_mcchar() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9000; // Charset ROM - byte* const COLORS = $d800; + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9000; // Charset ROM + byte* const COLORS = (byte*)$d800; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -344,8 +344,8 @@ void mode_mcchar() { // - 0: 4bpp CharData[3:0] // - 1: 4bpp CharData[7:4] void mode_stdbitmap() { - byte* const SCREEN = $4000; - byte* const BITMAP = $6000; + byte* const SCREEN = (byte*)$4000; + byte* const BITMAP = (byte*)$6000; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)BITMAP/$10000); // DTV Graphics Mode @@ -396,9 +396,9 @@ void mode_stdbitmap() { // - 0: 8bpp BG_COLORor0[7:0] // - 1: 8bpp ColorData[7:0] void mode_hicolstdchar() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9000; // Charset ROM - byte* const COLORS = $8400; + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9000; // Charset ROM + byte* const COLORS = (byte*)$8400; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -449,9 +449,9 @@ void mode_hicolstdchar() { // - CharData[7:6] 11: 8bpp BG_COLORor3[7:0] // - 1: 8bpp ColorData[7:0] void mode_hicolecmchar() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9000; // Charset ROM - byte* const COLORS = $8400; + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9000; // Charset ROM + byte* const COLORS = (byte*)$8400; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -505,9 +505,9 @@ void mode_hicolecmchar() { // - 10: 8bpp BG_COLORor2[7:0] // - 11: 8bpp ColorData[7:4] "0" & Color[2:0] void mode_hicolmcchar() { - byte* const SCREEN = $8000; - byte* const CHARSET = $9000; // Charset ROM - byte* const COLORS = $8400; + byte* const SCREEN = (byte*)$8000; + byte* const CHARSET = (byte*)$9000; // Charset ROM + byte* const COLORS = (byte*)$8400; // DTV Graphics Bank *DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000); // DTV Color Bank @@ -557,9 +557,9 @@ void mode_hicolmcchar() { // - Plane A = 1 Plane B = 0: 8bpp "0000" & ColorData[3:0] // - Plane A = 1 Plane B = 1: 8bpp BG_COLORor1[7:0] void mode_twoplanebitmap() { - byte* const PLANEA = $4000; - byte* const PLANEB = $6000; - byte* const COLORS = $8000; + byte* const PLANEA = (byte*)$4000; + byte* const PLANEB = (byte*)$6000; + byte* const COLORS = (byte*)$8000; // DTV Graphics Mode dtv_control = DTV_HIGHCOLOR | DTV_LINEAR; *DTV_CONTROL = DTV_HIGHCOLOR | DTV_LINEAR; @@ -627,9 +627,9 @@ void mode_twoplanebitmap() { // GfxData/PlaneA Pixel Shifter (2), CharData/PlaneB Pixel Shifter (2): // - 8bpp color (ColorData[3:0],CharData/PlaneB[1:0], GfxData/PlaneA[1:0]) void mode_sixsfred() { - byte* const PLANEA = $4000; - byte* const PLANEB = $6000; - byte* const COLORS = $8000; + byte* const PLANEA = (byte*)$4000; + byte* const PLANEB = (byte*)$6000; + byte* const COLORS = (byte*)$8000; // DTV Graphics Mode dtv_control = DTV_HIGHCOLOR | DTV_LINEAR; *DTV_CONTROL = DTV_HIGHCOLOR | DTV_LINEAR; @@ -693,9 +693,9 @@ void mode_sixsfred() { // PlaneA Pixel Shifter (2), PlaneB Pixel Shifter (2): // - 8bpp color (PlaneB[1:0],ColorData[5:4],PlaneA[1:0],ColorData[1:0]) void mode_sixsfred2() { - byte* const PLANEA = $4000; - byte* const PLANEB = $6000; - byte* const COLORS = $8000; + byte* const PLANEA = (byte*)$4000; + byte* const PLANEB = (byte*)$6000; + byte* const COLORS = (byte*)$8000; // DTV Graphics Mode dtv_control = DTV_LINEAR; *DTV_CONTROL = DTV_LINEAR; @@ -764,9 +764,9 @@ void mode_sixsfred2() { //Counter B step and modulo should be set to 0, counter A modulo to 0 and counter A step to 1 for normal operation. void mode_8bpppixelcell() { // 8BPP Pixel Cell Screen (contains 40x25=1000 chars) - byte* const PLANEA = $3c00; + byte* const PLANEA = (byte*)$3c00; // 8BPP Pixel Cell Charset (contains 256 64 byte chars) - byte* const PLANEB = $4000; + byte* const PLANEB = (byte*)$4000; // DTV Graphics Mode dtv_control = DTV_HIGHCOLOR | DTV_LINEAR | DTV_CHUNKY; *DTV_CONTROL = DTV_HIGHCOLOR | DTV_LINEAR | DTV_CHUNKY; @@ -802,7 +802,7 @@ void mode_8bpppixelcell() { } // 8bpp cells for Plane B (charset) - ROM charset with 256 colors *PROCPORT = PROCPORT_RAM_CHARROM; - byte* CHARGEN = $d000; + byte* CHARGEN = (byte*)$d000; byte* gfxb = PLANEB; byte* chargen = CHARGEN; byte col = 0; @@ -858,13 +858,13 @@ void mode_8bppchunkybmm() { // 320x200 8bpp pixels for Plane B byte gfxbCpuBank = (byte)(PLANEB/$4000); dtvSetCpuBankSegment1(gfxbCpuBank++); - byte* gfxb = $4000; + byte* gfxb = (byte*)$4000; for(byte y : 0..199) { for (word x : 0..319) { // If we have crossed to $8000 increase the CPU BANK segment and reset to $4000 if(gfxb==$8000) { dtvSetCpuBankSegment1(gfxbCpuBank++); - gfxb = (char*)$4000; + gfxb = (byte*)$4000; } byte c = (byte)(x+y); *gfxb++ = c; diff --git a/src/test/kc/call-parameter-autocast.c b/src/test/kc/call-parameter-autocast.c index b03c78c0d..7b519bc75 100644 --- a/src/test/kc/call-parameter-autocast.c +++ b/src/test/kc/call-parameter-autocast.c @@ -7,7 +7,7 @@ void main() { print( {0x12,0x34} ); } -word* const SCREEN = 0x0400; +word* const SCREEN = (word*)0x0400; byte idx = 0; void print(word w) { diff --git a/src/test/kc/callconstparam.c b/src/test/kc/callconstparam.c index 3ab70c83a..ab137c22a 100644 --- a/src/test/kc/callconstparam.c +++ b/src/test/kc/callconstparam.c @@ -2,7 +2,7 @@ // Currently the same constant parameter is passed on every call. // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0 -byte* screen = $0400; +byte* screen = (byte*)$0400; void main() { line(1,2); diff --git a/src/test/kc/cast-deref.c b/src/test/kc/cast-deref.c index 8fbd9a3cb..340a42d51 100644 --- a/src/test/kc/cast-deref.c +++ b/src/test/kc/cast-deref.c @@ -2,7 +2,7 @@ void main() { signed byte sbs[] = { -1, -2, -3, -4}; - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$0400; for(byte i : 0..3) { SCREEN[i] = (byte) sbs[i]; } diff --git a/src/test/kc/cast-not-needed-3.c b/src/test/kc/cast-not-needed-3.c index 743e07adb..3c94cec8d 100644 --- a/src/test/kc/cast-not-needed-3.c +++ b/src/test/kc/cast-not-needed-3.c @@ -3,7 +3,7 @@ byte* screens[] = { (byte*)$0400, (byte*)$1400 }; void main() { - byte* DSP = $400; + byte* DSP = (char*)$400; DSP[0] = spritePtr(getScreen(0)); } diff --git a/src/test/kc/cast-not-needed.c b/src/test/kc/cast-not-needed.c index f47e9af8d..46b031817 100644 --- a/src/test/kc/cast-not-needed.c +++ b/src/test/kc/cast-not-needed.c @@ -1,7 +1,7 @@ // Tests a cast that is not needed -byte* sprite = $5000; -byte* SCREEN = $4400; +byte* sprite = (byte*)$5000; +byte* SCREEN = (byte*)$4400; void main() { byte* sprite_ptr = SCREEN+$378; diff --git a/src/test/kc/cast-precedence-problem.c b/src/test/kc/cast-precedence-problem.c index 727ff2812..39410c177 100644 --- a/src/test/kc/cast-precedence-problem.c +++ b/src/test/kc/cast-precedence-problem.c @@ -1,7 +1,7 @@ // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1 void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; byte min = 10; byte max = 200; word sumw = min+max; @@ -10,7 +10,7 @@ void main() { byte sumb = min+max; byte midb = (sumb>>1)+1; SCREEN[1] = midb; - byte* BG_COLOR = $d021; + byte* BG_COLOR = (char*)$d021; if(SCREEN[0]==SCREEN[1]) { *BG_COLOR = 5; } else { diff --git a/src/test/kc/casting.c b/src/test/kc/casting.c index 365947843..59b53f46c 100644 --- a/src/test/kc/casting.c +++ b/src/test/kc/casting.c @@ -1,4 +1,4 @@ -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$0400; byte* SCREEN2 = SCREEN+40*3; byte* SCREEN3 = SCREEN+40*6; byte* SCREEN4 = SCREEN+40*9; diff --git a/src/test/kc/chargen.c b/src/test/kc/chargen.c index 9bd1ef430..32f2e6830 100644 --- a/src/test/kc/chargen.c +++ b/src/test/kc/chargen.c @@ -1,6 +1,6 @@ -byte* PROCPORT = $01; -byte* CHARGEN = $d000; -byte* SCREEN = $0400; +byte* PROCPORT = (byte*)$01; +byte* CHARGEN = (byte*)$d000; +byte* SCREEN = (byte*)$0400; void main() { asm { sei } diff --git a/src/test/kc/chessboard.c b/src/test/kc/chessboard.c index 1aef52748..d803bc8b9 100644 --- a/src/test/kc/chessboard.c +++ b/src/test/kc/chessboard.c @@ -1,7 +1,7 @@ // Draws a chess board in the upper left corner of the screen void main() { - byte* screen = $0400; - byte* colors = $d800; + byte* screen = (byte*)$0400; + byte* colors = (byte*)$d800; byte color = 1; for( byte row: 0..7) { for( byte column: 0..7) { diff --git a/src/test/kc/chipset-test.c b/src/test/kc/chipset-test.c index cb9000c59..1f4e31a59 100644 --- a/src/test/kc/chipset-test.c +++ b/src/test/kc/chipset-test.c @@ -19,7 +19,7 @@ struct ATARI_PIA { #define PIA1 (*(struct __pia*)0xD300) -struct ATARI_PIA * const PIA2 = 0xD300; +struct ATARI_PIA * const PIA2 = (struct ATARI_PIA *)0xD300; void main() { diff --git a/src/test/kc/cia-timer-cyclecount.c b/src/test/kc/cia-timer-cyclecount.c index 7188027e8..1d624d2c3 100644 --- a/src/test/kc/cia-timer-cyclecount.c +++ b/src/test/kc/cia-timer-cyclecount.c @@ -4,7 +4,7 @@ #include <c64-time.h> #include <c64-print.h> -byte* const SCREEN = 0x0400; +byte* const SCREEN = (byte*)0x0400; void main() { diff --git a/src/test/kc/cia-timer-simple.c b/src/test/kc/cia-timer-simple.c index 4c1dfd676..f89042bef 100644 --- a/src/test/kc/cia-timer-simple.c +++ b/src/test/kc/cia-timer-simple.c @@ -4,7 +4,7 @@ #include <c64-time.h> #include <c64-print.h> -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/circlechars.c b/src/test/kc/circlechars.c index 26644d4fa..ca737803b 100644 --- a/src/test/kc/circlechars.c +++ b/src/test/kc/circlechars.c @@ -4,7 +4,7 @@ #include <conio.h> #include <stdio.h> -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/clobber-a-problem.c b/src/test/kc/clobber-a-problem.c index 1263fee16..d3dab16ef 100644 --- a/src/test/kc/clobber-a-problem.c +++ b/src/test/kc/clobber-a-problem.c @@ -1,9 +1,9 @@ -byte* BORDER_COLOR = $d020; -byte* RASTER = $d012; +byte* BORDER_COLOR = (byte*)$d020; +byte* RASTER = (byte*)$d012; byte DARK_GREY = $b; byte BLACK = 0; -void()** const KERNEL_IRQ = $0314; +void()** const KERNEL_IRQ = (void()**)$0314; void main() { diff --git a/src/test/kc/coalesce-assignment.c b/src/test/kc/coalesce-assignment.c index e785928ee..dd090fb9c 100644 --- a/src/test/kc/coalesce-assignment.c +++ b/src/test/kc/coalesce-assignment.c @@ -1,7 +1,7 @@ // Tests variable coalescing over assignments void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; byte idx = 0; for( byte a: 0..5) { for( byte b: 0..5) { diff --git a/src/test/kc/code-after-return-1.c b/src/test/kc/code-after-return-1.c index c83b70141..d5c120704 100644 --- a/src/test/kc/code-after-return-1.c +++ b/src/test/kc/code-after-return-1.c @@ -1,6 +1,6 @@ // Test code after return in main() -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char b = 0; diff --git a/src/test/kc/code-after-return.c b/src/test/kc/code-after-return.c index e2a95f3b1..788d566fb 100644 --- a/src/test/kc/code-after-return.c +++ b/src/test/kc/code-after-return.c @@ -1,6 +1,6 @@ // Test code after return in main() -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = 'a'; diff --git a/src/test/kc/comma-decl-2.c b/src/test/kc/comma-decl-2.c index 944df2f41..2e649ad14 100644 --- a/src/test/kc/comma-decl-2.c +++ b/src/test/kc/comma-decl-2.c @@ -1,7 +1,7 @@ // Tests comma-separated declarations with different array-ness void main() { - char* const SCREEN = $400; + char* const SCREEN = (char*)$400; char b, c[3], d; SCREEN[0] = b; SCREEN[1] = c[0]; diff --git a/src/test/kc/comma-decl-for.c b/src/test/kc/comma-decl-for.c index 08ae5b88c..14b3f8cbb 100644 --- a/src/test/kc/comma-decl-for.c +++ b/src/test/kc/comma-decl-for.c @@ -1,7 +1,7 @@ // Tests comma-separated declarations inside for() void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for(byte i, j='g'; i<10; i++, j++) { SCREEN[i] = j; } diff --git a/src/test/kc/comma-decl.c b/src/test/kc/comma-decl.c index 201bdd510..e89cf2ff5 100644 --- a/src/test/kc/comma-decl.c +++ b/src/test/kc/comma-decl.c @@ -1,7 +1,7 @@ // Tests comma-separated declarations void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte b = 'c', c = b+1, d = c+1; SCREEN[0] = b; SCREEN[1] = c; diff --git a/src/test/kc/comma-expr-1.c b/src/test/kc/comma-expr-1.c index 7e2d1834e..00d5233be 100644 --- a/src/test/kc/comma-expr-1.c +++ b/src/test/kc/comma-expr-1.c @@ -1,7 +1,7 @@ // Tests simple comma-expression (in parenthesis) void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte b = (1,2,3); byte c = (1+1,b+1); SCREEN[1,0] = c; diff --git a/src/test/kc/comma-expr-2.c b/src/test/kc/comma-expr-2.c index 04e646d12..22a2f71d3 100644 --- a/src/test/kc/comma-expr-2.c +++ b/src/test/kc/comma-expr-2.c @@ -1,7 +1,7 @@ // Tests simple comma-expressions (without parenthesis) void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte b; byte c; b = 1,2,3; diff --git a/src/test/kc/comma-expr-for.c b/src/test/kc/comma-expr-for.c index 13a69d1e1..219f24a60 100644 --- a/src/test/kc/comma-expr-for.c +++ b/src/test/kc/comma-expr-for.c @@ -1,7 +1,7 @@ // Tests comma-expressions in for()-statement void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte j='g'; for( byte i=0; j<10, i<10; i++, j++) { SCREEN[i] = j; diff --git a/src/test/kc/comparison-rewriting-pointer.c b/src/test/kc/comparison-rewriting-pointer.c index a947aad9c..2fbdddfce 100644 --- a/src/test/kc/comparison-rewriting-pointer.c +++ b/src/test/kc/comparison-rewriting-pointer.c @@ -1,10 +1,10 @@ // Test rewriting of constant comparisons for pointers void main() { - byte* const screen = $0400; + byte* const screen = (byte*)$0400; for(byte* sc =screen;sc<=screen+999;sc++) *sc='a'; - byte* const cols = $d800; + byte* const cols = (byte*)$d800; for(byte* cc =cols+999;cc>cols-1;cc--) *cc=2; } \ No newline at end of file diff --git a/src/test/kc/comparison-rewriting.c b/src/test/kc/comparison-rewriting.c index 83baab7fc..03b76e51a 100644 --- a/src/test/kc/comparison-rewriting.c +++ b/src/test/kc/comparison-rewriting.c @@ -1,7 +1,7 @@ // Test rewriting of constant comparisons void main() { - byte* const SCREEN = $0400; + byte* const SCREEN = (byte*)$0400; for(byte* sc : SCREEN..SCREEN+1000) *sc=' '; diff --git a/src/test/kc/complex-conditional-problem.c b/src/test/kc/complex-conditional-problem.c index 76d570382..79a189c69 100644 --- a/src/test/kc/complex-conditional-problem.c +++ b/src/test/kc/complex-conditional-problem.c @@ -1,7 +1,7 @@ // Test to provoke Exception when using complex || condition -byte* const RASTER = $d012; -byte* const SCREEN = $0400; +byte* const RASTER = (byte*)$d012; +byte* const SCREEN = (byte*)$0400; void main() { while(true) { diff --git a/src/test/kc/complex/ataritempest/ataritempest.c b/src/test/kc/complex/ataritempest/ataritempest.c index dd5cf0c36..cc2356e80 100644 --- a/src/test/kc/complex/ataritempest/ataritempest.c +++ b/src/test/kc/complex/ataritempest/ataritempest.c @@ -6,7 +6,7 @@ #pragma extension("bin") #pragma cpu(ROM6502X) -char* const BG_COLOR = 0xc01a; +char* const BG_COLOR = (char*)0xc01a; #pragma data_seg(RomData) char MESSAGE[] = "hello world"; diff --git a/src/test/kc/complex/borderline_pacman/pacman-logic-data.c b/src/test/kc/complex/borderline_pacman/pacman-logic-data.c index 26a35f1a6..8359a687a 100644 --- a/src/test/kc/complex/borderline_pacman/pacman-logic-data.c +++ b/src/test/kc/complex/borderline_pacman/pacman-logic-data.c @@ -30,7 +30,7 @@ volatile char logic_tile_right_idx; // Initialize bobs_restore with data to prevent crash on the first call void init_bobs_restore() { - char * CANVAS_HIDDEN = 0xea00; + char * CANVAS_HIDDEN = (char*)0xea00; char * bob_restore = bobs_restore; for(char bob=0;bob<NUM_BOBS*2;bob++) { for(char i=0;i<SIZE_BOB_RESTORE;i++) diff --git a/src/test/kc/complex/borderline_pacman/pacman.c b/src/test/kc/complex/borderline_pacman/pacman.c index c6b9a7bd7..3746cff5a 100644 --- a/src/test/kc/complex/borderline_pacman/pacman.c +++ b/src/test/kc/complex/borderline_pacman/pacman.c @@ -28,35 +28,35 @@ // Graphics Bank 1 // Address of the sprites -char * const BANK_1 = 0x4000; +char * const BANK_1 = (char*)0x4000; // Address of the sprites -char * const SPRITES_1 = 0x6000; +char * const SPRITES_1 = (char*)0x6000; // Use sprite pointers on all screens (0x43f8, 0x47f8, ...) -char * const SCREENS_1 = 0x4000; +char * const SCREENS_1 = (char*)0x4000; // Graphics Bank 2 // Address of the sprites -char * const BANK_2 = 0xc000; +char * const BANK_2 = (char*)0xc000; // Address of the sprites -char * const SPRITES_2 = 0xe000; +char * const SPRITES_2 = (char*)0xe000; // Use sprite pointers on all screens (0x43f8, 0x47f8, ...) -char * const SCREENS_2 = 0xc000; +char * const SCREENS_2 = (char*)0xc000; // The location where the logic code will be located before merging -char * const LOGIC_CODE_UNMERGED = 0xe000; +char * const LOGIC_CODE_UNMERGED = (char*)0xe000; // The location where the screen raster code will be located before merging -char * const RASTER_CODE_UNMERGED = 0x6000; +char * const RASTER_CODE_UNMERGED = (char*)0x6000; // The location where the screen raster code will be located when running -char * const RASTER_CODE = 0x8000; +char * const RASTER_CODE = (char*)0x8000; // Address of the (decrunched) splash screen -char * const SPLASH = 0x4000; +char * const SPLASH = (char*)0x4000; // Address for the victory graphics -char * const WIN_GFX = 0xa700; +char * const WIN_GFX = (char*)0xa700; // Address for the gameover graphics -char * const GAMEOVER_GFX = 0xa700; +char * const GAMEOVER_GFX = (char*)0xa700; // Address used by (decrunched) tiles -char * const LEVEL_TILES = 0x4800; +char * const LEVEL_TILES = (char*)0x4800; char * const TILES_LEFT = LEVEL_TILES+0x0a00; char * const TILES_RIGHT = LEVEL_TILES+0x0a80; char * const TILES_TYPE = LEVEL_TILES+0x0b00; @@ -72,11 +72,11 @@ enum TILE_TYPE { // Address used for table containing available directions for all tiles // TABLE LEVEL_TILES_DIRECTIONS[64*37] // The level data is organized as 37 rows of 64 bytes. Each row is 50 bytes containing DIRECTION bits plus 14 unused bytes to achieve 64-byte alignment. -char * const LEVEL_TILES_DIRECTIONS = 0x3e00; +char * const LEVEL_TILES_DIRECTIONS = (char*)0x3e00; // Address of the (decrunched) splash screen const char BOB_ROW_SIZE = 0x80; -char * const BOB_MASK_LEFT = 0x5400; +char * const BOB_MASK_LEFT = (char*)0x5400; char * const BOB_MASK_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*6; char * const BOB_PIXEL_LEFT = BOB_MASK_LEFT+BOB_ROW_SIZE*12; char * const BOB_PIXEL_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*18; @@ -87,7 +87,7 @@ char * const BOB_PIXEL_RIGT = BOB_MASK_LEFT+BOB_ROW_SIZE*18; // - 0xNN00-0xNN4A : low-byte of the graphics for (X-column, Y-fine) // - 0xNN50-0xNN9A : high-byte of the graphics for (X-column, Y-fine) // - 0xNNA0-0xNNEA : index into RENDER_YPOS_INC for incrementing the y-pos. -char * const RENDER_INDEX = 0xb600; +char * const RENDER_INDEX = (char*)0xb600; #include "pacman-render.c" #include "pacman-logic-data.c" @@ -112,12 +112,12 @@ volatile char bottom_sprites_mc; #pragma data_seg(Data) // Upper memory location used during decrunching -char * const INTRO_MUSIC_CRUNCHED_UPPER = 0xa700; +char * const INTRO_MUSIC_CRUNCHED_UPPER = (char*)0xa700; // Size of the crunched music const unsigned int INTRO_MUSIC_CRUNCHED_SIZE = 0x0600; // Address of the music during run-time -char* const INTRO_MUSIC = 0x3000; +char* const INTRO_MUSIC = (char*)0x3000; // Pointer to the music init routine void()* const musicInit = (void()*) INTRO_MUSIC+0x00; // Pointer to the music play routine diff --git a/src/test/kc/complex/includes/includes-1.c b/src/test/kc/complex/includes/includes-1.c index 3aa939fec..70e6bd2d5 100644 --- a/src/test/kc/complex/includes/includes-1.c +++ b/src/test/kc/complex/includes/includes-1.c @@ -4,7 +4,7 @@ char* STR = "camelot!"; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN [0] = (char) strlen(STR); diff --git a/src/test/kc/complex/includes/includes-2.c b/src/test/kc/complex/includes/includes-2.c index 127ceafb4..05e8d3d62 100644 --- a/src/test/kc/complex/includes/includes-2.c +++ b/src/test/kc/complex/includes/includes-2.c @@ -4,7 +4,7 @@ char* STR = "camelot!"; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN [0] = (char) strlen(STR); diff --git a/src/test/kc/complex/includes/includes-3.c b/src/test/kc/complex/includes/includes-3.c index c6d9f4d9c..5b1e8fcbf 100644 --- a/src/test/kc/complex/includes/includes-3.c +++ b/src/test/kc/complex/includes/includes-3.c @@ -2,7 +2,7 @@ #include "lib.h" -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/complex/new_30_years_low_resolution/multiplex-bucket.c b/src/test/kc/complex/new_30_years_low_resolution/multiplex-bucket.c index 5add69c1d..973223171 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/multiplex-bucket.c +++ b/src/test/kc/complex/new_30_years_low_resolution/multiplex-bucket.c @@ -41,7 +41,7 @@ #endif // The screen sprite pointers to update -char * const SCREEN_SPRITE_PTRS = PLEX_SPRITE_PTRS; +char * const SCREEN_SPRITE_PTRS = (char*)PLEX_SPRITE_PTRS; // The Y-position (IRQ raster line) starting each bucket char BUCKET_YPOS[BUCKET_COUNT] = { 0x10, 0x48, 0x58, 0x72, 0x8e, 0xaa, 0xc0, 0xd0, 0xde }; diff --git a/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c b/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c index c94de81cd..198c328ab 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c +++ b/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c @@ -18,7 +18,7 @@ #pragma code_seg(Code) #pragma data_seg(Data) -char* const DEMO_MUSIC = 0xAC00; +char* const DEMO_MUSIC = (char*)0xAC00; // Pointer to the music init routine void()* const musicInit = (void()*) DEMO_MUSIC; // Pointer to the music play routine diff --git a/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c b/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c index ba43f0e75..7dbc5d8ab 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c +++ b/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c @@ -7,21 +7,21 @@ #pragma code_seg(CodePart1) #pragma data_seg(DataPart1) -char * const P1_COLORS = 0xa800; // A800-AFFF -char * const P1_PIXELS = 0xc000; // C000-DFFF -char * const P1_SCREEN = 0xe000; // E000-E3FF -char * const P1_SPRITES = 0xfc00; // E000-E3FF -char * const PIXELS_EMPTY = 0xe800; // E800-EFFF +char * const P1_COLORS = (char*)0xa800; // A800-AFFF +char * const P1_PIXELS = (char*)0xc000; // C000-DFFF +char * const P1_SCREEN = (char*)0xe000; // E000-E3FF +char * const P1_SPRITES = (char*)0xfc00; // E000-E3FF +char * const PIXELS_EMPTY = (char*)0xe800; // E800-EFFF // A copy of the load screen and colors -char * const LOAD_SCREEN = 0xe400; // E400-E7FF -char * const LOAD_CHARSET = 0xf000; // F000-F7FF -char * const LOAD_COLORS = 0xf800; // F800-FBFF +char * const LOAD_SCREEN = (char*)0xe400; // E400-E7FF +char * const LOAD_CHARSET = (char*)0xf000; // F000-F7FF +char * const LOAD_COLORS = (char*)0xf800; // F800-FBFF // Flipper cosine easing table -unsigned int * const FLIPPER_EASING = 0xa400; +unsigned int * const FLIPPER_EASING = (unsigned int*)0xa400; // Sprite pointers -char * const P1_SCREEN_SPRITE_PTRS = 0xe3f8; // P1_SCREEN+OFFSET_SPRITE_PTRS; +char * const P1_SCREEN_SPRITE_PTRS = (char*)0xe3f8; // P1_SCREEN+OFFSET_SPRITE_PTRS; #pragma data_seg(InitPart1) diff --git a/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c b/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c index 5009cf83b..1be120577 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c +++ b/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c @@ -14,18 +14,18 @@ #include "multiplex-bucket.h" // Memory layout of the graphics bank -char * const LOGO_DATA = 0x5400; -char * const PART2_BITMAP = 0xc000; // -0xdfff -char * const PART2_SCREEN = 0xe000; // -0xe400 -char * const PART2_SPRITES = 0xe400; // -0xf400 +char * const LOGO_DATA = (char*)0x5400; +char * const PART2_BITMAP = (char*)0xc000; // -0xdfff +char * const PART2_SCREEN = (char*)0xe000; // -0xe400 +char * const PART2_SPRITES = (char*)0xe400; // -0xf400 // Location PLEX ID updaters are placed when running -char * const PLEX_ID_UPDATERS = 0x3c00; +char * const PLEX_ID_UPDATERS = (char*)0x3c00; // Location where the crunched PLEX ID updaters are placed to be decrunched -char * const PLEX_ID_UPDATERS_CRUNCHED2 = 0x7c00; // -0xFF72 +char * const PLEX_ID_UPDATERS_CRUNCHED2 = (char*)0x7c00; // -0xFF72 // Size of the crunched PLEX ID updaters const unsigned int PLEX_ID_UPDATERS_CRUNCHED_SIZE = 0x0b72; // Location where the crunched LOGO DATA is placed to be decrunched -char * const LOGO_DATA_CRUNCHED2 = 0x8800; // -0xAA2D +char * const LOGO_DATA_CRUNCHED2 = (char*)0x8800; // -0xAA2D // Size of the crunched PLEX ID updaters const unsigned int LOGO_DATA_CRUNCHED_SIZE = 0x222d; diff --git a/src/test/kc/complex/xmega65/xmega65.c b/src/test/kc/complex/xmega65/xmega65.c index a5b52ac13..53fdb54c7 100644 --- a/src/test/kc/complex/xmega65/xmega65.c +++ b/src/test/kc/complex/xmega65/xmega65.c @@ -8,11 +8,11 @@ #pragma extension("bin") -char* const RASTER = 0xd012; -char* const VICII_MEMORY = 0xd018; -char* const SCREEN = 0x0400; -char* const BG_COLOR = 0xd021; -char* const COLS = 0xd800; +char* const RASTER = (char*)0xd012; +char* const VICII_MEMORY = (char*)0xd018; +char* const SCREEN = (char*)0x0400; +char* const BG_COLOR = (char*)0xd021; +char* const COLS = (char*)0xd800; const char BLACK = 0; const char WHITE = 1; diff --git a/src/test/kc/complex/xmega65/xmega65logo.c b/src/test/kc/complex/xmega65/xmega65logo.c index 1b0db6fcd..b4adea740 100644 --- a/src/test/kc/complex/xmega65/xmega65logo.c +++ b/src/test/kc/complex/xmega65/xmega65logo.c @@ -2,7 +2,7 @@ // Fill the palette values into void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; for(byte i:0..0xff) { (SCREEN+40*0)[i] = LOGO256_RED[i]; (SCREEN+40*8)[i] = LOGO256_GREEN[i]; diff --git a/src/test/kc/condition-integer-0.c b/src/test/kc/condition-integer-0.c index 4aab9c67c..d193e5b16 100644 --- a/src/test/kc/condition-integer-0.c +++ b/src/test/kc/condition-integer-0.c @@ -1,7 +1,7 @@ // Tests using integer conditions in if() // This should produce '+ ++ ++' at the top of the screen -byte* const SCREEN = 0x0400; +byte* const SCREEN = (byte*)0x0400; void main() { byte idx = 0; diff --git a/src/test/kc/condition-integer-1.c b/src/test/kc/condition-integer-1.c index c4807b60a..a70df4cdd 100644 --- a/src/test/kc/condition-integer-1.c +++ b/src/test/kc/condition-integer-1.c @@ -1,7 +1,7 @@ // Tests using integer conditions in if() // This should produce '0 0 0' at the top of the screen -byte* const SCREEN = 0x0400; +byte* const SCREEN = (byte*)0x0400; void main() { byte idx = 0; diff --git a/src/test/kc/condition-integer-2.c b/src/test/kc/condition-integer-2.c index d6aee1435..0abccd7e9 100644 --- a/src/test/kc/condition-integer-2.c +++ b/src/test/kc/condition-integer-2.c @@ -1,7 +1,7 @@ // Tests using integer conditions in while() / for() / do..while // This should produce 'ba ba@ ba@' at the top of the screen -byte* const SCREEN = 0x0400; +byte* const SCREEN = (byte*)0x0400; byte idx = 0; void main() { diff --git a/src/test/kc/condition-integer-3.c b/src/test/kc/condition-integer-3.c index 8c84427aa..c323eba4f 100644 --- a/src/test/kc/condition-integer-3.c +++ b/src/test/kc/condition-integer-3.c @@ -1,7 +1,7 @@ // Tests using integer conditions in ternary operator // This should produce '++0++' at the top of the screen -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { byte idx = 0; diff --git a/src/test/kc/condition-integer-4.c b/src/test/kc/condition-integer-4.c index ac290e75e..d9b541219 100644 --- a/src/test/kc/condition-integer-4.c +++ b/src/test/kc/condition-integer-4.c @@ -1,7 +1,7 @@ // Tests using integer conditions in && and || operator // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { byte idx = 0; diff --git a/src/test/kc/condition-type-mismatch.c b/src/test/kc/condition-type-mismatch.c index c13316130..657ea6976 100644 --- a/src/test/kc/condition-type-mismatch.c +++ b/src/test/kc/condition-type-mismatch.c @@ -3,7 +3,7 @@ void main() { byte b = 12; if(b) { - byte* screen = $400; + byte* screen = (char*)$400; *screen = 'a'; } } \ No newline at end of file diff --git a/src/test/kc/consolidate-array-index-problem.c b/src/test/kc/consolidate-array-index-problem.c index a1383eb9a..a509e64ec 100644 --- a/src/test/kc/consolidate-array-index-problem.c +++ b/src/test/kc/consolidate-array-index-problem.c @@ -1,8 +1,8 @@ void main() { byte BLACK = 0; - byte* screen = $0400; - byte* cols = $d800; + byte* screen = (byte*)$0400; + byte* cols = (byte*)$d800; for(byte x:0..10) { byte y=x+12; screen[y] = 'a'; diff --git a/src/test/kc/consolidate-constant-problem.c b/src/test/kc/consolidate-constant-problem.c index bf5dbe0f6..ed93a59a8 100644 --- a/src/test/kc/consolidate-constant-problem.c +++ b/src/test/kc/consolidate-constant-problem.c @@ -1,4 +1,4 @@ -byte* const screen = $400; +byte* const screen = (byte*)$400; void main() { inline for( byte j: 0..1) { diff --git a/src/test/kc/const-bool-0.c b/src/test/kc/const-bool-0.c index a722aa986..4e029b5c4 100644 --- a/src/test/kc/const-bool-0.c +++ b/src/test/kc/const-bool-0.c @@ -3,7 +3,7 @@ void main() { char bError = 7; bError &= ~(0x10 | 0x20 | 0x40); - char* const screen = 0x0400; + char* const screen = (char*)0x0400; *screen = bError; } diff --git a/src/test/kc/const-condition.c b/src/test/kc/const-condition.c index 25feee706..9a93a4dd3 100644 --- a/src/test/kc/const-condition.c +++ b/src/test/kc/const-condition.c @@ -1,7 +1,7 @@ // Ensure that if()'s with constant comparisons are identified and eliminated void main() { - byte* const SCREEN = $0400; + byte* const SCREEN = (byte*)$0400; if(7<4) { SCREEN[0] = '*'; } else { diff --git a/src/test/kc/const-declaration.c b/src/test/kc/const-declaration.c index 09ea4cb43..4a537d884 100644 --- a/src/test/kc/const-declaration.c +++ b/src/test/kc/const-declaration.c @@ -1,6 +1,6 @@ // Tests a number of constant declarations -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; const char LINE_LEN = 40; const char MARGIN_TOP = 4; const char MARGIN_LEFT = 4; diff --git a/src/test/kc/const-early-identification.c b/src/test/kc/const-early-identification.c index af9e79a8e..ed53a8b02 100644 --- a/src/test/kc/const-early-identification.c +++ b/src/test/kc/const-early-identification.c @@ -1,6 +1,6 @@ // Tests that constants are identified early -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; // Not an early constant (address-of is used) byte A = 'a'; diff --git a/src/test/kc/const-identification.c b/src/test/kc/const-identification.c index 3145b9ba7..7a8502c88 100644 --- a/src/test/kc/const-identification.c +++ b/src/test/kc/const-identification.c @@ -1,5 +1,5 @@ -byte* const plots = $1000; -byte* const SCREEN = $0400; +byte* const plots = (byte*)$1000; +byte* const SCREEN = (byte*)$0400; void main() { for(byte i : 0..39) { diff --git a/src/test/kc/const-if-problem.c b/src/test/kc/const-if-problem.c index 23c328a3d..9427ae134 100644 --- a/src/test/kc/const-if-problem.c +++ b/src/test/kc/const-if-problem.c @@ -1,6 +1,6 @@ // Constant if() contains call to (unused) function - should be optimized away -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { if(1==1) { diff --git a/src/test/kc/const-int-cast-problem.c b/src/test/kc/const-int-cast-problem.c index 4f1971677..6436b4763 100644 --- a/src/test/kc/const-int-cast-problem.c +++ b/src/test/kc/const-int-cast-problem.c @@ -1,5 +1,5 @@ // Test a problem with converting casted constant numbers to fixed type constant integers -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; void main() { for( byte i: 121..122) { diff --git a/src/test/kc/const-mult-div.c b/src/test/kc/const-mult-div.c index 7a6a50242..2bd2a722c 100644 --- a/src/test/kc/const-mult-div.c +++ b/src/test/kc/const-mult-div.c @@ -2,6 +2,6 @@ void main() { byte b = 6*(14/3) + 22%3; - byte* screen = $400; + byte* screen = (char*)$400; screen[0] = b; } \ No newline at end of file diff --git a/src/test/kc/const-param.c b/src/test/kc/const-param.c index 7fd135f80..27a7bb507 100644 --- a/src/test/kc/const-param.c +++ b/src/test/kc/const-param.c @@ -1,7 +1,7 @@ // Test that the compiler optimizes when the same parameter value is passed into a function in all calls void main() { - byte* screen = $400; + byte* screen = (char*)$400; const byte reverse = $80; screen[0] = sum(reverse, 'c'); screen[1] = sum(reverse, 'm'); diff --git a/src/test/kc/const-parenthesis.c b/src/test/kc/const-parenthesis.c index 3a8590f72..0f147487d 100644 --- a/src/test/kc/const-parenthesis.c +++ b/src/test/kc/const-parenthesis.c @@ -1,7 +1,7 @@ // Test parenthesising of constants // See https://gitlab.com/camelot/kickc/-/issues/470#note_356486132 -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { const char dy = 128; diff --git a/src/test/kc/const-pointer-modify.c b/src/test/kc/const-pointer-modify.c index 7426ab584..9c73d2efe 100644 --- a/src/test/kc/const-pointer-modify.c +++ b/src/test/kc/const-pointer-modify.c @@ -1,7 +1,7 @@ // Test that modifying constant pointers fail void main() { - byte* const screen = $400; + byte* const screen = (byte*)$400; screen[0] = 'c'; screen++; screen[0] = 'm'; diff --git a/src/test/kc/const-pointer.c b/src/test/kc/const-pointer.c index d424d534b..8a9d853e9 100644 --- a/src/test/kc/const-pointer.c +++ b/src/test/kc/const-pointer.c @@ -1,9 +1,9 @@ //Test that constant pointers are detected correctly void main() { - byte* screen = $400; - byte* NULL = $0; - byte* rem = $ff; + byte* screen = (byte*)$400; + byte* NULL = (byte*)$0; + byte* rem = (byte*)$ff; if(rem!=NULL) { screen[0] = '*'; diff --git a/src/test/kc/const-signed-promotion.c b/src/test/kc/const-signed-promotion.c index 54fc6ee11..7fc084845 100644 --- a/src/test/kc/const-signed-promotion.c +++ b/src/test/kc/const-signed-promotion.c @@ -6,6 +6,6 @@ void main() { for(byte i:0..2) { world[i]= 400; } - signed word* screen = $400; + signed word* screen = (signed word*)$400; *screen = world[0]; } \ No newline at end of file diff --git a/src/test/kc/const-volatile-problem.c b/src/test/kc/const-volatile-problem.c index 0ed1c2f0c..ef3b7c21f 100644 --- a/src/test/kc/const-volatile-problem.c +++ b/src/test/kc/const-volatile-problem.c @@ -9,7 +9,7 @@ char* PLEX_SCREEN_PTR1 = (char*)0x400; char* PLEX_SCREEN_PTR2 = (char*)0x500; volatile char idx = 0; -void()** const IRQ = 0x314; +void()** const IRQ = (void()**)0x314; void main() { PLEX_SCREEN_PTR1 = (char*)0x400; diff --git a/src/test/kc/const-word-pointer.c b/src/test/kc/const-word-pointer.c index ef1e868e3..bfe68fe42 100644 --- a/src/test/kc/const-word-pointer.c +++ b/src/test/kc/const-word-pointer.c @@ -2,7 +2,7 @@ // The result when running is "CML!" on the screen. void main () { - byte* screen = $400; + byte* screen = (char*)$400; word w = $0d03; word* wp = &w; screen[0] = <*wp; diff --git a/src/test/kc/constabsmin.c b/src/test/kc/constabsmin.c index b5b2417b1..079e62196 100644 --- a/src/test/kc/constabsmin.c +++ b/src/test/kc/constabsmin.c @@ -1,4 +1,4 @@ -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; void main() { *SCREEN = 1; diff --git a/src/test/kc/constant-string-concat-0.c b/src/test/kc/constant-string-concat-0.c index 26f839254..b8cb82ac5 100644 --- a/src/test/kc/constant-string-concat-0.c +++ b/src/test/kc/constant-string-concat-0.c @@ -1,7 +1,7 @@ // Concatenates string constants in different ways void main() { byte msg[] = "camel" "ot"; - byte* SCREEN = 0x0400; + byte* SCREEN = (char*)0x0400; for( byte i=0;msg[i]!=0;i++) { SCREEN[i] = msg[i]; } diff --git a/src/test/kc/constant-string-concat.c b/src/test/kc/constant-string-concat.c index b00b7d1d9..74681f565 100644 --- a/src/test/kc/constant-string-concat.c +++ b/src/test/kc/constant-string-concat.c @@ -3,7 +3,7 @@ void main() { byte s[] = "c" "ame" "lot"; - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; for( byte i: 0..7) { SCREEN[i] = s[i]; } diff --git a/src/test/kc/constantmin.c b/src/test/kc/constantmin.c index 83d19f87a..69156e268 100644 --- a/src/test/kc/constantmin.c +++ b/src/test/kc/constantmin.c @@ -1,7 +1,7 @@ -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; const byte STAR = 81; -byte* VIC = $d000; +byte* VIC = (byte*)$d000; byte* BG_COLOR = VIC+$10*2+1; byte RED = 2; diff --git a/src/test/kc/constants.c b/src/test/kc/constants.c index b31d803b3..a48b94781 100644 --- a/src/test/kc/constants.c +++ b/src/test/kc/constants.c @@ -1,5 +1,5 @@ #include <c64-print.h> -byte* const BG_COLOR = $d021; +byte* const BG_COLOR = (char*)$d021; const byte GREEN = 5; const byte RED = 2 ; diff --git a/src/test/kc/constref-not-literal-problem.c b/src/test/kc/constref-not-literal-problem.c index 502ad1ace..5d73eabf4 100644 --- a/src/test/kc/constref-not-literal-problem.c +++ b/src/test/kc/constref-not-literal-problem.c @@ -1,7 +1,7 @@ // Demonstrates a problem where constant references are not literal char A[] = "qwe"; -char * B = 0x8000; +char * B = (char*)0x8000; void main() { copy(B, A); diff --git a/src/test/kc/cordic-atan2-16-ref.c b/src/test/kc/cordic-atan2-16-ref.c index c74a098ed..aa6855389 100644 --- a/src/test/kc/cordic-atan2-16-ref.c +++ b/src/test/kc/cordic-atan2-16-ref.c @@ -6,8 +6,8 @@ #include <c64.h> #include <c64-print.h> -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x2800; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x2800; const byte SCREEN_REF[1000] = kickasm {{ .for(var y=-12;y<=12;y++) diff --git a/src/test/kc/cordic-atan2-16.c b/src/test/kc/cordic-atan2-16.c index 4e2185fc3..3aad055b8 100644 --- a/src/test/kc/cordic-atan2-16.c +++ b/src/test/kc/cordic-atan2-16.c @@ -5,8 +5,8 @@ #include <atan2.h> #include <c64.h> -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x2800; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x2800; void main() { init_font_hex(CHARSET); diff --git a/src/test/kc/cordic-atan2-clear.c b/src/test/kc/cordic-atan2-clear.c index 893fdc653..0bc84e959 100644 --- a/src/test/kc/cordic-atan2-clear.c +++ b/src/test/kc/cordic-atan2-clear.c @@ -4,8 +4,8 @@ #include <atan2.h> #include <c64.h> -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x2800; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x2800; void main() { init_font_hex(CHARSET); diff --git a/src/test/kc/cordic-atan2.c b/src/test/kc/cordic-atan2.c index 91b4d8092..a60b3162d 100644 --- a/src/test/kc/cordic-atan2.c +++ b/src/test/kc/cordic-atan2.c @@ -6,8 +6,8 @@ #include <atan2.h> -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x2800; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x2800; void main() { init_font_hex(CHARSET); diff --git a/src/test/kc/cpu-45gs02.c b/src/test/kc/cpu-45gs02.c index 43a1ace00..0a1d97671 100644 --- a/src/test/kc/cpu-45gs02.c +++ b/src/test/kc/cpu-45gs02.c @@ -3,7 +3,7 @@ #pragma cpu(MEGA45GS02) -unsigned long* SCREEN = 0x0400; +unsigned long* SCREEN = (char*)0x0400; void main() { unsigned long sum = 0; diff --git a/src/test/kc/cpu-6502.c b/src/test/kc/cpu-6502.c index 99f742e64..24e6039d9 100644 --- a/src/test/kc/cpu-6502.c +++ b/src/test/kc/cpu-6502.c @@ -4,7 +4,7 @@ #pragma cpu(MOS6502) void main() { - char* const screen = 0x0400; + char* const screen = (char*)0x0400; char c=0; while(c<100) { screen[c] = '*'; diff --git a/src/test/kc/cpu-65c02.c b/src/test/kc/cpu-65c02.c index 824f1403e..a31485b01 100644 --- a/src/test/kc/cpu-65c02.c +++ b/src/test/kc/cpu-65c02.c @@ -3,7 +3,7 @@ #pragma cpu(WDC65C02) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char a = SCREEN[0]; diff --git a/src/test/kc/cpu-65ce02-b.c b/src/test/kc/cpu-65ce02-b.c index 4ddaafb32..a7e208970 100644 --- a/src/test/kc/cpu-65ce02-b.c +++ b/src/test/kc/cpu-65ce02-b.c @@ -3,7 +3,7 @@ #pragma cpu(CSG65CE02) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { for(register(Z) char i=0;i<100;i++) diff --git a/src/test/kc/cpu-65ce02.c b/src/test/kc/cpu-65ce02.c index 72adba6db..87699e6be 100644 --- a/src/test/kc/cpu-65ce02.c +++ b/src/test/kc/cpu-65ce02.c @@ -3,7 +3,7 @@ #pragma cpu(CSG65CE02) -signed char* const SCREEN = 0x0400; +signed char* const SCREEN = (signed char*)0x0400; void main() { signed char a = SCREEN[0]; diff --git a/src/test/kc/cstyle-decl-function-mismatch.c b/src/test/kc/cstyle-decl-function-mismatch.c index b2cebb164..7dda3c930 100644 --- a/src/test/kc/cstyle-decl-function-mismatch.c +++ b/src/test/kc/cstyle-decl-function-mismatch.c @@ -4,7 +4,7 @@ // Declaration of a sum-function char sum(char a, int b); -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Definition of main() void main() { diff --git a/src/test/kc/cstyle-decl-function-missing.c b/src/test/kc/cstyle-decl-function-missing.c index 969b98867..bd1310254 100644 --- a/src/test/kc/cstyle-decl-function-missing.c +++ b/src/test/kc/cstyle-decl-function-missing.c @@ -4,7 +4,7 @@ // Declaration of a sum-function char sum(char a, int b); -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Definition of main() void main() { diff --git a/src/test/kc/cstyle-decl-function-redefinition.c b/src/test/kc/cstyle-decl-function-redefinition.c index 6a07c5490..a1d4cfba5 100644 --- a/src/test/kc/cstyle-decl-function-redefinition.c +++ b/src/test/kc/cstyle-decl-function-redefinition.c @@ -4,7 +4,7 @@ // Declaration of a sum-function char sum(char a, char b); -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Definition of main() void main() { diff --git a/src/test/kc/cstyle-decl-function.c b/src/test/kc/cstyle-decl-function.c index d42c32e15..28ba24abe 100644 --- a/src/test/kc/cstyle-decl-function.c +++ b/src/test/kc/cstyle-decl-function.c @@ -6,7 +6,7 @@ void main(void); // Declaration of a sum-function char sum(char a, char b); -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Definition of main() void main() { diff --git a/src/test/kc/cstyle-decl-var-mismatch.c b/src/test/kc/cstyle-decl-var-mismatch.c index 84556defd..ad7e5e0fa 100644 --- a/src/test/kc/cstyle-decl-var-mismatch.c +++ b/src/test/kc/cstyle-decl-var-mismatch.c @@ -5,7 +5,7 @@ extern unsigned int SCREEN; // The actual declaration with another -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; char idx; // And a little code using them diff --git a/src/test/kc/cstyle-decl-var-multiple.c b/src/test/kc/cstyle-decl-var-multiple.c index 71212f354..ca5b5b95f 100644 --- a/src/test/kc/cstyle-decl-var-multiple.c +++ b/src/test/kc/cstyle-decl-var-multiple.c @@ -1,6 +1,6 @@ // Test legal definition of multiple local variables with the same name -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; char idx; char c; diff --git a/src/test/kc/cstyle-decl-var-redefinition.c b/src/test/kc/cstyle-decl-var-redefinition.c index 0111df8ec..c0e14fcfb 100644 --- a/src/test/kc/cstyle-decl-var-redefinition.c +++ b/src/test/kc/cstyle-decl-var-redefinition.c @@ -2,10 +2,10 @@ // Redefinition //First definition -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; //Second definition -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; char idx; // And a little code using them diff --git a/src/test/kc/cstyle-decl-var.c b/src/test/kc/cstyle-decl-var.c index 709df172f..76817e3f1 100644 --- a/src/test/kc/cstyle-decl-var.c +++ b/src/test/kc/cstyle-decl-var.c @@ -5,7 +5,7 @@ extern char * const SCREEN; extern char idx; // The actual declarations -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; char idx; // And a little code using them diff --git a/src/test/kc/danny-joystick-problem.c b/src/test/kc/danny-joystick-problem.c index 60384a8ab..54c820967 100644 --- a/src/test/kc/danny-joystick-problem.c +++ b/src/test/kc/danny-joystick-problem.c @@ -2,7 +2,7 @@ // https://www.protovision.games/hardw/build4player.php?language=en&fbclid=IwAR1MJLgQjOU0zVa0ax2aNeGa-xVbE9IGY9zC6b6eInTV4HQzoUAoCPoXu14 #include <c64.h> -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { (CIA2->PORT_B) &= 0x7f; asm { lda #0 } diff --git a/src/test/kc/declared-memory-var-0.c b/src/test/kc/declared-memory-var-0.c index 5d08f5d77..5ea113105 100644 --- a/src/test/kc/declared-memory-var-0.c +++ b/src/test/kc/declared-memory-var-0.c @@ -2,7 +2,7 @@ __mem __ma char idx; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { for( char i: 0..5 ) { diff --git a/src/test/kc/declared-memory-var-1.c b/src/test/kc/declared-memory-var-1.c index 775673ce3..dc4a928ae 100644 --- a/src/test/kc/declared-memory-var-1.c +++ b/src/test/kc/declared-memory-var-1.c @@ -4,7 +4,7 @@ __mem __ma char idx; char* idx_p = &idx; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { for( char i: 0..5 ) { diff --git a/src/test/kc/declared-memory-var-2.c b/src/test/kc/declared-memory-var-2.c index 7655ea061..a997f666d 100644 --- a/src/test/kc/declared-memory-var-2.c +++ b/src/test/kc/declared-memory-var-2.c @@ -1,7 +1,7 @@ // Test declaring a variable as "memory", meaning it will be stored in memory and accessed through an implicit pointer (using load/store) // Test a memory variable containing a pointer -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; __mem __ma char* cursor = SCREEN; diff --git a/src/test/kc/declared-memory-var-3.c b/src/test/kc/declared-memory-var-3.c index d2a13205e..bd272f81d 100644 --- a/src/test/kc/declared-memory-var-3.c +++ b/src/test/kc/declared-memory-var-3.c @@ -10,7 +10,7 @@ __mem __ma struct foo bar = { 'a', 'b' }; void main(void) { struct foo* barp = &bar; - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char i=0; SCREEN[i++] = barp->thing1; SCREEN[i++] = barp->thing2; diff --git a/src/test/kc/declared-memory-var-4.c b/src/test/kc/declared-memory-var-4.c index 0d36a826b..6dba4b7d5 100644 --- a/src/test/kc/declared-memory-var-4.c +++ b/src/test/kc/declared-memory-var-4.c @@ -11,7 +11,7 @@ __mem __ma struct foo bar = { 'a', 'b', "qwe" }; void main(void) { struct foo* barp = &bar; - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char i=0; SCREEN[i++] = barp->thing1; SCREEN[i++] = barp->thing2; diff --git a/src/test/kc/declared-memory-var-5.c b/src/test/kc/declared-memory-var-5.c index ffc83dd1b..1e085ae26 100644 --- a/src/test/kc/declared-memory-var-5.c +++ b/src/test/kc/declared-memory-var-5.c @@ -9,7 +9,7 @@ struct foo { __mem __ma struct foo bar = { 'a', 'b' }; void main(void) { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char i=0; SCREEN[i++] = bar.thing1; SCREEN[i++] = bar.thing2; diff --git a/src/test/kc/declared-memory-var-6.c b/src/test/kc/declared-memory-var-6.c index 6b281237a..0e4164c21 100644 --- a/src/test/kc/declared-memory-var-6.c +++ b/src/test/kc/declared-memory-var-6.c @@ -1,6 +1,6 @@ // Test declaring a variable as "memory", meaning it will be stored in memory and accessed through an implicit pointer (using load/store) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char i=0; void main(void) { diff --git a/src/test/kc/declared-memory-var-7.c b/src/test/kc/declared-memory-var-7.c index 1a226743e..ce4d4e103 100644 --- a/src/test/kc/declared-memory-var-7.c +++ b/src/test/kc/declared-memory-var-7.c @@ -3,7 +3,7 @@ __ma char idx; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { for( char i: 0..5 ) { diff --git a/src/test/kc/declared-memory-var-8.c b/src/test/kc/declared-memory-var-8.c index b5a3f8600..a1de6178d 100644 --- a/src/test/kc/declared-memory-var-8.c +++ b/src/test/kc/declared-memory-var-8.c @@ -3,7 +3,7 @@ __ma __address(0x1000) char idx; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { for( char i: 0..5 ) { diff --git a/src/test/kc/declared-ssa-var-0.c b/src/test/kc/declared-ssa-var-0.c index 72c709832..3013fa8bd 100644 --- a/src/test/kc/declared-ssa-var-0.c +++ b/src/test/kc/declared-ssa-var-0.c @@ -3,10 +3,10 @@ char __ssa idx_ssa_g; char __ma idx_nssa_g; -char* const SCREEN1 = 0x0400; -char* const SCREEN2 = 0x0400+40; -char* const SCREEN3 = 0x0400+80; -char* const SCREEN4 = 0x0400+120; +char* const SCREEN1 = (char*)0x0400; +char* const SCREEN2 = (char*)0x0400+40; +char* const SCREEN3 = (char*)0x0400+80; +char* const SCREEN4 = (char*)0x0400+120; void main() { char __ssa idx_ssa_l; diff --git a/src/test/kc/deep-nesting.c b/src/test/kc/deep-nesting.c index 49aab2831..b7f1eec5e 100644 --- a/src/test/kc/deep-nesting.c +++ b/src/test/kc/deep-nesting.c @@ -1,7 +1,7 @@ // Test that the compiler handles deep nesting well -- mainly a performance issue. void main() { - byte* screen = $400; + byte* screen = (char*)$400; const byte reverse = $80; screen[0] = f1(0); } diff --git a/src/test/kc/default-font.c b/src/test/kc/default-font.c index 3323868a1..98302b03c 100644 --- a/src/test/kc/default-font.c +++ b/src/test/kc/default-font.c @@ -2,7 +2,7 @@ #include <string.h> -byte* SCREEN = 0x0400; +byte* SCREEN = (char*)0x0400; void main() { memset(SCREEN, ' ', 1000); diff --git a/src/test/kc/deref-to-derefidx-2.c b/src/test/kc/deref-to-derefidx-2.c index 6973476a6..f0d6ab3f6 100644 --- a/src/test/kc/deref-to-derefidx-2.c +++ b/src/test/kc/deref-to-derefidx-2.c @@ -8,7 +8,7 @@ void main() { print(msg2); } -word* const SCREEN = $0400; +word* const SCREEN = (byte*)$0400; byte screen_idx=0; void print(byte* m) { diff --git a/src/test/kc/deref-to-derefidx.c b/src/test/kc/deref-to-derefidx.c index 684a36e54..26c36b637 100644 --- a/src/test/kc/deref-to-derefidx.c +++ b/src/test/kc/deref-to-derefidx.c @@ -8,7 +8,7 @@ void main() { print(msg2); } -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; byte idx=0; void print(byte* m) { diff --git a/src/test/kc/derefidx-word-0.c b/src/test/kc/derefidx-word-0.c index a740bedfd..abf8bac1f 100644 --- a/src/test/kc/derefidx-word-0.c +++ b/src/test/kc/derefidx-word-0.c @@ -1,7 +1,7 @@ // Tests that array-indexing by a word variable is turned into pointer addition void main() { - byte* const screen = 0x0400; + byte* const screen = (char*)0x0400; for( word i=0;i<1000;i+=40) { screen[i] = 'a'; } diff --git a/src/test/kc/derefidx-word-1.c b/src/test/kc/derefidx-word-1.c index 23d8e0f18..0bdaecd6a 100644 --- a/src/test/kc/derefidx-word-1.c +++ b/src/test/kc/derefidx-word-1.c @@ -1,7 +1,7 @@ // Tests that array-indexing by a constant word is turned into a constant pointer void main() { - byte* const screen = 0x0400; + byte* const screen = (char*)0x0400; screen[40*10] = 'a'; } diff --git a/src/test/kc/derefidx-word-2.c b/src/test/kc/derefidx-word-2.c index 2c9512292..104f2402c 100644 --- a/src/test/kc/derefidx-word-2.c +++ b/src/test/kc/derefidx-word-2.c @@ -1,7 +1,7 @@ // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx void main() { - byte* const screen = 0x0400; + byte* const screen = (byte*)0x0400; for( byte i : 0..39) { screen[40*10+i] = 'a'; } diff --git a/src/test/kc/divide-2s.c b/src/test/kc/divide-2s.c index cec3f522c..013605469 100644 --- a/src/test/kc/divide-2s.c +++ b/src/test/kc/divide-2s.c @@ -1,7 +1,7 @@ // Check that division by factors of 2 is converted to shifts void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (byte*)$400; for(byte i: 0..10) { (SCREEN+40*0)[i] = i/1; diff --git a/src/test/kc/double-assignment.c b/src/test/kc/double-assignment.c index 59e8fdfe6..4b8fa7463 100644 --- a/src/test/kc/double-assignment.c +++ b/src/test/kc/double-assignment.c @@ -3,7 +3,7 @@ void main() { byte a; byte b; - byte* screen = $400; + byte* screen = (char*)$400; a = b = 12; screen[0] = a; screen[1] = b; diff --git a/src/test/kc/double-call-problem.c b/src/test/kc/double-call-problem.c index bace9ead4..cad520f40 100644 --- a/src/test/kc/double-call-problem.c +++ b/src/test/kc/double-call-problem.c @@ -5,6 +5,6 @@ void main() { } void clrscr(void) { - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; SCREEN[0] = '@'; } \ No newline at end of file diff --git a/src/test/kc/double-indexing-arrays.c b/src/test/kc/double-indexing-arrays.c index 4cd26fe89..7016c8ce4 100644 --- a/src/test/kc/double-indexing-arrays.c +++ b/src/test/kc/double-indexing-arrays.c @@ -4,8 +4,8 @@ byte MAPDATA[1000]; byte COLORMAP1[256]; byte COLORMAP2[256]; -byte* SCREEN = $0400; -byte* COLS = $d800; +byte* SCREEN = (byte*)$0400; +byte* COLS = (byte*)$d800; void main() { for (byte x: 0..200) { diff --git a/src/test/kc/duplicate-loop-problem.c b/src/test/kc/duplicate-loop-problem.c index 8d455810e..0e424fb77 100755 --- a/src/test/kc/duplicate-loop-problem.c +++ b/src/test/kc/duplicate-loop-problem.c @@ -2,7 +2,7 @@ // Resulted in infinite loop in loop depth analysis -byte* const DC00 = $DC00; +byte* const DC00 = (byte*)$DC00; byte rpc; byte key; diff --git a/src/test/kc/dword.c b/src/test/kc/dword.c index 0b7f01cd0..d7537c3fe 100644 --- a/src/test/kc/dword.c +++ b/src/test/kc/dword.c @@ -5,7 +5,7 @@ void main() { for( byte i: 0..100) { dword b = a + i; byte c = (byte) b; - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; SCREEN[i] = c; } } \ No newline at end of file diff --git a/src/test/kc/empty-function-0.c b/src/test/kc/empty-function-0.c index 457d53ed3..caaf2e485 100644 --- a/src/test/kc/empty-function-0.c +++ b/src/test/kc/empty-function-0.c @@ -2,7 +2,7 @@ char v; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { set(); diff --git a/src/test/kc/empty-function-1.c b/src/test/kc/empty-function-1.c index 77ce0f664..8ec77d458 100644 --- a/src/test/kc/empty-function-1.c +++ b/src/test/kc/empty-function-1.c @@ -1,6 +1,6 @@ // Test removal of empty function -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { empty(); diff --git a/src/test/kc/emptyblock-error.c b/src/test/kc/emptyblock-error.c index f8682d4d7..1fcf408d7 100644 --- a/src/test/kc/emptyblock-error.c +++ b/src/test/kc/emptyblock-error.c @@ -15,7 +15,7 @@ void menu() { } byte a = 0; -byte *B = $1000; +byte *B = (byte *)$1000; void mode() { while(true) { diff --git a/src/test/kc/encoding-atascii.c b/src/test/kc/encoding-atascii.c index fb56b047c..7553c7d05 100644 --- a/src/test/kc/encoding-atascii.c +++ b/src/test/kc/encoding-atascii.c @@ -3,7 +3,7 @@ #pragma encoding(atascii) char TEXT[] = "hello, world!\n"; -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { SCREEN[0] = TEXT[13]; diff --git a/src/test/kc/encoding-literal-char.c b/src/test/kc/encoding-literal-char.c index e2c0f8624..a35fedb8b 100644 --- a/src/test/kc/encoding-literal-char.c +++ b/src/test/kc/encoding-literal-char.c @@ -13,7 +13,7 @@ const char ssm[] = "A"; const char csu = 'A'; const char ssu[] = "A"; -char* const screen = 0x0400; +char* const screen = (char*)0x0400; void main() { char idx = 0; screen[idx++] = cpm; diff --git a/src/test/kc/enum-0.c b/src/test/kc/enum-0.c index cf889ed05..2f057d054 100644 --- a/src/test/kc/enum-0.c +++ b/src/test/kc/enum-0.c @@ -4,6 +4,6 @@ enum State { OFF , ON }; void main() { enum State state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; *SCREEN = state; } \ No newline at end of file diff --git a/src/test/kc/enum-1.c b/src/test/kc/enum-1.c index 534c09d98..79bf8167f 100644 --- a/src/test/kc/enum-1.c +++ b/src/test/kc/enum-1.c @@ -8,6 +8,6 @@ enum State { void main() { enum State state = BROKEN; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; *SCREEN = state; } \ No newline at end of file diff --git a/src/test/kc/enum-2.c b/src/test/kc/enum-2.c index dbce8fb0c..3e0c522db 100644 --- a/src/test/kc/enum-2.c +++ b/src/test/kc/enum-2.c @@ -8,6 +8,6 @@ enum Letter { void main() { enum Letter letter = B; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; *SCREEN = letter; } \ No newline at end of file diff --git a/src/test/kc/enum-3.c b/src/test/kc/enum-3.c index 2ef236734..7334fa22d 100644 --- a/src/test/kc/enum-3.c +++ b/src/test/kc/enum-3.c @@ -8,6 +8,6 @@ enum State { void main() { enum State state = BROKEN; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; *SCREEN = state; } \ No newline at end of file diff --git a/src/test/kc/enum-4.c b/src/test/kc/enum-4.c index 572b87876..1b9627c8e 100644 --- a/src/test/kc/enum-4.c +++ b/src/test/kc/enum-4.c @@ -2,7 +2,7 @@ void main() { enum State { OFF, ON } state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; *SCREEN = state; } diff --git a/src/test/kc/enum-5.c b/src/test/kc/enum-5.c index 886878f06..62fcff295 100644 --- a/src/test/kc/enum-5.c +++ b/src/test/kc/enum-5.c @@ -2,13 +2,13 @@ void main() { enum State { OFF, ON } state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; *SCREEN = state; test(); } void test() { enum State { OFF=7, ON } state = ON; - byte* const SCREEN = 0x0428; + byte* const SCREEN = (byte*)0x0428; *SCREEN = state; } diff --git a/src/test/kc/enum-6.c b/src/test/kc/enum-6.c index 93c9b5f2e..308c4120e 100644 --- a/src/test/kc/enum-6.c +++ b/src/test/kc/enum-6.c @@ -2,7 +2,7 @@ void main() { enum { OFF, ON } state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = state; state = OFF; SCREEN[1] = state; diff --git a/src/test/kc/enum-7.c b/src/test/kc/enum-7.c index d12c460ff..9b7573f1e 100644 --- a/src/test/kc/enum-7.c +++ b/src/test/kc/enum-7.c @@ -9,7 +9,7 @@ struct Button { void main() { struct Button button = { RED, 24}; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = button.color; SCREEN[1] = button.size; } diff --git a/src/test/kc/enum-8.c b/src/test/kc/enum-8.c index 336732a57..e53b4f4aa 100644 --- a/src/test/kc/enum-8.c +++ b/src/test/kc/enum-8.c @@ -7,7 +7,7 @@ struct Button { void main() { struct Button button = { RED, 24 }; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = button.color; SCREEN[1] = button.size; } diff --git a/src/test/kc/enum-err-0.c b/src/test/kc/enum-err-0.c index e76ce679b..efecb0cd8 100644 --- a/src/test/kc/enum-err-0.c +++ b/src/test/kc/enum-err-0.c @@ -9,7 +9,7 @@ enum State { void main() { enum State state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; *SCREEN = state; } diff --git a/src/test/kc/enum-err-1.c b/src/test/kc/enum-err-1.c index cb7645ea5..2295bd1f8 100644 --- a/src/test/kc/enum-err-1.c +++ b/src/test/kc/enum-err-1.c @@ -8,7 +8,7 @@ enum State { void main() { enum State state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; *SCREEN = state; } diff --git a/src/test/kc/enum-err-2.c b/src/test/kc/enum-err-2.c index f77d653cd..468ffb6b3 100644 --- a/src/test/kc/enum-err-2.c +++ b/src/test/kc/enum-err-2.c @@ -9,7 +9,7 @@ enum State { void main() { enum State state = ON; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; *SCREEN = state; } diff --git a/src/test/kc/euclid-problem-2.c b/src/test/kc/euclid-problem-2.c index c579b14d3..fdef586db 100644 --- a/src/test/kc/euclid-problem-2.c +++ b/src/test/kc/euclid-problem-2.c @@ -1,7 +1,7 @@ // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/euclid-problem.c b/src/test/kc/euclid-problem.c index a1cbbfea4..4f707ff39 100644 --- a/src/test/kc/euclid-problem.c +++ b/src/test/kc/euclid-problem.c @@ -1,7 +1,7 @@ // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { char a = 128; diff --git a/src/test/kc/examples/c64/3d/3d.c b/src/test/kc/examples/c64/3d/3d.c index 3eb6dd560..afe825e3b 100644 --- a/src/test/kc/examples/c64/3d/3d.c +++ b/src/test/kc/examples/c64/3d/3d.c @@ -19,7 +19,7 @@ signed char yp; unsigned int psp1; unsigned int psp2; -char* SCREEN = $400; +char* SCREEN = (char*)$400; void main() { asm { sei } @@ -102,7 +102,7 @@ void debug_print_init() { char* at_line = SCREEN+16*40; char c = 4; - char* COLS = $d800; + char* COLS = (char*)$d800; char* at_cols = COLS+16*40; for( char i: 0..7) { print_schar_at(xs[i], at_line+40*0+c); @@ -156,7 +156,7 @@ void debug_print() { // Initialize sprites void sprites_init() { - char* SCREEN = $400; + char* SCREEN = (char*)$400; VICII->SPRITES_ENABLE = %11111111; char* sprites_ptr = SCREEN+$3f8; for(char i: 0..7) { diff --git a/src/test/kc/examples/c64/bresenham/bitmap-bresenham.c b/src/test/kc/examples/c64/bresenham/bitmap-bresenham.c index e28f17482..2c9ad945f 100644 --- a/src/test/kc/examples/c64/bresenham/bitmap-bresenham.c +++ b/src/test/kc/examples/c64/bresenham/bitmap-bresenham.c @@ -1,8 +1,8 @@ #include <c64.h> #include <c64-bitmap.h> -char* const SCREEN = $400; -char* const BITMAP = $2000; +char* const SCREEN = (char*)$400; +char* const BITMAP = (char*)$2000; const char LINES = 8; char lines_x[LINES+1] = { 60, 80, 110, 80, 60, 40, 10, 40, 60 }; diff --git a/src/test/kc/examples/c64/chargen/chargen-analysis.c b/src/test/kc/examples/c64/chargen/chargen-analysis.c index 98bc05581..1566269ff 100644 --- a/src/test/kc/examples/c64/chargen/chargen-analysis.c +++ b/src/test/kc/examples/c64/chargen/chargen-analysis.c @@ -2,7 +2,7 @@ #include <c64.h> #include <c64-keyboard.h> -char* SCREEN = $400; +char* SCREEN = (char*)$400; void main() { // Clear screen diff --git a/src/test/kc/examples/c64/crunching/test-byteboozer.c b/src/test/kc/examples/c64/crunching/test-byteboozer.c index bc45ae32c..32970826d 100644 --- a/src/test/kc/examples/c64/crunching/test-byteboozer.c +++ b/src/test/kc/examples/c64/crunching/test-byteboozer.c @@ -8,7 +8,7 @@ #include "byteboozer.h" // Address to decrunch the sprite to -char * const SPRITE = 0x2000; +char * const SPRITE = (char *)0x2000; // The sprite pointers char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS; diff --git a/src/test/kc/examples/c64/crunching/test-exomizer.c b/src/test/kc/examples/c64/crunching/test-exomizer.c index b4de19817..f84a2a8c5 100644 --- a/src/test/kc/examples/c64/crunching/test-exomizer.c +++ b/src/test/kc/examples/c64/crunching/test-exomizer.c @@ -7,7 +7,7 @@ #include <c64.h> // Address to decrunch the sprite to -char * const SPRITE = 0x2000; +char * const SPRITE = (char*)0x2000; char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS; diff --git a/src/test/kc/examples/c64/fastmultiply/fastmultiply8.c b/src/test/kc/examples/c64/fastmultiply/fastmultiply8.c index 850ae8568..442b6c3d3 100644 --- a/src/test/kc/examples/c64/fastmultiply/fastmultiply8.c +++ b/src/test/kc/examples/c64/fastmultiply/fastmultiply8.c @@ -12,7 +12,7 @@ signed char vals[] = {-95, -64, -32, -16, 0, 16, 32, 64, 95}; void main() { init_screen(); - char* at_line = $400; + char* at_line = (char*)$400; char* at = at_line+4; for(char k: 0..8) { print_schar_at(vals[k], at); @@ -32,7 +32,7 @@ void main() { void init_screen() { print_cls(); - char* COLS = $d800; + char* COLS = (char*)$d800; char WHITE = 1; for(char l: 0..39) { COLS[l] = WHITE; diff --git a/src/test/kc/examples/c64/fire/fire.c b/src/test/kc/examples/c64/fire/fire.c index f15c2d62e..7fc6184e6 100644 --- a/src/test/kc/examples/c64/fire/fire.c +++ b/src/test/kc/examples/c64/fire/fire.c @@ -6,10 +6,10 @@ #include <c64.h> -unsigned char* SCREEN1 = 0x3800; -unsigned char* SCREEN2 = 0x3c00; -unsigned char* BUFFER = 0x4000; -unsigned char* CHARSET = 0x3000; +unsigned char* SCREEN1 = (unsigned char*)0x3800; +unsigned char* SCREEN2 = (unsigned char*)0x3c00; +unsigned char* BUFFER = (unsigned char*)0x4000; +unsigned char* CHARSET = (unsigned char*)0x3000; void main() { asm { sei } diff --git a/src/test/kc/examples/c64/font-2x2/font-2x2.c b/src/test/kc/examples/c64/font-2x2/font-2x2.c index 6098f6938..9b013defc 100644 --- a/src/test/kc/examples/c64/font-2x2/font-2x2.c +++ b/src/test/kc/examples/c64/font-2x2/font-2x2.c @@ -3,9 +3,9 @@ #include <c64.h> #include <string.h> -char* const SCREEN = 0x0400; -char* const FONT_ORIGINAL = 0x2000; -char* const FONT_COMPRESSED = 0x2800; +char* const SCREEN = (char*)0x0400; +char* const FONT_ORIGINAL = (char*)0x2000; +char* const FONT_COMPRESSED = (char*)0x2800; char __align(0x100) FONT_COMPRESSED_MAP[0x100]; void main() { diff --git a/src/test/kc/examples/c64/irq/irq-hyperscreen.c b/src/test/kc/examples/c64/irq/irq-hyperscreen.c index bc433db65..147d78759 100644 --- a/src/test/kc/examples/c64/irq/irq-hyperscreen.c +++ b/src/test/kc/examples/c64/irq/irq-hyperscreen.c @@ -1,7 +1,7 @@ // A raster IRQ that opens the top/bottom border. #include <c64.h> -char* const GHOST_BYTE = $3fff; +char* const GHOST_BYTE = (char*)$3fff; void main() { *GHOST_BYTE = 0; diff --git a/src/test/kc/examples/c64/kernalload/kernalload.c b/src/test/kc/examples/c64/kernalload/kernalload.c index ba926297e..eba0f34f6 100644 --- a/src/test/kc/examples/c64/kernalload/kernalload.c +++ b/src/test/kc/examples/c64/kernalload/kernalload.c @@ -20,9 +20,9 @@ export char SPRITE[] = kickasm(resource "sprite.png") {{ #pragma data_seg(Data) // Address to load to -char* const LOAD_SPRITE = 0x3000; +char* const LOAD_SPRITE = (char*)0x3000; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS; void main() { diff --git a/src/test/kc/examples/c64/krillload/krill.c b/src/test/kc/examples/c64/krillload/krill.c index 8905d1d78..030488f1b 100755 --- a/src/test/kc/examples/c64/krillload/krill.c +++ b/src/test/kc/examples/c64/krillload/krill.c @@ -34,7 +34,7 @@ enum KrillStatus { // The KERNAL ROM may be disabled and zeropage variables clobbered. // Returns the status of the installation enum KrillStatus krill_install() { - enum KrillStatus* const status = 0xff; + enum KrillStatus* const status = (enum KrillStatus*)0xff; asm(clobbers "AXY") { jsr KRILL_INSTALL sta status @@ -49,8 +49,8 @@ enum KrillStatus krill_install() { // - filename - The name of the file to load (zero-terminated in petscii encoding) // Returns the status of the load enum KrillStatus krill_loadraw(char* filename) { - enum KrillStatus* const status = 0xff; - char** const fname = 0xfe; + enum KrillStatus* const status = (enum KrillStatus*)0xff; + char** const fname = (char**)0xfe; *fname = filename; asm(clobbers "AXY") { ldx fname diff --git a/src/test/kc/examples/c64/krillload/krillload.c b/src/test/kc/examples/c64/krillload/krillload.c index 59c6eef6e..8b20d74d2 100644 --- a/src/test/kc/examples/c64/krillload/krillload.c +++ b/src/test/kc/examples/c64/krillload/krillload.c @@ -24,7 +24,7 @@ export __address(0x2040) char SPRITE[0x40] = kickasm(resource "sprite.png") {{ // Program file #pragma data_seg(Data) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS; void main() { diff --git a/src/test/kc/examples/c64/linking/linking.c b/src/test/kc/examples/c64/linking/linking.c index 2984a5e46..d7979abfb 100644 --- a/src/test/kc/examples/c64/linking/linking.c +++ b/src/test/kc/examples/c64/linking/linking.c @@ -6,7 +6,7 @@ #pragma link("linking.ld") -char* BG_COLOR = 0xd021; +char* BG_COLOR = (char*)0xd021; void main() { for(char i:0..255) @@ -21,7 +21,7 @@ void main() { #pragma code_seg(CodeHigh) #pragma data_seg(DataHigh) -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void fillscreen(char c) { char i = 0; diff --git a/src/test/kc/examples/c64/multiplexer/simple-multiplexer.c b/src/test/kc/examples/c64/multiplexer/simple-multiplexer.c index e15eec1a6..3d970025c 100644 --- a/src/test/kc/examples/c64/multiplexer/simple-multiplexer.c +++ b/src/test/kc/examples/c64/multiplexer/simple-multiplexer.c @@ -3,7 +3,7 @@ #include <c64-multiplexer.h> // Location of screen & sprites -char* SCREEN = $400; +char* SCREEN = (char*)$400; char __align(0x100) YSIN[0x100] = kickasm {{ .var min = 50 diff --git a/src/test/kc/examples/c64/plasma/plasma-unroll.c b/src/test/kc/examples/c64/plasma/plasma-unroll.c index 01e7737f1..d43c28303 100644 --- a/src/test/kc/examples/c64/plasma/plasma-unroll.c +++ b/src/test/kc/examples/c64/plasma/plasma-unroll.c @@ -9,8 +9,8 @@ #include <c64.h> #include <c64-print.h> -unsigned char* const SCREEN1 = $2800; -unsigned char* const CHARSET = $2000; +unsigned char* const SCREEN1 = (char*)$2800; +unsigned char* const CHARSET = (char*)$2000; const unsigned char __align(0x100) SINTABLE[0x100] = kickasm {{ .for(var i=0;i<$100;i++) diff --git a/src/test/kc/examples/c64/plasma/plasma.c b/src/test/kc/examples/c64/plasma/plasma.c index 7cbbe2427..a04be0bf8 100644 --- a/src/test/kc/examples/c64/plasma/plasma.c +++ b/src/test/kc/examples/c64/plasma/plasma.c @@ -7,9 +7,9 @@ #include <c64.h> #include <c64-print.h> -char* const SCREEN1 = 0x2800; -char* const SCREEN2 = 0x2c00; -char* const CHARSET = 0x2000; +char* const SCREEN1 = (char*)0x2800; +char* const SCREEN2 = (char*)0x2c00; +char* const CHARSET = (char*)0x2000; const char __align(0x100) SINTABLE[0x100] = kickasm {{ .for(var i=0;i<$100;i++) diff --git a/src/test/kc/examples/c64/rotate/rotate.c b/src/test/kc/examples/c64/rotate/rotate.c index 231c3f9e7..ea4b7fd30 100644 --- a/src/test/kc/examples/c64/rotate/rotate.c +++ b/src/test/kc/examples/c64/rotate/rotate.c @@ -5,7 +5,7 @@ #include <c64-time.h> #include <c64-print.h> -char* SCREEN = $0400; +char* SCREEN = (byte*)$0400; // Sine and Cosine tables // Angles: $00=0, $80=PI,$100=2*PI diff --git a/src/test/kc/examples/c64/scroll/scroll.c b/src/test/kc/examples/c64/scroll/scroll.c index 7d52de967..d31211df7 100644 --- a/src/test/kc/examples/c64/scroll/scroll.c +++ b/src/test/kc/examples/c64/scroll/scroll.c @@ -1,6 +1,6 @@ #include <c64.h> -char* const SCREEN = $0400; +char* const SCREEN = (char*)$0400; const char TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- "; void main() { diff --git a/src/test/kc/examples/c64/scrollbig/scrollbig.c b/src/test/kc/examples/c64/scrollbig/scrollbig.c index 88de72150..8ff7f87bb 100644 --- a/src/test/kc/examples/c64/scrollbig/scrollbig.c +++ b/src/test/kc/examples/c64/scrollbig/scrollbig.c @@ -1,7 +1,7 @@ // An 8x8 char letter scroller #include <c64.h> -char* SCREEN = $0400; +char* SCREEN = (char*)$0400; char* TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- "; void main() { diff --git a/src/test/kc/examples/c64/scrolllogo/scrolllogo.c b/src/test/kc/examples/c64/scrolllogo/scrolllogo.c index 3c61edc68..57ce32bcc 100644 --- a/src/test/kc/examples/c64/scrolllogo/scrolllogo.c +++ b/src/test/kc/examples/c64/scrolllogo/scrolllogo.c @@ -2,7 +2,7 @@ #include <sine.h> #include <string.h> -char* SCREEN = $400; +char* SCREEN = (char*)$400; __address(0x2000) char LOGO[6*40*8] = kickasm(resource "logo.png") {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) diff --git a/src/test/kc/examples/c64/showlogo/showlogo.c b/src/test/kc/examples/c64/showlogo/showlogo.c index ac73923c9..3f821d0fc 100644 --- a/src/test/kc/examples/c64/showlogo/showlogo.c +++ b/src/test/kc/examples/c64/showlogo/showlogo.c @@ -1,7 +1,7 @@ #include <c64.h> #include <string.h> -char* SCREEN = $400; +char* SCREEN = (char*)$400; __address(0x2000) char LOGO[6*40*8] = kickasm(resource "logo.png") {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) diff --git a/src/test/kc/examples/c64/sinplotter/sine-plotter.c b/src/test/kc/examples/c64/sinplotter/sine-plotter.c index 0b99d2b4d..e8c5e8727 100644 --- a/src/test/kc/examples/c64/sinplotter/sine-plotter.c +++ b/src/test/kc/examples/c64/sinplotter/sine-plotter.c @@ -5,8 +5,8 @@ #include <string.h> #include <c64-bitmap.h> -char* SCREEN = $400; -char* BITMAP = $2000; +char* SCREEN = (char*)$400; +char* BITMAP = (char*)$2000; const unsigned int SIN_SIZE = 512; diff --git a/src/test/kc/examples/c64/sinsprites/sinus-sprites.c b/src/test/kc/examples/c64/sinsprites/sinus-sprites.c index 541aa711f..e83914d4f 100644 --- a/src/test/kc/examples/c64/sinsprites/sinus-sprites.c +++ b/src/test/kc/examples/c64/sinsprites/sinus-sprites.c @@ -6,8 +6,8 @@ const char sinlen_x = 221; const char sintab_x[221]; const char sinlen_y = 197; const char sintab_y[197]; -char* const sprites = $2000; -char* const SCREEN = $400; +char* const sprites = (char*)$2000; +char* const SCREEN = (char*)$400; void main() { init(); @@ -184,7 +184,7 @@ void gen_sintab(char* sintab, char length, char min, char max) { char f_i[] = {0, 0, 0, 0, 0}; // i * 2 * PI char f_min[] = {0, 0, 0, 0, 0}; // amplitude/2 + min char f_amp[] = {0, 0, 0, 0, 0}; // amplitude/2 - char* f_2pi = $e2e5; // 2 * PI + char* f_2pi = (char*)$e2e5; // 2 * PI setFAC((unsigned int)max); // fac = max setARGtoFAC(); // arg = max setFAC((unsigned int)min); // fac = min diff --git a/src/test/kc/examples/c64/zpcode/zpcode.c b/src/test/kc/examples/c64/zpcode/zpcode.c index bf1cb804a..304cb73e1 100644 --- a/src/test/kc/examples/c64/zpcode/zpcode.c +++ b/src/test/kc/examples/c64/zpcode/zpcode.c @@ -4,8 +4,8 @@ #pragma link("zpcode.ld") -char* RASTER = 0xd012; -char* BG_COLOR = 0xd020; +char* RASTER = (char*)0xd012; +char* BG_COLOR = (char*)0xd020; void main() { asm { sei } diff --git a/src/test/kc/examples/cx16/cx16-sprites.c b/src/test/kc/examples/cx16/cx16-sprites.c index d68accc04..84b8f2792 100644 --- a/src/test/kc/examples/cx16/cx16-sprites.c +++ b/src/test/kc/examples/cx16/cx16-sprites.c @@ -57,7 +57,7 @@ void main() { // Copy sprite palette to VRAM memcpy_to_vram((char)>VERA_PALETTE, (char*)<VERA_PALETTE, SPRITE_PIXELS+64*64, 0x200); // Copy 8* sprite attributes to VRAM - char* vram_sprite_attr = <VERA_SPRITE_ATTR; + char* vram_sprite_attr = (char*)<VERA_SPRITE_ATTR; for(char s=0;s<NUM_SPRITES;s++) { SPRITE_ATTR.X += 10; SPRITE_ATTR.Y += 10; @@ -97,7 +97,7 @@ __interrupt(rom_sys_cx16) void irq_vsync() { if(++sin_idx_x==SINX_LEN) sin_idx_x = 0; if(--sin_idx_y==0xffff) sin_idx_y = SINY_LEN-1; const char vram_sprite_attr_bank = (char)>VERA_SPRITE_ATTR; - char *vram_sprite_pos = <VERA_SPRITE_ATTR+2; + char *vram_sprite_pos = (char*)<VERA_SPRITE_ATTR+2; unsigned int i_x = sin_idx_x; unsigned int i_y = sin_idx_y; for(char s=0;s<NUM_SPRITES;s++) { diff --git a/src/test/kc/examples/cx16/spacedemo/spacedemo.c b/src/test/kc/examples/cx16/spacedemo/spacedemo.c index 101616026..ee1e39aba 100644 --- a/src/test/kc/examples/cx16/spacedemo/spacedemo.c +++ b/src/test/kc/examples/cx16/spacedemo/spacedemo.c @@ -315,7 +315,7 @@ void main() { // Copy sprite palette to VRAM // Copy 8* sprite attributes to VRAM - char* vram_sprite_attr = <VERA_SPRITE_ATTR; + char* vram_sprite_attr = (char*)<VERA_SPRITE_ATTR; for(char s=0;s<NUM_SPRITES;s++) { sprites[s] = sprite_offset; SPRITE_ATTR.ADDR = sprite_offset; @@ -350,7 +350,7 @@ __interrupt(rom_sys_cx16) void irq_vsync() { if(a==0) { a=4; const char vram_sprite_attr_bank = (char)>VERA_SPRITE_ATTR; - char *vram_sprite_attr = <VERA_SPRITE_ATTR; + char *vram_sprite_attr = (char*)<VERA_SPRITE_ATTR; unsigned int i_x = 0; unsigned int i_y = 0; for(word s=0;s<NUM_SPRITES;s++) { diff --git a/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c b/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c index 4944c483a..0f151f3b3 100644 --- a/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c +++ b/src/test/kc/examples/cx16/veralib/tilemap_8bpp_16_x_16.c @@ -56,7 +56,7 @@ void main() { vera_layer_mode_tile(0, 0x14000, 0x00000, 64, 64, 16, 16, 8); - char* tilebase = 0x0000; + char* tilebase = (char*)0x0000; memcpy_to_vram(0, tilebase, tiles, 256); tilebase+=256; for(byte t:1..255) { diff --git a/src/test/kc/examples/mega65/banked-music.c b/src/test/kc/examples/mega65/banked-music.c index bbec41ee7..7a5256fd4 100644 --- a/src/test/kc/examples/mega65/banked-music.c +++ b/src/test/kc/examples/mega65/banked-music.c @@ -94,7 +94,7 @@ __address(0x4000) char MUSIC[] = kickasm(resource "Cybernoid_II_4000.sid") {{ .fill music.size, music.getData(i) }}; // Address after the end of the music -char * const MUSIC_END = 0x5200; +char * const MUSIC_END = (char*)0x5200; // Pointer to the music init routine void()* musicInit = (void()*) MUSIC; // Pointer to the music play routine diff --git a/src/test/kc/examples/mega65/dypp65.c b/src/test/kc/examples/mega65/dypp65.c index 871860daf..479e01859 100644 --- a/src/test/kc/examples/mega65/dypp65.c +++ b/src/test/kc/examples/mega65/dypp65.c @@ -9,9 +9,9 @@ #include <string.h> // The screen address (45*25*2=0x08ca bytes) -char * const SCREEN = 0x5000; +char * const SCREEN = (char*)0x5000; // The charset address (45*32*8=0x2d00 bytes) -char * const CHARSET = 0x6000; +char * const CHARSET = (char*)0x6000; // A logo in column-wide linear single-color memory layout char LOGO[45*25*8] = kickasm(resource "camelot.png") {{ .var pic = LoadPicture("camelot.png", List().add($ffffff, $000000)) diff --git a/src/test/kc/examples/mega65/hello-mega65.c b/src/test/kc/examples/mega65/hello-mega65.c index 09f3b1a95..ea03131ae 100644 --- a/src/test/kc/examples/mega65/hello-mega65.c +++ b/src/test/kc/examples/mega65/hello-mega65.c @@ -1,8 +1,8 @@ // Hello World for MEGA 65 - putting chars directly to the screen #pragma target(mega65) -char * SCREEN = 0x0800; -char * COLORS = 0xd800; +char * SCREEN = (char*)0x0800; +char * COLORS = (char*)0xd800; char MSG[] = "hello world!"; diff --git a/src/test/kc/examples/mega65/memorymap-test.c b/src/test/kc/examples/mega65/memorymap-test.c index edf4b5840..6929a3410 100644 --- a/src/test/kc/examples/mega65/memorymap-test.c +++ b/src/test/kc/examples/mega65/memorymap-test.c @@ -5,8 +5,8 @@ #include <mega65.h> void main() { - char * BLOCK_4000 = 0x4000; - char * BLOCK_8000 = 0x8000; + char * BLOCK_4000 = (char*)0x4000; + char * BLOCK_8000 = (char*)0x8000; // Remap [$4000-$5fff] to point to [$10000-$11fff] memoryRemapBlock(0x40, 0x100); diff --git a/src/test/kc/examples/mega65/test-fullcolour.c b/src/test/kc/examples/mega65/test-fullcolour.c index 39261db53..67edc8c14 100644 --- a/src/test/kc/examples/mega65/test-fullcolour.c +++ b/src/test/kc/examples/mega65/test-fullcolour.c @@ -7,7 +7,7 @@ #include <string.h> // The screen address (40*25=0x03e8 bytes) -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // The charset address (45*32*8=0x2d00 bytes) char * const CHARSET = 0x2000; diff --git a/src/test/kc/examples/mega65/test-vic4.c b/src/test/kc/examples/mega65/test-vic4.c index a4c1993d9..1ea670973 100644 --- a/src/test/kc/examples/mega65/test-vic4.c +++ b/src/test/kc/examples/mega65/test-vic4.c @@ -2,11 +2,11 @@ #pragma target(mega65) #include <mega65.h> -char * const SCREEN = 0x0800; -char * const COLORS = 0xd800; +char * const SCREEN = (char *)0x0800; +char * const COLORS = (char *)0xd800; -char * const TBDRPOS = 0xd048; -char * const TBDRPOS_HI = 0xd049; +char * const TBDRPOS = (char *)0xd048; +char * const TBDRPOS_HI = (char *)0xd049; void main() { diff --git a/src/test/kc/examples/rom/rom.c b/src/test/kc/examples/rom/rom.c index 3ca99ae1a..0a6f793bb 100644 --- a/src/test/kc/examples/rom/rom.c +++ b/src/test/kc/examples/rom/rom.c @@ -29,7 +29,7 @@ char call3(char param1, char param2) { // To make sure the functions are generated into the final code they must be calling them with different values for each parameter and the return value must used in some way. #pragma code_seg(TestRom) void main() { - char* ptr = 0xfe; + char* ptr = (char*)0xfe; *ptr = call1(1,2); *ptr = call1(3,4); *ptr = call2(1,2); diff --git a/src/test/kc/fastmultiply-127.c b/src/test/kc/fastmultiply-127.c index 1b2c73462..33c983bd9 100644 --- a/src/test/kc/fastmultiply-127.c +++ b/src/test/kc/fastmultiply-127.c @@ -62,11 +62,11 @@ unsigned char __align($100) mulf127_sqr2_lo[512] = kickasm{{ .fill 512, <round( unsigned char __align($100) mulf127_sqr2_hi[512] = kickasm{{ .fill 512, >round(((i-255)/127*(i-255)/127)*127/4) }}; unsigned word mulf8u127(unsigned char a, unsigned char b) { - byte* const memA = $fc; - byte* const memB = $fd; - word* const res = $fe; - byte* const resL = $fe; - byte* const resH = $ff; + byte* const memA = (byte*)$fc; + byte* const memB = (byte*)$fd; + word* const res = (word*)$fe; + byte* const resL = (byte*)$fe; + byte* const resH = (byte*)$ff; *memA = a; *memB = b; asm { diff --git a/src/test/kc/fill-square.c b/src/test/kc/fill-square.c index d0862ff6f..2ccdc641c 100644 --- a/src/test/kc/fill-square.c +++ b/src/test/kc/fill-square.c @@ -1,6 +1,6 @@ // Fill a square on the screen -byte* SCREEN = 0x0400; +byte* SCREEN = (char*)0x0400; void main() { for( byte y: 5..15) { diff --git a/src/test/kc/fillscreen-1.c b/src/test/kc/fillscreen-1.c index c733a0510..3e10b37a8 100644 --- a/src/test/kc/fillscreen-1.c +++ b/src/test/kc/fillscreen-1.c @@ -1,6 +1,6 @@ // Fill screen using an efficient char-based index -byte *SCREEN = $0400; +byte *SCREEN = (byte*)$0400; void main() { for(char i=0;i<250;i++) { diff --git a/src/test/kc/fillscreen-2.c b/src/test/kc/fillscreen-2.c index 36ecc450e..352c1e720 100644 --- a/src/test/kc/fillscreen-2.c +++ b/src/test/kc/fillscreen-2.c @@ -1,6 +1,6 @@ // Fill screen using an word-based index -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { for(unsigned int i=0;i<1000; i++) diff --git a/src/test/kc/fillscreen-3.c b/src/test/kc/fillscreen-3.c index d4e21689d..6621724d6 100644 --- a/src/test/kc/fillscreen-3.c +++ b/src/test/kc/fillscreen-3.c @@ -1,6 +1,6 @@ // Fill screen using a pointer -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { for(char* dst = SCREEN; dst!=SCREEN + 1000; dst++) diff --git a/src/test/kc/flipper-rex2.c b/src/test/kc/flipper-rex2.c index 2c0345c31..279fb5afa 100644 --- a/src/test/kc/flipper-rex2.c +++ b/src/test/kc/flipper-rex2.c @@ -1,7 +1,7 @@ byte buffer1[16*16]; byte buffer2[16*16]; -byte *RASTER = $d012; -byte* SCREEN = $0400; +byte *RASTER = (byte*)$d012; +byte* SCREEN = (byte*)$0400; void main() { prepare(); diff --git a/src/test/kc/float-error-message.c b/src/test/kc/float-error-message.c index 614f1f354..c793b5b99 100644 --- a/src/test/kc/float-error-message.c +++ b/src/test/kc/float-error-message.c @@ -1,6 +1,6 @@ // Tests what error message an accidental float gives -char* VICII_MEMORY = 0xd018; +char* VICII_MEMORY = (char*)0xd018; void main() { *VICII_MEMORY = 0.14; diff --git a/src/test/kc/font-hex-show.c b/src/test/kc/font-hex-show.c index b0ea67e40..56b0d65f3 100644 --- a/src/test/kc/font-hex-show.c +++ b/src/test/kc/font-hex-show.c @@ -3,8 +3,8 @@ #include <string.h> #include "font-hex.c" -byte* SCREEN = 0x0400; -byte* CHARSET = 0x2000; +byte* SCREEN = (byte*)0x0400; +byte* CHARSET = (byte*)0x2000; void main() { *D018 = toD018(SCREEN, CHARSET); diff --git a/src/test/kc/for-empty-increment.c b/src/test/kc/for-empty-increment.c index 2b14ece13..b15406082 100644 --- a/src/test/kc/for-empty-increment.c +++ b/src/test/kc/for-empty-increment.c @@ -1,7 +1,7 @@ // Tests that for()-loops can have empty increments void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for(unsigned char i=0;i<10;) { SCREEN[i] = i++; } diff --git a/src/test/kc/for-empty-init.c b/src/test/kc/for-empty-init.c index 73cb884ba..a41ca8d0e 100644 --- a/src/test/kc/for-empty-init.c +++ b/src/test/kc/for-empty-init.c @@ -1,7 +1,7 @@ // Tests that for()-loops can have empty inits void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; unsigned char i=0; for(;i<10;i++) { SCREEN[i] = i; diff --git a/src/test/kc/for-ever-2.c b/src/test/kc/for-ever-2.c index e1139c1c3..f7c574848 100644 --- a/src/test/kc/for-ever-2.c +++ b/src/test/kc/for-ever-2.c @@ -1,6 +1,6 @@ // Test a for() loop that runs forever -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { for (char i=0;;i++) { diff --git a/src/test/kc/for-ever.c b/src/test/kc/for-ever.c index e3089ca5e..a41077523 100644 --- a/src/test/kc/for-ever.c +++ b/src/test/kc/for-ever.c @@ -1,6 +1,6 @@ // Test a for() loop that runs forever -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { for (;;) { diff --git a/src/test/kc/for-ranged-novar.c b/src/test/kc/for-ranged-novar.c index 712e0fba0..76032bfcd 100644 --- a/src/test/kc/for-ranged-novar.c +++ b/src/test/kc/for-ranged-novar.c @@ -1,7 +1,7 @@ // Tests that ranged for()-loops must have an iterator variable void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( : 0..10) { SCREEN[i] = i; diff --git a/src/test/kc/for-two-vars.c b/src/test/kc/for-two-vars.c index 9c7a639ab..c60cf21cc 100644 --- a/src/test/kc/for-two-vars.c +++ b/src/test/kc/for-two-vars.c @@ -2,7 +2,7 @@ // Illustrates that for()-loops currently cannot contain two variable declarations. void main() { - byte* const SCREEN = 0x400; + byte* const SCREEN = (char*)0x400; byte *sc=SCREEN+39; for( byte i=0; i<40; i++, sc--) *sc = i; diff --git a/src/test/kc/forincrementassign.c b/src/test/kc/forincrementassign.c index e82c0a5eb..14f835bbd 100644 --- a/src/test/kc/forincrementassign.c +++ b/src/test/kc/forincrementassign.c @@ -1,7 +1,7 @@ // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {} // The following should give a program rendering a char on every second char of the first line - but results in a syntax error -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$0400; void main() { for(byte i=0;i<40;i=i+2) { SCREEN[i] = i; diff --git a/src/test/kc/forrangedwords.c b/src/test/kc/forrangedwords.c index 0f9584502..0952b5650 100644 --- a/src/test/kc/forrangedwords.c +++ b/src/test/kc/forrangedwords.c @@ -1,6 +1,6 @@ void main() { - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$0400; for( word w: 0..$ffff) { SCREEN[0] = <w; SCREEN[1] = >w; diff --git a/src/test/kc/forrangemin.c b/src/test/kc/forrangemin.c index 3d36d97e2..4cceed108 100644 --- a/src/test/kc/forrangemin.c +++ b/src/test/kc/forrangemin.c @@ -1,7 +1,7 @@ // Minimal range based for() loop -char* SCREEN1 = 0x0400; -char* SCREEN2 = 0x0500; +char* SCREEN1 = (char*)0x0400; +char* SCREEN2 = (char*)0x0500; void main() { for(char i : 0..255) { diff --git a/src/test/kc/forrangesymbolic.c b/src/test/kc/forrangesymbolic.c index 07ecb2bc0..3ab50a862 100644 --- a/src/test/kc/forrangesymbolic.c +++ b/src/test/kc/forrangesymbolic.c @@ -2,7 +2,7 @@ // The following should work but gives a not-constant exception void main() { - byte* const BITMAP = $2000; + byte* const BITMAP = (byte*)$2000; for(byte* b : BITMAP+$1fff..BITMAP) { *b = $5a; } diff --git a/src/test/kc/fragment-synth.c b/src/test/kc/fragment-synth.c index 31ea34671..5be82ec95 100644 --- a/src/test/kc/fragment-synth.c +++ b/src/test/kc/fragment-synth.c @@ -3,8 +3,8 @@ void main() { - byte* screen = $400; - byte* z = $450; + byte* screen = (byte*)$400; + byte* z = (byte*)$450; z[2] = $f0; z[3] = $0f; byte x = $aa; diff --git a/src/test/kc/fragment-variations.c b/src/test/kc/fragment-variations.c index ded7edfd4..9259117dc 100644 --- a/src/test/kc/fragment-variations.c +++ b/src/test/kc/fragment-variations.c @@ -2,7 +2,7 @@ // ASM fragment variations "cast" constants to different types void main() { - dword* screen = 0x400; + dword* screen = (dword*)0x400; word w = 10; screen[0] = mul16u(w, w); w = 1000; diff --git a/src/test/kc/function-infinite-loop.c b/src/test/kc/function-infinite-loop.c index e74299d3f..92a4d6ce7 100644 --- a/src/test/kc/function-infinite-loop.c +++ b/src/test/kc/function-infinite-loop.c @@ -1,7 +1,7 @@ // Test a function returning a value that has an infinite loop // https://gitlab.com/camelot/kickc/-/issues/310 -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = get(7); diff --git a/src/test/kc/function-pointer-noarg-2.c b/src/test/kc/function-pointer-noarg-2.c index 6c70ad442..ec0ff19b6 100644 --- a/src/test/kc/function-pointer-noarg-2.c +++ b/src/test/kc/function-pointer-noarg-2.c @@ -1,7 +1,7 @@ // Tests creating and assigning pointers to non-args no-return functions void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; void()* f; @@ -15,11 +15,11 @@ void main() { } void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } \ No newline at end of file diff --git a/src/test/kc/function-pointer-noarg-3.c b/src/test/kc/function-pointer-noarg-3.c index efbf6d9a9..243e032a8 100644 --- a/src/test/kc/function-pointer-noarg-3.c +++ b/src/test/kc/function-pointer-noarg-3.c @@ -1,7 +1,7 @@ // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; void()* f; @@ -25,11 +25,11 @@ char ff[] = kickasm {{ }}; void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } \ No newline at end of file diff --git a/src/test/kc/function-pointer-noarg-call-10.c b/src/test/kc/function-pointer-noarg-call-10.c index a7f1737f8..ebce4f19c 100644 --- a/src/test/kc/function-pointer-noarg-call-10.c +++ b/src/test/kc/function-pointer-noarg-call-10.c @@ -18,7 +18,7 @@ void main() { do10(&world); } -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; volatile byte idx = 0; void print(byte* msg) { diff --git a/src/test/kc/function-pointer-noarg-call-11.c b/src/test/kc/function-pointer-noarg-call-11.c index b4c273207..0441924f0 100644 --- a/src/test/kc/function-pointer-noarg-call-11.c +++ b/src/test/kc/function-pointer-noarg-call-11.c @@ -1,11 +1,11 @@ // Tests calling through pointers to non-args no-return functions void myFunc(){ - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void myFunc2(){ - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } void () *funcPointer; diff --git a/src/test/kc/function-pointer-noarg-call-12.c b/src/test/kc/function-pointer-noarg-call-12.c index 48186f6e1..e7e09dca6 100644 --- a/src/test/kc/function-pointer-noarg-call-12.c +++ b/src/test/kc/function-pointer-noarg-call-12.c @@ -1,11 +1,11 @@ // Tests calling through pointers to non-args no-return functions void myFunc(){ - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void myFunc2(){ - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } diff --git a/src/test/kc/function-pointer-noarg-call-13.c b/src/test/kc/function-pointer-noarg-call-13.c index d7c1688f8..4c8809ada 100644 --- a/src/test/kc/function-pointer-noarg-call-13.c +++ b/src/test/kc/function-pointer-noarg-call-13.c @@ -7,7 +7,7 @@ #include <stdint.h> -uint8_t const * r = 0x8000; +uint8_t const * r = (uint8_t*)0x8000; void main() { enableDLI(&fn1); diff --git a/src/test/kc/function-pointer-noarg-call-2.c b/src/test/kc/function-pointer-noarg-call-2.c index 3ac568234..95bfc2033 100644 --- a/src/test/kc/function-pointer-noarg-call-2.c +++ b/src/test/kc/function-pointer-noarg-call-2.c @@ -1,7 +1,7 @@ // Tests creating, assigning and calling pointers to non-args no-return functions void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; void()* f; @@ -18,11 +18,11 @@ void main() { } void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } \ No newline at end of file diff --git a/src/test/kc/function-pointer-noarg-call-3.c b/src/test/kc/function-pointer-noarg-call-3.c index 0421357cd..37a1a3168 100644 --- a/src/test/kc/function-pointer-noarg-call-3.c +++ b/src/test/kc/function-pointer-noarg-call-3.c @@ -16,11 +16,11 @@ void()* getfn(byte b) { } void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } \ No newline at end of file diff --git a/src/test/kc/function-pointer-noarg-call-4.c b/src/test/kc/function-pointer-noarg-call-4.c index 399337135..e7b4552a1 100644 --- a/src/test/kc/function-pointer-noarg-call-4.c +++ b/src/test/kc/function-pointer-noarg-call-4.c @@ -12,7 +12,7 @@ void()* getfn(byte b) { } void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } diff --git a/src/test/kc/function-pointer-noarg-call-5.c b/src/test/kc/function-pointer-noarg-call-5.c index 3fb660a67..cba7ae8f9 100644 --- a/src/test/kc/function-pointer-noarg-call-5.c +++ b/src/test/kc/function-pointer-noarg-call-5.c @@ -1,12 +1,12 @@ // Tests calling into arrays of pointers to non-args no-return functions void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } diff --git a/src/test/kc/function-pointer-noarg-call-6.c b/src/test/kc/function-pointer-noarg-call-6.c index 68f15123b..304daac2c 100644 --- a/src/test/kc/function-pointer-noarg-call-6.c +++ b/src/test/kc/function-pointer-noarg-call-6.c @@ -1,13 +1,13 @@ // Tests calling into a function pointer with local variables void fn1() { - for(byte* screen=$400;screen<$400+1000;screen++) + for(byte* screen=(byte*)$400;screen<$400+1000;screen++) (*screen)++; } void main() { void()* cls = &fn1; - for(byte* cols = $d800; cols<$d800+1000;cols++) { + for(byte* cols = (char*)$d800; cols<$d800+1000;cols++) { (*cls)(); (*cols)++; } diff --git a/src/test/kc/function-pointer-noarg-call-7.c b/src/test/kc/function-pointer-noarg-call-7.c index ece5bd16a..3b049d5c0 100644 --- a/src/test/kc/function-pointer-noarg-call-7.c +++ b/src/test/kc/function-pointer-noarg-call-7.c @@ -5,7 +5,7 @@ void do10(void()* fn) { (*fn)(); } -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; const byte msg[] = "hello "; volatile byte idx = 0; diff --git a/src/test/kc/function-pointer-noarg-call-8.c b/src/test/kc/function-pointer-noarg-call-8.c index 8409ff32d..32db7f999 100644 --- a/src/test/kc/function-pointer-noarg-call-8.c +++ b/src/test/kc/function-pointer-noarg-call-8.c @@ -5,7 +5,7 @@ void do10(void()* fn) { (*fn)(); } -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; const byte msg1[] = "hello "; const byte msg2[] = "world "; diff --git a/src/test/kc/function-pointer-noarg-call-9.c b/src/test/kc/function-pointer-noarg-call-9.c index bab0cfe99..ea04d9f5d 100644 --- a/src/test/kc/function-pointer-noarg-call-9.c +++ b/src/test/kc/function-pointer-noarg-call-9.c @@ -1,6 +1,6 @@ // Tests calling into a function pointer which modifies global volatile -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$0400; volatile byte idx = 0; diff --git a/src/test/kc/function-pointer-noarg-call.c b/src/test/kc/function-pointer-noarg-call.c index 741d39183..0ba344d8c 100644 --- a/src/test/kc/function-pointer-noarg-call.c +++ b/src/test/kc/function-pointer-noarg-call.c @@ -1,7 +1,7 @@ // Tests creating, assigning and calling pointers to non-args no-return functions void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } diff --git a/src/test/kc/function-pointer-noarg.c b/src/test/kc/function-pointer-noarg.c index 9fb25a3ab..147458434 100644 --- a/src/test/kc/function-pointer-noarg.c +++ b/src/test/kc/function-pointer-noarg.c @@ -1,7 +1,7 @@ // Tests creating pointers to non-args no-return functions void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; void()* f; f = &fn1; @@ -14,11 +14,11 @@ void main() { } void fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; } void fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; } \ No newline at end of file diff --git a/src/test/kc/function-pointer-param-workaround.c b/src/test/kc/function-pointer-param-workaround.c index becc9f90f..c95675775 100644 --- a/src/test/kc/function-pointer-param-workaround.c +++ b/src/test/kc/function-pointer-param-workaround.c @@ -16,8 +16,8 @@ // Pass a char parameter #define CALL_CHAR(name) param_char=name; asm { lda param_char pha } -char * const SCREEN1 = 0x0400; -char * const SCREEN2 = 0x0428; +char * const SCREEN1 = (char*)0x0400; +char * const SCREEN2 = (char*)0x0428; volatile char idx1 = 0; volatile char idx2 = 0; diff --git a/src/test/kc/function-pointer-problem-1.c b/src/test/kc/function-pointer-problem-1.c index 6ab88cc29..808722ca6 100644 --- a/src/test/kc/function-pointer-problem-1.c +++ b/src/test/kc/function-pointer-problem-1.c @@ -1,7 +1,7 @@ // The following casuses an exception in pass 2 // https://gitlab.com/camelot/kickc/-/issues/561 -char const * r = 0x8000; +char const * r = (char *)0x8000; void main() { enableDLI(&fn1); diff --git a/src/test/kc/function-pointer-return.c b/src/test/kc/function-pointer-return.c index 688bc3be2..b6aa900aa 100644 --- a/src/test/kc/function-pointer-return.c +++ b/src/test/kc/function-pointer-return.c @@ -1,7 +1,7 @@ // Tests creating and assigning pointers to non-args return with function value void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte()* f; @@ -18,13 +18,13 @@ void main() { } byte fn1() { - byte* const BORDER_COLOR = $d020; + byte* const BORDER_COLOR = (char*)$d020; (*BORDER_COLOR)++; return *BORDER_COLOR; } byte fn2() { - byte* const BG_COLOR = $d021; + byte* const BG_COLOR = (char*)$d021; (*BG_COLOR)++; return *BG_COLOR; } \ No newline at end of file diff --git a/src/test/kc/gfxbank.c b/src/test/kc/gfxbank.c index 330bac557..e4d214ea4 100644 --- a/src/test/kc/gfxbank.c +++ b/src/test/kc/gfxbank.c @@ -3,6 +3,6 @@ #include <c64.h> void main() { - byte* const PLAYFIELD_CHARSET = $2800; + byte* const PLAYFIELD_CHARSET = (byte*)$2800; vicSelectGfxBank(PLAYFIELD_CHARSET); } diff --git a/src/test/kc/global-label-problem.c b/src/test/kc/global-label-problem.c index 2ebf4f3d6..61aeb0135 100644 --- a/src/test/kc/global-label-problem.c +++ b/src/test/kc/global-label-problem.c @@ -13,7 +13,7 @@ void print1() { } // Screen pointer and index -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void print(char* msg) { diff --git a/src/test/kc/global-pc-multiple.c b/src/test/kc/global-pc-multiple.c index 0962b843f..c0737d2a7 100644 --- a/src/test/kc/global-pc-multiple.c +++ b/src/test/kc/global-pc-multiple.c @@ -1,8 +1,8 @@ // Test setting the program PC through a #pc directive -byte* const BG_COLOR = 0xd021; -byte* const RASTER = 0xd012; +byte* const BG_COLOR = (char*)0xd021; +byte* const RASTER = (char*)0xd012; #pragma start_address(0x1000) diff --git a/src/test/kc/global-pc.c b/src/test/kc/global-pc.c index 5eb2fa2e7..8497b9803 100644 --- a/src/test/kc/global-pc.c +++ b/src/test/kc/global-pc.c @@ -2,8 +2,8 @@ #pragma start_address(0x1000) -byte* const BG_COLOR = 0xd021; -byte* const RASTER = 0xd012; +byte* const BG_COLOR = (char*)0xd021; +byte* const RASTER = (char*)0xd012; void main() { asm { sei } diff --git a/src/test/kc/halfscii.c b/src/test/kc/halfscii.c index dd98f13a7..50783ea92 100644 --- a/src/test/kc/halfscii.c +++ b/src/test/kc/halfscii.c @@ -1,9 +1,9 @@ -byte* SCREEN = $0400; -byte* CHARSET = $2000; -byte* CHARGEN = $D000; -byte* PROCPORT = $01; -byte* D018 = $d018; -byte* CHARSET4 = $2800; +byte* SCREEN = (byte*)$400; +byte* CHARSET = (byte*)$2000; +byte* CHARGEN = (byte*)$D000; +byte* PROCPORT = (byte*)$01; +byte* D018 = (byte*)$d018; +byte* CHARSET4 = (byte*)$2800; byte bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; diff --git a/src/test/kc/helloworld0.c b/src/test/kc/helloworld0.c index 8eebac941..b646e5416 100644 --- a/src/test/kc/helloworld0.c +++ b/src/test/kc/helloworld0.c @@ -1,7 +1,7 @@ // Tests minimal hello world byte msg[] = "hello world!"; -byte* SCREEN = 0x0400; +byte* SCREEN = (char*)0x0400; void main() { for( byte i: 0..11) SCREEN[i] = msg[i]; diff --git a/src/test/kc/helloworld2-inline.c b/src/test/kc/helloworld2-inline.c index a71aee9f0..c9ba3a48f 100644 --- a/src/test/kc/helloworld2-inline.c +++ b/src/test/kc/helloworld2-inline.c @@ -1,4 +1,4 @@ -byte* screen = $400; +byte* screen = (char*)$400; void main() { byte* hello = "hello world!"; print2(screen, hello); diff --git a/src/test/kc/helloworld2.c b/src/test/kc/helloworld2.c index 1405a10ca..a114438a0 100644 --- a/src/test/kc/helloworld2.c +++ b/src/test/kc/helloworld2.c @@ -1,4 +1,4 @@ -byte* screen = $400; +byte* screen = (char*)$400; void main() { byte* hello = "hello world!"; print2(screen, hello); diff --git a/src/test/kc/hex2dec-ptrptr.c b/src/test/kc/hex2dec-ptrptr.c index b828b38ae..7f5a1cbfe 100644 --- a/src/test/kc/hex2dec-ptrptr.c +++ b/src/test/kc/hex2dec-ptrptr.c @@ -2,7 +2,7 @@ void main() { cls(); - unsigned char *screen = 0x0400; + unsigned char *screen = (char*)0x0400; utoa16w(00000, screen); screen += 40; utoa16w(01234, screen); screen += 40; utoa16w(05678, screen); screen += 40; @@ -11,7 +11,7 @@ void main() { } void cls() { - unsigned char *screen = 0x0400; + unsigned char *screen = (char*)0x0400; for( unsigned char *sc: screen..screen+999) *sc=' '; } diff --git a/src/test/kc/hex2dec.c b/src/test/kc/hex2dec.c index 4a51b6e61..f173b35b5 100644 --- a/src/test/kc/hex2dec.c +++ b/src/test/kc/hex2dec.c @@ -1,8 +1,8 @@ // Testing hex to decimal conversion -unsigned char * const control = 0xd011; -unsigned char * const raster = 0xd012; -unsigned char * const BORDER_COLOR = 0xd020; +unsigned char * const control = (char*)0xd011; +unsigned char * const raster = (char*)0xd012; +unsigned char * const BORDER_COLOR = (char*)0xd020; void main() { asm { sei } @@ -11,7 +11,7 @@ void main() { do { unsigned char rst = (*control&0x80)|(*raster>>1); } while (rst!=0x30); - unsigned char *screen = 0x0400; + unsigned char *screen = (char*)0x0400; *BORDER_COLOR = 1; unsigned char time_start = *raster; utoa16w(00000, screen); (*BORDER_COLOR)++; screen += 40; @@ -31,7 +31,7 @@ void main() { } void cls() { - unsigned char *screen = 0x0400; + unsigned char *screen = (char*)0x0400; for( unsigned char *sc: screen..screen+999) *sc=' '; } diff --git a/src/test/kc/ifmin.c b/src/test/kc/ifmin.c index f9dd14d8b..f65e1ba6c 100644 --- a/src/test/kc/ifmin.c +++ b/src/test/kc/ifmin.c @@ -1,5 +1,5 @@ // Minimal if() test -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { byte i=0; diff --git a/src/test/kc/imported.c b/src/test/kc/imported.c index cd43324d4..71df7f251 100644 --- a/src/test/kc/imported.c +++ b/src/test/kc/imported.c @@ -1,2 +1,2 @@ -byte * const BG_COLOR = $d021; +byte * const BG_COLOR = (char*)$d021; const byte RED = 2; diff --git a/src/test/kc/importing.c b/src/test/kc/importing.c index b06eaa6c7..219fe9769 100644 --- a/src/test/kc/importing.c +++ b/src/test/kc/importing.c @@ -1,7 +1,7 @@ #include "imported.c" void main() { - byte* screen = $0400; + byte* screen = (byte*)$400; *screen = 1; *BG_COLOR = RED; } \ No newline at end of file diff --git a/src/test/kc/incd020.c b/src/test/kc/incd020.c index a2817d732..4acb83e0f 100644 --- a/src/test/kc/incd020.c +++ b/src/test/kc/incd020.c @@ -1,7 +1,7 @@ // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020. // Currently it does not but instead leads to just reading the value a few times. -byte* BG_COLOR = $d020; +byte* BG_COLOR = (char*)$d020; void main() { do { ++*BG_COLOR; diff --git a/src/test/kc/include-define.c b/src/test/kc/include-define.c index 3de6bb8f4..6f2db8bc3 100644 --- a/src/test/kc/include-define.c +++ b/src/test/kc/include-define.c @@ -2,7 +2,7 @@ #include "include-define-sub.h" DEFX; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = x; } \ No newline at end of file diff --git a/src/test/kc/index-sizeof-reuse-2.c b/src/test/kc/index-sizeof-reuse-2.c index c91d1e02f..757805cc6 100644 --- a/src/test/kc/index-sizeof-reuse-2.c +++ b/src/test/kc/index-sizeof-reuse-2.c @@ -4,9 +4,9 @@ unsigned int entities[NUM_ENTITIES]; -char * const VICII_RASTER = 0xd012; -char * const VICII_BG_COLOR = 0xd020; -char * const SCREEN = 0x0400; +char * const VICII_RASTER = (char*)0xd012; +char * const VICII_BG_COLOR = (char*)0xd020; +char * const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/index-sizeof-reuse.c b/src/test/kc/index-sizeof-reuse.c index ba311ec02..2109e2a2d 100644 --- a/src/test/kc/index-sizeof-reuse.c +++ b/src/test/kc/index-sizeof-reuse.c @@ -10,9 +10,9 @@ struct Entity { struct Entity entities[NUM_ENTITIES]; -char * const VICII_RASTER = 0xd012; -char * const VICII_BG_COLOR = 0xd020; -char * const SCREEN = 0x0400; +char * const VICII_RASTER = (char*)0xd012; +char * const VICII_BG_COLOR = (char*)0xd020; +char * const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/infloop-error.c b/src/test/kc/infloop-error.c index 76ac0119b..df097b04d 100644 --- a/src/test/kc/infloop-error.c +++ b/src/test/kc/infloop-error.c @@ -1,5 +1,5 @@ // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { byte min = $ff; byte max = $0; diff --git a/src/test/kc/init-value-npe.c b/src/test/kc/init-value-npe.c index ef2b1a47a..ff6e7d88b 100644 --- a/src/test/kc/init-value-npe.c +++ b/src/test/kc/init-value-npe.c @@ -1,5 +1,5 @@ // https://gitlab.com/camelot/kickc/-/issues/650 -char * const myscreen = $7000; +char * const myscreen = (char*)$7000; char * bitmap_screen; void main() { memset(myscreen); diff --git a/src/test/kc/initializer-0.c b/src/test/kc/initializer-0.c index d3145b3e9..275bce0ba 100644 --- a/src/test/kc/initializer-0.c +++ b/src/test/kc/initializer-0.c @@ -4,7 +4,7 @@ unsigned char chars[] = { 1, 2, 3 }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for( char i: 0..2) { SCREEN[idx++] = chars[i]; diff --git a/src/test/kc/initializer-1.c b/src/test/kc/initializer-1.c index 1a81e0696..14c7e5dc7 100644 --- a/src/test/kc/initializer-1.c +++ b/src/test/kc/initializer-1.c @@ -4,7 +4,7 @@ unsigned int words[] = { 1, 2, 3 }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for( char i: 0..2) { SCREEN[idx++] = <words[i]; diff --git a/src/test/kc/initializer-2.c b/src/test/kc/initializer-2.c index ec5db775b..a1b6e1d87 100644 --- a/src/test/kc/initializer-2.c +++ b/src/test/kc/initializer-2.c @@ -13,7 +13,7 @@ struct Point points[] = { }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for( char i: 0..2) { SCREEN[idx++] = points[i].x; diff --git a/src/test/kc/initializer-3.c b/src/test/kc/initializer-3.c index 943366850..ab9af9343 100644 --- a/src/test/kc/initializer-3.c +++ b/src/test/kc/initializer-3.c @@ -13,7 +13,7 @@ struct Point points[] = { }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for( char i: 0..2) { SCREEN[idx++] = points[i].x; diff --git a/src/test/kc/initializer-4.c b/src/test/kc/initializer-4.c index b71d25ef5..7db3403bc 100644 --- a/src/test/kc/initializer-4.c +++ b/src/test/kc/initializer-4.c @@ -3,7 +3,7 @@ unsigned char chars[] = { 1, 2, 3, }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for( char i: 0..2) { SCREEN[idx++] = chars[i]; diff --git a/src/test/kc/initializer-5.c b/src/test/kc/initializer-5.c index 4a3289b8c..d7386aa2d 100644 --- a/src/test/kc/initializer-5.c +++ b/src/test/kc/initializer-5.c @@ -12,7 +12,7 @@ struct Point points[] = { }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for( char i: 0..2) { SCREEN[idx++] = points[i].x; diff --git a/src/test/kc/inline-asm-clobber-none.c b/src/test/kc/inline-asm-clobber-none.c index f8f5ee657..b7c5dc738 100644 --- a/src/test/kc/inline-asm-clobber-none.c +++ b/src/test/kc/inline-asm-clobber-none.c @@ -1,5 +1,5 @@ // Tests that inline ASM JSR clobbers all registers -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { for( byte i:0..10) { for( byte j:0..10) { diff --git a/src/test/kc/inline-asm-clobber.c b/src/test/kc/inline-asm-clobber.c index e353a19a1..aec822cb4 100644 --- a/src/test/kc/inline-asm-clobber.c +++ b/src/test/kc/inline-asm-clobber.c @@ -1,5 +1,5 @@ // Tests that inline ASM clobbering is taken into account when assigning registers -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { // First loop with no clobber for(byte i : 0..100) { diff --git a/src/test/kc/inline-asm-jsr-clobber.c b/src/test/kc/inline-asm-jsr-clobber.c index 7f50f4e52..be87460e2 100644 --- a/src/test/kc/inline-asm-jsr-clobber.c +++ b/src/test/kc/inline-asm-jsr-clobber.c @@ -1,5 +1,5 @@ // Tests that inline ASM JSR clobbers all registers -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { for( byte i:0..10) { asm { diff --git a/src/test/kc/inline-asm-label.c b/src/test/kc/inline-asm-label.c index 39c362e6d..b49f443cc 100644 --- a/src/test/kc/inline-asm-label.c +++ b/src/test/kc/inline-asm-label.c @@ -1,6 +1,6 @@ // Illustrates how inline assembler use internal labels and external references -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; byte table[] = "cml!"z; void main() { asm { diff --git a/src/test/kc/inline-asm-ma-var.c b/src/test/kc/inline-asm-ma-var.c index e6fe0ad31..c5d3832a3 100644 --- a/src/test/kc/inline-asm-ma-var.c +++ b/src/test/kc/inline-asm-ma-var.c @@ -1,6 +1,6 @@ // Test access to __ma variable from inline ASM -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { __ma char value = 0; diff --git a/src/test/kc/inline-asm-optimized.c b/src/test/kc/inline-asm-optimized.c index 4362d7265..875fe9192 100644 --- a/src/test/kc/inline-asm-optimized.c +++ b/src/test/kc/inline-asm-optimized.c @@ -1,6 +1,6 @@ // Tests that inline assembler is optimized -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { diff --git a/src/test/kc/inline-asm-param.c b/src/test/kc/inline-asm-param.c index ef01c491a..ff4c66cbb 100644 --- a/src/test/kc/inline-asm-param.c +++ b/src/test/kc/inline-asm-param.c @@ -1,4 +1,4 @@ -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$400; void main() { byte a = 'a'; diff --git a/src/test/kc/inline-asm-refout-const.c b/src/test/kc/inline-asm-refout-const.c index b5cf9c7c3..f20cae9b4 100644 --- a/src/test/kc/inline-asm-refout-const.c +++ b/src/test/kc/inline-asm-refout-const.c @@ -1,6 +1,6 @@ // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; byte table[] = "cml!"z; void main() { asm { diff --git a/src/test/kc/inline-asm-refout-var.c b/src/test/kc/inline-asm-refout-var.c index 9e76cc118..4cf1a2932 100644 --- a/src/test/kc/inline-asm-refout-var.c +++ b/src/test/kc/inline-asm-refout-var.c @@ -1,6 +1,6 @@ // Illustrates how inline assembler referencing variables is automatically converted to __ma -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { for(byte i: 0..10) { diff --git a/src/test/kc/inline-asm-refout.c b/src/test/kc/inline-asm-refout.c index 2e0aac5dc..1c262390b 100644 --- a/src/test/kc/inline-asm-refout.c +++ b/src/test/kc/inline-asm-refout.c @@ -3,7 +3,7 @@ byte table[] = "cml!"z; void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; *(SCREEN+40) = table[0]; asm { diff --git a/src/test/kc/inline-asm-uses-1.c b/src/test/kc/inline-asm-uses-1.c index 420f7d38e..461f112d3 100644 --- a/src/test/kc/inline-asm-uses-1.c +++ b/src/test/kc/inline-asm-uses-1.c @@ -2,14 +2,14 @@ void main() { - char * const SCREEN = 0x1009; + char * const SCREEN = (char*)0x1009; char x = fgetc(7); *SCREEN = x; } -char * const CHKIN = 0x1000; -char * const GETIN = 0x1003; -char * const CLRCHN = 0x1006; +char * const CHKIN = (char*)0x1000; +char * const GETIN = (char*)0x1003; +char * const CLRCHN = (char*)0x1006; char fgetc(byte channel) { diff --git a/src/test/kc/inline-asm-uses-problem-2.c b/src/test/kc/inline-asm-uses-problem-2.c index 54315ce51..fe6ce17d0 100644 --- a/src/test/kc/inline-asm-uses-problem-2.c +++ b/src/test/kc/inline-asm-uses-problem-2.c @@ -2,7 +2,7 @@ // zp2 should be forced to live at address $fc - but is identified to be constant by Pass1EarlyConstantIdentification void main() { - __address(0xfc) char * zp2 = 0x0400; + __address(0xfc) char * zp2 = (char*)0x0400; zp2[1] = '*'; asm { lda #$28 diff --git a/src/test/kc/inline-assignment.c b/src/test/kc/inline-assignment.c index 2e2ba03dc..a288f8945 100644 --- a/src/test/kc/inline-assignment.c +++ b/src/test/kc/inline-assignment.c @@ -1,4 +1,4 @@ -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { byte a; diff --git a/src/test/kc/inline-dword-0.c b/src/test/kc/inline-dword-0.c index 22b2e629c..7956d15f6 100644 --- a/src/test/kc/inline-dword-0.c +++ b/src/test/kc/inline-dword-0.c @@ -2,6 +2,6 @@ void main() { dword w = { 0x01234, 0x5678 }; - dword* screen = 0x0400; + dword* screen = (char*)0x0400; screen[0] = w; } \ No newline at end of file diff --git a/src/test/kc/inline-function-if.c b/src/test/kc/inline-function-if.c index 8e0cd117a..8bb7ce047 100644 --- a/src/test/kc/inline-function-if.c +++ b/src/test/kc/inline-function-if.c @@ -1,6 +1,6 @@ // Test inlining a slightly complex print function (containing an if) -byte* screen = $400; +byte* screen = (char*)$400; void main() { screen[0] = toUpper('c',true); diff --git a/src/test/kc/inline-function-min.c b/src/test/kc/inline-function-min.c index 9e03aed12..3d24bf017 100644 --- a/src/test/kc/inline-function-min.c +++ b/src/test/kc/inline-function-min.c @@ -1,6 +1,6 @@ // Test minimal inline function -byte* screen = $0400; +byte* screen = (byte*)$400; void main() { screen[0] = sum(2, 1); diff --git a/src/test/kc/inline-function-print.c b/src/test/kc/inline-function-print.c index aa1d8d385..1ddca1dbb 100644 --- a/src/test/kc/inline-function-print.c +++ b/src/test/kc/inline-function-print.c @@ -1,6 +1,6 @@ // TEst inlining a slightly complex print function (containing a loop) -byte* screen = $400; +byte* screen = (char*)$400; void main() { byte* hello = "hello world!"; diff --git a/src/test/kc/inline-function.c b/src/test/kc/inline-function.c index 85fa47cc2..a98324339 100644 --- a/src/test/kc/inline-function.c +++ b/src/test/kc/inline-function.c @@ -1,13 +1,13 @@ // Test inline function // Splits screen so upper half is lower case and lower half lower case -byte* RASTER = $d012; -byte* D018 = $d018; -byte* BG_COLOR = $d021; +byte* RASTER = (byte*)$d012; +byte* D018 = (byte*)$d018; +byte* BG_COLOR = (byte*)$d021; -byte* screen = $0400; -byte* charset1 = $1000; -byte* charset2 = $1800; +byte* screen = (byte*)$400; +byte* charset1 = (byte*)$1000; +byte* charset2 = (byte*)$1800; void main() { asm { sei } diff --git a/src/test/kc/inline-kasm-clobber.c b/src/test/kc/inline-kasm-clobber.c index 722b9f7bc..daab5b834 100644 --- a/src/test/kc/inline-kasm-clobber.c +++ b/src/test/kc/inline-kasm-clobber.c @@ -1,5 +1,5 @@ // Tests that inline kickasm supports the clobbering directive -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$400; void main() { for(byte k : 0..10) { for(byte l: 0..10) { diff --git a/src/test/kc/inline-kasm-data.c b/src/test/kc/inline-kasm-data.c index b3f117168..6e41359c1 100644 --- a/src/test/kc/inline-kasm-data.c +++ b/src/test/kc/inline-kasm-data.c @@ -5,8 +5,8 @@ __address(0x1000) char sintab[] = kickasm {{ }}; void main() { - byte* screen = $400; - byte* cols = $d800; + byte* screen = (char*)$400; + byte* cols = (char*)$d800; for(byte i:0..24) { byte sin = sintab[i]; screen[sin] = '*'; diff --git a/src/test/kc/inline-kasm-loop.c b/src/test/kc/inline-kasm-loop.c index 3f091696c..8e249eaa3 100644 --- a/src/test/kc/inline-kasm-loop.c +++ b/src/test/kc/inline-kasm-loop.c @@ -1,7 +1,7 @@ // Example of inline kickasm in a function void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; *(SCREEN+1000) = 0; kickasm {{ diff --git a/src/test/kc/inline-kasm-refout.c b/src/test/kc/inline-kasm-refout.c index 1d6abfb7e..597cb7c64 100644 --- a/src/test/kc/inline-kasm-refout.c +++ b/src/test/kc/inline-kasm-refout.c @@ -3,7 +3,7 @@ byte table[] = "cml!"z; void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; kickasm(uses SCREEN, uses table) {{ ldx #0 diff --git a/src/test/kc/inline-kasm-resource.c b/src/test/kc/inline-kasm-resource.c index c90da3ee5..1316ed88f 100644 --- a/src/test/kc/inline-kasm-resource.c +++ b/src/test/kc/inline-kasm-resource.c @@ -7,10 +7,10 @@ __address(0x0c00) byte SPRITE[] = kickasm(resource "balloon.png") {{ .byte pic.getSinglecolorByte(x,y) }}; -char* const SCREEN= 0x400; -char* const SPRITES_ENABLE = 0xd015; -char* const SPRITES_XPOS = 0xd000; -char* const SPRITES_YPOS = 0xd001; +char* const SCREEN= (char*)0x400; +char* const SPRITES_ENABLE = (char*)0xd015; +char* const SPRITES_XPOS = (char*)0xd000; +char* const SPRITES_YPOS = (char*)0xd001; void main() { *(SCREEN+0x3f8) = (char)((unsigned int)SPRITE/$40); diff --git a/src/test/kc/inline-kickasm-uses-problem.c b/src/test/kc/inline-kickasm-uses-problem.c index 4239c7cfc..8f5e3880a 100644 --- a/src/test/kc/inline-kickasm-uses-problem.c +++ b/src/test/kc/inline-kickasm-uses-problem.c @@ -7,7 +7,7 @@ #include <stdint.h> -uint8_t const * OUT = 0x8000; +uint8_t const * OUT = (uint8_t*)0x8000; __ma uint8_t l[1]; __ma uint8_t m[1]; diff --git a/src/test/kc/inline-string-2.c b/src/test/kc/inline-string-2.c index cb77ae488..7f0f3473a 100644 --- a/src/test/kc/inline-string-2.c +++ b/src/test/kc/inline-string-2.c @@ -15,7 +15,7 @@ void print_msg(byte idx) { print(msg); } -byte* screen = $0400; +byte* screen = (byte*)$400; void print(byte* msg) { while(*msg) { *(screen++) = *(msg++); diff --git a/src/test/kc/inline-string-4.c b/src/test/kc/inline-string-4.c index ce376fd95..2ff086d5f 100644 --- a/src/test/kc/inline-string-4.c +++ b/src/test/kc/inline-string-4.c @@ -6,7 +6,7 @@ void main() { output(dw); } -unsigned long* const screen = 0x0400; +unsigned long* const screen = (char*)0x0400; void output(unsigned long dw) { *screen = dw; diff --git a/src/test/kc/inline-string.c b/src/test/kc/inline-string.c index 03287e0a9..664d9091e 100644 --- a/src/test/kc/inline-string.c +++ b/src/test/kc/inline-string.c @@ -8,7 +8,7 @@ void main() { print("message 3 "); } -byte* screen = $0400; +byte* screen = (byte*)$400; void print(byte* msg) { while(*msg) { *(screen++) = *(msg++); diff --git a/src/test/kc/inline-word-0.c b/src/test/kc/inline-word-0.c index e4ef83c7c..eb0814a38 100644 --- a/src/test/kc/inline-word-0.c +++ b/src/test/kc/inline-word-0.c @@ -2,6 +2,6 @@ void main() { word w = { 0x02ub, 0x01ub }; - word* screen = 0x0400; + word* screen = (char*)0x0400; screen[0] = w; } \ No newline at end of file diff --git a/src/test/kc/inline-word-1.c b/src/test/kc/inline-word-1.c index 9154746f8..9b74698f3 100644 --- a/src/test/kc/inline-word-1.c +++ b/src/test/kc/inline-word-1.c @@ -2,6 +2,6 @@ void main() { word w = { 0x01, 0x02 }; - word* screen = 0x0400; + word* screen = (char*)0x0400; screen[0] = w; } \ No newline at end of file diff --git a/src/test/kc/inline-word-2.c b/src/test/kc/inline-word-2.c index 9cff6751a..c92538396 100644 --- a/src/test/kc/inline-word-2.c +++ b/src/test/kc/inline-word-2.c @@ -2,6 +2,6 @@ void main() { word w = { 0x01, 0x02ub }; - word* screen = 0x0400; + word* screen = (word*)0x0400; screen[0] = w; } \ No newline at end of file diff --git a/src/test/kc/inline-word.c b/src/test/kc/inline-word.c index 141276c11..3ad75ddd4 100644 --- a/src/test/kc/inline-word.c +++ b/src/test/kc/inline-word.c @@ -1,4 +1,4 @@ -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { byte his[] = { >SCREEN, >SCREEN+$100, >SCREEN+$200 }; // constant array diff --git a/src/test/kc/inlinearrayproblem.c b/src/test/kc/inlinearrayproblem.c index 9019eec3d..c255d9703 100644 --- a/src/test/kc/inlinearrayproblem.c +++ b/src/test/kc/inlinearrayproblem.c @@ -1,8 +1,8 @@ // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters. // The following places the text at the start of the main-function - and JSR's straight into the text - not the code. -byte* SCREEN = $0400; -byte* SCREEN2 = $0400+$28; +byte* SCREEN = (byte*)$400; +byte* SCREEN2 = (byte*)$400+$28; void main() { byte txt[] = "qwe"z; byte data[] = { 1, 2, 3 }; diff --git a/src/test/kc/inmem-const-array.c b/src/test/kc/inmem-const-array.c index 397141ee9..c3bc7176f 100644 --- a/src/test/kc/inmem-const-array.c +++ b/src/test/kc/inmem-const-array.c @@ -4,8 +4,8 @@ const byte GREEN = 5; void main() { byte colseq[] = { WHITE, RED, GREEN }; - byte* screen = $0400; - byte* cols = $d800; + byte* screen = (byte*)$400; + byte* cols = (byte*)$d800; byte j = 0; for( byte i : 0..39) { screen[i] = '*'; diff --git a/src/test/kc/inmemarray.c b/src/test/kc/inmemarray.c index 818f2d1c0..e5623aeda 100644 --- a/src/test/kc/inmemarray.c +++ b/src/test/kc/inmemarray.c @@ -1,5 +1,5 @@ -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; byte TXT[] = { 3, 1, 13, 5, 12, 15, 20, 32}; void main() { diff --git a/src/test/kc/inmemstring.c b/src/test/kc/inmemstring.c index d11cd20de..0cbc5d59a 100644 --- a/src/test/kc/inmemstring.c +++ b/src/test/kc/inmemstring.c @@ -1,5 +1,5 @@ -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; byte TEXT[] = "camelot "z; void main() { diff --git a/src/test/kc/inner-increment-problem.c b/src/test/kc/inner-increment-problem.c index 79e86556e..59c928b9d 100644 --- a/src/test/kc/inner-increment-problem.c +++ b/src/test/kc/inner-increment-problem.c @@ -4,7 +4,7 @@ const word CHAR_COUNTS[0x100]; void main() { // Count the number of the different chars on the screen - byte* screen = 0x0400; + byte* screen = (char*)0x0400; for( word i:0..999) { CHAR_COUNTS[*screen++]++; } diff --git a/src/test/kc/int-conversion.c b/src/test/kc/int-conversion.c index 90ee3f0c2..77431a141 100644 --- a/src/test/kc/int-conversion.c +++ b/src/test/kc/int-conversion.c @@ -3,8 +3,8 @@ const byte RED = 2ub; const byte GREEN = 5ub; -byte* const SCREEN = $0400; -byte* const COLS = $d800; +byte* const SCREEN = (byte*)$400; +byte* const COLS = (char*)$d800; byte idx = 0ub; void main() { diff --git a/src/test/kc/int-literals.c b/src/test/kc/int-literals.c index 7be3188eb..69442f9e5 100644 --- a/src/test/kc/int-literals.c +++ b/src/test/kc/int-literals.c @@ -3,8 +3,8 @@ const byte RED = 2ub; const byte GREEN = 5ub; -byte* const SCREEN = $0400uw; -byte* const COLS = $d800uw; +byte* const SCREEN = (byte*)$400uw; +byte* const COLS = (char*)$d800uw; byte idx = 0ub; void main() { diff --git a/src/test/kc/interrupt-volatile-reuse-problem1.c b/src/test/kc/interrupt-volatile-reuse-problem1.c index 7fdc2406a..da98a653f 100644 --- a/src/test/kc/interrupt-volatile-reuse-problem1.c +++ b/src/test/kc/interrupt-volatile-reuse-problem1.c @@ -1,6 +1,6 @@ // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles -void()** const KERNEL_IRQ = $0314; -byte* const SCREEN=$400; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const SCREEN = (byte*)$400; volatile byte col1 = 0; volatile byte col2 = 8; diff --git a/src/test/kc/interrupt-volatile-reuse-problem2.c b/src/test/kc/interrupt-volatile-reuse-problem2.c index 15792675d..5061424d1 100644 --- a/src/test/kc/interrupt-volatile-reuse-problem2.c +++ b/src/test/kc/interrupt-volatile-reuse-problem2.c @@ -1,9 +1,9 @@ // Illustrates problem where volatiles reuse ZP addresses of other variables -void()** const KERNEL_IRQ = $0314; -byte* const IRQ_STATUS = $d019; -byte* const CIA1_INTERRUPT = $dc0d; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; -byte* const SCREEN=$400; +byte* const SCREEN=(byte*)$400; volatile byte col1 = 0; void main() { diff --git a/src/test/kc/invalid-consttype.c b/src/test/kc/invalid-consttype.c index fb4c21b72..c7b57c58b 100644 --- a/src/test/kc/invalid-consttype.c +++ b/src/test/kc/invalid-consttype.c @@ -1,5 +1,5 @@ void main() { signed byte b = -400; - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$400; *SCREEN = (byte)b; } \ No newline at end of file diff --git a/src/test/kc/irq-hardware-clobber.c b/src/test/kc/irq-hardware-clobber.c index 78e46c02c..0a0fb8114 100644 --- a/src/test/kc/irq-hardware-clobber.c +++ b/src/test/kc/irq-hardware-clobber.c @@ -1,30 +1,30 @@ // A minimal working raster hardware IRQ with clobber-based register savings -void()** const KERNEL_IRQ = $0314; -void()** const HARDWARE_IRQ = $fffe; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +void()** const HARDWARE_IRQ = (void()**)$fffe; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; const byte IRQ_COLLISION_BG = %00000010; const byte IRQ_COLLISION_SPRITE = %00000100; const byte IRQ_LIGHTPEN = %00001000; -byte* const BG_COLOR = $d020; -byte* const FGCOL = $d021; +byte* const BG_COLOR = (byte*)$d020; +byte* const FGCOL = (byte*)$d021; const byte WHITE = 1; const byte BLACK = 0; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; // Processor port data direction register -byte* const PROCPORT_DDR = $00; +byte* const PROCPORT_DDR = (byte*)$00; // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written const byte PROCPORT_DDR_MEMORY_MASK = %00000111; // Processor Port Register controlling RAM/ROM configuration and the datasette -byte* const PROCPORT = $01; +byte* const PROCPORT = (byte*)$01; // RAM in $A000, $E000 I/O in $D000 const byte PROCPORT_RAM_IO = %00110101; // RAM in $A000, $E000 CHAR ROM in $D000 diff --git a/src/test/kc/irq-hardware-stack.c b/src/test/kc/irq-hardware-stack.c index cc1948572..6b8205eae 100644 --- a/src/test/kc/irq-hardware-stack.c +++ b/src/test/kc/irq-hardware-stack.c @@ -2,31 +2,31 @@ #pragma cpu(rom6502x) -void()** const KERNEL_IRQ = $0314; -void()** const HARDWARE_IRQ = $fffe; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +void()** const HARDWARE_IRQ = (void()**)$fffe; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; const byte IRQ_COLLISION_BG = %00000010; const byte IRQ_COLLISION_SPRITE = %00000100; const byte IRQ_LIGHTPEN = %00001000; -byte* const BG_COLOR = $d020; -byte* const FGCOL = $d021; +byte* const BG_COLOR = (byte*)$d020; +byte* const FGCOL = (byte*)$d021; const byte WHITE = 1; const byte BLACK = 0; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; // Processor port data direction register -byte* const PROCPORT_DDR = $00; +byte* const PROCPORT_DDR = (byte*)$00; // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written const byte PROCPORT_DDR_MEMORY_MASK = %00000111; // Processor Port Register controlling RAM/ROM configuration and the datasette -byte* const PROCPORT = $01; +byte* const PROCPORT = (byte*)$01; // RAM in $A000, $E000 I/O in $D000 const byte PROCPORT_RAM_IO = %00110101; // RAM in $A000, $E000 CHAR ROM in $D000 diff --git a/src/test/kc/irq-hardware.c b/src/test/kc/irq-hardware.c index 88134b7ae..31949262f 100644 --- a/src/test/kc/irq-hardware.c +++ b/src/test/kc/irq-hardware.c @@ -1,30 +1,30 @@ // A minimal working raster IRQ -void()** const KERNEL_IRQ = $0314; -void()** const HARDWARE_IRQ = $fffe; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +void()** const HARDWARE_IRQ = (void()**)$fffe; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; const byte IRQ_COLLISION_BG = %00000010; const byte IRQ_COLLISION_SPRITE = %00000100; const byte IRQ_LIGHTPEN = %00001000; -byte* const BG_COLOR = $d020; -byte* const FGCOL = $d021; +byte* const BG_COLOR = (byte*)$d020; +byte* const FGCOL = (byte*)$d021; const byte WHITE = 1; const byte BLACK = 0; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; // Processor port data direction register -byte* const PROCPORT_DDR = $00; +byte* const PROCPORT_DDR = (byte*)$00; // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written const byte PROCPORT_DDR_MEMORY_MASK = %00000111; // Processor Port Register controlling RAM/ROM configuration and the datasette -byte* const PROCPORT = $01; +byte* const PROCPORT = (byte*)$01; // RAM in $A000, $E000 I/O in $D000 const byte PROCPORT_RAM_IO = %00110101; // RAM in $A000, $E000 CHAR ROM in $D000 diff --git a/src/test/kc/irq-idx-problem.c b/src/test/kc/irq-idx-problem.c index d1bbbb021..a5d6453f0 100644 --- a/src/test/kc/irq-idx-problem.c +++ b/src/test/kc/irq-idx-problem.c @@ -1,7 +1,7 @@ // Test interrupt routine using a variable between calls (irq_idx) #include <c64.h> -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$400; void main() { asm { sei } @@ -19,7 +19,7 @@ void main() { asm { cli } } -byte * const VICII_BASE = $D000; +byte * const VICII_BASE = (byte*)$D000; const byte VICII_SIZE = 48; const byte IRQ_CHANGE_NEXT = $7f; diff --git a/src/test/kc/irq-kernel.c b/src/test/kc/irq-kernel.c index 8ff7d1293..cb6d3c972 100644 --- a/src/test/kc/irq-kernel.c +++ b/src/test/kc/irq-kernel.c @@ -1,19 +1,19 @@ // A minimal working raster IRQ -void()** const KERNEL_IRQ = $0314; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; const byte IRQ_COLLISION_BG = %00000010; const byte IRQ_COLLISION_SPRITE = %00000100; const byte IRQ_LIGHTPEN = %00001000; -byte* const BG_COLOR = $d020; +byte* const BG_COLOR = (byte*)$d020; const byte WHITE = 1; const byte BLACK = 0; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; void main() { diff --git a/src/test/kc/irq-local-var-overlap-problem.c b/src/test/kc/irq-local-var-overlap-problem.c index c30373ccd..de8cfcab2 100644 --- a/src/test/kc/irq-local-var-overlap-problem.c +++ b/src/test/kc/irq-local-var-overlap-problem.c @@ -1,15 +1,15 @@ // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ -void()** const KERNEL_IRQ = $0314; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; -byte* const BG_COLOR = $d020; -byte* const FGCOL = $d021; +byte* const BG_COLOR = (byte*)$d020; +byte* const FGCOL = (byte*)$d021; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; diff --git a/src/test/kc/irq-pragma.c b/src/test/kc/irq-pragma.c index 43e47607f..b95dbba19 100644 --- a/src/test/kc/irq-pragma.c +++ b/src/test/kc/irq-pragma.c @@ -3,8 +3,8 @@ #pragma interrupt(rom_sys_c64) // The vector used when the KERNAL serves IRQ interrupts -void()** const KERNEL_IRQ = 0x0314; -char* const BG_COLOR = 0xd021; +void()** const KERNEL_IRQ = (void()**)0x0314; +char* const BG_COLOR = (char*)0xd021; // Setup the IRQ routine diff --git a/src/test/kc/irq-raster.c b/src/test/kc/irq-raster.c index 9a778471b..34c3e9afe 100644 --- a/src/test/kc/irq-raster.c +++ b/src/test/kc/irq-raster.c @@ -1,19 +1,19 @@ // A minimal working raster IRQ -void()** const KERNEL_IRQ = $0314; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; const byte IRQ_COLLISION_BG = %00000010; const byte IRQ_COLLISION_SPRITE = %00000100; const byte IRQ_LIGHTPEN = %00001000; -byte* const BG_COLOR = $d020; +byte* const BG_COLOR = (byte*)$d020; const byte WHITE = 1; const byte BLACK = 0; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; void main() { diff --git a/src/test/kc/irq-unknown-type.c b/src/test/kc/irq-unknown-type.c index 0ff7662dc..1864cc8f3 100644 --- a/src/test/kc/irq-unknown-type.c +++ b/src/test/kc/irq-unknown-type.c @@ -1,8 +1,8 @@ // Unknown interrupt type // The vector used when the KERNAL serves IRQ interrupts -void()** const KERNEL_IRQ = 0x0314; -char* const BG_COLOR = 0xd021; +void()** const KERNEL_IRQ = (void()**)0x0314; +char* const BG_COLOR = (char*)0xd021; // Setup the IRQ routine void main() { diff --git a/src/test/kc/irq-volatile-bool-problem.c b/src/test/kc/irq-volatile-bool-problem.c index 1b5e6c2b8..3ac7410ec 100644 --- a/src/test/kc/irq-volatile-bool-problem.c +++ b/src/test/kc/irq-volatile-bool-problem.c @@ -1,15 +1,15 @@ // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly // because it is assigned to the A register -void()** const KERNEL_IRQ = $0314; -byte* const RASTER = $d012; -byte* const VICII_CONTROL1 = $d011; -byte* const IRQ_STATUS = $d019; -byte* const IRQ_ENABLE = $d01a; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const RASTER = (byte*)$d012; +byte* const VICII_CONTROL1 = (byte*)$d011; +byte* const IRQ_STATUS = (byte*)$d019; +byte* const IRQ_ENABLE = (byte*)$d01a; const byte IRQ_RASTER = %00000001; -byte* const BG_COLOR = $d020; +byte* const BG_COLOR = (byte*)$d020; -byte* const CIA1_INTERRUPT = $dc0d; +byte* const CIA1_INTERRUPT = (byte*)$dc0d; const byte CIA_INTERRUPT_CLEAR = $7f; diff --git a/src/test/kc/issue-594-case.c b/src/test/kc/issue-594-case.c index 9a2902c81..9aefd06a4 100644 --- a/src/test/kc/issue-594-case.c +++ b/src/test/kc/issue-594-case.c @@ -9,7 +9,7 @@ typedef enum _substate_hosts SubState; #define ORIGIN_HOST_SLOTS 2 #define ORIGIN_DEVICE_SLOTS 13 -const char * OUT = 0x8000; +const char * OUT = (char*)0x8000; void main() { SubState substate = HOSTS; diff --git a/src/test/kc/iterarray.c b/src/test/kc/iterarray.c index aea003b0f..ebf8be63f 100644 --- a/src/test/kc/iterarray.c +++ b/src/test/kc/iterarray.c @@ -1,5 +1,5 @@ void main() { - byte buf[16] = $1100; + byte buf[16] = (byte*)$1100; byte i = 5; do { buf[i] = 2+i+2; diff --git a/src/test/kc/keyboard-glitch.c b/src/test/kc/keyboard-glitch.c index 49d6eef99..ca2b03d32 100644 --- a/src/test/kc/keyboard-glitch.c +++ b/src/test/kc/keyboard-glitch.c @@ -15,7 +15,7 @@ void main() { } } -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void menu() { // Wait for key press diff --git a/src/test/kc/kickasm-uses-prevent-deletion.c b/src/test/kc/kickasm-uses-prevent-deletion.c index c495ddb76..99a574b89 100644 --- a/src/test/kc/kickasm-uses-prevent-deletion.c +++ b/src/test/kc/kickasm-uses-prevent-deletion.c @@ -1,8 +1,8 @@ // Ensure that an inline kickasm uses-clause is anough to prevent a function from being deleted // The vector used when the KERNAL serves IRQ interrupts -void()** const KERNEL_IRQ = $0314; -byte* const BG_COLOR = $d021; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const BG_COLOR = (byte*)$d021; const byte BLACK = $0; const byte WHITE = $1; diff --git a/src/test/kc/library-constructor-0.c b/src/test/kc/library-constructor-0.c index 50b37bb5b..3fa73af93 100644 --- a/src/test/kc/library-constructor-0.c +++ b/src/test/kc/library-constructor-0.c @@ -9,7 +9,7 @@ void my_init(void) { my_value = '*'; } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { *SCREEN = my_value; diff --git a/src/test/kc/library-constructor-1.c b/src/test/kc/library-constructor-1.c index 5142ef4ac..6d4316eff 100644 --- a/src/test/kc/library-constructor-1.c +++ b/src/test/kc/library-constructor-1.c @@ -9,7 +9,7 @@ void my_init(void) { my_value = '*'; } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { print(); diff --git a/src/test/kc/library-constructor-2.c b/src/test/kc/library-constructor-2.c index 22c9fc7b6..c031c86ed 100644 --- a/src/test/kc/library-constructor-2.c +++ b/src/test/kc/library-constructor-2.c @@ -10,7 +10,7 @@ void my_init(void) { SCREEN[0] = '*'; } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { SCREEN[2] = '*'; diff --git a/src/test/kc/library-constructor-error-0.c b/src/test/kc/library-constructor-error-0.c index 88f7fd7a6..c8936fc87 100644 --- a/src/test/kc/library-constructor-error-0.c +++ b/src/test/kc/library-constructor-error-0.c @@ -7,7 +7,7 @@ void my_init(void) { } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { } diff --git a/src/test/kc/library-constructor-error-1.c b/src/test/kc/library-constructor-error-1.c index 3a62e0040..13e995a61 100644 --- a/src/test/kc/library-constructor-error-1.c +++ b/src/test/kc/library-constructor-error-1.c @@ -3,7 +3,7 @@ #pragma constructor_for(my_init, main) -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { } diff --git a/src/test/kc/library-constructor-error-2.c b/src/test/kc/library-constructor-error-2.c index 683bf67d0..9424d3125 100644 --- a/src/test/kc/library-constructor-error-2.c +++ b/src/test/kc/library-constructor-error-2.c @@ -3,7 +3,7 @@ #pragma constructor_for(my_init, print) -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Constructor void my_init(void) { diff --git a/src/test/kc/line-anim.c b/src/test/kc/line-anim.c index ff753ec30..7a4927ce1 100644 --- a/src/test/kc/line-anim.c +++ b/src/test/kc/line-anim.c @@ -2,8 +2,8 @@ #include <c64.h> #include <division.h> -byte* BITMAP = $a000; -byte* SCREEN = $8800; +byte* BITMAP = (byte*)$a000; +byte* SCREEN = (byte*)$8800; // The number of points const byte SIZE = 4; diff --git a/src/test/kc/literal-char-minus-number.c b/src/test/kc/literal-char-minus-number.c index 5cce3c0f4..ea4794755 100644 --- a/src/test/kc/literal-char-minus-number.c +++ b/src/test/kc/literal-char-minus-number.c @@ -1,6 +1,6 @@ // Tests subtracting a number from a literal char void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; *SCREEN = 'a' - 1; } \ No newline at end of file diff --git a/src/test/kc/literal-string-array.c b/src/test/kc/literal-string-array.c index 14392f069..0f1d07651 100644 --- a/src/test/kc/literal-string-array.c +++ b/src/test/kc/literal-string-array.c @@ -1,6 +1,6 @@ // Tests literal string array -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void* const NUL = (void*)0; // Works diff --git a/src/test/kc/literal-strings.c b/src/test/kc/literal-strings.c index 955006f2f..fbcd0959a 100644 --- a/src/test/kc/literal-strings.c +++ b/src/test/kc/literal-strings.c @@ -1,6 +1,6 @@ // Tests literal strings with and without zero-termination -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; byte msgz[] = "cml"z; byte msg[] = "cml"; diff --git a/src/test/kc/literals.c b/src/test/kc/literals.c index 587ff2f34..ec7be2906 100644 --- a/src/test/kc/literals.c +++ b/src/test/kc/literals.c @@ -1,4 +1,4 @@ -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; byte ch = 'a'; byte num = 1; diff --git a/src/test/kc/liverange-1.c b/src/test/kc/liverange-1.c index 7412bb8ae..ad740dfe0 100644 --- a/src/test/kc/liverange-1.c +++ b/src/test/kc/liverange-1.c @@ -7,7 +7,7 @@ void main() { out('m'); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void out(char c) { diff --git a/src/test/kc/liverange-10.c b/src/test/kc/liverange-10.c index baa904ea1..6416deaa5 100644 --- a/src/test/kc/liverange-10.c +++ b/src/test/kc/liverange-10.c @@ -1,7 +1,7 @@ // Test effective live range and register allocation // Here outsw::sw and outw::w should have the same allocation -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/liverange-2.c b/src/test/kc/liverange-2.c index d219674b4..87b442926 100644 --- a/src/test/kc/liverange-2.c +++ b/src/test/kc/liverange-2.c @@ -12,7 +12,7 @@ void main() { } } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(char b, char ca) { SCREEN[b] = ca; diff --git a/src/test/kc/liverange-3.c b/src/test/kc/liverange-3.c index 866dea7eb..f9bb28256 100644 --- a/src/test/kc/liverange-3.c +++ b/src/test/kc/liverange-3.c @@ -12,7 +12,7 @@ void main() { } } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(char b, char ca) { (*(SCREEN+999))++; diff --git a/src/test/kc/liverange-4.c b/src/test/kc/liverange-4.c index bb2947fce..10a261304 100644 --- a/src/test/kc/liverange-4.c +++ b/src/test/kc/liverange-4.c @@ -12,7 +12,7 @@ void main() { } } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(char b, char ca) { out(b, ca); diff --git a/src/test/kc/liverange-5.c b/src/test/kc/liverange-5.c index 563276911..f7f00af5a 100644 --- a/src/test/kc/liverange-5.c +++ b/src/test/kc/liverange-5.c @@ -12,7 +12,7 @@ void main() { } } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(char b, char ca) { out(b, ca); diff --git a/src/test/kc/liverange-6.c b/src/test/kc/liverange-6.c index 1345ba670..4617c2cbc 100644 --- a/src/test/kc/liverange-6.c +++ b/src/test/kc/liverange-6.c @@ -3,7 +3,7 @@ byte msg[] = "hello world!"; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/liverange-7.c b/src/test/kc/liverange-7.c index a82b52e08..70ac6a51b 100644 --- a/src/test/kc/liverange-7.c +++ b/src/test/kc/liverange-7.c @@ -1,7 +1,7 @@ // Test effective live range and register allocation // Here main::c, out2::c and out::c can all have the same allocation - and the global idx can be allocated to a hardware register. -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/liverange-8.c b/src/test/kc/liverange-8.c index eafc6db10..99c370723 100644 --- a/src/test/kc/liverange-8.c +++ b/src/test/kc/liverange-8.c @@ -1,7 +1,7 @@ // Test effective live range and register allocation // Here main::c, out2::c and out::c can all have the same allocation - and the global idx can be allocated to a hardware register. -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/liverange-9.c b/src/test/kc/liverange-9.c index b3d09359f..4173063c3 100644 --- a/src/test/kc/liverange-9.c +++ b/src/test/kc/liverange-9.c @@ -1,7 +1,7 @@ // Test effective live range and register allocation // Here main::c, outsw::c and outw::c can all have the same allocation -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/liverange-call-problem.c b/src/test/kc/liverange-call-problem.c index ae59f43c2..12d161a0e 100644 --- a/src/test/kc/liverange-call-problem.c +++ b/src/test/kc/liverange-call-problem.c @@ -9,7 +9,7 @@ void main() { incw2(); incw1(); incw2(); - word* SCREEN = $400; + word* SCREEN = (char*)$400; SCREEN[0] = w1; SCREEN[2] = w2; } diff --git a/src/test/kc/liverange-problem-0.c b/src/test/kc/liverange-problem-0.c index 1513ff022..d283fbb20 100644 --- a/src/test/kc/liverange-problem-0.c +++ b/src/test/kc/liverange-problem-0.c @@ -3,7 +3,7 @@ // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges // CallPath code must be rewritten to use @begin as the outermost call instead of main() -byte* MEM = 0x0400; +byte* MEM = (char*)0x0400; byte* malloc() { return ++MEM; } diff --git a/src/test/kc/liverange.c b/src/test/kc/liverange.c index 77dbfab30..5d2aa975e 100644 --- a/src/test/kc/liverange.c +++ b/src/test/kc/liverange.c @@ -4,7 +4,7 @@ void main() { byte a=4; a=a+inci(); a=a+inci(); - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; *SCREEN = i; *(SCREEN+1) = a; } diff --git a/src/test/kc/local-string.c b/src/test/kc/local-string.c index 1f168a8a6..19d935067 100644 --- a/src/test/kc/local-string.c +++ b/src/test/kc/local-string.c @@ -1,6 +1,6 @@ // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string void main() { - byte* screen = $0400; + byte* screen = (byte*)$400; byte msg[] = "message 2 "; byte i=0; while(msg[i]) { diff --git a/src/test/kc/local-var-shadowing-procedure.c b/src/test/kc/local-var-shadowing-procedure.c index 6210a6065..d2ac0a628 100644 --- a/src/test/kc/local-var-shadowing-procedure.c +++ b/src/test/kc/local-var-shadowing-procedure.c @@ -5,7 +5,7 @@ void main() { doit(); } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void doit() { SCREEN[0] = '*'; diff --git a/src/test/kc/localscope-loops.c b/src/test/kc/localscope-loops.c index 7ce5253f7..dcb89185f 100644 --- a/src/test/kc/localscope-loops.c +++ b/src/test/kc/localscope-loops.c @@ -1,6 +1,6 @@ // Illustrates introducing local scopes inside loops etc -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { for (byte i: 0..5) SCREEN[i] = 'a'; diff --git a/src/test/kc/localscope-simple.c b/src/test/kc/localscope-simple.c index 2363be985..404e2e9a6 100644 --- a/src/test/kc/localscope-simple.c +++ b/src/test/kc/localscope-simple.c @@ -1,6 +1,6 @@ // Tests anonymous scopes inside functions -byte* const BG_COLOR = $d021; +byte* const BG_COLOR = (char*)$d021; void main() { { diff --git a/src/test/kc/longbranch-interrupt-problem.c b/src/test/kc/longbranch-interrupt-problem.c index 23f2cc8a4..c7e659387 100644 --- a/src/test/kc/longbranch-interrupt-problem.c +++ b/src/test/kc/longbranch-interrupt-problem.c @@ -1,7 +1,7 @@ // Tests that long branch fixing works with interrupt exits (to $ea81) -void()** const KERNEL_IRQ = $0314; -byte* const BG_COLOR = $d020; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const BG_COLOR = (byte*)$d020; volatile byte col = 0; void main() { diff --git a/src/test/kc/longjump.c b/src/test/kc/longjump.c index ec3482221..ad70276b6 100644 --- a/src/test/kc/longjump.c +++ b/src/test/kc/longjump.c @@ -1,7 +1,7 @@ // Minimal example program generating a long jump void main() { - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$400; for(byte i : 0..10) { asm { nop diff --git a/src/test/kc/longjump2.c b/src/test/kc/longjump2.c index 462c959e0..455f44ccc 100644 --- a/src/test/kc/longjump2.c +++ b/src/test/kc/longjump2.c @@ -7,7 +7,7 @@ void main() { void long1() { - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$400; for(byte i : 0..10) { asm { nop @@ -272,7 +272,7 @@ void long1() { } void long2() { - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$400; for(byte i : 0..10) { asm { nop diff --git a/src/test/kc/loop-break-continue.c b/src/test/kc/loop-break-continue.c index 2a6cd3da9..dc2e04c7b 100644 --- a/src/test/kc/loop-break-continue.c +++ b/src/test/kc/loop-break-continue.c @@ -1,7 +1,7 @@ // Illustrates both break & continue statements in a loop // Prints a message ending at NUL skipping all spaces void main() { - byte* screen = $400; + byte* screen = (char*)$400; byte str[] = "hello brave new world"; for( byte i: 0..255) { if(str[i]==0) break; diff --git a/src/test/kc/loop-break-nested.c b/src/test/kc/loop-break-nested.c index bcb9b15f9..8083bd06c 100644 --- a/src/test/kc/loop-break-nested.c +++ b/src/test/kc/loop-break-nested.c @@ -1,9 +1,9 @@ // Tests break statement in a simple loop -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { - for(byte* line = $400; line<$400+40*25;line+=40 ) { + for(byte* line = (char*)$400; line<$400+40*25;line+=40 ) { if(*line=='a') break; for( byte i: 0..39) { if(line[i]=='a') break; diff --git a/src/test/kc/loop-break.c b/src/test/kc/loop-break.c index cababe09d..51805c7bc 100644 --- a/src/test/kc/loop-break.c +++ b/src/test/kc/loop-break.c @@ -1,6 +1,6 @@ // Tests break statement in a simple loop -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { for( byte i: 0..40*6) { diff --git a/src/test/kc/loop-continue.c b/src/test/kc/loop-continue.c index dab08fecc..8e73ea631 100644 --- a/src/test/kc/loop-continue.c +++ b/src/test/kc/loop-continue.c @@ -1,6 +1,6 @@ // Tests break statement in a simple loop -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { for( byte i: 0..40*6) { diff --git a/src/test/kc/loop-for-continue.c b/src/test/kc/loop-for-continue.c index 53f9b52ac..28fc21d69 100644 --- a/src/test/kc/loop-for-continue.c +++ b/src/test/kc/loop-for-continue.c @@ -1,6 +1,6 @@ // Tests continue statement in a simple for()-loop -char* const SCREEN = $400; +char* const SCREEN = (char*)$400; const char MESSAGE[] = "hello brave new world!"; diff --git a/src/test/kc/loop-for-empty-body.c b/src/test/kc/loop-for-empty-body.c index 7d375548c..5e58e5e94 100644 --- a/src/test/kc/loop-for-empty-body.c +++ b/src/test/kc/loop-for-empty-body.c @@ -1,7 +1,7 @@ // Test a for-loop with an empty body const char str[] = "Hello!"; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char b = 0; diff --git a/src/test/kc/loop-for-sideeffect.c b/src/test/kc/loop-for-sideeffect.c index c0c3a9402..87bd83319 100644 --- a/src/test/kc/loop-for-sideeffect.c +++ b/src/test/kc/loop-for-sideeffect.c @@ -1,7 +1,7 @@ // Test a for()-loop where the condition has a side-effect // Currently not standard C compliant (since the condition is not evaluated before the body) -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main(void) { char i; diff --git a/src/test/kc/loop-memset-min.c b/src/test/kc/loop-memset-min.c index 4b95f4f3c..231753024 100644 --- a/src/test/kc/loop-memset-min.c +++ b/src/test/kc/loop-memset-min.c @@ -3,7 +3,7 @@ typedef word size_t ; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { memset(SCREEN, 'c', 1000); diff --git a/src/test/kc/loop-problem.c b/src/test/kc/loop-problem.c index eebe46f43..34d50f668 100644 --- a/src/test/kc/loop-problem.c +++ b/src/test/kc/loop-problem.c @@ -1,6 +1,6 @@ // A simple loop results in NullPointerException during loop analysis -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { *SCREEN = '0'; diff --git a/src/test/kc/loop-problem2.c b/src/test/kc/loop-problem2.c index d55095790..e9df0b85f 100644 --- a/src/test/kc/loop-problem2.c +++ b/src/test/kc/loop-problem2.c @@ -1,5 +1,5 @@ -byte* const BORDER_COLOR = $d020; -byte* const SCREEN = $0400; +byte* const BORDER_COLOR = (char*)$d020; +byte* const SCREEN = (byte*)$400; void main() { print_cls(); diff --git a/src/test/kc/loop-problem3.c b/src/test/kc/loop-problem3.c index b35696519..1bbe10bfd 100644 --- a/src/test/kc/loop-problem3.c +++ b/src/test/kc/loop-problem3.c @@ -2,6 +2,6 @@ void main() { for(;;) - for(char* sc = 0x0400;sc<0x0800; sc++) + for(char* sc = (char*)0x0400;sc<0x0800; sc++) (*sc)++; } \ No newline at end of file diff --git a/src/test/kc/loop-while-continue.c b/src/test/kc/loop-while-continue.c index 9653a1848..30b6a4878 100644 --- a/src/test/kc/loop-while-continue.c +++ b/src/test/kc/loop-while-continue.c @@ -1,6 +1,6 @@ // Tests break statement in a simple loop -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { byte i=0; diff --git a/src/test/kc/loop-while-min.c b/src/test/kc/loop-while-min.c index 8568894ff..05cb1a6ef 100644 --- a/src/test/kc/loop-while-min.c +++ b/src/test/kc/loop-while-min.c @@ -1,7 +1,7 @@ // Minimal classic while() loop -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { char i = 0; diff --git a/src/test/kc/loop-while-sideeffect.c b/src/test/kc/loop-while-sideeffect.c index 41881df50..243e92c07 100644 --- a/src/test/kc/loop-while-sideeffect.c +++ b/src/test/kc/loop-while-sideeffect.c @@ -1,6 +1,6 @@ // Test a while()-loop where the condition has a side-effect -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main(void) { char i = 7; diff --git a/src/test/kc/loophead-problem-2.c b/src/test/kc/loophead-problem-2.c index 641e6e386..3914cebfa 100644 --- a/src/test/kc/loophead-problem-2.c +++ b/src/test/kc/loophead-problem-2.c @@ -6,7 +6,7 @@ int ball_y[8] = { 50, 100, -200, 12, -100, 75, 0, -121 } ; void main() { - char* const screen = 0x0400; + char* const screen = (char*)0x0400; char hit_check=scan_for_lowest(); screen[0] = hit_check; screen[2] = <ball_y[hit_check]; diff --git a/src/test/kc/loophead-problem.c b/src/test/kc/loophead-problem.c index 90907e10d..7380eaf01 100755 --- a/src/test/kc/loophead-problem.c +++ b/src/test/kc/loophead-problem.c @@ -3,7 +3,7 @@ // The cause is that the Unroller does not handle the variable opcode correctly. // The Unroller gets the verwions for opcode wrong because it misses the fact that it is modified inside call to popup_selector() -byte* const screen = $0400; +byte* const screen = (byte*)$400; byte opcode = 'a'; // Offending unroll variable diff --git a/src/test/kc/loophead-trivial-1.c b/src/test/kc/loophead-trivial-1.c index 79f43e65f..4eeabc684 100644 --- a/src/test/kc/loophead-trivial-1.c +++ b/src/test/kc/loophead-trivial-1.c @@ -2,7 +2,7 @@ // For trivially constant loop heads for(;;) loops can be written to run body before comparison // The simplest possible for-loop with a constant loop head. -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { for(char i=0;i<40;i++) diff --git a/src/test/kc/loopnest.c b/src/test/kc/loopnest.c index f0c7c9a56..681a8cedc 100644 --- a/src/test/kc/loopnest.c +++ b/src/test/kc/loopnest.c @@ -1,4 +1,4 @@ -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { byte i=100; diff --git a/src/test/kc/loopnest2.c b/src/test/kc/loopnest2.c index d5608743f..6960e4ceb 100644 --- a/src/test/kc/loopnest2.c +++ b/src/test/kc/loopnest2.c @@ -1,4 +1,4 @@ -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { byte i=100; diff --git a/src/test/kc/loopnest3.c b/src/test/kc/loopnest3.c index 163512d9c..e5e386c0b 100644 --- a/src/test/kc/loopnest3.c +++ b/src/test/kc/loopnest3.c @@ -9,7 +9,7 @@ void b(byte i) { c(i); } -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void c(byte i) { for( byte j: 0..100) { diff --git a/src/test/kc/loopsplit.c b/src/test/kc/loopsplit.c index 11cd115d5..c67e896c9 100644 --- a/src/test/kc/loopsplit.c +++ b/src/test/kc/loopsplit.c @@ -8,6 +8,6 @@ void main() { s--; } } - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; *SCREEN = s; } diff --git a/src/test/kc/ma_coalesce_problem.c b/src/test/kc/ma_coalesce_problem.c index 0e3f4014c..deafb596a 100644 --- a/src/test/kc/ma_coalesce_problem.c +++ b/src/test/kc/ma_coalesce_problem.c @@ -3,7 +3,7 @@ #pragma var_model(ma_mem) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; // Plasma state variables char c1A = 0; diff --git a/src/test/kc/malloc-problem-0.c b/src/test/kc/malloc-problem-0.c index d1af5815f..afa181d0a 100644 --- a/src/test/kc/malloc-problem-0.c +++ b/src/test/kc/malloc-problem-0.c @@ -1,6 +1,6 @@ // Error where the compiler is reusing the same ZP for two byte* variables. -byte* MEM = 0x0400; +byte* MEM = (char*)0x0400; byte* malloc() { return ++MEM; } diff --git a/src/test/kc/memcpy-0.c b/src/test/kc/memcpy-0.c index 7222383fe..60255821a 100644 --- a/src/test/kc/memcpy-0.c +++ b/src/test/kc/memcpy-0.c @@ -3,9 +3,9 @@ #include <c64.h> #include <string.h> -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x0400; -byte* const SCREEN_COPY = 0x2400; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x0400; +byte* const SCREEN_COPY = (byte*)0x2400; void main() { *D018 = toD018(SCREEN_COPY, CHARSET); diff --git a/src/test/kc/memcpy-1.c b/src/test/kc/memcpy-1.c index b77dea5f5..29d7bf72f 100644 --- a/src/test/kc/memcpy-1.c +++ b/src/test/kc/memcpy-1.c @@ -2,7 +2,7 @@ #include <string.h> -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; const char CAMELOT[] = "camelot"; void main() { diff --git a/src/test/kc/memory-heap.c b/src/test/kc/memory-heap.c index 4dca3c566..d35f8ffc6 100644 --- a/src/test/kc/memory-heap.c +++ b/src/test/kc/memory-heap.c @@ -11,7 +11,7 @@ void main() { } free(buf1); free(buf2); - unsigned char* screen = 0x0400; + unsigned char* screen = (char*)0x0400; screen[0] = *buf1; screen[1] = *buf2; } diff --git a/src/test/kc/millfork-benchmarks/plasma-kc.c b/src/test/kc/millfork-benchmarks/plasma-kc.c index e09585224..8a4a97589 100644 --- a/src/test/kc/millfork-benchmarks/plasma-kc.c +++ b/src/test/kc/millfork-benchmarks/plasma-kc.c @@ -1,9 +1,9 @@ #include "benchcommon.c" #include <c64.h> -char* const SCREEN1 = 0xE000; -char* const SCREEN2 = 0xE400; -char* const CHARSET = 0xE800; +char* const SCREEN1 = (char*)0xE000; +char* const SCREEN2 = (char*)0xE400; +char* const CHARSET = (char*)0xE800; const char PAGE1 = ((((unsigned int)SCREEN1) >> 6) & 0xF0) | (((unsigned int)CHARSET >> 10) & 0x0E); const char PAGE2 = ((((unsigned int)SCREEN2) >> 6) & 0xF0) | (((unsigned int)CHARSET >> 10) & 0x0E); diff --git a/src/test/kc/min-fmul-16.c b/src/test/kc/min-fmul-16.c index 9c092320f..2e0c63d2c 100644 --- a/src/test/kc/min-fmul-16.c +++ b/src/test/kc/min-fmul-16.c @@ -1,8 +1,8 @@ #include <c64-print.h> -byte* RASTER = $d012; -byte* BORDER_COLOR = $d020; -byte* SCREEN = $400; +byte* RASTER = (byte*)$d012; +byte* BORDER_COLOR = (byte*)$d020; +byte* SCREEN = (byte*)$400; void main() { mulf_init(); @@ -70,9 +70,9 @@ void mulf_init() { // Fast multiply two unsigned words to a double word result // Done in assembler to utilize fast addition A+X dword mulf16u(word a, word b) { - word* const memA = $f8; - word* const memB = $fa; - dword* const memR = $fc; + word* const memA = (word*)$f8; + word* const memB = (word*)$fa; + dword* const memR = (dword*)$fc; *memA = a; *memB = b; asm { diff --git a/src/test/kc/missing-band.c b/src/test/kc/missing-band.c index ae8db62c1..b273ddbf9 100644 --- a/src/test/kc/missing-band.c +++ b/src/test/kc/missing-band.c @@ -2,7 +2,7 @@ // https://gitlab.com/camelot/kickc/-/issues/293 byte bar[10]={9,1,2,3,4,5,6,7,8,9}; -byte *SCREEN = $0400; +byte *SCREEN = (byte*)$400; void main() { word a=0; diff --git a/src/test/kc/mixed-array-0.c b/src/test/kc/mixed-array-0.c index 7a93d4cc4..f9348beaf 100644 --- a/src/test/kc/mixed-array-0.c +++ b/src/test/kc/mixed-array-0.c @@ -2,7 +2,7 @@ void main() { byte msg[] = { 1ub, 2, 3 }; - byte* SCREEN = 0x400; + byte* SCREEN = (char*)0x400; SCREEN[0] = msg[0]; SCREEN[1] = msg[1]; SCREEN[2] = msg[2]; diff --git a/src/test/kc/mixed-array-1.c b/src/test/kc/mixed-array-1.c index 957b43252..0f1ddde71 100644 --- a/src/test/kc/mixed-array-1.c +++ b/src/test/kc/mixed-array-1.c @@ -2,7 +2,7 @@ void main() { signed byte msg[] = { -1, 0, 1 }; - signed byte* SCREEN = 0x400; + signed byte* SCREEN = (signed byte*)0x400; SCREEN[0] = msg[0]; SCREEN[1] = msg[1]; SCREEN[2] = msg[2]; diff --git a/src/test/kc/modglobal.c b/src/test/kc/modglobal.c index 65db5ec08..d1d106e79 100644 --- a/src/test/kc/modglobal.c +++ b/src/test/kc/modglobal.c @@ -1,7 +1,7 @@ byte cnt = 0; byte cnt2 = 0; byte cnt3 = 0; -byte SCREEN[256]=$0400; +byte SCREEN[256]=(byte*)$0400; void main() { SCREEN[0]=inccnt(); diff --git a/src/test/kc/modglobalmin.c b/src/test/kc/modglobalmin.c index dd769d858..befd489a4 100644 --- a/src/test/kc/modglobalmin.c +++ b/src/test/kc/modglobalmin.c @@ -1,5 +1,5 @@ byte cnt = 0; -byte SCREEN[256]=$0400; +byte SCREEN[256]=(byte*)$0400; void main() { inccnt(); diff --git a/src/test/kc/mul8u-min.c b/src/test/kc/mul8u-min.c index 5666e926e..b21628933 100644 --- a/src/test/kc/mul8u-min.c +++ b/src/test/kc/mul8u-min.c @@ -4,7 +4,7 @@ void main() { - word* const screen = 0x0400; + word* const screen = (word*)0x0400; byte i = 0; for(byte a: 0..5) diff --git a/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c b/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c index e37e888d3..fe326b5f7 100644 --- a/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c +++ b/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c @@ -2,7 +2,7 @@ #include <c64.h> #include <c64-multiplexer.h> // Location of screen & sprites -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; char __align(0x40) SPRITE[0x40] = kickasm(resource "balloon.png") {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) diff --git a/src/test/kc/multiply-1.c b/src/test/kc/multiply-1.c index af9dbf8ce..22fb51d67 100644 --- a/src/test/kc/multiply-1.c +++ b/src/test/kc/multiply-1.c @@ -1,7 +1,7 @@ // Test compile-time and run-time multiplication // Compile-time multiplication -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { char c1 = 4; diff --git a/src/test/kc/multiply-2.c b/src/test/kc/multiply-2.c index 39e5d21e7..595b3c21e 100644 --- a/src/test/kc/multiply-2.c +++ b/src/test/kc/multiply-2.c @@ -1,7 +1,7 @@ // Test compile-time and run-time multiplication // var*const multiplication - converted to shift/add -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { char i=0; diff --git a/src/test/kc/multiply-2s.c b/src/test/kc/multiply-2s.c index 38b134dfd..3bc807373 100644 --- a/src/test/kc/multiply-2s.c +++ b/src/test/kc/multiply-2s.c @@ -1,7 +1,7 @@ // Check that multiplication by factors of 2 is converted to shifts void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for(byte i: 0..10) { (SCREEN+0*40)[i] = i*1; diff --git a/src/test/kc/multiply-3.c b/src/test/kc/multiply-3.c index 20762ebfc..bbf83e3df 100644 --- a/src/test/kc/multiply-3.c +++ b/src/test/kc/multiply-3.c @@ -1,7 +1,7 @@ // Test compile-time and run-time multiplication // var*var multiplication - converted to call -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { char i = 0; diff --git a/src/test/kc/multiply-ns.c b/src/test/kc/multiply-ns.c index 4e2befc86..8f3ba59b4 100644 --- a/src/test/kc/multiply-ns.c +++ b/src/test/kc/multiply-ns.c @@ -1,7 +1,7 @@ // Check that multiplication by constants is converted to shift/add void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; for(byte i: 0..17) { (SCREEN+0*40)[i] = i*1; diff --git a/src/test/kc/nes-array.c b/src/test/kc/nes-array.c index 1b111ee64..d2bdf128f 100644 --- a/src/test/kc/nes-array.c +++ b/src/test/kc/nes-array.c @@ -8,7 +8,7 @@ int foo(unsigned char x, int *y) { } void main() { - int* SCREEN = 0x400; + int* SCREEN = (int*)0x400; int y1 = 0x1234; int y2 = 0x1234; *SCREEN++ = foo(1, &y1); diff --git a/src/test/kc/no-calledinterrupt.c b/src/test/kc/no-calledinterrupt.c index 390cf17c0..212cdc801 100644 --- a/src/test/kc/no-calledinterrupt.c +++ b/src/test/kc/no-calledinterrupt.c @@ -1,6 +1,6 @@ // Test that inline interrupts not allowed -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { SCREEN[0]++; diff --git a/src/test/kc/no-div-runtime.c b/src/test/kc/no-div-runtime.c index 16983f520..632c8da08 100644 --- a/src/test/kc/no-div-runtime.c +++ b/src/test/kc/no-div-runtime.c @@ -1,7 +1,7 @@ // Test that division at runtime gives a proper error void main() { - byte* screen = $400; + byte* screen = (char*)$400; for (byte i: 2..5) { screen[i] = 100/i; } diff --git a/src/test/kc/no-inlineinterrupt.c b/src/test/kc/no-inlineinterrupt.c index d4104c851..cfe63886f 100644 --- a/src/test/kc/no-inlineinterrupt.c +++ b/src/test/kc/no-inlineinterrupt.c @@ -1,6 +1,6 @@ // Test that inline interrupts not allowed -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { SCREEN[0]++; diff --git a/src/test/kc/no-mod-runtime.c b/src/test/kc/no-mod-runtime.c index 0b651022e..bf6d3075f 100644 --- a/src/test/kc/no-mod-runtime.c +++ b/src/test/kc/no-mod-runtime.c @@ -1,7 +1,7 @@ // Test that modulo at runtime gives a proper error void main() { - byte* screen = $400; + byte* screen = (char*)$400; for (byte i: 2..5) { screen[i] = 100%i; } diff --git a/src/test/kc/no-mul-runtime.c b/src/test/kc/no-mul-runtime.c index 4673617d3..4eeb9b925 100644 --- a/src/test/kc/no-mul-runtime.c +++ b/src/test/kc/no-mul-runtime.c @@ -1,7 +1,7 @@ // Test that division at runtime gives a proper error void main() { - byte* screen = $400; + byte* screen = (char*)$400; for (byte i: 2..5) { screen[i] = 5*i; } diff --git a/src/test/kc/no-paraminterrupt.c b/src/test/kc/no-paraminterrupt.c index f13a9c21d..5a1fb9084 100644 --- a/src/test/kc/no-paraminterrupt.c +++ b/src/test/kc/no-paraminterrupt.c @@ -1,6 +1,6 @@ // Test that inline interrupts not allowed -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { SCREEN[0]++; diff --git a/src/test/kc/no-returninterrupt.c b/src/test/kc/no-returninterrupt.c index c66762bf4..5ab139234 100644 --- a/src/test/kc/no-returninterrupt.c +++ b/src/test/kc/no-returninterrupt.c @@ -1,6 +1,6 @@ // Test that inline interrupts not allowed -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { SCREEN[0]++; diff --git a/src/test/kc/nocast.c b/src/test/kc/nocast.c index f970f1338..4a7792cdd 100644 --- a/src/test/kc/nocast.c +++ b/src/test/kc/nocast.c @@ -1,7 +1,7 @@ // Casting sprites/$40 to byte results in lda #$ff & sprite/$40 - proper constant calculation & type inference should detect that "$ff &" is not necessary as $2000/$40 is already a byte. byte* sprite = $2000; -byte* SCREEN = $400; +byte* SCREEN = (char*)$400; void main() { byte* sprite_ptr = SCREEN+$378; diff --git a/src/test/kc/nomodify-3.c b/src/test/kc/nomodify-3.c index 2746573c8..d8d93d6ba 100644 --- a/src/test/kc/nomodify-3.c +++ b/src/test/kc/nomodify-3.c @@ -2,7 +2,7 @@ const volatile char i = 7; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = i; diff --git a/src/test/kc/nomodify-4.c b/src/test/kc/nomodify-4.c index e794eff4b..5824ade96 100644 --- a/src/test/kc/nomodify-4.c +++ b/src/test/kc/nomodify-4.c @@ -5,7 +5,7 @@ void main() { print('b'); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(const char c) { *SCREEN = c; diff --git a/src/test/kc/nomodify-5.c b/src/test/kc/nomodify-5.c index 297eb1ed4..765fc8976 100644 --- a/src/test/kc/nomodify-5.c +++ b/src/test/kc/nomodify-5.c @@ -5,7 +5,7 @@ void main() { print('b'); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(const char c) { *SCREEN = c++; diff --git a/src/test/kc/noop-cast-elimination.c b/src/test/kc/noop-cast-elimination.c index 49425ef37..341e8054b 100644 --- a/src/test/kc/noop-cast-elimination.c +++ b/src/test/kc/noop-cast-elimination.c @@ -2,7 +2,7 @@ void main() { - signed word* const screen = 0x400; + signed word* const screen = (signed word*)0x400; signed word sw = 0x1234; for( byte i: 0..10) { sw += (signed byte)i; diff --git a/src/test/kc/noreturn.c b/src/test/kc/noreturn.c index 17a56ac27..cbeaecdf7 100644 --- a/src/test/kc/noreturn.c +++ b/src/test/kc/noreturn.c @@ -1,6 +1,6 @@ void main() { byte b = get(); - byte* screen = $400; + byte* screen = (char*)$400; } byte get() { diff --git a/src/test/kc/norom-charset.c b/src/test/kc/norom-charset.c index 793067048..dc3f7884f 100644 --- a/src/test/kc/norom-charset.c +++ b/src/test/kc/norom-charset.c @@ -1,7 +1,7 @@ // Generate a charset based on a 5x3 pattern stored in 2 bytes -byte* VICII_MEMORY = $d018; -byte* SCREEN = $400; -byte* CHARSET = $3000; +byte* VICII_MEMORY = (byte*)$d018; +byte* SCREEN = (byte*)$400; +byte* CHARSET = (byte*)$3000; // Stores chars as 15 bits (in 2 bytes) specifying the 3x5 // The 5x3 char is stored as 5x 3-bit rows followed by a zero. %aaabbbcc cdddeee0 diff --git a/src/test/kc/norom.asm b/src/test/kc/norom.asm deleted file mode 100644 index 896f17894..000000000 --- a/src/test/kc/norom.asm +++ /dev/null @@ -1,71 +0,0 @@ -.pc = $801 "Basic" -:BasicUpstart(main) -.pc = $80d "Program" - .label VICII_MEMORY = $d018 - .label SCREEN = $400 - .label CHARSET = $3000 -main: { - .label charset = 2 - .label c = 4 - .label spec = 5 - .label b = 7 - - lda #26 - sta c - lda #<CHARSET+8 - sta charset - lda #>CHARSET+8 - sta charset+1 - b2: - - ldy #0 - gb1: - ldx #0 - stx b - gb2: -sr1:asl charset_spec_row_lo -sr2:rol charset_spec_row_hi - rol b - inx - cpx #3 - bne gb2 - lda b - sta (charset),y - iny - cpy #5 - bne gb1 - - lda charset - clc - adc #8 - sta charset - bcc !+ - inc charset+1 - !: - inc sr1+1 - inc sr2+1 - dec c - bne b2 - lda #SCREEN/$40|CHARSET/$400 - sta VICII_MEMORY - rts -} - -charset_spec_hi: - .word /*A*/ %11110111, /*B*/ %11110111, /*C*/ %11110010, /*D*/ %11010110 - .word /*E*/ %11110011, /*F*/ %11110011, /*G*/ %11110010, /*H*/ %10110111 - .word /*I*/ %11101001, /*J*/ %11100100, /*K*/ %10110111, /*L*/ %10010010 - .word /*M*/ %10111111, /*N*/ %11010110, /*O*/ %11110110, /*P*/ %11110111 - .word /*Q*/ %11110110, /*R*/ %11110111, /*S*/ %11110011, /*T*/ %11101001 - .word /*U*/ %10110110, /*V*/ %10110101, /*W*/ %10110111, /*X*/ %10110101 - .word /*Y*/ %10110111, /*Z*/ %11100101 - - -charset_spec_lo: - .byte /*A*/ %11011010, /*B*/ %11011110, /*C*/ %01001110, /*D*/ %11011110 - .byte /*E*/ %01001110, /*F*/ %01001000, /*G*/ %11011110, /*H*/ %11011010 - .byte /*I*/ %00101110, /*J*/ %11011100, /*K*/ %01011010, /*L*/ %01001110 - .byte /*M*/ %11011010, /*N*/ %11011010, /*O*/ %11011110, /*P*/ %11001000 - .byte /*Q*/ %11110110, /*R*/ %01011010, /*S*/ %10011110, /*T*/ %00100100 - .byte /*U*/ %11011110, /*V*/ %10110010, /*W*/ %11111010, /*X*/ %01011010 - .byte /*Y*/ %10100100, /*Z*/ %01001110 \ No newline at end of file diff --git a/src/test/kc/number-conversion.c b/src/test/kc/number-conversion.c index 374359934..e8b8f103d 100644 --- a/src/test/kc/number-conversion.c +++ b/src/test/kc/number-conversion.c @@ -67,8 +67,8 @@ void main() { const byte RED = 2ub; const byte GREEN = 5ub; -byte* const SCREEN = $0400uw; -byte* const COLS = $d800uw; +byte* const SCREEN = (byte*)$0400uw; +byte* const COLS = (byte*)$d800uw; byte idx = 0ub; // Check that the two passed type IDs are equal. diff --git a/src/test/kc/number-inference-sum.c b/src/test/kc/number-inference-sum.c index 7d188413b..94e8c3d08 100644 --- a/src/test/kc/number-inference-sum.c +++ b/src/test/kc/number-inference-sum.c @@ -2,8 +2,8 @@ // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits) void main() { - word* const screen = 0x0400; - byte* const BG_COLOR = 0xd020; + word* const screen = (word*)0x0400; + byte* const BG_COLOR = (byte*)0xd020; const byte RED = 2; byte b1 = 250; diff --git a/src/test/kc/number-ternary-fail-3.c b/src/test/kc/number-ternary-fail-3.c index cb788238a..d137c2029 100644 --- a/src/test/kc/number-ternary-fail-3.c +++ b/src/test/kc/number-ternary-fail-3.c @@ -2,8 +2,8 @@ // Currently fails in the ternary operator with number-issues if integer literal is not specified! void main() { - char* BASIC = 0xa000; - char* SCREEN = 0x0400; + char* BASIC = (char*)0xa000; + char* SCREEN = (char*)0x0400; for( char i: 0..7 ) { char glyph_bits = BASIC[i]; char glyph_bit = (glyph_bits&0x80)?1:0; diff --git a/src/test/kc/number-ternary-fail.c b/src/test/kc/number-ternary-fail.c index af0869735..efaa1bafd 100644 --- a/src/test/kc/number-ternary-fail.c +++ b/src/test/kc/number-ternary-fail.c @@ -1,7 +1,7 @@ // Failing number type resolving in ternary operator // Currently fails in the ternary operator with number-issues if integer literal is not specified! -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { for( byte i: 0..40) { SCREEN[i] = (i&1)?0:0x80; diff --git a/src/test/kc/number-type.c b/src/test/kc/number-type.c index c4e13e5c3..2bcc09f80 100644 --- a/src/test/kc/number-type.c +++ b/src/test/kc/number-type.c @@ -8,7 +8,7 @@ void main() { void testBytes() { // Constant values resolvable to bytes - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; byte idx = 0; SCREEN[idx++] = 12; SCREEN[idx++] = 6+6; @@ -27,7 +27,7 @@ void testBytes() { void testSBytes() { // Constant values resolvable to signed bytes - signed byte* const SCREEN = 0x0428; + signed byte* const SCREEN = (signed byte*)0x0428; byte idx = 0; SCREEN[idx++] = -12; SCREEN[idx++] = -6-6; diff --git a/src/test/kc/operator-byte0-initializer.c b/src/test/kc/operator-byte0-initializer.c index b69c02058..c5ebf697b 100644 --- a/src/test/kc/operator-byte0-initializer.c +++ b/src/test/kc/operator-byte0-initializer.c @@ -10,7 +10,7 @@ char VALS[] = { void main() { - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = VALS[0]; SCREEN[i++] = VALS[1]; diff --git a/src/test/kc/operator-byte0.c b/src/test/kc/operator-byte0.c index fb31dc573..d5824d425 100644 --- a/src/test/kc/operator-byte0.c +++ b/src/test/kc/operator-byte0.c @@ -7,9 +7,9 @@ void main() { volatile signed int ws = -177; volatile unsigned long du = 2000000; volatile signed long ds = -3777777; - char * volatile ptr = 0x0000; + char * volatile ptr = (char*)0x0000; - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = BYTE0(17); SCREEN[i++] = BYTE0(377); diff --git a/src/test/kc/operator-byte1.c b/src/test/kc/operator-byte1.c index d63bf16c5..c12e4819f 100644 --- a/src/test/kc/operator-byte1.c +++ b/src/test/kc/operator-byte1.c @@ -7,9 +7,9 @@ void main() { volatile signed int ws = -177; volatile unsigned long du = 2000000; volatile signed long ds = -3777777; - char * volatile ptr = 0x0000; + char * volatile ptr = (char*)0x0000; - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = BYTE1(17); SCREEN[i++] = BYTE1(377); diff --git a/src/test/kc/operator-byte2.c b/src/test/kc/operator-byte2.c index acea7c2f9..6cf77f497 100644 --- a/src/test/kc/operator-byte2.c +++ b/src/test/kc/operator-byte2.c @@ -7,9 +7,9 @@ void main() { volatile signed int ws = -177; volatile unsigned long du = 2000000; volatile signed long ds = -3777777; - char * volatile ptr = 0x0000; + char * volatile ptr = (char*)0x0000; - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = BYTE2(17); SCREEN[i++] = BYTE2(377); diff --git a/src/test/kc/operator-byte3.c b/src/test/kc/operator-byte3.c index 4ad8e18ba..47ae4bcf8 100644 --- a/src/test/kc/operator-byte3.c +++ b/src/test/kc/operator-byte3.c @@ -7,9 +7,9 @@ void main() { volatile signed int ws = -177; volatile unsigned long du = 2000000; volatile signed long ds = -3777777; - char * volatile ptr = 0x0000; + char * volatile ptr = (char*)0x0000; - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = BYTE3(17); SCREEN[i++] = BYTE3(377); diff --git a/src/test/kc/operator-lohi-problem-1.c b/src/test/kc/operator-lohi-problem-1.c index fc5292c04..57e492845 100644 --- a/src/test/kc/operator-lohi-problem-1.c +++ b/src/test/kc/operator-lohi-problem-1.c @@ -5,7 +5,7 @@ // - enabling the lo/hi to know that their operand is a word (from the cast). const dword DVAL = $20000; -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { SCREEN[0] = <(word)(DVAL/$400); diff --git a/src/test/kc/operator-lohi-problem.c b/src/test/kc/operator-lohi-problem.c index f45e84736..422e7afcd 100644 --- a/src/test/kc/operator-lohi-problem.c +++ b/src/test/kc/operator-lohi-problem.c @@ -4,7 +4,7 @@ // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { dword dw = $2000; diff --git a/src/test/kc/operator-word0.c b/src/test/kc/operator-word0.c index 26d8a55c2..b80dde3ff 100644 --- a/src/test/kc/operator-word0.c +++ b/src/test/kc/operator-word0.c @@ -7,9 +7,9 @@ void main() { volatile signed int ws = -177; volatile unsigned long du = 2000000; volatile signed long ds = -3777777; - char * volatile ptr = 0x0000; + char * volatile ptr = (char*)0x0000; - unsigned int * const SCREEN = 0x0400; + unsigned int * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = WORD0(17); SCREEN[i++] = WORD0(377); diff --git a/src/test/kc/operator-word1.c b/src/test/kc/operator-word1.c index 9e6fe0597..9ae9cae10 100644 --- a/src/test/kc/operator-word1.c +++ b/src/test/kc/operator-word1.c @@ -7,9 +7,9 @@ void main() { volatile signed int ws = -177; volatile unsigned long du = 2000000; volatile signed long ds = -3777777; - char * volatile ptr = 0x0000; + char * volatile ptr = (char*)0x0000; - unsigned int * const SCREEN = 0x0400; + unsigned int * const SCREEN = (char*)0x0400; char i = 0; SCREEN[i++] = WORD1(17); SCREEN[i++] = WORD1(377); diff --git a/src/test/kc/optimize-unsigned-comparisons.c b/src/test/kc/optimize-unsigned-comparisons.c index 799325893..ed24fb6bd 100644 --- a/src/test/kc/optimize-unsigned-comparisons.c +++ b/src/test/kc/optimize-unsigned-comparisons.c @@ -4,7 +4,7 @@ byte ball_active[8] = { 0, 1, 0, 1, 0, 1, 1, 1 }; void main() { - byte* const screen = 0x0400; + byte* const screen = (char*)0x0400; byte temp; for( char i: 0..7) { // Always false diff --git a/src/test/kc/overlap-allocation-2.c b/src/test/kc/overlap-allocation-2.c index b9d4b0de8..f5c8b526f 100644 --- a/src/test/kc/overlap-allocation-2.c +++ b/src/test/kc/overlap-allocation-2.c @@ -1,5 +1,5 @@ // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { for(byte i : 0..8) { diff --git a/src/test/kc/overlap-allocation.c b/src/test/kc/overlap-allocation.c index 4f938e54b..22915b6dc 100644 --- a/src/test/kc/overlap-allocation.c +++ b/src/test/kc/overlap-allocation.c @@ -1,6 +1,6 @@ // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient. // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot() -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { for(byte i : 0..10) { diff --git a/src/test/kc/parameter-autocast-wrong.c b/src/test/kc/parameter-autocast-wrong.c index 71f62652b..1ea289634 100644 --- a/src/test/kc/parameter-autocast-wrong.c +++ b/src/test/kc/parameter-autocast-wrong.c @@ -7,7 +7,7 @@ void main() { print_to_screen(*message); // Passes *(char*) - effectively char to function that takes char* } -char* screen = 0x0400; +char* screen = (char*)0x0400; void print_to_screen(char *message) { while(*message) diff --git a/src/test/kc/parse-negated-struct-ref.c b/src/test/kc/parse-negated-struct-ref.c index e3f3cb66a..00776df2e 100644 --- a/src/test/kc/parse-negated-struct-ref.c +++ b/src/test/kc/parse-negated-struct-ref.c @@ -8,7 +8,7 @@ struct A { struct A aa = { 1 }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; struct A* a = &aa; // A negated struct reference! if(!a->b) { diff --git a/src/test/kc/plasma-center.c b/src/test/kc/plasma-center.c index ed7a8f127..97f32211b 100644 --- a/src/test/kc/plasma-center.c +++ b/src/test/kc/plasma-center.c @@ -17,11 +17,11 @@ byte* SCREEN_DIST = malloc(1000); // Screen containing angle to center byte* SCREEN_ANGLE = malloc(1000); // Plasma charset -char* const CHARSET = 0x2000; +char* const CHARSET = (char*)0x2000; // Plasma screen 1 -char* const SCREEN1 = 0x2800; +char* const SCREEN1 = (char*)0x2800; // Plasma screen 2 -char* const SCREEN2 = 0x2c00; +char* const SCREEN2 = (char*)0x2c00; void main() { init_dist_screen(SCREEN_DIST); diff --git a/src/test/kc/platform-default-define.c b/src/test/kc/platform-default-define.c index bcb327169..ff2396cde 100644 --- a/src/test/kc/platform-default-define.c +++ b/src/test/kc/platform-default-define.c @@ -1,6 +1,6 @@ // Test the #define for the default platform -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { #ifdef __C64__ diff --git a/src/test/kc/platform-plus4-define.c b/src/test/kc/platform-plus4-define.c index 6c2209074..7b7b078b4 100644 --- a/src/test/kc/platform-plus4-define.c +++ b/src/test/kc/platform-plus4-define.c @@ -1,7 +1,7 @@ // Test the #define for the plus4 target platform #pragma target(plus4) -char * const SCREEN = 0x0c00; +char * const SCREEN = (char *)0x0c00; void main() { #ifdef __PLUS4__ diff --git a/src/test/kc/plus4-keyboard-test.c b/src/test/kc/plus4-keyboard-test.c index 0b05e45e0..be6d83244 100644 --- a/src/test/kc/plus4-keyboard-test.c +++ b/src/test/kc/plus4-keyboard-test.c @@ -4,11 +4,11 @@ #include <string.h> // Keyboard latch -char * const KEYBOARD_INPUT = 0xff08; +char * const KEYBOARD_INPUT = (char*)0xff08; // Keyboard scan -char * const KEYBOARD_SCAN = 0xfd30; +char * const KEYBOARD_SCAN = (char*)0xfd30; // Default address of screen character matrix -char * const DEFAULT_SCREEN = 0x0c00; +char * const DEFAULT_SCREEN = (char*)0x0c00; void main() { asm { sei } diff --git a/src/test/kc/pointer-anding.c b/src/test/kc/pointer-anding.c index ee92daac9..15e132e95 100644 --- a/src/test/kc/pointer-anding.c +++ b/src/test/kc/pointer-anding.c @@ -1,8 +1,8 @@ // Test binary ANDing pointers by Clay Cowgill void main() { - int* pos_ptr = 0x0400; - byte* vram_ptr = 0x0428; + int* pos_ptr = (int*)0x0400; + byte* vram_ptr = (byte*)0x0428; for( char i:0..2) { *pos_ptr=(int)0x55AA; *vram_ptr++=<(*pos_ptr&(int)0xAA55); // stores 0x00 diff --git a/src/test/kc/pointer-cast-2.c b/src/test/kc/pointer-cast-2.c index 7c1d1c16a..66c0a2a1b 100644 --- a/src/test/kc/pointer-cast-2.c +++ b/src/test/kc/pointer-cast-2.c @@ -2,7 +2,7 @@ void main() { { - byte* const ub_screen = $400; + byte* const ub_screen = (char*)$400; byte ub = 0xff; signed byte* sb_ptr = (signed byte*) &ub; *sb_ptr = 1; @@ -10,7 +10,7 @@ void main() { } { - signed byte* const sb_screen = $428; + signed byte* const sb_screen = (signed byte*)$428; signed byte sb = (signed byte)0x7f; byte* ub_ptr = (byte*) &sb; *ub_ptr = 1; diff --git a/src/test/kc/pointer-cast-3.c b/src/test/kc/pointer-cast-3.c index 0582b436b..20b72584c 100644 --- a/src/test/kc/pointer-cast-3.c +++ b/src/test/kc/pointer-cast-3.c @@ -1,7 +1,7 @@ // Tests casting pointer types to other pointer types void main() { - signed byte* const sb_screen = $400; + signed byte* const sb_screen = (signed byte*)$400; signed byte sb = (signed byte)0xff; *sb_screen = sb; } \ No newline at end of file diff --git a/src/test/kc/pointer-cast-4.c b/src/test/kc/pointer-cast-4.c index 1219412bd..f6de6f132 100644 --- a/src/test/kc/pointer-cast-4.c +++ b/src/test/kc/pointer-cast-4.c @@ -1,7 +1,7 @@ // Tests casting pointer types to other pointer types does not produce any ASM code void main() { - byte* bscreen = 0x0400; + byte* bscreen = (char*)0x0400; for(byte i: 0..2) { word* wscreen = (word*)bscreen; wscreen[i] = (word)i; diff --git a/src/test/kc/pointer-cast.c b/src/test/kc/pointer-cast.c index ea5858224..81623c404 100644 --- a/src/test/kc/pointer-cast.c +++ b/src/test/kc/pointer-cast.c @@ -1,9 +1,9 @@ // Tests casting pointer types to other pointer types -byte* ub_screen = $400; -signed byte* sb_screen = $428; -word* uw_screen = $450; -signed word* sw_screen = $478; +byte* ub_screen = (byte*)$400; +signed byte* sb_screen = (signed byte*)$428; +word* uw_screen = (word*)$450; +signed word* sw_screen = (signed word*)$478; byte ub = 41; signed byte sb = -41; diff --git a/src/test/kc/pointer-const-typedef.c b/src/test/kc/pointer-const-typedef.c index ca77b93dc..bd4c1c0bc 100644 --- a/src/test/kc/pointer-const-typedef.c +++ b/src/test/kc/pointer-const-typedef.c @@ -13,21 +13,21 @@ typedef const char * PC; typedef char * const CP; // Pointer to const -const char * pc0 = 0x0400; -CC *pc1 = 0x0400; -PC pc2 = 0x0400; +const char * pc0 = (char*)0x0400; +CC *pc1 = (char*)0x0400; +PC pc2 = (char*)0x0400; // Const pointer -char * const cp0 = 0x0400; -CP cp1 = 0x0400; -const P cp2 = 0x0400; +char * const cp0 = (char*)0x0400; +CP cp1 = (char*)0x0400; +const P cp2 = (char*)0x0400; // Const pointer to const -const char * const cpc0 = 0x0400; -CC * const cpc1 = 0x0400; -const PC cpc2 = 0x0400; +const char * const cpc0 = (char*)0x0400; +CC * const cpc1 = (char*)0x0400; +const PC cpc2 = (char*)0x0400; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { char idx = 0; diff --git a/src/test/kc/pointer-const.c b/src/test/kc/pointer-const.c index f266ae7fb..6088c5315 100644 --- a/src/test/kc/pointer-const.c +++ b/src/test/kc/pointer-const.c @@ -4,10 +4,10 @@ char const * MSG = "hello world!"; // Const pointer -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; // Const pointer to const -char const * const BASIC = 0xa004; +char const * const BASIC = (char*)0xa004; void main() { char i=0; diff --git a/src/test/kc/pointer-plus-0.c b/src/test/kc/pointer-plus-0.c index cd1e2fd68..2897c6f54 100644 --- a/src/test/kc/pointer-plus-0.c +++ b/src/test/kc/pointer-plus-0.c @@ -4,7 +4,7 @@ byte msg1[] = "hello world!"; byte msg2[] = "goodbye sky?"; void main() { - byte* const SCREEN = $0400; + byte* const SCREEN = (byte*)$400; SCREEN[0] = *(first(msg1)+0); SCREEN[1] = *(first(msg2)+0); } diff --git a/src/test/kc/pointer-plus-signed-word.c b/src/test/kc/pointer-plus-signed-word.c index 10037939d..0e49a50b5 100644 --- a/src/test/kc/pointer-plus-signed-word.c +++ b/src/test/kc/pointer-plus-signed-word.c @@ -1,7 +1,7 @@ // Test adding a signed word to a pointer // Fragment pbuz1=pbuc1_plus_vwsz1.asm supplied by Richard-William Loerakker -char* SCREEN = 0x0400+40*10; +char* SCREEN = (char*)0x0400+40*10; void main() { for (signed word i : -10..10 ) { diff --git a/src/test/kc/pointer-pointer-1.c b/src/test/kc/pointer-pointer-1.c index 896892bc8..7a28e8e85 100644 --- a/src/test/kc/pointer-pointer-1.c +++ b/src/test/kc/pointer-pointer-1.c @@ -1,7 +1,7 @@ // Tests a simple pointer to a pointer void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte b = 'a'; byte* pb = &b; diff --git a/src/test/kc/pointer-pointer-2.c b/src/test/kc/pointer-pointer-2.c index 130b1257d..d1cce1de6 100644 --- a/src/test/kc/pointer-pointer-2.c +++ b/src/test/kc/pointer-pointer-2.c @@ -2,7 +2,7 @@ void main() { - byte* screen = $400; + byte* screen = (char*)$400; byte* text; for(byte i: 0..20) { diff --git a/src/test/kc/pointer-pointer-3.c b/src/test/kc/pointer-pointer-3.c index 833b910c0..22bc796e6 100644 --- a/src/test/kc/pointer-pointer-3.c +++ b/src/test/kc/pointer-pointer-3.c @@ -1,10 +1,10 @@ // Tests pointer to pointer in a more complex setup -byte* screen = $400; +byte* screen = (char*)$400; -byte* screen1 = $400; -byte* screen2 = $400+40; +byte* screen1 = (char*)$400; +byte* screen2 = (char*)$400+40; void main() { setscreen(&screen, screen1); diff --git a/src/test/kc/pointer-to-pointer-const.c b/src/test/kc/pointer-to-pointer-const.c index 39f545d23..94612aad7 100644 --- a/src/test/kc/pointer-to-pointer-const.c +++ b/src/test/kc/pointer-to-pointer-const.c @@ -1,6 +1,6 @@ // Demonstrates const pointer to pointer -void ** const IRQ = 0xfffe; +void ** const IRQ = (void **)0xfffe; void main() { *IRQ = (void*) 0x1003; diff --git a/src/test/kc/pointer-void-0.c b/src/test/kc/pointer-void-0.c index c4c101686..45644cdd5 100644 --- a/src/test/kc/pointer-void-0.c +++ b/src/test/kc/pointer-void-0.c @@ -1,7 +1,7 @@ // Test simple void pointer (conversion without casting) void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; word w = 1234; word* wp = &w; void* vp = wp; diff --git a/src/test/kc/pointer-void-1.c b/src/test/kc/pointer-void-1.c index ace9554a6..3365322e0 100644 --- a/src/test/kc/pointer-void-1.c +++ b/src/test/kc/pointer-void-1.c @@ -12,7 +12,7 @@ void main() { print(vd); } -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; byte idx = 0; void print(void* ptr) { diff --git a/src/test/kc/pointer-void-2.c b/src/test/kc/pointer-void-2.c index ed9c95bc0..2a98064bf 100644 --- a/src/test/kc/pointer-void-2.c +++ b/src/test/kc/pointer-void-2.c @@ -9,7 +9,7 @@ void main() { print(&d); } -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; byte idx = 0; void print(void* ptr) { diff --git a/src/test/kc/pointer-void-3.c b/src/test/kc/pointer-void-3.c index b9660c91c..e5820b069 100644 --- a/src/test/kc/pointer-void-3.c +++ b/src/test/kc/pointer-void-3.c @@ -1,7 +1,7 @@ // Test void pointer - issues when assigning returns from malloc() -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { byte* buf1 = malloc(); @@ -13,7 +13,7 @@ void main() { } -byte* heap_head = 0xc000; +byte* heap_head = (byte*)0xc000; void* malloc() { heap_head++; diff --git a/src/test/kc/pointer-void-err-0.c b/src/test/kc/pointer-void-err-0.c index 3c04f1672..63bd4cde9 100644 --- a/src/test/kc/pointer-void-err-0.c +++ b/src/test/kc/pointer-void-err-0.c @@ -1,7 +1,7 @@ // Test simple void pointer - void pointer addition should fail void main() { - void* SCREEN = 0x0400; + void* SCREEN = (void*)0x0400; byte idx = 0; *((byte*)SCREEN) = idx; SCREEN++; diff --git a/src/test/kc/post-increment-problem-2.c b/src/test/kc/post-increment-problem-2.c index 9e9123d78..ad78d91bb 100644 --- a/src/test/kc/post-increment-problem-2.c +++ b/src/test/kc/post-increment-problem-2.c @@ -1,4 +1,4 @@ -const byte *screen=$0400; +byte *screen=(byte *)$0400; void main() { word offset=40*10; for (char x=0;x<254;x++) diff --git a/src/test/kc/post-increment-problem-4.c b/src/test/kc/post-increment-problem-4.c index a7a07376b..7652249c4 100644 --- a/src/test/kc/post-increment-problem-4.c +++ b/src/test/kc/post-increment-problem-4.c @@ -2,7 +2,7 @@ // https://gitlab.com/camelot/kickc/-/issues/486 char MESSAGE[] = "hello world!"; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { char * s = MESSAGE; diff --git a/src/test/kc/post-increment-problem-5.c b/src/test/kc/post-increment-problem-5.c index 4a5b9fed2..1031ebbd2 100644 --- a/src/test/kc/post-increment-problem-5.c +++ b/src/test/kc/post-increment-problem-5.c @@ -1,7 +1,7 @@ // Post-increment expression causes java.lang.ClassCastException: class dk.camelot64.kickc.model.values.ConstantBinary cannot be cast to class dk.camelot64.kickc.model.values.LValue // Should result in a proper error -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { *(SCREEN+999)++; diff --git a/src/test/kc/post-increment-problem.c b/src/test/kc/post-increment-problem.c index 11deacbd5..628206c71 100644 --- a/src/test/kc/post-increment-problem.c +++ b/src/test/kc/post-increment-problem.c @@ -2,7 +2,7 @@ char MESSAGE[20] = "camelot"; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char* msg = MESSAGE; diff --git a/src/test/kc/pragma-noparenthesis.c b/src/test/kc/pragma-noparenthesis.c index 9d2265af3..2a1aa8c61 100644 --- a/src/test/kc/pragma-noparenthesis.c +++ b/src/test/kc/pragma-noparenthesis.c @@ -3,7 +3,7 @@ #pragma target vic20 #pragma constructor_for init main -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[1] = 'b'; diff --git a/src/test/kc/pragma-unknown.c b/src/test/kc/pragma-unknown.c index c40c5f1f8..0e8f68265 100644 --- a/src/test/kc/pragma-unknown.c +++ b/src/test/kc/pragma-unknown.c @@ -2,7 +2,7 @@ #pragma unknown(x) -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { *SCREEN = 'a'; diff --git a/src/test/kc/preprocessor-0.c b/src/test/kc/preprocessor-0.c index 3f5dd33f2..7d09b2c7d 100644 --- a/src/test/kc/preprocessor-0.c +++ b/src/test/kc/preprocessor-0.c @@ -3,7 +3,7 @@ #define A 'a' -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { *SCREEN = A; diff --git a/src/test/kc/preprocessor-1.c b/src/test/kc/preprocessor-1.c index 6de16e04a..480cfe0a0 100644 --- a/src/test/kc/preprocessor-1.c +++ b/src/test/kc/preprocessor-1.c @@ -1,7 +1,7 @@ // Test the preprocessor // #define's with complex token bodies -#define USE_SCREEN_DEFAULT char * const SCREEN = 0x0400; +#define USE_SCREEN_DEFAULT char * const SCREEN = (char*)0x0400; #define START_MAIN void main() { #define END_MAIN } diff --git a/src/test/kc/preprocessor-11.c b/src/test/kc/preprocessor-11.c index 6818e3ec8..e2a6ea668 100644 --- a/src/test/kc/preprocessor-11.c +++ b/src/test/kc/preprocessor-11.c @@ -5,7 +5,7 @@ #error Preprocessor causing an error! #endif -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = 'a'; diff --git a/src/test/kc/preprocessor-12.c b/src/test/kc/preprocessor-12.c index 5e9dcfd99..5603f368b 100644 --- a/src/test/kc/preprocessor-12.c +++ b/src/test/kc/preprocessor-12.c @@ -5,7 +5,7 @@ #include "qwe.h" #endif -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = 'a'; diff --git a/src/test/kc/preprocessor-13.c b/src/test/kc/preprocessor-13.c index 76c6e59e8..c0f47217e 100644 --- a/src/test/kc/preprocessor-13.c +++ b/src/test/kc/preprocessor-13.c @@ -10,7 +10,7 @@ void main() { char x = 7; - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; // Call without spaces SCREEN[0] = FOO(1); // Call with spaces diff --git a/src/test/kc/preprocessor-14.c b/src/test/kc/preprocessor-14.c index 3b52fb8ee..ab48ed912 100644 --- a/src/test/kc/preprocessor-14.c +++ b/src/test/kc/preprocessor-14.c @@ -2,7 +2,7 @@ // Test for existence of the __KICKC__ define void main() { - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; #ifdef __KICKC__ *SCREEN = 1; #endif diff --git a/src/test/kc/preprocessor-2.c b/src/test/kc/preprocessor-2.c index b47323891..c59291c37 100644 --- a/src/test/kc/preprocessor-2.c +++ b/src/test/kc/preprocessor-2.c @@ -1,7 +1,7 @@ // Test the preprocessor // #define and #undef - expected output on screen is xa -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { char a = 'a'; diff --git a/src/test/kc/preprocessor-3.c b/src/test/kc/preprocessor-3.c index 584eab124..4f59557b1 100644 --- a/src/test/kc/preprocessor-3.c +++ b/src/test/kc/preprocessor-3.c @@ -3,7 +3,7 @@ #include "preprocessor-3b.c" -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { SCREEN[0] = STAR; diff --git a/src/test/kc/preprocessor-4.c b/src/test/kc/preprocessor-4.c index 7be6d3cd0..c65a4faec 100644 --- a/src/test/kc/preprocessor-4.c +++ b/src/test/kc/preprocessor-4.c @@ -3,7 +3,7 @@ #define A -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/preprocessor-5.c b/src/test/kc/preprocessor-5.c index d7540d655..e627028fe 100644 --- a/src/test/kc/preprocessor-5.c +++ b/src/test/kc/preprocessor-5.c @@ -5,7 +5,7 @@ SCREEN[idx++] = 'x'; \ SCREEN[idx++] = 'x' -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/preprocessor-6.c b/src/test/kc/preprocessor-6.c index 7052b2676..289985353 100644 --- a/src/test/kc/preprocessor-6.c +++ b/src/test/kc/preprocessor-6.c @@ -5,7 +5,7 @@ char A = 'a'; #define A A+1 -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/preprocessor-7.c b/src/test/kc/preprocessor-7.c index 483c453c1..10d400039 100644 --- a/src/test/kc/preprocessor-7.c +++ b/src/test/kc/preprocessor-7.c @@ -4,7 +4,7 @@ #define SEI asm { sei } #define CLI asm { cli } -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/preprocessor-8.c b/src/test/kc/preprocessor-8.c index f87f41cac..8910c1a38 100644 --- a/src/test/kc/preprocessor-8.c +++ b/src/test/kc/preprocessor-8.c @@ -4,7 +4,7 @@ #define SEI kickasm {{ sei }} #define CLI kickasm {{ cli }} -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/preprocessor-9.c b/src/test/kc/preprocessor-9.c index 7dd5474a7..11026f9c3 100644 --- a/src/test/kc/preprocessor-9.c +++ b/src/test/kc/preprocessor-9.c @@ -5,7 +5,7 @@ #define DOUBLE(x) SUM(x,x) #define SUM(x,y) x+y -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { char idx = 0; diff --git a/src/test/kc/print-problem.c b/src/test/kc/print-problem.c index aa964dba4..77dee57a2 100644 --- a/src/test/kc/print-problem.c +++ b/src/test/kc/print-problem.c @@ -1,4 +1,4 @@ -byte* SCREEN= $400; +byte* SCREEN= (char*)$400; byte line = $40; byte ch = line; diff --git a/src/test/kc/printf-10.c b/src/test/kc/printf-10.c index 16f026895..8b34f8144 100644 --- a/src/test/kc/printf-10.c +++ b/src/test/kc/printf-10.c @@ -3,7 +3,7 @@ __intrinsic void printf(char* format, ...); -char * screen = 0x0400; +char * screen = (char*)0x0400; char idx = 0; void cputs(char* str) { diff --git a/src/test/kc/printf-11.c b/src/test/kc/printf-11.c index 76684e3e0..597fa902d 100644 --- a/src/test/kc/printf-11.c +++ b/src/test/kc/printf-11.c @@ -3,7 +3,7 @@ __intrinsic void printf(char* format, ...); -char * screen = 0x0400; +char * screen = (char*)0x0400; char idx = 0; void cputs(char* str) { diff --git a/src/test/kc/problem-array-struct-init.c b/src/test/kc/problem-array-struct-init.c index 50e204245..95f84544c 100644 --- a/src/test/kc/problem-array-struct-init.c +++ b/src/test/kc/problem-array-struct-init.c @@ -25,7 +25,7 @@ struct List[] lists = { { 1, { 2, 3, 4 }}, { 5, { 6, 7, 8 }}, { 9, { 10, 11, 12 */ void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char idx = 0; for ( char i: 0..2) { SCREEN[idx++] = points[i].x; diff --git a/src/test/kc/problem-bool-compare-2.c b/src/test/kc/problem-bool-compare-2.c index 2fb665e43..7ee6bf67b 100644 --- a/src/test/kc/problem-bool-compare-2.c +++ b/src/test/kc/problem-bool-compare-2.c @@ -5,7 +5,7 @@ #define TRUE 1 void main() { - char * SCREEN = 0x0400; + char * SCREEN = (char*)0x0400; if(FALSE!=FALSE) SCREEN[0] = '*'; diff --git a/src/test/kc/problem-bool-compare.c b/src/test/kc/problem-bool-compare.c index 06145cfe6..ed4c98b3f 100644 --- a/src/test/kc/problem-bool-compare.c +++ b/src/test/kc/problem-bool-compare.c @@ -2,7 +2,7 @@ // https://atariage.com/forums/topic/311788-kickc-optimizing-c-compiler-now-supports-atari-8bit-xlxe/?tab=comments#comment-4644101 void main() { - char * SCREEN = 0x0400; + char * SCREEN = (char*)0x0400; if(false!=false) SCREEN[0] = '*'; diff --git a/src/test/kc/problem-const-addition.c b/src/test/kc/problem-const-addition.c index 519e88231..63e1bc298 100644 --- a/src/test/kc/problem-const-addition.c +++ b/src/test/kc/problem-const-addition.c @@ -1,8 +1,8 @@ // Illustrates problem with constant addition not handling mixed types properly -char* SCREEN = $400; -char* CHARGEN = 0xd000; -char* PROCPORT = 0x01; +char* SCREEN = (char*)$400; +char* CHARGEN = (char*)0xd000; +char* PROCPORT = (char*)0x01; void main() { for(char pos: 0..3) diff --git a/src/test/kc/problem-inline-struct-return.c b/src/test/kc/problem-inline-struct-return.c index fd3e2442d..849a8ea4f 100644 --- a/src/test/kc/problem-inline-struct-return.c +++ b/src/test/kc/problem-inline-struct-return.c @@ -9,7 +9,7 @@ void main() { struct SplineVector p1 = { 12, 24}; struct SplineVector p2 = splineDouble(p1); - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; SCREEN[0] = p2.x; SCREEN[1] = p2.y; diff --git a/src/test/kc/problem-negate-const.c b/src/test/kc/problem-negate-const.c index a79e51297..8a03493cc 100644 --- a/src/test/kc/problem-negate-const.c +++ b/src/test/kc/problem-negate-const.c @@ -1,7 +1,7 @@ // Illustrates problem with negating a constant negative number // KickAsm requires parenthesis for double negation to work -signed char * const SCREEN = 0x0400; +signed char * const SCREEN = (signed char*)0x0400; void main() { printneg(-4); diff --git a/src/test/kc/problem-negative-word-const.c b/src/test/kc/problem-negative-word-const.c index 2a7ebabba..64c8ecd46 100644 --- a/src/test/kc/problem-negative-word-const.c +++ b/src/test/kc/problem-negative-word-const.c @@ -1,6 +1,6 @@ // Problem with assigning negative word constant (vwuz1=vbuc1) -word* screen = 0x0400; +word* screen = (char*)0x0400; void main() { for( byte i:0..7) { diff --git a/src/test/kc/problem-struct-inline-parameter-1.c b/src/test/kc/problem-struct-inline-parameter-1.c index 03db5dbb0..6e68df08a 100644 --- a/src/test/kc/problem-struct-inline-parameter-1.c +++ b/src/test/kc/problem-struct-inline-parameter-1.c @@ -9,7 +9,7 @@ void main() { print('c', { '-', '-' } ); } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; char idx = 0; void print(char c, struct format fmt) { diff --git a/src/test/kc/problem-struct-inline-parameter.c b/src/test/kc/problem-struct-inline-parameter.c index f76267c5e..bab63ee36 100644 --- a/src/test/kc/problem-struct-inline-parameter.c +++ b/src/test/kc/problem-struct-inline-parameter.c @@ -9,7 +9,7 @@ void main() { print('c', (struct format){ '-', '-' } ); } -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; char idx = 0; void print(char c, struct format fmt) { diff --git a/src/test/kc/procedure-callingconvention-stack-0.c b/src/test/kc/procedure-callingconvention-stack-0.c index 6f79c6e6b..c8c2d72b1 100644 --- a/src/test/kc/procedure-callingconvention-stack-0.c +++ b/src/test/kc/procedure-callingconvention-stack-0.c @@ -1,6 +1,6 @@ // Test a procedure with calling convention stack -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main(void) { SCREEN[0] = plus('0', 7); diff --git a/src/test/kc/procedure-callingconvention-stack-1.c b/src/test/kc/procedure-callingconvention-stack-1.c index 0c8e06d2c..ab53c4520 100644 --- a/src/test/kc/procedure-callingconvention-stack-1.c +++ b/src/test/kc/procedure-callingconvention-stack-1.c @@ -1,6 +1,6 @@ // Test a procedure with calling convention stack -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main(void) { SCREEN[0] = plus('0', 7); diff --git a/src/test/kc/procedure-callingconvention-stack-10.c b/src/test/kc/procedure-callingconvention-stack-10.c index e35f868a4..b3b0339f7 100644 --- a/src/test/kc/procedure-callingconvention-stack-10.c +++ b/src/test/kc/procedure-callingconvention-stack-10.c @@ -3,7 +3,7 @@ #pragma calling(__stackcall) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; struct Point { diff --git a/src/test/kc/procedure-callingconvention-stack-11.c b/src/test/kc/procedure-callingconvention-stack-11.c index 1f3696836..2c4c9047d 100644 --- a/src/test/kc/procedure-callingconvention-stack-11.c +++ b/src/test/kc/procedure-callingconvention-stack-11.c @@ -3,7 +3,7 @@ #pragma calling(__stackcall) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; struct Point { diff --git a/src/test/kc/procedure-callingconvention-stack-12.c b/src/test/kc/procedure-callingconvention-stack-12.c index 899af7210..364f5572b 100644 --- a/src/test/kc/procedure-callingconvention-stack-12.c +++ b/src/test/kc/procedure-callingconvention-stack-12.c @@ -3,7 +3,7 @@ #pragma calling(__stackcall) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void main(void) { diff --git a/src/test/kc/procedure-callingconvention-stack-13.c b/src/test/kc/procedure-callingconvention-stack-13.c index 634f9dbb7..8335ef180 100644 --- a/src/test/kc/procedure-callingconvention-stack-13.c +++ b/src/test/kc/procedure-callingconvention-stack-13.c @@ -1,7 +1,7 @@ // Test a procedure with calling convention stack // Recursion that works (no local variables) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main(void) { *SCREEN = pow2(6); diff --git a/src/test/kc/procedure-callingconvention-stack-2.c b/src/test/kc/procedure-callingconvention-stack-2.c index c7010a445..36a45f3b2 100644 --- a/src/test/kc/procedure-callingconvention-stack-2.c +++ b/src/test/kc/procedure-callingconvention-stack-2.c @@ -1,6 +1,6 @@ // Test a procedure with calling convention stack - and enough parameters to use fast ASM for cleaning stack -word* const SCREEN = 0x0400; +word* const SCREEN = (char*)0x0400; void main(void) { SCREEN[0] = plus(0x1234, 0x2345); diff --git a/src/test/kc/procedure-callingconvention-stack-3.c b/src/test/kc/procedure-callingconvention-stack-3.c index abdd3ac68..5431b976f 100644 --- a/src/test/kc/procedure-callingconvention-stack-3.c +++ b/src/test/kc/procedure-callingconvention-stack-3.c @@ -3,7 +3,7 @@ // Currently fails because the pushed are done based on the actual value instead of the declared parameter type // https://gitlab.com/camelot/kickc/issues/319 -word* const SCREEN = 0x0400; +word* const SCREEN = (char*)0x0400; void main(void) { SCREEN[0] = plus('0', 7); diff --git a/src/test/kc/procedure-callingconvention-stack-4.c b/src/test/kc/procedure-callingconvention-stack-4.c index e1fd9c50a..1ee50e59e 100644 --- a/src/test/kc/procedure-callingconvention-stack-4.c +++ b/src/test/kc/procedure-callingconvention-stack-4.c @@ -1,7 +1,7 @@ // Test a procedure with calling convention stack // A slightly more complex call -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char i = 0; diff --git a/src/test/kc/procedure-callingconvention-stack-5.c b/src/test/kc/procedure-callingconvention-stack-5.c index 52be53538..de4436107 100644 --- a/src/test/kc/procedure-callingconvention-stack-5.c +++ b/src/test/kc/procedure-callingconvention-stack-5.c @@ -1,7 +1,7 @@ // Test a procedure with calling convention stack // Return value larger than parameter -int* const SCREEN = 0x0400; +int* const SCREEN = (int*)0x0400; void main(void) { SCREEN[0] = next(); diff --git a/src/test/kc/procedure-callingconvention-stack-6.c b/src/test/kc/procedure-callingconvention-stack-6.c index b9c1deea8..72ce7c9c0 100644 --- a/src/test/kc/procedure-callingconvention-stack-6.c +++ b/src/test/kc/procedure-callingconvention-stack-6.c @@ -1,7 +1,7 @@ // Test a procedure with calling convention stack // Recursive fibonacci -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main(void) { *SCREEN = fib(5); diff --git a/src/test/kc/procedure-callingconvention-stack-7.c b/src/test/kc/procedure-callingconvention-stack-7.c index c08b731ba..b157ad1bc 100644 --- a/src/test/kc/procedure-callingconvention-stack-7.c +++ b/src/test/kc/procedure-callingconvention-stack-7.c @@ -3,7 +3,7 @@ #pragma calling(__stackcall) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main(void) { char val; diff --git a/src/test/kc/procedure-callingconvention-stack-8.c b/src/test/kc/procedure-callingconvention-stack-8.c index 16e2907d8..3bfdfd262 100644 --- a/src/test/kc/procedure-callingconvention-stack-8.c +++ b/src/test/kc/procedure-callingconvention-stack-8.c @@ -3,7 +3,7 @@ #pragma calling(__stackcall) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char val = 0; diff --git a/src/test/kc/procedure-callingconvention-stack-9.c b/src/test/kc/procedure-callingconvention-stack-9.c index 6cf831859..a31d5d8ca 100644 --- a/src/test/kc/procedure-callingconvention-stack-9.c +++ b/src/test/kc/procedure-callingconvention-stack-9.c @@ -3,7 +3,7 @@ #pragma calling(__stackcall) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char val = 0; diff --git a/src/test/kc/procedure-declare-0.c b/src/test/kc/procedure-declare-0.c index ba67cd5f0..900d194c0 100644 --- a/src/test/kc/procedure-declare-0.c +++ b/src/test/kc/procedure-declare-0.c @@ -3,7 +3,7 @@ char f(char a); void main() { - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; SCREEN[0] = f('a'); SCREEN[1] = f('b'); } diff --git a/src/test/kc/processor-port-test.c b/src/test/kc/processor-port-test.c index 07f41e190..7aab9dbad 100644 --- a/src/test/kc/processor-port-test.c +++ b/src/test/kc/processor-port-test.c @@ -4,10 +4,10 @@ #include <c64.h> #include <c64-print.h> -char* const BASIC_ROM = $a000; -char* const KERNAL_ROM = $e000; -char* const IO_RAM = $d000; -char* const SCREEN = 0x400; +char* const BASIC_ROM = (char*)$a000; +char* const KERNAL_ROM = (char*)$e000; +char* const IO_RAM = (char*)$d000; +char* const SCREEN = (char*)0x400; void main() { // Avoid interrupts diff --git a/src/test/kc/ptr-complex.c b/src/test/kc/ptr-complex.c index 179fb72e4..ccb34235e 100644 --- a/src/test/kc/ptr-complex.c +++ b/src/test/kc/ptr-complex.c @@ -3,7 +3,7 @@ void main() { // RValue pointer expression (constant) - byte* screen = $0400; + byte* screen = (byte*)$400; byte a = *(screen+80); // RValue pointer expression (variable) @@ -28,7 +28,7 @@ void main() { --*(byte*)($d000+$21); // Increment on a const named pointer - byte* BG_COLOR = $d020; + byte* BG_COLOR = (char*)$d020; ++*BG_COLOR; diff --git a/src/test/kc/ptrptr-optimize-0.c b/src/test/kc/ptrptr-optimize-0.c index c615190e5..8fa415789 100644 --- a/src/test/kc/ptrptr-optimize-0.c +++ b/src/test/kc/ptrptr-optimize-0.c @@ -1,6 +1,6 @@ // Tests optimization of constant pointers to pointers void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; byte** pscreen = &screen; **pscreen = 'a'; (*pscreen)++; diff --git a/src/test/kc/ptrptr-optimize-1.c b/src/test/kc/ptrptr-optimize-1.c index 5e78562a3..3c6a61064 100644 --- a/src/test/kc/ptrptr-optimize-1.c +++ b/src/test/kc/ptrptr-optimize-1.c @@ -1,6 +1,6 @@ // Tests optimization of constant pointers to pointers void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; byte** pscreen = &screen; sub('a',pscreen); sub('b',pscreen); diff --git a/src/test/kc/ptrptr-optimize-2.c b/src/test/kc/ptrptr-optimize-2.c index 5b76ac29e..9ea337bc6 100644 --- a/src/test/kc/ptrptr-optimize-2.c +++ b/src/test/kc/ptrptr-optimize-2.c @@ -1,7 +1,7 @@ // Tests (non-)optimization of constant pointers to pointers // The two examples of &screen is not detected as identical leading to ASM that could be optimized more void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; sub('a',&screen); sub('b',&screen); } diff --git a/src/test/kc/ptrtest.c b/src/test/kc/ptrtest.c index eccf8b14f..d7e7ab22a 100644 --- a/src/test/kc/ptrtest.c +++ b/src/test/kc/ptrtest.c @@ -10,7 +10,7 @@ void main() { void lvalue() { // A constant pointer - byte SCREEN[1024] = $0400; + byte SCREEN[1024] = (byte*)$0400; // LValue constant pointer dereference *SCREEN = 1; @@ -28,7 +28,7 @@ void lvalue() { void rvalue() { // A constant pointer - byte SCREEN[1024] = $0400; + byte SCREEN[1024] = (byte*)$0400; // RValue constant pointer byte b = *SCREEN; @@ -42,13 +42,13 @@ void rvalue() { b = SCREEN[i++]; } - byte* screen2 = $400; + byte* screen2 = (char*)$400; *screen2 = b; } void lvaluevar() { - byte *screen = $0400; + byte *screen = (byte*)$0400; // LValue Variable pointer dereference byte b=4; @@ -62,7 +62,7 @@ void lvaluevar() { } void rvaluevar() { - byte *screen = $0400; + byte *screen = (byte*)$0400; // RValue Variable pointer dereference byte b; @@ -73,7 +73,7 @@ void rvaluevar() { i++; } - byte* screen2 = $400; + byte* screen2 = (char*)$400; *screen2 = b; } diff --git a/src/test/kc/ptrtestmin.c b/src/test/kc/ptrtestmin.c index 9b82c7b60..a41dd371a 100644 --- a/src/test/kc/ptrtestmin.c +++ b/src/test/kc/ptrtestmin.c @@ -3,7 +3,7 @@ void main() { // A constant pointer - byte SCREEN[1024] = $0400; + byte SCREEN[1024] = (byte*)$400; byte b; diff --git a/src/test/kc/recursion-error-complex.c b/src/test/kc/recursion-error-complex.c index 584c835f2..9d39e465f 100644 --- a/src/test/kc/recursion-error-complex.c +++ b/src/test/kc/recursion-error-complex.c @@ -1,7 +1,7 @@ // Test that a complex recursion results in a CompileError void main() { - byte* screen = $400; + byte* screen = (char*)$400; byte f = fa(8); *screen = f; } diff --git a/src/test/kc/recursion-error.c b/src/test/kc/recursion-error.c index bdb62a543..24031c02b 100644 --- a/src/test/kc/recursion-error.c +++ b/src/test/kc/recursion-error.c @@ -1,7 +1,7 @@ // Test that recursion results in a CompileError, as it is not supported void main() { - byte* screen = $400; + byte* screen = (char*)$400; byte f = fib(8); *screen = f; } diff --git a/src/test/kc/register-0.c b/src/test/kc/register-0.c index b43778483..3bbd51b4c 100644 --- a/src/test/kc/register-0.c +++ b/src/test/kc/register-0.c @@ -7,7 +7,7 @@ void main() { print('l'); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; volatile char __address(0x03) idx; diff --git a/src/test/kc/register-1.c b/src/test/kc/register-1.c index 56704318f..dcb0b108e 100644 --- a/src/test/kc/register-1.c +++ b/src/test/kc/register-1.c @@ -2,7 +2,7 @@ // Unknown hard-coded register void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; char register(H) idx = 3; while(idx++<7) SCREEN[idx] = 'a'; diff --git a/src/test/kc/register-clobber.c b/src/test/kc/register-clobber.c index 97a3451e1..ac0d00faf 100644 --- a/src/test/kc/register-clobber.c +++ b/src/test/kc/register-clobber.c @@ -1,5 +1,5 @@ void main() { - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$400; for( register(X) byte x: 0..100 ) { for( register(X) byte y: 0..100 ) { SCREEN[x] = y; diff --git a/src/test/kc/reserve-zp-global-range.c b/src/test/kc/reserve-zp-global-range.c index 2041e838b..396b89db5 100644 --- a/src/test/kc/reserve-zp-global-range.c +++ b/src/test/kc/reserve-zp-global-range.c @@ -3,7 +3,7 @@ #pragma zp_reserve(0x00..0x7f) void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( volatile byte i : 0..2) { SCREEN[i] = sub1(i); } diff --git a/src/test/kc/reserve-zp-global.c b/src/test/kc/reserve-zp-global.c index ecf2e784d..a7ced343d 100644 --- a/src/test/kc/reserve-zp-global.c +++ b/src/test/kc/reserve-zp-global.c @@ -3,7 +3,7 @@ #pragma zp_reserve(2,5) void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( volatile byte i : 0..2) { SCREEN[i] = sub1(i); } diff --git a/src/test/kc/reserve-zp-procedure-1.c b/src/test/kc/reserve-zp-procedure-1.c index c6bc50fe7..2eed7d855 100644 --- a/src/test/kc/reserve-zp-procedure-1.c +++ b/src/test/kc/reserve-zp-procedure-1.c @@ -1,7 +1,7 @@ // Demonstrates a procedure reserving addresses on zeropage void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( volatile byte i : 0..2) { SCREEN[i] = sub1(i); } diff --git a/src/test/kc/reserve-zp-procedure-2.c b/src/test/kc/reserve-zp-procedure-2.c index 75de34df1..f093d85f4 100644 --- a/src/test/kc/reserve-zp-procedure-2.c +++ b/src/test/kc/reserve-zp-procedure-2.c @@ -1,7 +1,7 @@ // Demonstrates a procedure reserving addresses on zeropage void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( volatile byte i : 0..2) { SCREEN[i] = sub1(i); (SCREEN+40)[i] = sub2(i); diff --git a/src/test/kc/reserve-zp-procedure-3.c b/src/test/kc/reserve-zp-procedure-3.c index 38f5e7675..2e197e511 100644 --- a/src/test/kc/reserve-zp-procedure-3.c +++ b/src/test/kc/reserve-zp-procedure-3.c @@ -1,7 +1,7 @@ // Demonstrates a procedure reserving addresses on zeropage void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( volatile byte i : 0..2) { SCREEN[i] = sub1(i); } diff --git a/src/test/kc/reserve-zp-procedure-4.c b/src/test/kc/reserve-zp-procedure-4.c index 6a1da87ce..f8093ce25 100644 --- a/src/test/kc/reserve-zp-procedure-4.c +++ b/src/test/kc/reserve-zp-procedure-4.c @@ -1,7 +1,7 @@ // Demonstrates a procedure reserving addresses on zeropage void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( volatile byte i : 0..2) { SCREEN[i] = sub1(i); } diff --git a/src/test/kc/robozzle64-label-problem.c b/src/test/kc/robozzle64-label-problem.c index 2c7afd0f6..99ebd186b 100644 --- a/src/test/kc/robozzle64-label-problem.c +++ b/src/test/kc/robozzle64-label-problem.c @@ -1,7 +1,7 @@ #include <multiply.h> void main() { - word* screen = 0x0400; + word* screen = (char*)0x0400; for( byte y: 0..5) { word z1 = mul8u(y,40); *screen++ = z1; diff --git a/src/test/kc/roll-variable.c b/src/test/kc/roll-variable.c index 01edddced..de15ad021 100644 --- a/src/test/kc/roll-variable.c +++ b/src/test/kc/roll-variable.c @@ -1,7 +1,7 @@ // Rolling constants by a variable amount void main() { - byte* screen = $400; + byte* screen = (char*)$400; for( byte b: 0..7) { screen[b] = $55 << b; } diff --git a/src/test/kc/runtime-unused-procedure.c b/src/test/kc/runtime-unused-procedure.c index b23c40cf5..905e58e35 100644 --- a/src/test/kc/runtime-unused-procedure.c +++ b/src/test/kc/runtime-unused-procedure.c @@ -2,7 +2,7 @@ byte call = 0; -byte* screen = $0400; +byte* screen = (byte*)$400; void main() { screen[0] = 'a'; if(call!=0) { diff --git a/src/test/kc/sandbox-ternary-error.c b/src/test/kc/sandbox-ternary-error.c index f66610e2d..169355a61 100644 --- a/src/test/kc/sandbox-ternary-error.c +++ b/src/test/kc/sandbox-ternary-error.c @@ -1,7 +1,7 @@ // Demonstrates error with nested ternary operator void main(void) { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; for ( byte b: 0..2 ) { *SCREEN = (b == 0) ? 'a' : ((b == 1) ? 'b' : 'c'); } diff --git a/src/test/kc/sandbox.c b/src/test/kc/sandbox.c index 970a22868..c1c08c1c7 100644 --- a/src/test/kc/sandbox.c +++ b/src/test/kc/sandbox.c @@ -1,10 +1,10 @@ #include <division.h> -byte * const zp1 = 0x61; // #define zp1 *(byte *)0x61 -- allows "zp1" vs "*zp1" below -- not supported -- https://gitlab.com/camelot/kickc/issues/169 -byte * const zp2 = 0x62; -byte * const TIMEHI = 0xA1; -byte * const TIMELO = 0xA2; -byte * const VICBANK = 0xD018; +byte * const zp1 = (byte*)0x61; // #define zp1 *(byte *)0x61 -- allows "zp1" vs "*zp1" below -- not supported -- https://gitlab.com/camelot/kickc/issues/169 +byte * const zp2 = (byte*)0x62; +byte * const TIMEHI = (byte*)0xA1; +byte * const TIMELO = (byte*)0xA2; +byte * const VICBANK = (byte*)0xD018; byte buf16[16]; // "char buf16[16]" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/162 byte strTemp[100]; diff --git a/src/test/kc/scan-desire-problem.c b/src/test/kc/scan-desire-problem.c index 7d24c9cf9..83a096c34 100644 --- a/src/test/kc/scan-desire-problem.c +++ b/src/test/kc/scan-desire-problem.c @@ -4,11 +4,11 @@ #include <string.h> #include <multiply.h> -byte* const screen = $400; -byte* const charset = $2000; -byte* const tileset = $2800; -byte* const colors = $d800; -byte* const level_address = $3000; +byte* const screen = (byte*)$400; +byte* const charset = (byte*)$2000; +byte* const tileset = (byte*)$2800; +byte* const colors = (byte*)$d800; +byte* const level_address = (byte*)$3000; void main() { init(); diff --git a/src/test/kc/screen-center-angle.c b/src/test/kc/screen-center-angle.c index 7816e1212..3e9e93419 100644 --- a/src/test/kc/screen-center-angle.c +++ b/src/test/kc/screen-center-angle.c @@ -7,8 +7,8 @@ #include <c64-time.h> #include <c64-print.h> -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x2800; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x2800; void main() { init_font_hex(CHARSET); @@ -17,8 +17,8 @@ void main() { clock_start(); init_angle_screen(SCREEN); clock_t cyclecount = clock()-CLOCKS_PER_INIT; - byte* BASE_SCREEN = 0x0400; - byte* BASE_CHARSET = 0x1000; + byte* BASE_SCREEN = (byte*)0x0400; + byte* BASE_CHARSET = (byte*)0x1000; print_ulong_at(cyclecount, BASE_SCREEN); *D018 = toD018(BASE_SCREEN, BASE_CHARSET); } diff --git a/src/test/kc/screen-center-distance.c b/src/test/kc/screen-center-distance.c index e85a22d2a..3c36a2786 100644 --- a/src/test/kc/screen-center-distance.c +++ b/src/test/kc/screen-center-distance.c @@ -9,8 +9,8 @@ #pragma zp_reserve(08) -byte* const CHARSET = 0x2000; -byte* const SCREEN = 0x2800; +byte* const CHARSET = (byte*)0x2000; +byte* const SCREEN = (byte*)0x2800; void main() { init_font_hex(CHARSET); @@ -18,8 +18,8 @@ void main() { clock_start(); init_dist_screen(SCREEN); clock_t cyclecount = clock()-CLOCKS_PER_INIT; - byte* BASE_SCREEN = 0x0400; - byte* BASE_CHARSET = 0x1000; + byte* BASE_SCREEN = (byte*)0x0400; + byte* BASE_CHARSET = (byte*)0x1000; print_ulong_at(cyclecount, BASE_SCREEN); *D018 = toD018(BASE_SCREEN, BASE_CHARSET); } diff --git a/src/test/kc/screen-show-spiral-buckets.c b/src/test/kc/screen-show-spiral-buckets.c index cac3a3339..242c4df5c 100644 --- a/src/test/kc/screen-show-spiral-buckets.c +++ b/src/test/kc/screen-show-spiral-buckets.c @@ -11,7 +11,7 @@ byte* SCREEN_DIST = malloc(1000); // Screen containing angle to center byte* SCREEN_ANGLE= malloc(1000); // Screen containing angle to center -byte* const SCREEN_FILL = 0x0400; +byte* const SCREEN_FILL = (char*)0x0400; // Char to fill with const byte FILL_CHAR = '*'; diff --git a/src/test/kc/screen-show-spiral.c b/src/test/kc/screen-show-spiral.c index 3e3e0f7e4..96b6520c2 100644 --- a/src/test/kc/screen-show-spiral.c +++ b/src/test/kc/screen-show-spiral.c @@ -10,7 +10,7 @@ byte* SCREEN_DIST = malloc(1000); // Screen containing angle to center byte* SCREEN_ANGLE = malloc(1000); // Screen containing angle to center -byte* const SCREEN_FILL = 0x0400; +byte* const SCREEN_FILL = (char*)0x0400; // Char to fill with const byte FILL_CHAR = '@'; diff --git a/src/test/kc/scroll-clobber.c b/src/test/kc/scroll-clobber.c index 15b4915cf..42f11ee8b 100644 --- a/src/test/kc/scroll-clobber.c +++ b/src/test/kc/scroll-clobber.c @@ -1,5 +1,5 @@ -byte* SCREEN = $0400; -byte* SCROLL = $d016; +byte* SCREEN = (byte*)$400; +byte* SCROLL = (byte*)$d016; byte TEXT[] = "01234567"; void main() { diff --git a/src/test/kc/scrollbig-clobber.c b/src/test/kc/scrollbig-clobber.c index 47ff3452f..59fc263d4 100644 --- a/src/test/kc/scrollbig-clobber.c +++ b/src/test/kc/scrollbig-clobber.c @@ -3,7 +3,7 @@ byte* TEXT = "cml "; void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; for( byte i: 0..255) { SCREEN[i] = next_char(); } diff --git a/src/test/kc/sequence-locality-0.c b/src/test/kc/sequence-locality-0.c index 11de6f470..becf15796 100644 --- a/src/test/kc/sequence-locality-0.c +++ b/src/test/kc/sequence-locality-0.c @@ -2,7 +2,7 @@ void main() { - byte* const screen = 0x0400; + byte* const screen = (char*)0x0400; byte idx = 0; for(byte i: 0..10) { diff --git a/src/test/kc/sequence-locality-1.c b/src/test/kc/sequence-locality-1.c index 8d850ffcd..20e78b2bf 100644 --- a/src/test/kc/sequence-locality-1.c +++ b/src/test/kc/sequence-locality-1.c @@ -2,7 +2,7 @@ void main() { - byte* const screen = 0x0400; + byte* const screen = (char*)0x0400; byte idx = 0; for(byte i: 0..10) { diff --git a/src/test/kc/sieve-min.c b/src/test/kc/sieve-min.c index 2c173b844..b1cfbb9c0 100644 --- a/src/test/kc/sieve-min.c +++ b/src/test/kc/sieve-min.c @@ -4,10 +4,10 @@ #include <c64-print.h> -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; const uint16_t COUNT = 16384; /* Up to what number? */ const uint8_t SQRT_COUNT = 128; /* Sqrt of COUNT */ -uint8_t* sieve = 0x1000; +uint8_t* sieve = (uint8_t*)0x1000; void main (void) { // Fill sieve with zeros diff --git a/src/test/kc/sieve.c b/src/test/kc/sieve.c index 83c1ceedf..087606a9b 100644 --- a/src/test/kc/sieve.c +++ b/src/test/kc/sieve.c @@ -6,11 +6,11 @@ #include <c64-print.h> -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; const uint16_t COUNT = 16384; /* Up to what number? */ const uint8_t SQRT_COUNT = 128; /* Sqrt of COUNT */ -uint8_t* sieve = 0x1000; +uint8_t* sieve = (uint8_t*)0x1000; void main (void) { //Show lower case font diff --git a/src/test/kc/signed-bytes.c b/src/test/kc/signed-bytes.c index 7c4a67768..ff0dd4d1f 100644 --- a/src/test/kc/signed-bytes.c +++ b/src/test/kc/signed-bytes.c @@ -1,6 +1,6 @@ void main() { - byte* screen = $0400; + byte* screen = (byte*)$400; byte j = 0; signed byte i = -127; while(i<127) { diff --git a/src/test/kc/signed-char-comparison.c b/src/test/kc/signed-char-comparison.c index 04b388c2c..de830cc5f 100644 --- a/src/test/kc/signed-char-comparison.c +++ b/src/test/kc/signed-char-comparison.c @@ -6,7 +6,7 @@ void main() { debug(dy); } -char *SCREEN = 0x0400; +char *SCREEN = (char*)0x0400; void debug(signed char dy) { char i = (char)dy; diff --git a/src/test/kc/signed-word-minus-byte-2.c b/src/test/kc/signed-word-minus-byte-2.c index e35709acd..b7f165381 100644 --- a/src/test/kc/signed-word-minus-byte-2.c +++ b/src/test/kc/signed-word-minus-byte-2.c @@ -2,7 +2,7 @@ void main() { signed word w1 = 1234; - signed word* screen = 0x0400; + signed word* screen = (signed word*)0x0400; for( byte i: 0..10 ) { w1 = w1 - 41; screen[i] = w1; diff --git a/src/test/kc/signed-words.c b/src/test/kc/signed-words.c index b69a7bff4..6414610e6 100644 --- a/src/test/kc/signed-words.c +++ b/src/test/kc/signed-words.c @@ -1,8 +1,8 @@ #include <c64.h> -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$400; byte* const SPRITES_PTR = SCREEN+$3f8; -byte* const SPRITE = $2000; +byte* const SPRITE = (byte*)$2000; void main() { init(); diff --git a/src/test/kc/simple-loop.c b/src/test/kc/simple-loop.c index 127da4e0c..d62299b3b 100644 --- a/src/test/kc/simple-loop.c +++ b/src/test/kc/simple-loop.c @@ -1,5 +1,5 @@ void main() { - unsigned char* const SCREEN = 0x0400; + unsigned char* const SCREEN = (char*)0x0400; for( unsigned char i = 0; i<128; i+=2) { SCREEN[i] = 'a'; (*(unsigned char*)0xD020)=0; diff --git a/src/test/kc/sinus-basic.c b/src/test/kc/sinus-basic.c index 61c6a744b..231eb35c5 100644 --- a/src/test/kc/sinus-basic.c +++ b/src/test/kc/sinus-basic.c @@ -4,7 +4,7 @@ void main() { byte f_i[] = {0, 0, 0, 0, 0}; byte f_127[] = {0, 0, 0, 0, 0}; - byte* const f_2pi = $e2e5; + byte* const f_2pi = (byte*)$e2e5; setFAC(1275); divFACby10(); setMEMtoFAC(f_127); diff --git a/src/test/kc/sizeof-arrays.c b/src/test/kc/sizeof-arrays.c index dc6817c0b..913ed795d 100644 --- a/src/test/kc/sizeof-arrays.c +++ b/src/test/kc/sizeof-arrays.c @@ -1,29 +1,28 @@ // Tests the sizeof() operator on arrays -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { byte idx = 0; // Arrays byte ba[3]; - SCREEN[idx++] = '0'+sizeof(ba)/sizeof(byte); + SCREEN[idx++] = '0'+(char)(sizeof(ba)/sizeof(byte)); word wa[3]; - SCREEN[idx++] = '0'+sizeof(wa)/sizeof(word); + SCREEN[idx++] = '0'+(char)(sizeof(wa)/sizeof(word)); const byte sz = 7; byte bb[sz+2]; - SCREEN[idx++] = '0'+sizeof(bb)/sizeof(byte); + SCREEN[idx++] = '0'+(char)(sizeof(bb)/sizeof(byte)); word wb[] = { 1, 2, 3, 4 }; - SCREEN[idx++] = '0'+sizeof(wb)/sizeof(word); + SCREEN[idx++] = '0'+(char)(sizeof(wb)/sizeof(word)); byte sa[] = "camelot"; - SCREEN[idx++] = '0'+sizeof(sa)/sizeof(byte); + SCREEN[idx++] = '0'+(char)(sizeof(sa)/sizeof(byte)); byte sb[] = { 'a', 'b', 'c', 0}; - SCREEN[idx++] = '0'+sizeof(sb)/sizeof(byte); - + SCREEN[idx++] = '0'+(char)(sizeof(sb)/sizeof(byte)); } \ No newline at end of file diff --git a/src/test/kc/sizeof-expr.c b/src/test/kc/sizeof-expr.c index 4e01cad47..c29b79ad6 100644 --- a/src/test/kc/sizeof-expr.c +++ b/src/test/kc/sizeof-expr.c @@ -1,6 +1,6 @@ // Tests the sizeof() operator on values/expressions -byte* const SCREEN = $400; +byte* const SCREEN = (byte*)$400; void main() { byte idx = 0; @@ -9,18 +9,18 @@ void main() { volatile byte b = 0; volatile word w = 0; // Pointers - byte* bp = $1000; + byte* bp = (byte*)$1000; word* wp = &w; - SCREEN[idx++] = '0'+sizeof(0); - SCREEN[idx++] = '0'+sizeof(idx); - SCREEN[idx++] = '0'+sizeof(b); - SCREEN[idx++] = '0'+sizeof(b*2); + SCREEN[idx++] = '0'+(char)sizeof(0); + SCREEN[idx++] = '0'+(char)sizeof(idx); + SCREEN[idx++] = '0'+(char)sizeof(b); + SCREEN[idx++] = '0'+(char)sizeof(b*2); idx++; - SCREEN[idx++] = '0'+sizeof($43ff); - SCREEN[idx++] = '0'+sizeof(w); + SCREEN[idx++] = '0'+(char)sizeof($43ff); + SCREEN[idx++] = '0'+(char)sizeof(w); idx++; - SCREEN[idx++] = '0'+sizeof(bp); - SCREEN[idx++] = '0'+sizeof(wp); + SCREEN[idx++] = '0'+(char)sizeof(bp); + SCREEN[idx++] = '0'+(char)sizeof(wp); } \ No newline at end of file diff --git a/src/test/kc/sizeof-in-const-pointer.c b/src/test/kc/sizeof-in-const-pointer.c index b81a63a84..a181a3040 100644 --- a/src/test/kc/sizeof-in-const-pointer.c +++ b/src/test/kc/sizeof-in-const-pointer.c @@ -1,7 +1,7 @@ // Support for sizeof() in const pointer definition // Commodore 64 processor port -char * const SCREEN = 0x0400 +sizeof(char)*100; +char * const SCREEN = (char*)0x0400 +sizeof(char)*100; void main() { SCREEN[0] = 'a'; } \ No newline at end of file diff --git a/src/test/kc/sizeof-problem.c b/src/test/kc/sizeof-problem.c new file mode 100644 index 000000000..ae00e54a3 --- /dev/null +++ b/src/test/kc/sizeof-problem.c @@ -0,0 +1,11 @@ + +char ARR1[0x130]; + +char ARR2[] = { 1, 2, 3 }; + +void main() { + unsigned i = sizeof(ARR1); + ARR1[i-1] = 0; + char j = (char)sizeof(ARR2); + ARR2[j-1] = 0; +} diff --git a/src/test/kc/sizeof-struct.c b/src/test/kc/sizeof-struct.c index fb4169831..8f800af2b 100644 --- a/src/test/kc/sizeof-struct.c +++ b/src/test/kc/sizeof-struct.c @@ -10,31 +10,31 @@ struct Circle { byte radius; }; -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { byte idx = 0; // Struct Types - SCREEN[idx++] = '0'+sizeof(struct Point); - SCREEN[idx++] = '0'+sizeof(struct Circle); + SCREEN[idx++] = '0'+(char)sizeof(struct Point); + SCREEN[idx++] = '0'+(char)sizeof(struct Circle); idx++; // Struct Values struct Point p; - SCREEN[idx++] = '0'+sizeof(p); + SCREEN[idx++] = '0'+(char)sizeof(p); struct Circle c; - SCREEN[idx++] = '0'+sizeof(c); + SCREEN[idx++] = '0'+(char)sizeof(c); idx++; // Struct Arrays const byte NUM_POINTS = 4; struct Point points[NUM_POINTS]; - SCREEN[idx++] = '0'+sizeof(points); - SCREEN[idx++] = '0'+sizeof(points)/sizeof(struct Point); + SCREEN[idx++] = '0'+(char)sizeof(points); + SCREEN[idx++] = '0'+(char)(sizeof(points)/sizeof(struct Point)); const byte NUM_CIRCLES = NUM_POINTS-1; struct Circle circles[NUM_CIRCLES]; - SCREEN[idx++] = '0'+sizeof(circles); - SCREEN[idx++] = '0'+sizeof(circles)/sizeof(struct Circle); + SCREEN[idx++] = '0'+(char)(sizeof(circles)); + SCREEN[idx++] = '0'+(char)(sizeof(circles)/sizeof(struct Circle)); } \ No newline at end of file diff --git a/src/test/kc/sizeof-types.c b/src/test/kc/sizeof-types.c index 29876fd0e..c22f2b682 100644 --- a/src/test/kc/sizeof-types.c +++ b/src/test/kc/sizeof-types.c @@ -1,6 +1,6 @@ // Tests the sizeof() operator on types -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { byte idx = 0; diff --git a/src/test/kc/sprite-font.c b/src/test/kc/sprite-font.c index 1a77aa3a9..31aece207 100644 --- a/src/test/kc/sprite-font.c +++ b/src/test/kc/sprite-font.c @@ -3,7 +3,7 @@ #include <c64.h> #include <string.h> -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char* const SPRITE = 0x2000; char* const SPRITES = SCREEN+OFFSET_SPRITE_PTRS; diff --git a/src/test/kc/sqr-delta.c b/src/test/kc/sqr-delta.c index 6d83498c8..b62ead05f 100644 --- a/src/test/kc/sqr-delta.c +++ b/src/test/kc/sqr-delta.c @@ -10,7 +10,7 @@ unsigned long ifunc(unsigned long a){ return --x; } -unsigned long* SCREEN = 0x0400; +unsigned long* SCREEN = (char*)0x0400; void main() { SCREEN[0] = ifunc(8); diff --git a/src/test/kc/stack-relative-addressing.c b/src/test/kc/stack-relative-addressing.c index 8c7024517..3695eeed3 100644 --- a/src/test/kc/stack-relative-addressing.c +++ b/src/test/kc/stack-relative-addressing.c @@ -1,7 +1,7 @@ // Test stack-relative addressing (for passing parameters through the stack) /** The hardware stack. The offset 3 is to skip the return address and the fact that the pointer is to the next free position. */ -char* const STACK = 0x0103; +char* const STACK = (char*)0x0103; void main() { @@ -26,7 +26,7 @@ void main() { } /** The screen. */ -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; // Peek values from the stack using stack-relative addressing void peek_stack() { diff --git a/src/test/kc/statement-sequence-1.c b/src/test/kc/statement-sequence-1.c index ec91d5ef2..d6168d960 100644 --- a/src/test/kc/statement-sequence-1.c +++ b/src/test/kc/statement-sequence-1.c @@ -2,7 +2,7 @@ void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; for(byte i: 0..10) { byte c = i+5; diff --git a/src/test/kc/static-init-code-0.c b/src/test/kc/static-init-code-0.c index c475249cb..3e8fde6ce 100644 --- a/src/test/kc/static-init-code-0.c +++ b/src/test/kc/static-init-code-0.c @@ -5,7 +5,7 @@ // Initialize a volatile ZP-variable (will be done in the initializer) volatile char c1 = 'o'; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = c1; diff --git a/src/test/kc/static-init-code-1.c b/src/test/kc/static-init-code-1.c index 24b594948..c2af800f5 100644 --- a/src/test/kc/static-init-code-1.c +++ b/src/test/kc/static-init-code-1.c @@ -1,7 +1,7 @@ // Tests static initialization code // No initialization code should call main() directly removing _start() and _init() -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = 'o'; diff --git a/src/test/kc/static-init-code-2.c b/src/test/kc/static-init-code-2.c index f53374e6a..aa8c210a1 100644 --- a/src/test/kc/static-init-code-2.c +++ b/src/test/kc/static-init-code-2.c @@ -4,7 +4,7 @@ char c1 = 'o'; char c2 = 'k'; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { SCREEN[0] = c1; diff --git a/src/test/kc/static-register-optimization-problem.c b/src/test/kc/static-register-optimization-problem.c index 811ece515..530a89cfb 100644 --- a/src/test/kc/static-register-optimization-problem.c +++ b/src/test/kc/static-register-optimization-problem.c @@ -2,7 +2,7 @@ // ASM Static Register Value analysis erronously believes >-1 == 0 void main() { - char* screen = 0x0400; + char* screen = (char*)0x0400; int lasti = -1; for(int i=0;i<10;i++) { screen[i] = <lasti; diff --git a/src/test/kc/stmt-empty-1.c b/src/test/kc/stmt-empty-1.c index 85b4edd66..a93ba86c0 100644 --- a/src/test/kc/stmt-empty-1.c +++ b/src/test/kc/stmt-empty-1.c @@ -1,7 +1,7 @@ // Test an empty statement ';' -const char str[] = "Hello!"; -const char* SCREEN = 0x0400; +char str[] = "Hello!"; +char* const SCREEN = (char*)0x0400; void main() { char b = 0; diff --git a/src/test/kc/stmt-empty.c b/src/test/kc/stmt-empty.c index bd0817bc2..b53b2c6c7 100644 --- a/src/test/kc/stmt-empty.c +++ b/src/test/kc/stmt-empty.c @@ -4,7 +4,7 @@ void main() { // Start with an empty statement ; // Fill screen with '*'. Body is an empty statement. - for( char * screen = 0x0400; screen<0x400+1000; (*screen++)='*') ; + for( char * screen = (char*)0x0400; screen<0x400+1000; (*screen++)='*') ; // End with two empty statements ; ; } \ No newline at end of file diff --git a/src/test/kc/stmt-outside-method.c b/src/test/kc/stmt-outside-method.c index 6c7bc4a03..8fd99f8da 100644 --- a/src/test/kc/stmt-outside-method.c +++ b/src/test/kc/stmt-outside-method.c @@ -3,6 +3,6 @@ byte b=12; b=b+1; void main() { - byte* screen = $0400; + byte* screen = (byte*)$400; *screen = b; } \ No newline at end of file diff --git a/src/test/kc/strength-reduction-1.c b/src/test/kc/strength-reduction-1.c index 5f0bdd0f8..947da0fe0 100644 --- a/src/test/kc/strength-reduction-1.c +++ b/src/test/kc/strength-reduction-1.c @@ -1,6 +1,6 @@ // Test loop invariant computation detection // http://www.cs.toronto.edu/~pekhimenko/courses/cscd70-w18/docs/Lecture%205%20[LICM%20and%20Strength%20Reduction]%2002.08.2018.pdf -char * SCREEN = 0x0400; +char * SCREEN = (char*)0x0400; void main() { char x = *SCREEN; for(char c=0;c<40;c++) { diff --git a/src/test/kc/string-const-consolidation-noroot.c b/src/test/kc/string-const-consolidation-noroot.c index b82602a97..62f2aa6fc 100644 --- a/src/test/kc/string-const-consolidation-noroot.c +++ b/src/test/kc/string-const-consolidation-noroot.c @@ -1,6 +1,6 @@ // Tests that identical strings are consolidated -byte* screen = $400; +byte* screen = (char*)$400; void main() { byte rex1[] = "rex"; diff --git a/src/test/kc/string-const-consolidation-root.c b/src/test/kc/string-const-consolidation-root.c index cbbf04573..386ec2276 100644 --- a/src/test/kc/string-const-consolidation-root.c +++ b/src/test/kc/string-const-consolidation-root.c @@ -21,7 +21,7 @@ void print2() { print(s1); } -char* screen = 0x400; +char* screen = (char*)0x400; void print(char* s) { while(*s) { diff --git a/src/test/kc/string-const-consolidation.c b/src/test/kc/string-const-consolidation.c index 8f2a11971..3816b24ca 100644 --- a/src/test/kc/string-const-consolidation.c +++ b/src/test/kc/string-const-consolidation.c @@ -1,7 +1,7 @@ // Tests that identical strings are consolidated byte rex1[] = "rex"; -byte* screen = $400; +byte* screen = (char*)$400; void main() { byte rex2[] = "rex"; diff --git a/src/test/kc/string-encoding-literals.c b/src/test/kc/string-encoding-literals.c index 6d6300aea..1dd7d3cd6 100644 --- a/src/test/kc/string-encoding-literals.c +++ b/src/test/kc/string-encoding-literals.c @@ -14,8 +14,8 @@ char standard[] = "abcABC0"; void main() { - char* const SCREEN = 0x0400; - char * const D018 = 0xd018; + char* const SCREEN = (char*)0x0400; + char * const D018 = (char*)0xd018; *D018 = 0x16; for( char i: 0..7 ) { (SCREEN+40*0)[i] = petscii_mixed[i]; diff --git a/src/test/kc/string-encoding-pragma.c b/src/test/kc/string-encoding-pragma.c index ba3a24a84..dd937df44 100644 --- a/src/test/kc/string-encoding-pragma.c +++ b/src/test/kc/string-encoding-pragma.c @@ -14,7 +14,7 @@ char screencode_upper[] = "abcABC5"su; char screencode_mixed3[] = "abcABC6"; void main() { - char* SCREEN = 0x0400; + char* SCREEN = (char*)0x0400; for( char i: 0..5 ) { (SCREEN+40*2)[i] = screencode_mixed1[i]; (SCREEN+40*0)[i] = petscii_mixed1[i]; diff --git a/src/test/kc/string-escapes-0.c b/src/test/kc/string-escapes-0.c index d0435476b..b2f0519ba 100644 --- a/src/test/kc/string-escapes-0.c +++ b/src/test/kc/string-escapes-0.c @@ -1,7 +1,7 @@ // Test using some simple supported string escapes \r \f \n \' \" char MESSAGE[] = "\r\f\n\"\'\\"; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { byte i=0; diff --git a/src/test/kc/string-escapes-1.c b/src/test/kc/string-escapes-1.c index 49867ee6b..2bb489c7f 100644 --- a/src/test/kc/string-escapes-1.c +++ b/src/test/kc/string-escapes-1.c @@ -1,10 +1,10 @@ // Test using some simple supported string escape \n in both string and char char MESSAGE[] = "hello\nworld"; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { - byte* line = 0x0400; + byte* line = (char*)0x0400; byte* cursor = line; byte* msg = MESSAGE; diff --git a/src/test/kc/string-escapes-2.c b/src/test/kc/string-escapes-2.c index 2e9feb48a..0ac9506ef 100644 --- a/src/test/kc/string-escapes-2.c +++ b/src/test/kc/string-escapes-2.c @@ -4,7 +4,7 @@ char MESSAGE[] = "hello\nworld\\"; -char* const memA = 0xff; +char* const memA = (char*)0xff; void main() { byte i=0; diff --git a/src/test/kc/string-escapes-3.c b/src/test/kc/string-escapes-3.c index 5824e202d..2e81ab005 100644 --- a/src/test/kc/string-escapes-3.c +++ b/src/test/kc/string-escapes-3.c @@ -6,10 +6,10 @@ char MESSAGE[] = "hello\nworld"; char CH = '\n'; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { - byte* line = 0x0400; + byte* line = (char*)0x0400; byte* cursor = line; byte* msg = MESSAGE; diff --git a/src/test/kc/string-escapes-4.c b/src/test/kc/string-escapes-4.c index f68f1dc38..7917a4524 100644 --- a/src/test/kc/string-escapes-4.c +++ b/src/test/kc/string-escapes-4.c @@ -9,8 +9,8 @@ char MSG2[] = "C\x01M\x05LOT"; char CH = '\xde'; -char* SCREEN1 = 0x0400; -char* SCREEN2 = 0x0428; +char* SCREEN1 = (char*)0x0400; +char* SCREEN2 = (char*)0x0428; void main() { // Show mixed chars on screen diff --git a/src/test/kc/string-escapes-5.c b/src/test/kc/string-escapes-5.c index d6b3d853f..28d6138d9 100644 --- a/src/test/kc/string-escapes-5.c +++ b/src/test/kc/string-escapes-5.c @@ -6,7 +6,7 @@ char MESSAGE[] = "q\xffw\x60e\xddr"; char CH = '\xff'; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main() { char i=0; diff --git a/src/test/kc/string-escapes-err-0.c b/src/test/kc/string-escapes-err-0.c index 4ad830ffa..f5ee55c64 100644 --- a/src/test/kc/string-escapes-err-0.c +++ b/src/test/kc/string-escapes-err-0.c @@ -2,7 +2,7 @@ // Unfinished escape at end of string char MESSAGE[] = "qwe\"; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { byte i=0; diff --git a/src/test/kc/string-escapes-err-1.c b/src/test/kc/string-escapes-err-1.c index 54abf8f68..3db578f57 100644 --- a/src/test/kc/string-escapes-err-1.c +++ b/src/test/kc/string-escapes-err-1.c @@ -2,7 +2,7 @@ // Unsupported escape sequence char MESSAGE[] = "qwe\qasd"; -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { byte i=0; diff --git a/src/test/kc/string-length-mismatch.c b/src/test/kc/string-length-mismatch.c index fc80e4767..b503a9531 100644 --- a/src/test/kc/string-length-mismatch.c +++ b/src/test/kc/string-length-mismatch.c @@ -1,6 +1,6 @@ byte b[3] = "qwe!"; void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; SCREEN[0] = b[0]; } \ No newline at end of file diff --git a/src/test/kc/string-pointer-problem.c b/src/test/kc/string-pointer-problem.c index 2ce821b48..4ddcaf7e9 100644 --- a/src/test/kc/string-pointer-problem.c +++ b/src/test/kc/string-pointer-problem.c @@ -5,7 +5,7 @@ void main() { set_process_name("keyboard"); } -char* process_name = 0x0400; +char* process_name = (char*)0x0400; void set_process_name(char* name) { for(signed int j = 0; j < 17; j++){ diff --git a/src/test/kc/strip.c b/src/test/kc/strip.c index 8b860d7a7..e7225080e 100644 --- a/src/test/kc/strip.c +++ b/src/test/kc/strip.c @@ -17,7 +17,7 @@ void strip(unsigned char *p, unsigned char c) { } while(*p++!=0); } -unsigned char* screen = $400; +unsigned char* screen = (char*)$400; void print(unsigned char* msg) { do { diff --git a/src/test/kc/strncat-0.c b/src/test/kc/strncat-0.c index 52737bfbb..66456dc08 100644 --- a/src/test/kc/strncat-0.c +++ b/src/test/kc/strncat-0.c @@ -6,7 +6,7 @@ char world[] = "world war 3"; char build[40]; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { strncat(build, hello, 5); diff --git a/src/test/kc/struct-0.c b/src/test/kc/struct-0.c index 106e0fae5..bf5bcc75e 100644 --- a/src/test/kc/struct-0.c +++ b/src/test/kc/struct-0.c @@ -8,7 +8,7 @@ struct Point { void main() { point.x = 2; point.y = 3; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = point.x; SCREEN[1] = point.y; } \ No newline at end of file diff --git a/src/test/kc/struct-1.c b/src/test/kc/struct-1.c index 2ead695dd..cda404ab4 100644 --- a/src/test/kc/struct-1.c +++ b/src/test/kc/struct-1.c @@ -12,7 +12,7 @@ void main() { point1.y = 3; point2.x = point1.y; point2.y = point1.x; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = point2.x; SCREEN[1] = point2.y; } \ No newline at end of file diff --git a/src/test/kc/struct-10.c b/src/test/kc/struct-10.c index 9c89850ef..d1e974514 100644 --- a/src/test/kc/struct-10.c +++ b/src/test/kc/struct-10.c @@ -7,7 +7,7 @@ struct RadixInfo { }; void main() { - unsigned int* const SCREEN = 0x400; + unsigned int* const SCREEN = (unsigned int*)0x400; struct RadixInfo info = { RADIX_DECIMAL_VALUES }; SCREEN[0] = info.values[1]; SCREEN[1] = RADIX_DECIMAL_VALUES[1]; diff --git a/src/test/kc/struct-11.c b/src/test/kc/struct-11.c index f5262f6e9..a02e95eb1 100644 --- a/src/test/kc/struct-11.c +++ b/src/test/kc/struct-11.c @@ -13,7 +13,7 @@ void main() { print_person(henriette); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; char DIGIT[] = "0123456789"; diff --git a/src/test/kc/struct-11b.c b/src/test/kc/struct-11b.c index 7be88e6a8..904af34f2 100644 --- a/src/test/kc/struct-11b.c +++ b/src/test/kc/struct-11b.c @@ -11,7 +11,7 @@ void main() { print_person(henry_id, henry_initials); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void print_person(unsigned long person_id, char* person_initials) { diff --git a/src/test/kc/struct-12.c b/src/test/kc/struct-12.c index 95fcbcd75..0f152003a 100644 --- a/src/test/kc/struct-12.c +++ b/src/test/kc/struct-12.c @@ -14,7 +14,7 @@ void main() { print_person(henriette); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; char DIGIT[] = "0123456789"; diff --git a/src/test/kc/struct-13.c b/src/test/kc/struct-13.c index cd2903a95..d85ac94bf 100644 --- a/src/test/kc/struct-13.c +++ b/src/test/kc/struct-13.c @@ -7,7 +7,7 @@ struct Point { __ma struct Point point; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { point.x = 2; diff --git a/src/test/kc/struct-14.c b/src/test/kc/struct-14.c index f7f212ef4..ce2240c4c 100644 --- a/src/test/kc/struct-14.c +++ b/src/test/kc/struct-14.c @@ -7,7 +7,7 @@ struct Point { struct Point points[1]; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { points[0].x = 2; diff --git a/src/test/kc/struct-15.c b/src/test/kc/struct-15.c index 9840b2095..daa785aed 100644 --- a/src/test/kc/struct-15.c +++ b/src/test/kc/struct-15.c @@ -5,7 +5,7 @@ struct Point { char y; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1; diff --git a/src/test/kc/struct-16.c b/src/test/kc/struct-16.c index 74503d733..02e47b118 100644 --- a/src/test/kc/struct-16.c +++ b/src/test/kc/struct-16.c @@ -5,7 +5,7 @@ struct Point { char y; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1 = { 2, 3 }; diff --git a/src/test/kc/struct-17.c b/src/test/kc/struct-17.c index 8d71759e8..1a4a19ff3 100644 --- a/src/test/kc/struct-17.c +++ b/src/test/kc/struct-17.c @@ -10,7 +10,7 @@ struct Vector { struct Point q; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Vector v; diff --git a/src/test/kc/struct-18.c b/src/test/kc/struct-18.c index d2ff79089..4d08b70c4 100644 --- a/src/test/kc/struct-18.c +++ b/src/test/kc/struct-18.c @@ -10,7 +10,7 @@ struct Vector { struct Point q; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Vector v = { {2, 3}, {4, 5} }; diff --git a/src/test/kc/struct-19.c b/src/test/kc/struct-19.c index 1571a84c5..64cae3af6 100644 --- a/src/test/kc/struct-19.c +++ b/src/test/kc/struct-19.c @@ -10,7 +10,7 @@ struct Vector { struct Point q; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Vector v; diff --git a/src/test/kc/struct-2.c b/src/test/kc/struct-2.c index 56c32a7c2..48110eb76 100644 --- a/src/test/kc/struct-2.c +++ b/src/test/kc/struct-2.c @@ -12,7 +12,7 @@ void main() { point1.y = 3; point2 = point1; point2.x = 4; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = point1.x; SCREEN[1] = point1.y; SCREEN[2] = point2.x; diff --git a/src/test/kc/struct-20.c b/src/test/kc/struct-20.c index 5c8580300..8bf68a5b0 100644 --- a/src/test/kc/struct-20.c +++ b/src/test/kc/struct-20.c @@ -10,7 +10,7 @@ struct Vector { struct Point q; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point p1 = { 2, 3 }; diff --git a/src/test/kc/struct-21.c b/src/test/kc/struct-21.c index 2bbede226..4df1ecf4e 100644 --- a/src/test/kc/struct-21.c +++ b/src/test/kc/struct-21.c @@ -5,7 +5,7 @@ struct Point { char y; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1 = { 2, 3 }; diff --git a/src/test/kc/struct-22.c b/src/test/kc/struct-22.c index d8fb6a077..573f8289b 100644 --- a/src/test/kc/struct-22.c +++ b/src/test/kc/struct-22.c @@ -12,7 +12,7 @@ void main() { print(point2); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void print(struct Point p) { SCREEN[0] = p.x; diff --git a/src/test/kc/struct-23.c b/src/test/kc/struct-23.c index fc0b9ea59..f4c94302b 100644 --- a/src/test/kc/struct-23.c +++ b/src/test/kc/struct-23.c @@ -5,7 +5,7 @@ struct Point { char y; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1 = getPoint(2, 3); diff --git a/src/test/kc/struct-24.c b/src/test/kc/struct-24.c index 4f4af654d..f086257e0 100644 --- a/src/test/kc/struct-24.c +++ b/src/test/kc/struct-24.c @@ -5,7 +5,7 @@ struct Point { char initials[2]; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1; diff --git a/src/test/kc/struct-25.c b/src/test/kc/struct-25.c index 68e821e61..31fab6048 100644 --- a/src/test/kc/struct-25.c +++ b/src/test/kc/struct-25.c @@ -5,7 +5,7 @@ struct Point { char initials[2]; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = sizeof(struct Point); diff --git a/src/test/kc/struct-26.c b/src/test/kc/struct-26.c index ad52934f6..5a5cd5637 100644 --- a/src/test/kc/struct-26.c +++ b/src/test/kc/struct-26.c @@ -5,7 +5,7 @@ struct Point { char initials[2]; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1; diff --git a/src/test/kc/struct-27.c b/src/test/kc/struct-27.c index 63d399e0b..0fac430e3 100644 --- a/src/test/kc/struct-27.c +++ b/src/test/kc/struct-27.c @@ -5,7 +5,7 @@ struct Point { char initials[3]; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1 = { 2, "jg" }; diff --git a/src/test/kc/struct-28.c b/src/test/kc/struct-28.c index f0c9445b9..50ddcd184 100644 --- a/src/test/kc/struct-28.c +++ b/src/test/kc/struct-28.c @@ -5,7 +5,7 @@ struct Point { char initials[2]; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1 = { 2, { 'j', 'g' } }; diff --git a/src/test/kc/struct-29.c b/src/test/kc/struct-29.c index c3d8f4450..4468f1645 100644 --- a/src/test/kc/struct-29.c +++ b/src/test/kc/struct-29.c @@ -7,7 +7,7 @@ struct Point { __mem __ma struct Point point1 = { 2, { 'j', 'g' } }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = point1.x; diff --git a/src/test/kc/struct-3.c b/src/test/kc/struct-3.c index 9b0b62da9..a172058e3 100644 --- a/src/test/kc/struct-3.c +++ b/src/test/kc/struct-3.c @@ -14,7 +14,7 @@ void main() { print(p1); } -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; byte idx = 0; void print(struct Point p) { diff --git a/src/test/kc/struct-30.c b/src/test/kc/struct-30.c index 40076158b..cbfd3a0da 100644 --- a/src/test/kc/struct-30.c +++ b/src/test/kc/struct-30.c @@ -5,7 +5,7 @@ struct Point { char initials[3]; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/struct-31.c b/src/test/kc/struct-31.c index 518f804bc..ab96cb406 100644 --- a/src/test/kc/struct-31.c +++ b/src/test/kc/struct-31.c @@ -5,7 +5,7 @@ struct Point { char y; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { diff --git a/src/test/kc/struct-32.c b/src/test/kc/struct-32.c index 4440378c8..1838f341d 100644 --- a/src/test/kc/struct-32.c +++ b/src/test/kc/struct-32.c @@ -5,7 +5,7 @@ struct Point { char y; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { __ma struct Point point1; diff --git a/src/test/kc/struct-33.c b/src/test/kc/struct-33.c index 1d9415927..2b67457de 100644 --- a/src/test/kc/struct-33.c +++ b/src/test/kc/struct-33.c @@ -7,7 +7,7 @@ struct Point { __mem __ma struct Point point; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { point.x = 2; diff --git a/src/test/kc/struct-34.c b/src/test/kc/struct-34.c index 31406adf8..36b7c04d5 100644 --- a/src/test/kc/struct-34.c +++ b/src/test/kc/struct-34.c @@ -7,7 +7,7 @@ struct Point { __mem __ssa struct Point point; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { point.x = 2; diff --git a/src/test/kc/struct-35.c b/src/test/kc/struct-35.c index d1c5c3065..82f84ad3b 100644 --- a/src/test/kc/struct-35.c +++ b/src/test/kc/struct-35.c @@ -8,7 +8,7 @@ struct Point { __mem __ma struct Point point1 = { 2, 3 }; __mem __ma struct Point point2; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { struct Point* p2 = &point2; diff --git a/src/test/kc/struct-36.c b/src/test/kc/struct-36.c index 7a3016348..0d60803ae 100644 --- a/src/test/kc/struct-36.c +++ b/src/test/kc/struct-36.c @@ -7,7 +7,7 @@ struct Point { __mem __ma struct Point point1 = { 2, "jg" }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = point1.x; diff --git a/src/test/kc/struct-37.c b/src/test/kc/struct-37.c index e90ff3b0a..6a219e9f9 100644 --- a/src/test/kc/struct-37.c +++ b/src/test/kc/struct-37.c @@ -20,7 +20,7 @@ struct Segment letter_c[] = { { SPLINE_TO, {'e','f'}, {75,195} } }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char j=0; diff --git a/src/test/kc/struct-38.c b/src/test/kc/struct-38.c index 460a4a84b..7029a951a 100644 --- a/src/test/kc/struct-38.c +++ b/src/test/kc/struct-38.c @@ -20,7 +20,7 @@ struct Segment letter_c[] = { { SPLINE_TO, {'e','f'}, {75,195} } }; -signed int* const SCREEN = 0x0400; +signed int* const SCREEN = (signed int*)0x0400; void main() { char j=0; diff --git a/src/test/kc/struct-39.c b/src/test/kc/struct-39.c index 8e5942301..054ba7540 100644 --- a/src/test/kc/struct-39.c +++ b/src/test/kc/struct-39.c @@ -20,7 +20,7 @@ struct Segment letter_c[] = { { SPLINE_TO, {'e','f'}, {75,195} } }; -signed int* const SCREEN = 0x0400; +signed int* const SCREEN = (signed int*)0x0400; void main() { char j=0; diff --git a/src/test/kc/struct-4.c b/src/test/kc/struct-4.c index e03df3e02..232ebbc85 100644 --- a/src/test/kc/struct-4.c +++ b/src/test/kc/struct-4.c @@ -11,7 +11,7 @@ void main() { byte y = 3; struct Point p = { x, y+1 }; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = p.x; SCREEN[1] = p.y; } diff --git a/src/test/kc/struct-40.c b/src/test/kc/struct-40.c index 69ca411bc..80a1bb317 100644 --- a/src/test/kc/struct-40.c +++ b/src/test/kc/struct-40.c @@ -10,7 +10,7 @@ struct Vector { struct Point q; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char idx = 0; diff --git a/src/test/kc/struct-41.c b/src/test/kc/struct-41.c index 182547696..8a2b1807e 100644 --- a/src/test/kc/struct-41.c +++ b/src/test/kc/struct-41.c @@ -10,7 +10,7 @@ struct Vector { struct Point q; }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char idx = 0; diff --git a/src/test/kc/struct-42.c b/src/test/kc/struct-42.c index 9aa043b5e..34e19a804 100644 --- a/src/test/kc/struct-42.c +++ b/src/test/kc/struct-42.c @@ -7,7 +7,7 @@ struct Point { struct Point points[3]; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { for( char i: 0..2) diff --git a/src/test/kc/struct-43.c b/src/test/kc/struct-43.c index a3cb7a3eb..ddc692418 100644 --- a/src/test/kc/struct-43.c +++ b/src/test/kc/struct-43.c @@ -8,7 +8,7 @@ struct Point { __mem __ma struct Point point1 = { 4, {1, 2}, 3 }; -unsigned int* const SCREEN = 0x0400; +unsigned int* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = point1.id; diff --git a/src/test/kc/struct-5.c b/src/test/kc/struct-5.c index 24dee25cb..6618f6a5e 100644 --- a/src/test/kc/struct-5.c +++ b/src/test/kc/struct-5.c @@ -9,7 +9,7 @@ void main() { struct Point q; q = point(); - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = q.x; SCREEN[1] = q.y; } diff --git a/src/test/kc/struct-6.c b/src/test/kc/struct-6.c index d3911d397..bc4dc5373 100644 --- a/src/test/kc/struct-6.c +++ b/src/test/kc/struct-6.c @@ -13,7 +13,7 @@ struct Circle { void main() { struct Point p = { 10, 10 }; struct Circle c = { p, 5 }; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = c.center.x; SCREEN[1] = c.center.y; SCREEN[2] = c.radius; diff --git a/src/test/kc/struct-7.c b/src/test/kc/struct-7.c index 06df23d0c..23894093f 100644 --- a/src/test/kc/struct-7.c +++ b/src/test/kc/struct-7.c @@ -18,7 +18,7 @@ struct TwoCircles { void main() { struct TwoCircles t = { { { 1, 2}, 3 }, { { 4, 5}, 6 } }; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = t.c1.center.x; SCREEN[1] = t.c1.center.y; SCREEN[2] = t.c1.radius; diff --git a/src/test/kc/struct-8.c b/src/test/kc/struct-8.c index 034251aa3..6f382cdc6 100644 --- a/src/test/kc/struct-8.c +++ b/src/test/kc/struct-8.c @@ -14,7 +14,7 @@ void main() { struct Point p = { 10, 10 }; struct Circle c = { p, 5 }; struct Point point = c.center; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = point.x; SCREEN[1] = point.y; SCREEN[1] = c.radius; diff --git a/src/test/kc/struct-9.c b/src/test/kc/struct-9.c index b65ff1320..eabbb6741 100644 --- a/src/test/kc/struct-9.c +++ b/src/test/kc/struct-9.c @@ -15,7 +15,7 @@ void main() { struct Circle c; c.center = p; c.radius = 12; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = c.center.x; SCREEN[1] = c.center.y; SCREEN[2] = c.radius; diff --git a/src/test/kc/struct-directives.c b/src/test/kc/struct-directives.c index 52642186f..9054d80da 100644 --- a/src/test/kc/struct-directives.c +++ b/src/test/kc/struct-directives.c @@ -2,7 +2,7 @@ volatile struct { const char x; char z;} y = { 1, 2 }; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { SCREEN[0] = y.x; diff --git a/src/test/kc/struct-err-1.c b/src/test/kc/struct-err-1.c index 72b3f03df..3f954c673 100644 --- a/src/test/kc/struct-err-1.c +++ b/src/test/kc/struct-err-1.c @@ -15,7 +15,7 @@ void main() { struct Point2 p2; p1.x = 4; p2 = p1; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = p2.x; SCREEN[0] = p2.y; diff --git a/src/test/kc/struct-err-2.c b/src/test/kc/struct-err-2.c index 0c7a9e393..2e133876d 100644 --- a/src/test/kc/struct-err-2.c +++ b/src/test/kc/struct-err-2.c @@ -8,7 +8,7 @@ struct Point { void main() { struct Point p1; p1 = 4; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = p1.x; } diff --git a/src/test/kc/struct-err-3.c b/src/test/kc/struct-err-3.c index 0f9c22190..f8a310983 100644 --- a/src/test/kc/struct-err-3.c +++ b/src/test/kc/struct-err-3.c @@ -9,7 +9,7 @@ void main() { print(7); } -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void print(struct Point p) { *SCREEN = p.x; diff --git a/src/test/kc/struct-err-4.c b/src/test/kc/struct-err-4.c index e95685b4c..400650e57 100644 --- a/src/test/kc/struct-err-4.c +++ b/src/test/kc/struct-err-4.c @@ -5,7 +5,7 @@ struct Point { byte y; }; -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { struct Point p; diff --git a/src/test/kc/struct-err-5.c b/src/test/kc/struct-err-5.c index d1c047d6d..35f34dc19 100644 --- a/src/test/kc/struct-err-5.c +++ b/src/test/kc/struct-err-5.c @@ -5,7 +5,7 @@ struct Point { byte y; }; -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { struct Point p; diff --git a/src/test/kc/struct-err-6.c b/src/test/kc/struct-err-6.c index ccab336e7..fae5eec52 100644 --- a/src/test/kc/struct-err-6.c +++ b/src/test/kc/struct-err-6.c @@ -8,7 +8,7 @@ struct Person { void main() { struct Person* jesper = { 4, 46, 2 }; - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; SCREEN[0] = jesper->id; } diff --git a/src/test/kc/struct-pointer-to-member.c b/src/test/kc/struct-pointer-to-member.c index 245beccbc..c295ad9c3 100644 --- a/src/test/kc/struct-pointer-to-member.c +++ b/src/test/kc/struct-pointer-to-member.c @@ -10,7 +10,7 @@ struct SCREEN_COLORS { }; // Commodore 64 processor port -struct SCREEN_COLORS* const COLORS = 0xd020; +struct SCREEN_COLORS* const COLORS = (struct SCREEN_COLORS*)0xd020; // The border color char * const BORDER_COLOR = &COLORS->BORDER; diff --git a/src/test/kc/struct-ptr-0.c b/src/test/kc/struct-ptr-0.c index a8bdb8530..80ed3a1d2 100644 --- a/src/test/kc/struct-ptr-0.c +++ b/src/test/kc/struct-ptr-0.c @@ -12,7 +12,7 @@ void main() { points[i].x = i; points[i].y = i+1; } - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; for( byte i: 0..4) { SCREEN[i] = points[i].x; (SCREEN+40)[i] = points[i].y; diff --git a/src/test/kc/struct-ptr-1.c b/src/test/kc/struct-ptr-1.c index 24c9432ad..122f1d072 100644 --- a/src/test/kc/struct-ptr-1.c +++ b/src/test/kc/struct-ptr-1.c @@ -16,7 +16,7 @@ void main() { *((byte*)points+OFFS_X+i*SIZEOF_POINT) = i; // points[i].x = i; *((byte*)points+OFFS_Y+i*SIZEOF_POINT) = i+4; // points[i].y = i+4; } - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; for( byte i: 0..3) { SCREEN[i] = *((byte*)points+OFFS_X+i*SIZEOF_POINT); // SCREEN[i] = points[i].x; (SCREEN+40)[i] = *((byte*)points+OFFS_Y+i*SIZEOF_POINT); // (SCREEN+40)[i] = points[i].y; diff --git a/src/test/kc/struct-ptr-10.c b/src/test/kc/struct-ptr-10.c index 45397defc..6fcd21346 100644 --- a/src/test/kc/struct-ptr-10.c +++ b/src/test/kc/struct-ptr-10.c @@ -11,7 +11,7 @@ void main() { for( word i: 0..499) { points[i] = { 2, (byte)i }; } - struct Point* const SCREEN = 0x0400; + struct Point* const SCREEN = (struct Point*)0x0400; for( word i: 0..499) { SCREEN[i] = points[i]; } diff --git a/src/test/kc/struct-ptr-11.c b/src/test/kc/struct-ptr-11.c index 55cd8b889..abc6636a5 100644 --- a/src/test/kc/struct-ptr-11.c +++ b/src/test/kc/struct-ptr-11.c @@ -12,7 +12,7 @@ void main() { for( byte i: 0..3) { points[i] = { (signed byte)i, -(signed byte)i, (signed byte)i }; } - struct Point* const SCREEN = 0x0400; + struct Point* const SCREEN = (struct Point*)0x0400; for( byte i: 0..3) { SCREEN[i] = points[i]; } diff --git a/src/test/kc/struct-ptr-12-ref.c b/src/test/kc/struct-ptr-12-ref.c index e7f5b642a..8fa0d77d5 100644 --- a/src/test/kc/struct-ptr-12-ref.c +++ b/src/test/kc/struct-ptr-12-ref.c @@ -3,7 +3,7 @@ void main() { word p = { 2, 3 }; word *q = &p; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = <*q; SCREEN[1] = >*q; } \ No newline at end of file diff --git a/src/test/kc/struct-ptr-12.c b/src/test/kc/struct-ptr-12.c index f92dc8b1b..39cc19ae1 100644 --- a/src/test/kc/struct-ptr-12.c +++ b/src/test/kc/struct-ptr-12.c @@ -7,7 +7,7 @@ struct Point { void main() { volatile struct Point p = { 2, 3 }; struct Point *q = &p; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = q->x; SCREEN[1] = q->y; } \ No newline at end of file diff --git a/src/test/kc/struct-ptr-13.c b/src/test/kc/struct-ptr-13.c index 0c2d1c3d9..6fe474a0e 100644 --- a/src/test/kc/struct-ptr-13.c +++ b/src/test/kc/struct-ptr-13.c @@ -5,13 +5,13 @@ struct Point { byte y; }; -struct Point* points = 0x1000; +struct Point* points = (struct Point*)0x1000; void main() { points->x += 5; points->y += 5; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (byte*)0x0400; SCREEN[0] = points->x; SCREEN[1] = points->y; } \ No newline at end of file diff --git a/src/test/kc/struct-ptr-14.c b/src/test/kc/struct-ptr-14.c index e8224e557..97256b655 100644 --- a/src/test/kc/struct-ptr-14.c +++ b/src/test/kc/struct-ptr-14.c @@ -8,7 +8,7 @@ void main() { volatile struct Point p = { 2, 3 }; struct Point *q = &p; set(q); - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = q->x; SCREEN[1] = q->y; } diff --git a/src/test/kc/struct-ptr-15.c b/src/test/kc/struct-ptr-15.c index 35fc41df0..788fce6b9 100644 --- a/src/test/kc/struct-ptr-15.c +++ b/src/test/kc/struct-ptr-15.c @@ -20,7 +20,7 @@ void main() { circles[1].center.y = 9; circles[1].radius = 15; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; byte idx =0; struct Circle* ptr = circles; for(byte i:0..1) { diff --git a/src/test/kc/struct-ptr-16.c b/src/test/kc/struct-ptr-16.c index 95d5b1daf..55b7ddcf2 100644 --- a/src/test/kc/struct-ptr-16.c +++ b/src/test/kc/struct-ptr-16.c @@ -5,7 +5,7 @@ struct Point { char y; }; -struct Point* const SCREEN = 0x0400; +struct Point* const SCREEN = (struct Point*)0x0400; char idx = 0; void main() { @@ -15,9 +15,9 @@ void main() { } } -struct Point* p0 = 0xa000; -struct Point* p1 = 0xb000; -struct Point* p2 = 0xe000; +struct Point* p0 = (struct Point*)0xa000; +struct Point* p1 = (struct Point*)0xb000; +struct Point* p2 = (struct Point*)0xe000; struct Point get(char i) { if(i==0) { diff --git a/src/test/kc/struct-ptr-17.c b/src/test/kc/struct-ptr-17.c index ca5272637..861970c1c 100644 --- a/src/test/kc/struct-ptr-17.c +++ b/src/test/kc/struct-ptr-17.c @@ -5,7 +5,7 @@ struct Point { char y; }; -struct Point* const SCREEN = 0x0400; +struct Point* const SCREEN = (struct Point*)0x0400; char idx = 0; void main() { diff --git a/src/test/kc/struct-ptr-18.c b/src/test/kc/struct-ptr-18.c index c7c069c66..678219229 100644 --- a/src/test/kc/struct-ptr-18.c +++ b/src/test/kc/struct-ptr-18.c @@ -1,6 +1,6 @@ // Demonstrates problem with passing struct array element as parameter to call -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; struct Point { diff --git a/src/test/kc/struct-ptr-19.c b/src/test/kc/struct-ptr-19.c index a230c809e..704a7f7b6 100644 --- a/src/test/kc/struct-ptr-19.c +++ b/src/test/kc/struct-ptr-19.c @@ -1,6 +1,6 @@ // Demonstrates problem with passing struct pointer deref as parameter to call -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; struct Point { diff --git a/src/test/kc/struct-ptr-2.c b/src/test/kc/struct-ptr-2.c index 2c829bc1f..d8f4b5607 100644 --- a/src/test/kc/struct-ptr-2.c +++ b/src/test/kc/struct-ptr-2.c @@ -17,7 +17,7 @@ void main() { *((byte*)point_i+OFFS_X) = i; // points[i].x = i; *((byte*)point_i+OFFS_Y) = i+4; // points[i].y = i+4; } - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; for( byte i: 0..3) { struct Point* point_i = points+i; SCREEN[i] = *((byte*)point_i+OFFS_X); // SCREEN[i] = points[i].x; diff --git a/src/test/kc/struct-ptr-20.c b/src/test/kc/struct-ptr-20.c index 7e0555c1b..5c51c6b32 100644 --- a/src/test/kc/struct-ptr-20.c +++ b/src/test/kc/struct-ptr-20.c @@ -1,6 +1,6 @@ // Demonstrates problem with conditions using negated struct references -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; struct Setting { char off; @@ -15,7 +15,7 @@ const struct Setting settings[] = { void main() { char idx = 0; - char len = sizeof(settings)/sizeof(struct Setting); + char len = (char) (sizeof(settings) / sizeof(struct Setting)); for(struct Setting* setting = settings; setting<settings+len; setting++) { if (! setting->off) { SCREEN[idx++] = setting->id; diff --git a/src/test/kc/struct-ptr-21.c b/src/test/kc/struct-ptr-21.c index b03798e1d..d53302fe8 100644 --- a/src/test/kc/struct-ptr-21.c +++ b/src/test/kc/struct-ptr-21.c @@ -1,6 +1,6 @@ // Demonstrates problem with conditions using negated struct references -unsigned int* const SCREEN = 0x0400; +unsigned int* const SCREEN = (char*)0x0400; struct Setting { char len; diff --git a/src/test/kc/struct-ptr-23.c b/src/test/kc/struct-ptr-23.c index d383c38e5..b2c1b9853 100644 --- a/src/test/kc/struct-ptr-23.c +++ b/src/test/kc/struct-ptr-23.c @@ -17,7 +17,7 @@ void main() { print_person(person); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void print_person(struct Person *person) { diff --git a/src/test/kc/struct-ptr-25.c b/src/test/kc/struct-ptr-25.c index df13301c8..a51914911 100644 --- a/src/test/kc/struct-ptr-25.c +++ b/src/test/kc/struct-ptr-25.c @@ -1,9 +1,9 @@ -char *fileCur = 0x1005; -char *fileTop = 0x1010; -char *filesEnd = 0x1010; -char *file = 0x1000; +char *fileCur = (char*)0x1005; +char *fileTop = (char*)0x1010; +char *filesEnd = (char*)0x1010; +char *file = (char*)0x1000; -char * const SCREEN = 0x0400; +char * const SCREEN = (char*)0x0400; void main(void) { if (fileTop == filesEnd) --fileTop; diff --git a/src/test/kc/struct-ptr-28.c b/src/test/kc/struct-ptr-28.c index 997c1a730..6f8d25441 100644 --- a/src/test/kc/struct-ptr-28.c +++ b/src/test/kc/struct-ptr-28.c @@ -15,7 +15,7 @@ void main() { print_person(&henriette); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; char DIGIT[] = "0123456789"; diff --git a/src/test/kc/struct-ptr-29.c b/src/test/kc/struct-ptr-29.c index a89212f20..7110797e9 100644 --- a/src/test/kc/struct-ptr-29.c +++ b/src/test/kc/struct-ptr-29.c @@ -15,7 +15,7 @@ void main() { print_person(&persons[1]); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; char DIGIT[] = "0123456789"; diff --git a/src/test/kc/struct-ptr-3.c b/src/test/kc/struct-ptr-3.c index 16d7d553d..0fdc00924 100644 --- a/src/test/kc/struct-ptr-3.c +++ b/src/test/kc/struct-ptr-3.c @@ -5,10 +5,10 @@ struct Point { byte y; }; -struct Point* points = 0x1000; +struct Point* points = (struct Point*)0x1000; void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = (*points).x; SCREEN[1] = (*points).y; points++; diff --git a/src/test/kc/struct-ptr-30.c b/src/test/kc/struct-ptr-30.c index a6b55cc4f..b8d204b9e 100644 --- a/src/test/kc/struct-ptr-30.c +++ b/src/test/kc/struct-ptr-30.c @@ -13,7 +13,7 @@ void main() { } } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; void print(struct Point p) { diff --git a/src/test/kc/struct-ptr-31.c b/src/test/kc/struct-ptr-31.c index 7028ff9ee..874724696 100644 --- a/src/test/kc/struct-ptr-31.c +++ b/src/test/kc/struct-ptr-31.c @@ -15,7 +15,7 @@ void main() { print_person(persons+1); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; char DIGIT[] = "0123456789"; diff --git a/src/test/kc/struct-ptr-32.c b/src/test/kc/struct-ptr-32.c index ff7968956..ce2352511 100644 --- a/src/test/kc/struct-ptr-32.c +++ b/src/test/kc/struct-ptr-32.c @@ -15,7 +15,7 @@ void main() { persons[1].name[8] = 'b'; persons[0].age = 321; persons[1].age = 123; - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; struct Person* person = persons; SCREEN[0] = person->name[8]; person++; diff --git a/src/test/kc/struct-ptr-33.c b/src/test/kc/struct-ptr-33.c index c8f24a4fa..495244543 100644 --- a/src/test/kc/struct-ptr-33.c +++ b/src/test/kc/struct-ptr-33.c @@ -12,7 +12,7 @@ struct Person persons[2] = { }; void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; struct Person* person = persons; SCREEN[0] = person->name[2]; person++; diff --git a/src/test/kc/struct-ptr-34.c b/src/test/kc/struct-ptr-34.c index 6b693d8e0..f9a3afbb8 100644 --- a/src/test/kc/struct-ptr-34.c +++ b/src/test/kc/struct-ptr-34.c @@ -13,7 +13,7 @@ void main() { print_person(henriette); } -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char idx = 0; char DIGIT[] = "0123456789"; diff --git a/src/test/kc/struct-ptr-35.c b/src/test/kc/struct-ptr-35.c index 8b97f2d14..f56169da4 100644 --- a/src/test/kc/struct-ptr-35.c +++ b/src/test/kc/struct-ptr-35.c @@ -13,7 +13,7 @@ struct Tile S2 = {Enemy2Sprites, 50, 128, "Jesper" }; struct Tile *TileDB[2] = {&S1, &S2}; void main() { - char * const SCREEN = 0x0400; + char * const SCREEN = (char*)0x0400; for(int i:0..1) { struct Tile *tile = TileDB[i]; diff --git a/src/test/kc/struct-ptr-4.c b/src/test/kc/struct-ptr-4.c index 7dc129d59..3dbc171bb 100644 --- a/src/test/kc/struct-ptr-4.c +++ b/src/test/kc/struct-ptr-4.c @@ -5,7 +5,7 @@ struct Point { byte y; }; -struct Point* POINTS = 0x1000; +struct Point* POINTS = (struct Point*)0x1000; void main() { // Fill points @@ -17,7 +17,7 @@ void main() { } // Print points - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; byte idx = 0; points = POINTS; for( byte i: 0..3) { diff --git a/src/test/kc/struct-ptr-6.c b/src/test/kc/struct-ptr-6.c index 4a3ff0bdc..16392bc4b 100644 --- a/src/test/kc/struct-ptr-6.c +++ b/src/test/kc/struct-ptr-6.c @@ -5,10 +5,10 @@ struct Point { byte y; }; -struct Point* points = 0x1000; +struct Point* points = (struct Point*)0x1000; void main() { - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = points->x; SCREEN[1] = points->y; points++; diff --git a/src/test/kc/struct-ptr-7.c b/src/test/kc/struct-ptr-7.c index c5116d682..4da3ee42a 100644 --- a/src/test/kc/struct-ptr-7.c +++ b/src/test/kc/struct-ptr-7.c @@ -13,7 +13,7 @@ void main() { points[1].x = 5; points[1].y = 6; - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; SCREEN[0] = points[0].x; SCREEN[1] = points[0].y; SCREEN[3] = points[1].x; diff --git a/src/test/kc/struct-ptr-8.c b/src/test/kc/struct-ptr-8.c index a1c180e7d..6938cab92 100644 --- a/src/test/kc/struct-ptr-8.c +++ b/src/test/kc/struct-ptr-8.c @@ -13,7 +13,7 @@ void main() { points[i].y = 3+i; } - byte* const SCREEN = 0x0400; + byte* const SCREEN = (char*)0x0400; byte idx = 0; for( byte i: 0..1) { SCREEN[idx++] = points[i].x; diff --git a/src/test/kc/struct-ptr-9.c b/src/test/kc/struct-ptr-9.c index c146cda09..1dc031fbd 100644 --- a/src/test/kc/struct-ptr-9.c +++ b/src/test/kc/struct-ptr-9.c @@ -12,7 +12,7 @@ void main() { points[i] = { 2, i }; } - struct Point* const SCREEN = 0x0400; + struct Point* const SCREEN = (struct Point*)0x0400; for( byte i: 0..1) { SCREEN[i] = points[i]; } diff --git a/src/test/kc/struct-unwinding-1.c b/src/test/kc/struct-unwinding-1.c index 6a04bb6c8..7a6d9febb 100644 --- a/src/test/kc/struct-unwinding-1.c +++ b/src/test/kc/struct-unwinding-1.c @@ -5,7 +5,7 @@ struct Point { char y; }; -struct Point * const SCREEN = 0x0400; +struct Point * const SCREEN = (struct Point *)0x0400; void main() { // Initialize classic struct diff --git a/src/test/kc/struct-unwinding-2.c b/src/test/kc/struct-unwinding-2.c index de6cc33ba..5838890ec 100644 --- a/src/test/kc/struct-unwinding-2.c +++ b/src/test/kc/struct-unwinding-2.c @@ -6,7 +6,7 @@ struct Point { char y; }; -struct Point * const SCREEN = 0x0400; +struct Point * const SCREEN = (struct Point *)0x0400; void main() { // Initialize classic struct diff --git a/src/test/kc/struct-unwinding-3.c b/src/test/kc/struct-unwinding-3.c index 5f5662c16..a668d186b 100644 --- a/src/test/kc/struct-unwinding-3.c +++ b/src/test/kc/struct-unwinding-3.c @@ -6,7 +6,7 @@ struct Point { char y; }; -struct Point * const SCREEN = 0x0400; +struct Point * const SCREEN = (char*)0x0400; void main() { // Initialize classic struct from function returning unwound diff --git a/src/test/kc/subexpr-optimize-0.c b/src/test/kc/subexpr-optimize-0.c index ddfa12a63..7fd1512e2 100644 --- a/src/test/kc/subexpr-optimize-0.c +++ b/src/test/kc/subexpr-optimize-0.c @@ -1,7 +1,7 @@ // Tests optimization of identical sub-expressions // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; for( byte i: 0..2) { *screen++ = i*2; *screen++ = i*2; diff --git a/src/test/kc/subexpr-optimize-1.c b/src/test/kc/subexpr-optimize-1.c index 4fdabcfce..5117a3bd8 100644 --- a/src/test/kc/subexpr-optimize-1.c +++ b/src/test/kc/subexpr-optimize-1.c @@ -1,7 +1,7 @@ // A sub-expression that should not be optimized (+1 to a pointer) void main() { - byte* SCREEN = 0x0400; + byte* SCREEN = (char*)0x0400; for(byte i: 0..38) { SCREEN[i] = SCREEN[i+1]; (SCREEN+40)[i] = (SCREEN+40)[i+1]; diff --git a/src/test/kc/subexpr-optimize-2.c b/src/test/kc/subexpr-optimize-2.c index 1a1f93175..7f7cd1da4 100644 --- a/src/test/kc/subexpr-optimize-2.c +++ b/src/test/kc/subexpr-optimize-2.c @@ -1,6 +1,6 @@ // Tests optimization of identical sub-expressions void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; for( byte i: 0..2) { *screen++ = (i+1)*2; *screen++ = (i+1)*2; diff --git a/src/test/kc/subexpr-optimize-3.c b/src/test/kc/subexpr-optimize-3.c index a2e87a6ce..de913e92f 100644 --- a/src/test/kc/subexpr-optimize-3.c +++ b/src/test/kc/subexpr-optimize-3.c @@ -1,6 +1,6 @@ // Tests optimization of identical sub-expressions void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; for( byte i: 0..2) { *screen++ = i*2+i+3; *screen++ = i*2+i+3; diff --git a/src/test/kc/subexpr-optimize-4.c b/src/test/kc/subexpr-optimize-4.c index 07642cdb0..dd3550701 100644 --- a/src/test/kc/subexpr-optimize-4.c +++ b/src/test/kc/subexpr-optimize-4.c @@ -1,6 +1,6 @@ // Tests optimization of identical sub-expressions void main() { - byte* screen = 0x400; + byte* screen = (char*)0x400; for( byte i: 0..2) { *screen++ = (i&1)?i+3:i*4; *screen++ = (i&1)?i+3:i*4; diff --git a/src/test/kc/summin.c b/src/test/kc/summin.c index a3e16e2f5..63d5685bb 100644 --- a/src/test/kc/summin.c +++ b/src/test/kc/summin.c @@ -1,4 +1,4 @@ -byte* screen = $0400; +byte* screen = (byte*)$400; void main() { byte s1=sum(1,2); diff --git a/src/test/kc/switch-0.c b/src/test/kc/switch-0.c index 1cb413fc6..b1645b8f8 100644 --- a/src/test/kc/switch-0.c +++ b/src/test/kc/switch-0.c @@ -2,7 +2,7 @@ // Expected output 'd1444d' void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; for(char i:0..5) { // Test switching on a simple char diff --git a/src/test/kc/switch-1.c b/src/test/kc/switch-1.c index 50d45084c..f213ce499 100644 --- a/src/test/kc/switch-1.c +++ b/src/test/kc/switch-1.c @@ -2,7 +2,7 @@ // Expected output 'a1aa1a' (numbers should be inverted) void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; for(char i:0..5) { // Test switching on a simple char switch(i) { diff --git a/src/test/kc/switch-2.c b/src/test/kc/switch-2.c index 0c1adf9b5..9e4a796f3 100644 --- a/src/test/kc/switch-2.c +++ b/src/test/kc/switch-2.c @@ -1,7 +1,7 @@ // Tests simple switch()-statement - not inside a loop void main() { - char* SCREEN = 0x0400; + char* SCREEN = (char*)0x0400; char b=0; char v64 = 0; switch(v64){ diff --git a/src/test/kc/switch-3-err.c b/src/test/kc/switch-3-err.c index 84b89c7cb..58be5a47d 100644 --- a/src/test/kc/switch-3-err.c +++ b/src/test/kc/switch-3-err.c @@ -1,7 +1,7 @@ // Tests simple switch()-statement - including a continue statement for the enclosing loop void main() { - char* SCREEN = 0x0400; + char* SCREEN = (char*)0x0400; char b=0; char v64 = 0; switch(v64){ diff --git a/src/test/kc/switch-4.c b/src/test/kc/switch-4.c index cce06cecd..7c89efd78 100644 --- a/src/test/kc/switch-4.c +++ b/src/test/kc/switch-4.c @@ -2,7 +2,7 @@ // Expected output " 1 4 " void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; for(char i:0..5) { // Test switching on a simple char switch(i) { diff --git a/src/test/kc/ternary-1.c b/src/test/kc/ternary-1.c index 3983f9cf8..c977b702e 100644 --- a/src/test/kc/ternary-1.c +++ b/src/test/kc/ternary-1.c @@ -1,7 +1,7 @@ // Tests the ternary operator void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( byte i: 0..9) { SCREEN[i] = i<5?'a':'b'; } diff --git a/src/test/kc/ternary-2.c b/src/test/kc/ternary-2.c index 38d534493..afc25d6fa 100644 --- a/src/test/kc/ternary-2.c +++ b/src/test/kc/ternary-2.c @@ -1,7 +1,7 @@ // Tests the ternary operator - when the condition is constant void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; SCREEN[0] = true?'a':'b'; SCREEN[1] = false?'a':'b'; } diff --git a/src/test/kc/ternary-3.c b/src/test/kc/ternary-3.c index 39ddf0301..c42bca4cd 100644 --- a/src/test/kc/ternary-3.c +++ b/src/test/kc/ternary-3.c @@ -1,7 +1,7 @@ // Tests the ternary operator - when the condition is constant void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; for( byte i: 0..9) { SCREEN[i] = cond(i)?m1(i):m2(i); } diff --git a/src/test/kc/ternary-4.c b/src/test/kc/ternary-4.c index 6ace4c534..b9cc487c6 100644 --- a/src/test/kc/ternary-4.c +++ b/src/test/kc/ternary-4.c @@ -1,7 +1,7 @@ // Tests the ternary operator - complex nested conditional operators void main() { - char* const SCREEN = $400; + char* const SCREEN = (char*)$400; char i=0; for(char b: 0..3) { for( char v: 0..3) { diff --git a/src/test/kc/ternary-inference.c b/src/test/kc/ternary-inference.c index a84af6fba..819609094 100644 --- a/src/test/kc/ternary-inference.c +++ b/src/test/kc/ternary-inference.c @@ -1,7 +1,7 @@ // Type inference into the ternary operator void main() { - byte* const screen = 0x400; + byte* const screen = (char*)0x400; for(byte i: 0..10) { screen[i] = (i<5?0x57:'0')+i; } diff --git a/src/test/kc/test-comments-block.c b/src/test/kc/test-comments-block.c index 661c23e99..a122c3b1a 100644 --- a/src/test/kc/test-comments-block.c +++ b/src/test/kc/test-comments-block.c @@ -3,7 +3,7 @@ */ // The C64 screen -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; // One of the bytes used for addition byte a = 'a'; diff --git a/src/test/kc/test-comments-global.c b/src/test/kc/test-comments-global.c index 20c89f752..03210ac88 100644 --- a/src/test/kc/test-comments-global.c +++ b/src/test/kc/test-comments-global.c @@ -1,7 +1,7 @@ // Tests that global variables with initializer gets their comments // The screen (should become a var-comment in ASM) -__ma char * screen = 0x0400; +__ma char * screen = (char*)0x0400; // The program entry point void main() { diff --git a/src/test/kc/test-comments-loop.c b/src/test/kc/test-comments-loop.c index a42e8ebd7..8fa062091 100644 --- a/src/test/kc/test-comments-loop.c +++ b/src/test/kc/test-comments-loop.c @@ -1,5 +1,5 @@ void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; // Do some sums for(byte b: 0..10 ) { SCREEN[b] = 'a'; diff --git a/src/test/kc/test-comments-single.c b/src/test/kc/test-comments-single.c index 65d5f88d3..3a55cbc77 100644 --- a/src/test/kc/test-comments-single.c +++ b/src/test/kc/test-comments-single.c @@ -2,7 +2,7 @@ // Has a bunch of comments that will be moved into the generated ASM // The C64 screen -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; // One of the bytes used for addition byte a = 'a'; diff --git a/src/test/kc/test-comments-usage.c b/src/test/kc/test-comments-usage.c index a6b1f674b..07ab68dfb 100644 --- a/src/test/kc/test-comments-usage.c +++ b/src/test/kc/test-comments-usage.c @@ -1,6 +1,6 @@ // Tests that single-line comments are only included once in the output -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; // The program entry point void main() { diff --git a/src/test/kc/test-interrupt-notype.c b/src/test/kc/test-interrupt-notype.c index 0e4d6ebff..477b9bd5e 100644 --- a/src/test/kc/test-interrupt-notype.c +++ b/src/test/kc/test-interrupt-notype.c @@ -1,6 +1,6 @@ -void()** const KERNEL_IRQ = $0314; -byte* const BG_COLOR = $d020; -byte* const FGCOL = $d021; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const BG_COLOR = (byte*)$d020; +byte* const FGCOL = (byte*)$d021; void main() { *KERNEL_IRQ = &irq; diff --git a/src/test/kc/test-interrupt-volatile-write.c b/src/test/kc/test-interrupt-volatile-write.c index 9218cd27f..d8b03156d 100644 --- a/src/test/kc/test-interrupt-volatile-write.c +++ b/src/test/kc/test-interrupt-volatile-write.c @@ -1,8 +1,8 @@ // Tests that volatile variables can be both read & written inside & outside interrupts // Currently fails because the modification is optimized away -void()** const KERNEL_IRQ = $0314; -byte* const BG_COLOR = $d020; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const BG_COLOR = (byte*)$d020; volatile byte col = 0; void main() { diff --git a/src/test/kc/test-interrupt-volatile.c b/src/test/kc/test-interrupt-volatile.c index ee6980f75..ec5509537 100644 --- a/src/test/kc/test-interrupt-volatile.c +++ b/src/test/kc/test-interrupt-volatile.c @@ -1,5 +1,5 @@ -void()** const KERNEL_IRQ = $0314; -byte* const BG_COLOR = $d020; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const BG_COLOR = (byte*)$d020; volatile byte col = 0; void main() { diff --git a/src/test/kc/test-interrupt.c b/src/test/kc/test-interrupt.c index 0e4d6ebff..477b9bd5e 100644 --- a/src/test/kc/test-interrupt.c +++ b/src/test/kc/test-interrupt.c @@ -1,6 +1,6 @@ -void()** const KERNEL_IRQ = $0314; -byte* const BG_COLOR = $d020; -byte* const FGCOL = $d021; +void()** const KERNEL_IRQ = (void()**)$0314; +byte* const BG_COLOR = (byte*)$d020; +byte* const FGCOL = (byte*)$d021; void main() { *KERNEL_IRQ = &irq; diff --git a/src/test/kc/test-kasm-pc-error.c b/src/test/kc/test-kasm-pc-error.c index ef5cd913e..8f99bd781 100644 --- a/src/test/kc/test-kasm-pc-error.c +++ b/src/test/kc/test-kasm-pc-error.c @@ -7,7 +7,7 @@ char a[] = kickasm(pc TABLE) {{ }}; void main() { - byte* BORDER_COLOR = $d020; + byte* BORDER_COLOR = (char*)$d020; byte i=0; while(true) { *BORDER_COLOR = TABLE[i++]; diff --git a/src/test/kc/test-kasm-pc.c b/src/test/kc/test-kasm-pc.c index 262bb5274..272b1ec0a 100644 --- a/src/test/kc/test-kasm-pc.c +++ b/src/test/kc/test-kasm-pc.c @@ -5,7 +5,7 @@ __address(0x2000) byte TABLE[] = kickasm {{ }}; void main() { - byte* BORDER_COLOR = $d020; + byte* BORDER_COLOR = (char*)$d020; byte i=0; while(true) { *BORDER_COLOR = TABLE[i++]; diff --git a/src/test/kc/test-keyboard.c b/src/test/kc/test-keyboard.c index 1abb5e5cf..fbab7f7f4 100644 --- a/src/test/kc/test-keyboard.c +++ b/src/test/kc/test-keyboard.c @@ -4,7 +4,7 @@ void main() { // Clear screen - for(byte* sc = $400; sc<$400+1000;sc++) { + for(byte* sc = (char*)$400; sc<$400+1000;sc++) { *sc = ' '; } // Init keyboard @@ -12,7 +12,7 @@ void main() { // Loop while(true) { do {} while (*RASTER!=$ff); - byte* screen = $400; + byte* screen = (char*)$400; // Read & print keyboard matrix for(byte row : 0..7) { byte row_pressed_bits = keyboard_matrix_read(row); diff --git a/src/test/kc/test-lohiconst.c b/src/test/kc/test-lohiconst.c index 2d8bf39e1..73b36b20d 100644 --- a/src/test/kc/test-lohiconst.c +++ b/src/test/kc/test-lohiconst.c @@ -2,7 +2,7 @@ const dword PI_u4f28 = $3243f6a9; void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; SCREEN[0] = > > PI_u4f28; SCREEN[1] = < > PI_u4f28; SCREEN[2] = > < PI_u4f28; diff --git a/src/test/kc/test-multiply-16bit.c b/src/test/kc/test-multiply-16bit.c index 4bf84ea23..241c1d8f5 100644 --- a/src/test/kc/test-multiply-16bit.c +++ b/src/test/kc/test-multiply-16bit.c @@ -3,7 +3,7 @@ #include <multiply.h> #include <fastmultiply.h> -byte* BG_COLOR = $d021; +byte* BG_COLOR = (char*)$d021; void main() { *BG_COLOR = 5; diff --git a/src/test/kc/test-multiply-8bit.c b/src/test/kc/test-multiply-8bit.c index dc3e6c5a0..3297b6d4c 100644 --- a/src/test/kc/test-multiply-8bit.c +++ b/src/test/kc/test-multiply-8bit.c @@ -3,7 +3,7 @@ #include <multiply.h> #include <fastmultiply.h> -byte* BG_COLOR = $d021; +byte* BG_COLOR = (char*)$d021; void main() { *BG_COLOR = 5; @@ -96,7 +96,7 @@ void mulf_init_asm() { bne !- } // Ensure the ASM tables are not detected as unused by the optimizer - byte* mem = $ff; + byte* mem = (byte*)$ff; *mem = *mula_sqr1_lo; *mem = *mula_sqr1_hi; *mem = *mula_sqr2_lo; diff --git a/src/test/kc/test-scroll-up.c b/src/test/kc/test-scroll-up.c index 2af0f16dc..5e40cd473 100644 --- a/src/test/kc/test-scroll-up.c +++ b/src/test/kc/test-scroll-up.c @@ -1,6 +1,6 @@ // Tests different ways of scrolling up the screen -byte* const screen = $400; +byte* const screen = (char*)$400; void main() { scrollup1(); diff --git a/src/test/kc/test-word-size-arrays.c b/src/test/kc/test-word-size-arrays.c index c85272564..ec7b551ce 100644 --- a/src/test/kc/test-word-size-arrays.c +++ b/src/test/kc/test-word-size-arrays.c @@ -1,6 +1,6 @@ void main() { - byte* screen = $400; + byte* screen = (char*)$400; word line; for (line = 0; line < 40*24; line += 40) { for (byte c=0; c<40; ++c) diff --git a/src/test/kc/tetris-npe.c b/src/test/kc/tetris-npe.c index 18de261e1..c6683aa11 100644 --- a/src/test/kc/tetris-npe.c +++ b/src/test/kc/tetris-npe.c @@ -1,7 +1,7 @@ // NullPointerException using current_movedown_rate in the main loop -byte* RASTER = $d012; -byte* SCREEN = $400; +byte* RASTER = (byte*)$d012; +byte* SCREEN = (byte*)$400; byte ypos = 0; byte RATE = 50; byte counter = RATE; diff --git a/src/test/kc/textbox.c b/src/test/kc/textbox.c index 98b1f16be..b42496e3c 100644 --- a/src/test/kc/textbox.c +++ b/src/test/kc/textbox.c @@ -1,7 +1,7 @@ /* Textbox routine with word wrap for KickC by Scan/Desire */ #include <c64.h> -byte* const screen = $0400; +byte* const screen = (byte*)$400; const byte text[] = "this is a small test with word wrap, if a word is too long it moves it to the next line. isn't that supercalifragilisticexpialidocious? i think it's cool!"; const byte text2[] = "textbox by scan of desire"; diff --git a/src/test/kc/tod018-problem.c b/src/test/kc/tod018-problem.c index e2e0bfa1d..90368589d 100644 --- a/src/test/kc/tod018-problem.c +++ b/src/test/kc/tod018-problem.c @@ -1,8 +1,8 @@ // Tests a problem with tod018 not calculating types correctly void main() { - byte * const D018 = 0xd018; - byte* const screen = 0x0400; + byte* const D018 = (byte*)0xd018; + byte* const screen = (byte*)0x0400; byte d018val = >(screen&$3fff); *D018 = d018val; } diff --git a/src/test/kc/tofewparams.c b/src/test/kc/tofewparams.c index 7072b647c..4b0738ccc 100644 --- a/src/test/kc/tofewparams.c +++ b/src/test/kc/tofewparams.c @@ -6,7 +6,7 @@ void main() { void plot(byte x, byte y) { - byte* const screen = $0400; + byte* const screen = (byte*)$400; byte* pos = screen+x+y; *pos = 1; } \ No newline at end of file diff --git a/src/test/kc/tomanyparams.c b/src/test/kc/tomanyparams.c index 0270f03bb..21635f987 100644 --- a/src/test/kc/tomanyparams.c +++ b/src/test/kc/tomanyparams.c @@ -6,7 +6,7 @@ void main() { void plot(byte x, byte y) { - byte* const screen = $0400; + byte* const screen = (byte*)$400; byte* pos = screen+x+y; *pos = 1; } \ No newline at end of file diff --git a/src/test/kc/type-inference.c b/src/test/kc/type-inference.c index 3fa991f2a..abe90ac02 100644 --- a/src/test/kc/type-inference.c +++ b/src/test/kc/type-inference.c @@ -1,7 +1,7 @@ // Test inference of integer types in expressions void main() { - word* const screen = 0x0400; + word* const screen = (char*)0x0400; for( byte b: 0..20) { screen[b] = -0x30+b; } diff --git a/src/test/kc/type-mix.c b/src/test/kc/type-mix.c index e3245f2ab..955fa3a09 100644 --- a/src/test/kc/type-mix.c +++ b/src/test/kc/type-mix.c @@ -3,7 +3,7 @@ void main() { signed word w = 0; - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; for (byte i: 0..10) { w = w - 12; diff --git a/src/test/kc/type-promotion-bool-param.c b/src/test/kc/type-promotion-bool-param.c index f58cc1acc..213fd803d 100644 --- a/src/test/kc/type-promotion-bool-param.c +++ b/src/test/kc/type-promotion-bool-param.c @@ -1,6 +1,6 @@ // Test promoting a bool to a byte -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char i = 0; diff --git a/src/test/kc/type-promotion-schar-param.c b/src/test/kc/type-promotion-schar-param.c index 32a266a58..d49839b5e 100644 --- a/src/test/kc/type-promotion-schar-param.c +++ b/src/test/kc/type-promotion-schar-param.c @@ -1,6 +1,6 @@ // Test promotion of signed char parameter to word -unsigned int* const SCREEN = 0x0400; +unsigned int* const SCREEN = (char*)0x0400; int i = 0; void main() { diff --git a/src/test/kc/typedef-0.c b/src/test/kc/typedef-0.c index 652cc886d..8fef8a576 100644 --- a/src/test/kc/typedef-0.c +++ b/src/test/kc/typedef-0.c @@ -3,6 +3,6 @@ typedef byte uint8; void main() { uint8 b = 'a'; - uint8* SCREEN = 0x0400; + uint8* SCREEN = (char*)0x0400; *SCREEN = b; } \ No newline at end of file diff --git a/src/test/kc/typedef-1.c b/src/test/kc/typedef-1.c index d2189bf71..94b02e0d5 100644 --- a/src/test/kc/typedef-1.c +++ b/src/test/kc/typedef-1.c @@ -10,6 +10,6 @@ typedef Point* PointPtr; void main() { Point p = { 4, 7 }; - PointPtr SCREEN = 0x0400; + PointPtr SCREEN = (PointPtr)0x0400; *SCREEN = p; } \ No newline at end of file diff --git a/src/test/kc/typedef-2.c b/src/test/kc/typedef-2.c index 7ba59f90b..606a3dd02 100644 --- a/src/test/kc/typedef-2.c +++ b/src/test/kc/typedef-2.c @@ -1,9 +1,9 @@ typedef unsigned int WORD; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; -char* ptr = 0x1000; +char* ptr = (char*)0x1000; void main() { WORD w = (WORD)&ptr; diff --git a/src/test/kc/typedef-3.c b/src/test/kc/typedef-3.c index fb6ae4482..4a4d4342e 100644 --- a/src/test/kc/typedef-3.c +++ b/src/test/kc/typedef-3.c @@ -1,6 +1,6 @@ // Typedef an array -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; typedef char STR[7]; diff --git a/src/test/kc/typedef-4.c b/src/test/kc/typedef-4.c index 8eada8a8e..a99ea1d3f 100644 --- a/src/test/kc/typedef-4.c +++ b/src/test/kc/typedef-4.c @@ -1,6 +1,6 @@ // Typedef const/volatile type -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; typedef const char C; typedef volatile char V; diff --git a/src/test/kc/typedef-5.c b/src/test/kc/typedef-5.c index 4f56d2b5a..45981c9ea 100644 --- a/src/test/kc/typedef-5.c +++ b/src/test/kc/typedef-5.c @@ -1,12 +1,12 @@ // Typedef a const/volatile type and instantiate a pointer to it -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; typedef const char C; typedef volatile char V; -C * cp = 0xa003; -V * vp = 0xa004; +C * cp = (C*)0xa003; +V * vp = (V*)0xa004; void main() { SCREEN[0] = *cp; diff --git a/src/test/kc/typedef-6.c b/src/test/kc/typedef-6.c index c21e32290..08c6154b0 100644 --- a/src/test/kc/typedef-6.c +++ b/src/test/kc/typedef-6.c @@ -1,12 +1,12 @@ // Typedef pointer to const/volatile type and instantiate it -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; typedef const char * C; typedef volatile char * V; -C cp = 0xa003; -V vp = 0xa004; +C cp = (C)0xa003; +V vp = (V)0xa004; void main() { SCREEN[0] = *cp; diff --git a/src/test/kc/typedef-7.c b/src/test/kc/typedef-7.c index f6522688e..81f7d36a2 100644 --- a/src/test/kc/typedef-7.c +++ b/src/test/kc/typedef-7.c @@ -1,12 +1,12 @@ // Typedef pointer to const/volatile type and instantiate it to const variable -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; typedef const char * C; typedef volatile char * V; -const C cp = 0xa003; -const V vp = 0xa004; +const C cp = (C)0xa003; +const V vp = (V)0xa004; void main() { SCREEN[0] = *cp; diff --git a/src/test/kc/typeid-plus-byte-problem.c b/src/test/kc/typeid-plus-byte-problem.c index 36abf0cbe..4f361b4a2 100644 --- a/src/test/kc/typeid-plus-byte-problem.c +++ b/src/test/kc/typeid-plus-byte-problem.c @@ -1,6 +1,6 @@ // Test that byte+byte creates a byte - even when there is a value overflow -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { unsigned byte ubc1 = 12+13+14; diff --git a/src/test/kc/typeid-plus-bytes.c b/src/test/kc/typeid-plus-bytes.c index e3bf867cd..51b59a481 100644 --- a/src/test/kc/typeid-plus-bytes.c +++ b/src/test/kc/typeid-plus-bytes.c @@ -1,7 +1,7 @@ // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable) -byte* const SCREEN = $400; -signed byte* const SSCREEN = $400; +byte* const SCREEN = (byte*)$400; +signed byte* const SSCREEN = (signed byte*)$400; byte idx = 0; void main() { diff --git a/src/test/kc/typeid-simple.c b/src/test/kc/typeid-simple.c index 8ee95b5e3..ab036be71 100644 --- a/src/test/kc/typeid-simple.c +++ b/src/test/kc/typeid-simple.c @@ -1,6 +1,6 @@ // Test typeid() of the different types void main() { - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte idx = 0; // Simple types SCREEN[idx++] = typeid(void); diff --git a/src/test/kc/typemismatch.c b/src/test/kc/typemismatch.c index 638efdaed..3920996bc 100644 --- a/src/test/kc/typemismatch.c +++ b/src/test/kc/typemismatch.c @@ -2,6 +2,6 @@ void main() { word w = 5000; byte b = w; - byte* const screen = 0x0400; + byte* const screen = (char*)0x0400; screen[0] = b; } \ No newline at end of file diff --git a/src/test/kc/unary-plus.c b/src/test/kc/unary-plus.c index d4042c5a4..c385511f6 100644 --- a/src/test/kc/unary-plus.c +++ b/src/test/kc/unary-plus.c @@ -2,8 +2,8 @@ void main() { - char* SCREEN = 0x0400; - int* SCREEN2 = 0x0428; + char* SCREEN = (char*)0x0400; + int* SCREEN2 = (int*)0x0428; char i = +3; SCREEN[0] = i; diff --git a/src/test/kc/uninitialized.c b/src/test/kc/uninitialized.c index 67eac3c79..94ed62081 100644 --- a/src/test/kc/uninitialized.c +++ b/src/test/kc/uninitialized.c @@ -4,7 +4,7 @@ byte b; word w; byte* ptr; -byte* const SCREEN = $400; +byte* const SCREEN = (char*)$400; void main() { SCREEN[0] = b; diff --git a/src/test/kc/unknown-var-problem-2.c b/src/test/kc/unknown-var-problem-2.c index 5c3f0026e..2f5ebe7d1 100644 --- a/src/test/kc/unknown-var-problem-2.c +++ b/src/test/kc/unknown-var-problem-2.c @@ -1,6 +1,6 @@ // Demonstrates problem with unknown variable -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; char* const SPRITES_PTR = SCREEN + QWE; void main() { diff --git a/src/test/kc/unroll-call.c b/src/test/kc/unroll-call.c index 6da24b305..67c4499a9 100644 --- a/src/test/kc/unroll-call.c +++ b/src/test/kc/unroll-call.c @@ -1,7 +1,7 @@ // Unrolling a loop containing an inner call void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; byte a=$10; inline for(byte i: 0..2) { a = plus(a, i); diff --git a/src/test/kc/unroll-for-min.c b/src/test/kc/unroll-for-min.c index e764eaee9..f2828677d 100644 --- a/src/test/kc/unroll-for-min.c +++ b/src/test/kc/unroll-for-min.c @@ -1,6 +1,6 @@ // Minimal unrolled ranged for() loop void main() { - char* SCREEN = 0x0400; + char* SCREEN = (char*)0x0400; inline for(char i : 0..2) { SCREEN[i] = 'a'; } diff --git a/src/test/kc/unroll-infinite.c b/src/test/kc/unroll-infinite.c index 1b5e059f4..782b85827 100644 --- a/src/test/kc/unroll-infinite.c +++ b/src/test/kc/unroll-infinite.c @@ -1,7 +1,7 @@ // Unrolling an infinite loop void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; byte b=0; inline do { diff --git a/src/test/kc/unroll-loop-modifyvar.c b/src/test/kc/unroll-loop-modifyvar.c index 65458cba4..d6d169b9d 100644 --- a/src/test/kc/unroll-loop-modifyvar.c +++ b/src/test/kc/unroll-loop-modifyvar.c @@ -1,7 +1,7 @@ // An unrolled loop modifying a var used later void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; byte a=3; inline do { diff --git a/src/test/kc/unroll-screenfill-for-double.c b/src/test/kc/unroll-screenfill-for-double.c index 959c75d56..1d606a542 100644 --- a/src/test/kc/unroll-screenfill-for-double.c +++ b/src/test/kc/unroll-screenfill-for-double.c @@ -1,7 +1,7 @@ // Fills the screen using two unrolled ranged for()-loops void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; inline for(byte x: 0..10) { inline for(byte line: 0..10) { (SCREEN+line*40)[x] = x; diff --git a/src/test/kc/unroll-screenfill-for.c b/src/test/kc/unroll-screenfill-for.c index 2a8b0b32d..bf9bc6c30 100644 --- a/src/test/kc/unroll-screenfill-for.c +++ b/src/test/kc/unroll-screenfill-for.c @@ -1,7 +1,7 @@ // Fills the screen using an unrolled inner ranged for()-loop void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; for(byte x: 0..39) { inline for(byte line: 0..24) { diff --git a/src/test/kc/unroll-screenfill-while.c b/src/test/kc/unroll-screenfill-while.c index b860a5e6b..558b1c791 100644 --- a/src/test/kc/unroll-screenfill-while.c +++ b/src/test/kc/unroll-screenfill-while.c @@ -1,7 +1,7 @@ // Fills the screen using an unrolled inner while()-loop void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; for(byte x: 0..39) { byte line = 0; inline while(line!=25) { diff --git a/src/test/kc/unroll-while-min.c b/src/test/kc/unroll-while-min.c index 485b6d867..5ecc54f38 100644 --- a/src/test/kc/unroll-while-min.c +++ b/src/test/kc/unroll-while-min.c @@ -1,6 +1,6 @@ // Minimal unrolled while() loop void main() { - char* SCREEN = $400; + char* SCREEN = (char*)$400; char i=0; inline while(i<2) { SCREEN[i++] = 'a'; diff --git a/src/test/kc/unused-irq.c b/src/test/kc/unused-irq.c index d2c253c36..cb02b6eca 100644 --- a/src/test/kc/unused-irq.c +++ b/src/test/kc/unused-irq.c @@ -1,12 +1,12 @@ // Unused interrupts pointing to each other but never used from main loop - should be optimized away -byte* const SCREEN = 0x0400; +byte* const SCREEN = (char*)0x0400; void main() { *SCREEN = 'x'; } -void()** const HARDWARE_IRQ = $fffe; +void()** const HARDWARE_IRQ = (void()**)$fffe; // Unused Interrupt Routine __interrupt void irq1() { diff --git a/src/test/kc/unused-method.c b/src/test/kc/unused-method.c index 994967839..0ca5bcfe0 100644 --- a/src/test/kc/unused-method.c +++ b/src/test/kc/unused-method.c @@ -1,5 +1,5 @@ void main() { - byte* screen = $0400; + byte* screen = (byte*)$400; screen[0] = 1; } diff --git a/src/test/kc/unused-vars.c b/src/test/kc/unused-vars.c index 9d8981241..1c69b72d5 100644 --- a/src/test/kc/unused-vars.c +++ b/src/test/kc/unused-vars.c @@ -1,9 +1,9 @@ // used vars -byte* const SCREEN = $0400; +byte* const SCREEN = (byte*)$400; byte b=2/2; // unused vars -byte* const BG_COLOR = $d021; +byte* const BG_COLOR = (char*)$d021; byte msg[] = "hello world"; byte arr[] = { 7, 8, 9}; byte c=1; @@ -13,7 +13,7 @@ word d=1000; void main() { // used vars byte col=2; - byte* COLS=$d800; + byte* COLS=(byte*)$d800; // unused vars byte e=3+3+3+s(); // The call to s() should survive even when e is eliminated word f=2000+2000+d+b++; // b++ should survive even when f is eliminated. diff --git a/src/test/kc/unusedblockproblem.c b/src/test/kc/unusedblockproblem.c index 05fe301f6..6e085644d 100644 --- a/src/test/kc/unusedblockproblem.c +++ b/src/test/kc/unusedblockproblem.c @@ -1,7 +1,7 @@ // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table) void main() { - byte* SCREEN = $400; + byte* SCREEN = (char*)$400; while(true) { (*SCREEN)++; } diff --git a/src/test/kc/useglobal.c b/src/test/kc/useglobal.c index 2845105c0..aeada82f9 100644 --- a/src/test/kc/useglobal.c +++ b/src/test/kc/useglobal.c @@ -1,5 +1,5 @@ // Tests procedures using global variables (should not fail) -byte* SCREEN = $0400; +byte* SCREEN = (byte*)$400; void main() { *SCREEN = 1; } \ No newline at end of file diff --git a/src/test/kc/useuninitialized.c b/src/test/kc/useuninitialized.c index 2283a0b03..e41a75f6e 100644 --- a/src/test/kc/useuninitialized.c +++ b/src/test/kc/useuninitialized.c @@ -7,7 +7,7 @@ byte w=2; void main() { s=b+1; b=3; - byte* screen = $0400; + byte* screen = (byte*)$400; *screen = b; *(screen+1) = s; } \ No newline at end of file diff --git a/src/test/kc/useuninitialized2.c b/src/test/kc/useuninitialized2.c index f47ba6f8c..a419a75e2 100644 --- a/src/test/kc/useuninitialized2.c +++ b/src/test/kc/useuninitialized2.c @@ -3,7 +3,7 @@ void main() { const byte b = a; const byte a = 'c'; - byte* screen = $400; + byte* screen = (char*)$400; screen[0] = a; screen[1] = b; } \ No newline at end of file diff --git a/src/test/kc/var-export.c b/src/test/kc/var-export.c index 2814d7871..d466276f0 100644 --- a/src/test/kc/var-export.c +++ b/src/test/kc/var-export.c @@ -1,6 +1,6 @@ // Test the export directive usable for ensuring a data variable is always added to the output - even if it is never used -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; void main() { SCREEN[0] = 'x'; diff --git a/src/test/kc/var-forward-problem.c b/src/test/kc/var-forward-problem.c index ba21106db..6c7edd1a8 100644 --- a/src/test/kc/var-forward-problem.c +++ b/src/test/kc/var-forward-problem.c @@ -4,5 +4,5 @@ void main() { *screen = b; } -byte* const screen = $400; +byte* const screen = (char*)$400; const byte b = 'a'; \ No newline at end of file diff --git a/src/test/kc/var-register-noarg.c b/src/test/kc/var-register-noarg.c index f4ddfc66a..48977cc52 100644 --- a/src/test/kc/var-register-noarg.c +++ b/src/test/kc/var-register-noarg.c @@ -2,7 +2,7 @@ #pragma encoding(screencode_upper) -char* SCREEN = 0x0400; +char* SCREEN = (char*)0x0400; char MSG[] = "CAMELOT!"; void main() { diff --git a/src/test/kc/var-register-zp-2.c b/src/test/kc/var-register-zp-2.c index b38a1531c..9dd107978 100644 --- a/src/test/kc/var-register-zp-2.c +++ b/src/test/kc/var-register-zp-2.c @@ -1,6 +1,6 @@ // Test declaring a variable as register on a specific ZP address -int* SCREEN = 0x0400; +int* SCREEN = (int*)0x0400; void main() { __address(257) char i=0; diff --git a/src/test/kc/var-register-zp-3.c b/src/test/kc/var-register-zp-3.c index d924bc13b..b559dbe60 100644 --- a/src/test/kc/var-register-zp-3.c +++ b/src/test/kc/var-register-zp-3.c @@ -1,6 +1,6 @@ // Test declaring a variable as register on a specific ZP address -char* screen = $400; +char* screen = (char*)$400; void main() { print2(screen, "hello"); diff --git a/src/test/kc/var-register-zp.c b/src/test/kc/var-register-zp.c index 707d757a8..2dfc08c3b 100644 --- a/src/test/kc/var-register-zp.c +++ b/src/test/kc/var-register-zp.c @@ -1,6 +1,6 @@ // Test declaring a variable as register on a specific ZP address -int* SCREEN = 0x0400; +int* SCREEN = (int*)0x0400; void main() { __address(0x2) char i=0; diff --git a/src/test/kc/var-register.c b/src/test/kc/var-register.c index ca84de707..954e8c26e 100644 --- a/src/test/kc/var-register.c +++ b/src/test/kc/var-register.c @@ -12,6 +12,6 @@ void main() { } void print(register(X) byte idx, byte val) { - byte* SCREEN = $0400; + byte* SCREEN = (byte*)$400; SCREEN[idx] = val; } \ No newline at end of file diff --git a/src/test/kc/varcall-1.c b/src/test/kc/varcall-1.c index 95b7441e6..c3da5a8ce 100644 --- a/src/test/kc/varcall-1.c +++ b/src/test/kc/varcall-1.c @@ -6,7 +6,7 @@ void main() { setbg(0x0b); } -char * const BGCOL = 0xd021; +char * const BGCOL = (char *)0xd021; __varcall void setbg(char col) { *BGCOL = col; diff --git a/src/test/kc/varcall-2.c b/src/test/kc/varcall-2.c index 5d28fd857..d90e0b590 100644 --- a/src/test/kc/varcall-2.c +++ b/src/test/kc/varcall-2.c @@ -1,7 +1,7 @@ // Test __varcall calling convention // Return value -char * const BGCOL = 0xd021; +char * const BGCOL = (char*)0xd021; void main() { char a = 1; diff --git a/src/test/kc/varcall-3.c b/src/test/kc/varcall-3.c index b6b1d0279..76cdb0e9d 100644 --- a/src/test/kc/varcall-3.c +++ b/src/test/kc/varcall-3.c @@ -1,7 +1,7 @@ // Test __varcall calling convention // Larger type parameter & return value -int * const BGCOL = 0xd020; +int * const BGCOL = (int *)0xd020; void main() { int a = 0x0102; diff --git a/src/test/kc/varcall-4.c b/src/test/kc/varcall-4.c index 2b21060c5..f5e00cc96 100644 --- a/src/test/kc/varcall-4.c +++ b/src/test/kc/varcall-4.c @@ -6,7 +6,7 @@ struct Cols { char bg; }; -struct Cols * const COLS = 0xd020; +struct Cols * const COLS = (struct Cols *)0xd020; void main() { struct Cols a = { 1, 2 }; diff --git a/src/test/kc/varmodel-ma_mem-2.c b/src/test/kc/varmodel-ma_mem-2.c index c8d59d3e7..95b961f3f 100644 --- a/src/test/kc/varmodel-ma_mem-2.c +++ b/src/test/kc/varmodel-ma_mem-2.c @@ -4,7 +4,7 @@ void main() { // A local pointer - char* screen = 0x0400; + char* screen = (char*)0x0400; // A local counter for( char i: 0..5 ) *(screen++) = 'a'; diff --git a/src/test/kc/varmodel-ma_mem-3.c b/src/test/kc/varmodel-ma_mem-3.c index 07e984950..fc822c9e1 100644 --- a/src/test/kc/varmodel-ma_mem-3.c +++ b/src/test/kc/varmodel-ma_mem-3.c @@ -9,7 +9,7 @@ void main() { void model_ma_mem() { // A local pointer - char* screen = 0x0400; + char* screen = (char*)0x0400; // A local counter for( char i: 0..5 ) *(screen++) = 'a'; @@ -19,7 +19,7 @@ void model_ma_mem() { void model_ssa_zp() { // A local pointer - char* screen = 0x0428; + char* screen = (char*)0x0428; // A local counter for( char i: 0..5 ) *(screen++) = 'b'; diff --git a/src/test/kc/varmodel-ma_mem-4.c b/src/test/kc/varmodel-ma_mem-4.c index 90702c856..3d7283d95 100644 --- a/src/test/kc/varmodel-ma_mem-4.c +++ b/src/test/kc/varmodel-ma_mem-4.c @@ -3,7 +3,7 @@ #pragma var_model(ma_mem, pointer_ssa_zp) -char* screen = 0x0400; +char* screen = (char*)0x0400; char a = 'a'; diff --git a/src/test/kc/varmodel-ma_mem-5.c b/src/test/kc/varmodel-ma_mem-5.c index 4bb47c1bf..53529c63f 100644 --- a/src/test/kc/varmodel-ma_mem-5.c +++ b/src/test/kc/varmodel-ma_mem-5.c @@ -3,7 +3,7 @@ #pragma var_model(ma_mem, pointer_ssa_zp) -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { char i=0; diff --git a/src/test/kc/varmodel-ma_mem.c b/src/test/kc/varmodel-ma_mem.c index 00b76fbc7..78ac1f768 100644 --- a/src/test/kc/varmodel-ma_mem.c +++ b/src/test/kc/varmodel-ma_mem.c @@ -4,7 +4,7 @@ void main() { // A local pointer - char* screen = 0x0400; + char* screen = (char*)0x0400; // A local counter for( char i: 0..5 ) *(screen++) = 'a'; diff --git a/src/test/kc/varmodel-unknown.c b/src/test/kc/varmodel-unknown.c index 7038473c4..e09e862da 100644 --- a/src/test/kc/varmodel-unknown.c +++ b/src/test/kc/varmodel-unknown.c @@ -2,6 +2,6 @@ #pragma var_model(qweasd) void main() { - char* const SCREEN = 0x0400; + char* const SCREEN = (char*)0x0400; *SCREEN = 'a'; } \ No newline at end of file diff --git a/src/test/kc/void-parameter.c b/src/test/kc/void-parameter.c index 00bbd6381..9ddf6676b 100644 --- a/src/test/kc/void-parameter.c +++ b/src/test/kc/void-parameter.c @@ -7,7 +7,7 @@ void main(void) { print(); } -byte* const SCREEN = 0x400; +byte* const SCREEN = (char*)0x400; byte idx = 0; void print(void) { diff --git a/src/test/kc/volatile-0.c b/src/test/kc/volatile-0.c index 4bada517c..22236c643 100644 --- a/src/test/kc/volatile-0.c +++ b/src/test/kc/volatile-0.c @@ -2,7 +2,7 @@ volatile char i = 3; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { while(i<7) diff --git a/src/test/kc/volatile-1.c b/src/test/kc/volatile-1.c index f11676a1e..e58ef03aa 100644 --- a/src/test/kc/volatile-1.c +++ b/src/test/kc/volatile-1.c @@ -1,6 +1,6 @@ // Test that volatile vars are turned into load/store -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; void main() { volatile char i = 3; diff --git a/src/test/kc/volatile-2.c b/src/test/kc/volatile-2.c index 1ee9f3b1f..6ba484c40 100644 --- a/src/test/kc/volatile-2.c +++ b/src/test/kc/volatile-2.c @@ -1,6 +1,6 @@ // Test that volatile const vars are turned into load/store -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; const volatile char ch = 3; diff --git a/src/test/kc/voronoi.c b/src/test/kc/voronoi.c index 7e176734b..917482e43 100644 --- a/src/test/kc/voronoi.c +++ b/src/test/kc/voronoi.c @@ -1,6 +1,6 @@ // The screen -byte *SCREEN = $0400; -byte *COLORS = $D800; +byte *SCREEN = (byte*)$400; +byte *COLORS = (byte*)$D800; byte FILL = 230; diff --git a/src/test/kc/word-array-0.c b/src/test/kc/word-array-0.c index dcbf4060c..2750f55d1 100644 --- a/src/test/kc/word-array-0.c +++ b/src/test/kc/word-array-0.c @@ -1,7 +1,7 @@ // Tests a simple word array void main() { - byte* const SCREEN = $400+6*40; - word words[3] = $0400; + byte* const SCREEN = (char*)$400+6*40; + word words[3] = (word*)$0400; word w1 = words[1]; SCREEN[0] = <w1; SCREEN[1] = >w1; diff --git a/src/test/kc/word-array-1.c b/src/test/kc/word-array-1.c index 573e07bfb..028cd97be 100644 --- a/src/test/kc/word-array-1.c +++ b/src/test/kc/word-array-1.c @@ -2,7 +2,7 @@ void main() { // Clever word array that represents C64 numbers 0-7 word words[] = { $3031, $3233, $3435, $3637 }; - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte idx = 0; for( byte i: 0..3) { word w = words[i]; diff --git a/src/test/kc/word-array-2.c b/src/test/kc/word-array-2.c index 82e05c5c8..90e456598 100644 --- a/src/test/kc/word-array-2.c +++ b/src/test/kc/word-array-2.c @@ -7,7 +7,7 @@ void main() { words[(word)i] = ((word)i)*0x100+i; } - word* const SCREEN = $0400; + word* const SCREEN = (word*)$0400; SCREEN[0] = words[(word)255]; } diff --git a/src/test/kc/word-pointer-compound.c b/src/test/kc/word-pointer-compound.c index 9dde5d7f8..3873c5b19 100644 --- a/src/test/kc/word-pointer-compound.c +++ b/src/test/kc/word-pointer-compound.c @@ -7,7 +7,7 @@ void main() { words[i] += $0101; } - byte* const SCREEN = $0400; + byte* const SCREEN = (byte*)$400; SCREEN[0] = >words[0]; SCREEN[1] = <words[0]; diff --git a/src/test/kc/word-pointer-iteration-0.c b/src/test/kc/word-pointer-iteration-0.c index 443a61916..cc31f09a2 100644 --- a/src/test/kc/word-pointer-iteration-0.c +++ b/src/test/kc/word-pointer-iteration-0.c @@ -1,7 +1,7 @@ // Tests simple word pointer iteration void main() { - byte* const SCREEN = $400+40*6; - word* wp = $0400; + byte* const SCREEN = (char*)$400+40*6; + word* wp = (word*)$0400; wp++; SCREEN[0] = <*wp; SCREEN[1] = >*wp; diff --git a/src/test/kc/word-pointer-iteration.c b/src/test/kc/word-pointer-iteration.c index 938b527ac..b9b225308 100644 --- a/src/test/kc/word-pointer-iteration.c +++ b/src/test/kc/word-pointer-iteration.c @@ -2,7 +2,7 @@ void main() { // Clever word array that represents C64 numbers 0-7 word words[] = { $3130, $3332, $3534, $3736}; - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte idx = 0; word* wp = words; for( byte i: 0..3) { diff --git a/src/test/kc/word-pointer-math-0.c b/src/test/kc/word-pointer-math-0.c index bf8ea5796..767f35841 100644 --- a/src/test/kc/word-pointer-math-0.c +++ b/src/test/kc/word-pointer-math-0.c @@ -1,7 +1,7 @@ // Tests simple word pointer math void main() { - word* words = $0400; - byte* const SCREEN = $400+6*40; + word* words = (word*)$0400; + byte* const SCREEN = (byte*)$400+6*40; word w1 = *(words+1); SCREEN[0] = <w1; SCREEN[1] = >w1; diff --git a/src/test/kc/word-pointer-math-1.c b/src/test/kc/word-pointer-math-1.c index 43c96c2e7..2d56be04c 100644 --- a/src/test/kc/word-pointer-math-1.c +++ b/src/test/kc/word-pointer-math-1.c @@ -1,8 +1,8 @@ // Tests word pointer math - subtracting two word pointers void main() { - word* w1 = 0x1000; - word* w2 = 0x1140; + word* w1 = (word*)0x1000; + word* w2 = (word*)0x1140; word wd = w2 - w1; - word* const SCREEN = 0x0400; + word* const SCREEN = (word*)0x0400; *SCREEN = wd; } diff --git a/src/test/kc/word-pointer-math.c b/src/test/kc/word-pointer-math.c index abf272e74..54782c931 100644 --- a/src/test/kc/word-pointer-math.c +++ b/src/test/kc/word-pointer-math.c @@ -2,7 +2,7 @@ void main() { // Clever word array that represents C64 numbers 0-7 word words[] = { $3130, $3332, $3534, $3736}; - byte* const SCREEN = $400; + byte* const SCREEN = (char*)$400; byte idx = 0; for( byte i: 0..3) { word w = *(words+i); diff --git a/src/test/kc/zeropage-exhausted.c b/src/test/kc/zeropage-exhausted.c index ace80ee6b..431b9ff72 100644 --- a/src/test/kc/zeropage-exhausted.c +++ b/src/test/kc/zeropage-exhausted.c @@ -1,11 +1,11 @@ // Tests warning when running out of zeropage-addresses for variables // Start by reserving most of zeropage (254 bytes) -#pragma zp_reserve(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254) +#pragma zp_reserve(1..254) // And then allocate a 2-byte-variable void main() { - int* const SCREEN = 0x0400; + int* const SCREEN = (int*)0x0400; for(__zp int i=0;i<10;i++) SCREEN[(char)i] = i; } diff --git a/src/test/kc/zeropage-sinus.c b/src/test/kc/zeropage-sinus.c index a8b3bafaa..cfc24b93e 100644 --- a/src/test/kc/zeropage-sinus.c +++ b/src/test/kc/zeropage-sinus.c @@ -12,7 +12,7 @@ const unsigned char __align(0x100) SINTABLE[0x100] = kickasm {{ // Storage for saving/restoring zeropage const unsigned char __align(0x100) ZP_STORAGE[0x100]; -char* const SCREEN = 0x0400; +char* const SCREEN = (char*)0x0400; // A single sprite to animate const __align(0x40) char SPRITE[0x40] = kickasm {{ .fill $40,$ff }}; diff --git a/src/test/kc/zp-reserve-coalesce-problem.c b/src/test/kc/zp-reserve-coalesce-problem.c index ce33740c8..82d3224ef 100644 --- a/src/test/kc/zp-reserve-coalesce-problem.c +++ b/src/test/kc/zp-reserve-coalesce-problem.c @@ -13,7 +13,7 @@ char landscapeBase[] = kickasm {{ .fill 14, 0 }}; -char * const lms = 0xa000; +char * const lms = (char*)0xa000; void benchmarkCountdownFor() { __address(0x41) signed char a; diff --git a/src/test/kc/zpparammin.c b/src/test/kc/zpparammin.c index 193cc590c..1a8fcd4fa 100644 --- a/src/test/kc/zpparammin.c +++ b/src/test/kc/zpparammin.c @@ -1,5 +1,5 @@ -byte* SCREEN = $0400; -byte* SCREEN2 = $0400+40; +byte* SCREEN = (byte*)$400; +byte* SCREEN2 = (byte*)$400+40; void main() { for(byte i : 0..10) { diff --git a/src/test/kc/zpptr.c b/src/test/kc/zpptr.c index abccb4a75..d37ee6360 100644 --- a/src/test/kc/zpptr.c +++ b/src/test/kc/zpptr.c @@ -1,5 +1,5 @@ void main() { - byte* zpptr = $1000; + byte* zpptr = (byte*)$1000; for(byte j : 0..10) { for(byte i : 0..10) { for(byte k : 0..10) { diff --git a/src/test/ref/32bit-rols.log b/src/test/ref/32bit-rols.log index ed85b1ce4..b2da72845 100644 --- a/src/test/ref/32bit-rols.log +++ b/src/test/ref/32bit-rols.log @@ -4757,7 +4757,7 @@ dword rol_fixed::val#81 dword rol_fixed::val#82 dword rol_fixed::val#9 void rol_var(dword rol_var::val) -byte~ rol_var::$1 +word~ rol_var::$1 bool~ rol_var::$2 dword~ rol_var::$3 byte rol_var::i @@ -4957,7 +4957,7 @@ dword ror_fixed::val#81 dword ror_fixed::val#82 dword ror_fixed::val#9 void ror_var(dword ror_var::val) -byte~ ror_var::$1 +word~ ror_var::$1 bool~ ror_var::$2 dword~ ror_var::$3 byte ror_var::i diff --git a/src/test/ref/address-4.log b/src/test/ref/address-4.log index 94e863a66..5a8a9aa87 100644 --- a/src/test/ref/address-4.log +++ b/src/test/ref/address-4.log @@ -37,7 +37,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant word* SCREEN = (word*)$400 +constant word* SCREEN = (byte*)$400 constant byte SIZEOF_WORD = 2 void __start() void main() @@ -49,7 +49,7 @@ byte main::i loadstore !zp[-1]:2 Adding number conversion cast (unumber) 8 in main::$0 = main::i < 8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 8 @@ -202,7 +202,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* SCREEN = (word*) 1024 +constant word* SCREEN = (byte*) 1024 void main() byte~ main::$1 reg byte a 22.0 byte~ main::$2 reg byte a 22.0 diff --git a/src/test/ref/address-4.sym b/src/test/ref/address-4.sym index 6dbd8f686..860f247cf 100644 --- a/src/test/ref/address-4.sym +++ b/src/test/ref/address-4.sym @@ -1,4 +1,4 @@ -constant word* SCREEN = (word*) 1024 +constant word* SCREEN = (byte*) 1024 void main() byte~ main::$1 reg byte a 22.0 byte~ main::$2 reg byte a 22.0 diff --git a/src/test/ref/adventofcode/2020-01.log b/src/test/ref/adventofcode/2020-01.log index e8b9faa2c..613c44d1d 100644 --- a/src/test/ref/adventofcode/2020-01.log +++ b/src/test/ref/adventofcode/2020-01.log @@ -1920,8 +1920,8 @@ byte gotoxy::y#0 byte gotoxy::y#1 byte gotoxy::y#2 void main() -byte~ main::$0 -byte~ main::$1 +word~ main::$0 +word~ main::$1 bool~ main::$10 dword~ main::$13 bool~ main::$16 diff --git a/src/test/ref/array-16bit-init.log b/src/test/ref/array-16bit-init.log index 13e08d43e..e23117dd6 100644 --- a/src/test/ref/array-16bit-init.log +++ b/src/test/ref/array-16bit-init.log @@ -35,10 +35,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA constant byte SIZEOF_POINTER = 2 void __start() -constant byte** levelRowOff[$1f] = { (byte*)1, (byte*)2, (byte*)3 } +constant byte** levelRowOff[$1f] = { 1, 2, 3 } void main() -byte~ main::$0 -byte~ main::$1 +word~ main::$0 +word~ main::$1 bool~ main::$2 byte~ main::$3 byte main::c @@ -47,9 +47,6 @@ byte main::c#1 byte main::c#2 byte main::c#3 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 2 -Simplifying constant pointer cast (byte*) 3 Simplifying constant pointer cast (byte*) 12345 Successful SSA optimization PassNCastSimplification Alias main::c#2 = main::c#3 @@ -85,6 +82,9 @@ Constant inlined main::$1 = $1f*SIZEOF_POINTER/SIZEOF_POINTER Constant inlined main::c#0 = 0 Constant inlined main::$0 = $1f*SIZEOF_POINTER Successful SSA optimization Pass2ConstantInlining +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 2 +Finalized unsigned number type (byte) 3 Finalized unsigned number type (byte) $1f Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main @@ -213,7 +213,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE constant byte SIZEOF_POINTER = 2 -constant byte** levelRowOff[$1f] = { (byte*) 1, (byte*) 2, (byte*) 3 } +constant byte** levelRowOff[$1f] = { 1, 2, 3 } void main() byte~ main::$3 reg byte a 22.0 byte main::c diff --git a/src/test/ref/array-16bit-init.sym b/src/test/ref/array-16bit-init.sym index 478d4d69f..1728b2f4a 100644 --- a/src/test/ref/array-16bit-init.sym +++ b/src/test/ref/array-16bit-init.sym @@ -1,5 +1,5 @@ constant byte SIZEOF_POINTER = 2 -constant byte** levelRowOff[$1f] = { (byte*) 1, (byte*) 2, (byte*) 3 } +constant byte** levelRowOff[$1f] = { 1, 2, 3 } void main() byte~ main::$3 reg byte a 22.0 byte main::c diff --git a/src/test/ref/atarixl-md5b.asm b/src/test/ref/atarixl-md5b.asm index 6fc61ae17..f332cd10e 100644 --- a/src/test/ref/atarixl-md5b.asm +++ b/src/test/ref/atarixl-md5b.asm @@ -11,7 +11,7 @@ .label idx = $b .segment Code __start: { - // __ma char * line = 0x0400 + // __ma char * line = (char*)0x0400 lda #<$400 sta.z line lda #>$400 @@ -29,7 +29,7 @@ main: { lda #>$400 sta.z s+1 __b1: - // for(char* s=0x0400;s<0x0800;s++) + // for(char* s=(char*)0x0400;s<0x0800;s++) lda.z s+1 cmp #>$800 bcc __b2 @@ -47,7 +47,7 @@ main: { lda #' ' ldy #0 sta (s),y - // for(char* s=0x0400;s<0x0800;s++) + // for(char* s=(char*)0x0400;s<0x0800;s++) inc.z s bne !+ inc.z s+1 diff --git a/src/test/ref/atarixl-md5b.log b/src/test/ref/atarixl-md5b.log index 69f908ce8..6fbf25035 100644 --- a/src/test/ref/atarixl-md5b.log +++ b/src/test/ref/atarixl-md5b.log @@ -1386,7 +1386,7 @@ Score: 1690 // __start __start: { // __start::__init1 - // __ma char * line = 0x0400 + // __ma char * line = (char*)0x0400 // [1] line = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z line @@ -1416,7 +1416,7 @@ main: { sta.z s+1 // main::@1 __b1: - // for(char* s=0x0400;s<0x0800;s++) + // for(char* s=(char*)0x0400;s<0x0800;s++) // [8] if(main::s#2<$800) goto main::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z s+1 cmp #>$800 @@ -1443,7 +1443,7 @@ main: { lda #' ' ldy #0 sta (s),y - // for(char* s=0x0400;s<0x0800;s++) + // for(char* s=(char*)0x0400;s<0x0800;s++) // [13] main::s#1 = ++ main::s#2 -- pbuz1=_inc_pbuz1 inc.z s bne !+ diff --git a/src/test/ref/c64dtv-8bppcharstretch.cfg b/src/test/ref/c64dtv-8bppcharstretch.cfg index 85c82e9e5..d25a00b34 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.cfg +++ b/src/test/ref/c64dtv-8bppcharstretch.cfg @@ -107,7 +107,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [62] gfx_init_plane_charset8::ch#8 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::ch#1, gfx_init_plane_charset8::@9/0 ) [62] gfx_init_plane_charset8::col#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::col#1, gfx_init_plane_charset8::@9/0 ) - [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*)$4000 ) + [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*) 16384 ) [62] gfx_init_plane_charset8::chargen#3 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::chargen#1, gfx_init_plane_charset8::@9/CHARGEN+1 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log index cf8b64140..8ccdc6236 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/ref/c64dtv-8bppcharstretch.log @@ -447,7 +447,8 @@ Adding number conversion cast (unumber) $f in gfx_init_screen0::$2 = gfx_init_sc Adding number conversion cast (unumber) gfx_init_screen0::$2 in gfx_init_screen0::$2 = gfx_init_screen0::cx#2 & (unumber)$f Adding number conversion cast (unumber) gfx_init_screen0::$3 in gfx_init_screen0::$3 = gfx_init_screen0::$1 | gfx_init_screen0::$2 Adding number conversion cast (unumber) $4000 in gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)CHARSET8/$4000 -Adding number conversion cast (unumber) $3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(word)CHARSET8&$3fff +Adding number conversion cast (unumber) (word)CHARSET8&$3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(word)CHARSET8&$3fff +Adding number conversion cast (unumber) $3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(unumber)(word)CHARSET8&$3fff Adding number conversion cast (unumber) 1 in gfx_init_plane_charset8::chargen#0 = CHARGEN+1 Adding number conversion cast (unumber) $80 in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & $80 Adding number conversion cast (unumber) gfx_init_plane_charset8::$2 in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & (unumber)$80 @@ -457,7 +458,6 @@ Adding number conversion cast (unumber) gfx_init_plane_charset8::$5 in gfx_init_ Successful SSA optimization PassNAddNumberTypeConversions Adding number conversion cast (unumber) $40 in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&(unumber)$3fff/$40|(unumber)>(word)SCREEN&(unumber)$3fff/4 Adding number conversion cast (unumber) 4 in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(unumber)>(word)SCREEN&(unumber)$3fff/4 -Adding number conversion cast (unumber) $4000 in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(word)CHARSET8&(unumber)$3fff Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *VICII_CONTROL1 = (unumber)VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Inlining cast *DTV_PLANEA_START_HI = (unumber)0 @@ -531,7 +531,8 @@ Simplifying constant integer cast $f Simplifying constant integer cast $10 Simplifying constant integer cast $f Simplifying constant integer cast $4000 -Simplifying constant integer cast $4000 +Simplifying constant pointer cast (byte*) 16384 +Simplifying constant integer cast (word)CHARSET8&(unumber)$3fff Simplifying constant integer cast $3fff Simplifying constant integer cast 1 Simplifying constant integer cast $80 @@ -563,7 +564,6 @@ Finalized unsigned number type (byte) $f Finalized unsigned number type (byte) $10 Finalized unsigned number type (byte) $f Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 Finalized unsigned number type (word) $3fff Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) $80 @@ -630,7 +630,7 @@ Constant gfx_init_screen0::ch#0 = SCREEN Constant gfx_init_screen0::cy#0 = 0 Constant gfx_init_screen0::cx#0 = 0 Constant gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)CHARSET8/$4000 -Constant gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(word)CHARSET8&$3fff +Constant gfx_init_plane_charset8::gfxa#0 = (byte*) 16384+(word)CHARSET8&$3fff Constant gfx_init_plane_charset8::chargen#0 = CHARGEN+1 Constant gfx_init_plane_charset8::col#0 = 0 Constant gfx_init_plane_charset8::ch#0 = 0 @@ -659,7 +659,7 @@ Simplifying constant evaluating to zero (word)CHARSET8&$3fff in Simplifying constant evaluating to zero <SCREEN in [12] *DTV_PLANEA_START_LO = <SCREEN Simplifying constant evaluating to zero <CHARSET8 in [18] *DTV_PLANEB_START_LO = <CHARSET8 Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero $4000 in +Simplifying expression containing zero (byte*) 16384 in Simplifying expression containing zero (byte*)CIA2 in [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)SCREEN/$4000 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return @@ -716,7 +716,7 @@ Inlining constant with var siblings gfx_init_plane_charset8::c#0 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#1 = (byte)$4000/$4000 Constant inlined gfx_init_screen0::cx#0 = 0 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_plane_charset8::gfxbCpuBank#0 -Constant inlined gfx_init_plane_charset8::gfxa#0 = (byte*)$4000 +Constant inlined gfx_init_plane_charset8::gfxa#0 = (byte*) 16384 Constant inlined main::rst#0 = $42 Constant inlined gfx_init_plane_charset8::cp#0 = 0 Constant inlined gfx_init_screen0::cy#0 = 0 @@ -905,7 +905,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [62] gfx_init_plane_charset8::ch#8 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::ch#1, gfx_init_plane_charset8::@9/0 ) [62] gfx_init_plane_charset8::col#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::col#1, gfx_init_plane_charset8::@9/0 ) - [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*)$4000 ) + [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*) 16384 ) [62] gfx_init_plane_charset8::chargen#3 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::chargen#1, gfx_init_plane_charset8::@9/CHARGEN+1 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -1677,7 +1677,7 @@ gfx_init_plane_charset8: { // [62] phi gfx_init_plane_charset8::col#6 = 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta.z col - // [62] phi gfx_init_plane_charset8::gfxa#6 = (byte*)$4000 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + // [62] phi gfx_init_plane_charset8::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -2485,7 +2485,7 @@ gfx_init_plane_charset8: { sta.z ch // [62] phi gfx_init_plane_charset8::col#6 = 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 sta.z col - // [62] phi gfx_init_plane_charset8::gfxa#6 = (byte*)$4000 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + // [62] phi gfx_init_plane_charset8::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 diff --git a/src/test/ref/c64dtv-gfxexplorer.cfg b/src/test/ref/c64dtv-gfxexplorer.cfg index 1fd5b89fc..50b0741df 100644 --- a/src/test/ref/c64dtv-gfxexplorer.cfg +++ b/src/test/ref/c64dtv-gfxexplorer.cfg @@ -660,7 +660,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [349] gfx_init_plane_charset8::ch#8 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::ch#1, gfx_init_plane_charset8::@9/0 ) [349] gfx_init_plane_charset8::col#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::col#1, gfx_init_plane_charset8::@9/0 ) - [349] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*)$4000 ) + [349] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*) 16384 ) [349] gfx_init_plane_charset8::chargen#3 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::chargen#1, gfx_init_plane_charset8::@9/CHARGEN ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -713,7 +713,7 @@ gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9 [372] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@1: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal gfx_init_plane_horisontal::@6 - [373] gfx_init_plane_horisontal::gfxa#6 = phi( gfx_init_plane_horisontal::@6/gfx_init_plane_horisontal::gfxa#7, gfx_init_plane_horisontal/(byte*)$4000 ) + [373] gfx_init_plane_horisontal::gfxa#6 = phi( gfx_init_plane_horisontal::@6/gfx_init_plane_horisontal::gfxa#7, gfx_init_plane_horisontal/(byte*) 16384 ) [373] gfx_init_plane_horisontal::ay#4 = phi( gfx_init_plane_horisontal::@6/gfx_init_plane_horisontal::ay#1, gfx_init_plane_horisontal/0 ) to:gfx_init_plane_horisontal::@2 gfx_init_plane_horisontal::@2: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@4 @@ -754,7 +754,7 @@ gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10 to:gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@1: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical gfx_init_plane_vertical::@3 [391] gfx_init_plane_vertical::by#4 = phi( gfx_init_plane_vertical::@3/gfx_init_plane_vertical::by#1, gfx_init_plane_vertical/0 ) - [391] gfx_init_plane_vertical::gfxb#3 = phi( gfx_init_plane_vertical::@3/gfx_init_plane_vertical::gfxb#1, gfx_init_plane_vertical/(byte*)$4000+PLANE_VERTICAL&$3fff ) + [391] gfx_init_plane_vertical::gfxb#3 = phi( gfx_init_plane_vertical::@3/gfx_init_plane_vertical::gfxb#1, gfx_init_plane_vertical/(byte*) 16384+PLANE_VERTICAL&$3fff ) to:gfx_init_plane_vertical::@2 gfx_init_plane_vertical::@2: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@2 [392] gfx_init_plane_vertical::bx#2 = phi( gfx_init_plane_vertical::@1/0, gfx_init_plane_vertical::@2/gfx_init_plane_vertical::bx#1 ) @@ -782,7 +782,7 @@ gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@ [403] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@1: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@3 - [404] gfx_init_plane_horisontal2::gfxa#3 = phi( gfx_init_plane_horisontal2::@3/gfx_init_plane_horisontal2::gfxa#1, gfx_init_plane_horisontal2/(byte*)$4000 ) + [404] gfx_init_plane_horisontal2::gfxa#3 = phi( gfx_init_plane_horisontal2::@3/gfx_init_plane_horisontal2::gfxa#1, gfx_init_plane_horisontal2/(byte*) 16384 ) [404] gfx_init_plane_horisontal2::ay#4 = phi( gfx_init_plane_horisontal2::@3/gfx_init_plane_horisontal2::ay#1, gfx_init_plane_horisontal2/0 ) to:gfx_init_plane_horisontal2::@2 gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@2 diff --git a/src/test/ref/c64dtv-gfxexplorer.log b/src/test/ref/c64dtv-gfxexplorer.log index 7f67564cb..0f75ccc5f 100644 --- a/src/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/ref/c64dtv-gfxexplorer.log @@ -5793,23 +5793,27 @@ Adding number conversion cast (unumber) gfx_init_VICII_bitmap::$4 in gfx_init_VI Adding number conversion cast (unumber) $4000 in gfx_init_plane_8bppchunky::gfxbCpuBank#0 = (byte)PLANE_8BPP_CHUNKY/$4000 Adding number conversion cast (unumber) $8000 in gfx_init_plane_8bppchunky::$2 = gfx_init_plane_8bppchunky::gfxb#3 == $8000 Adding number conversion cast (unumber) $4000 in gfx_init_plane_horisontal::gfxbCpuBank#0 = (byte)PLANE_HORISONTAL/$4000 -Adding number conversion cast (unumber) $3fff in gfx_init_plane_horisontal::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL&$3fff +Adding number conversion cast (unumber) PLANE_HORISONTAL&$3fff in gfx_init_plane_horisontal::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL&$3fff +Adding number conversion cast (unumber) $3fff in gfx_init_plane_horisontal::gfxa#0 = (byte*)$4000+(unumber)PLANE_HORISONTAL&$3fff Adding number conversion cast (unumber) 4 in gfx_init_plane_horisontal::$2 = gfx_init_plane_horisontal::ay#2 & 4 Adding number conversion cast (unumber) gfx_init_plane_horisontal::$2 in gfx_init_plane_horisontal::$2 = gfx_init_plane_horisontal::ay#2 & (unumber)4 Adding number conversion cast (unumber) 0 in gfx_init_plane_horisontal::$3 = gfx_init_plane_horisontal::$2 == 0 Adding number conversion cast (unumber) 0 in *gfx_init_plane_horisontal::gfxa#3 = 0 Adding number conversion cast (unumber) $ff in *gfx_init_plane_horisontal::gfxa#4 = $ff Adding number conversion cast (unumber) $4000 in gfx_init_plane_horisontal2::gfxbCpuBank#0 = (byte)PLANE_HORISONTAL2/$4000 -Adding number conversion cast (unumber) $3fff in gfx_init_plane_horisontal2::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL2&$3fff +Adding number conversion cast (unumber) PLANE_HORISONTAL2&$3fff in gfx_init_plane_horisontal2::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL2&$3fff +Adding number conversion cast (unumber) $3fff in gfx_init_plane_horisontal2::gfxa#0 = (byte*)$4000+(unumber)PLANE_HORISONTAL2&$3fff Adding number conversion cast (unumber) 2 in gfx_init_plane_horisontal2::$2 = gfx_init_plane_horisontal2::ay#2 / 2 Adding number conversion cast (unumber) gfx_init_plane_horisontal2::$2 in gfx_init_plane_horisontal2::$2 = gfx_init_plane_horisontal2::ay#2 / (unumber)2 Adding number conversion cast (unumber) 3 in gfx_init_plane_horisontal2::$3 = gfx_init_plane_horisontal2::$2 & 3 Adding number conversion cast (unumber) gfx_init_plane_horisontal2::$3 in gfx_init_plane_horisontal2::$3 = gfx_init_plane_horisontal2::$2 & (unumber)3 Adding number conversion cast (unumber) $4000 in gfx_init_plane_vertical::gfxbCpuBank#0 = (byte)PLANE_VERTICAL/$4000 -Adding number conversion cast (unumber) $3fff in gfx_init_plane_vertical::gfxb#0 = (byte*)$4000+PLANE_VERTICAL&$3fff +Adding number conversion cast (unumber) PLANE_VERTICAL&$3fff in gfx_init_plane_vertical::gfxb#0 = (byte*)$4000+PLANE_VERTICAL&$3fff +Adding number conversion cast (unumber) $3fff in gfx_init_plane_vertical::gfxb#0 = (byte*)$4000+(unumber)PLANE_VERTICAL&$3fff Adding number conversion cast (unumber) $f in *gfx_init_plane_vertical::gfxb#2 = $f Adding number conversion cast (unumber) $4000 in gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)PLANE_CHARSET8/$4000 -Adding number conversion cast (unumber) $3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+PLANE_CHARSET8&$3fff +Adding number conversion cast (unumber) PLANE_CHARSET8&$3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+PLANE_CHARSET8&$3fff +Adding number conversion cast (unumber) $3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(unumber)PLANE_CHARSET8&$3fff Adding number conversion cast (unumber) $80 in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & $80 Adding number conversion cast (unumber) gfx_init_plane_charset8::$2 in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & (unumber)$80 Adding number conversion cast (unumber) 0 in gfx_init_plane_charset8::$3 = gfx_init_plane_charset8::$2 != 0 @@ -5867,10 +5871,6 @@ Adding number conversion cast (unumber) 0 in form_control::return#4 = 0 Adding number conversion cast (unumber) $ff in form_control::return#5 = $ff Adding number conversion cast (snumber) 2 in form_cursor_count#8 = (signed byte)FORM_CURSOR_BLINK/2 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $4000 in gfx_init_plane_horisontal::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL&(unumber)$3fff -Adding number conversion cast (unumber) $4000 in gfx_init_plane_horisontal2::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL2&(unumber)$3fff -Adding number conversion cast (unumber) $4000 in gfx_init_plane_vertical::gfxb#0 = (byte*)$4000+PLANE_VERTICAL&(unumber)$3fff -Adding number conversion cast (unumber) $4000 in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+PLANE_CHARSET8&(unumber)$3fff Adding number conversion cast (unumber) $40 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = (byte)(word)FORM_SCREEN&(unumber)$3fff/$40|(word)FORM_CHARSET&(unumber)$3fff/$400 Adding number conversion cast (unumber) $400 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = (byte)(word)FORM_SCREEN&(unumber)$3fff/(unumber)$40|(word)FORM_CHARSET&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions @@ -6136,23 +6136,27 @@ Simplifying constant pointer cast (byte*) 16384 Simplifying constant integer cast $8000 Simplifying constant pointer cast (byte*) 16384 Simplifying constant integer cast $4000 -Simplifying constant integer cast $4000 +Simplifying constant pointer cast (byte*) 16384 +Simplifying constant integer cast PLANE_HORISONTAL&(unumber)$3fff Simplifying constant integer cast $3fff Simplifying constant integer cast 4 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $ff Simplifying constant integer cast $4000 -Simplifying constant integer cast $4000 +Simplifying constant pointer cast (byte*) 16384 +Simplifying constant integer cast PLANE_HORISONTAL2&(unumber)$3fff Simplifying constant integer cast $3fff Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast $4000 -Simplifying constant integer cast $4000 +Simplifying constant pointer cast (byte*) 16384 +Simplifying constant integer cast PLANE_VERTICAL&(unumber)$3fff Simplifying constant integer cast $3fff Simplifying constant integer cast $f Simplifying constant integer cast $4000 -Simplifying constant integer cast $4000 +Simplifying constant pointer cast (byte*) 16384 +Simplifying constant integer cast PLANE_CHARSET8&(unumber)$3fff Simplifying constant integer cast $3fff Simplifying constant integer cast $80 Simplifying constant integer cast 0 @@ -6379,23 +6383,19 @@ Finalized unsigned number type (byte) 1 Finalized unsigned number type (word) $4000 Finalized unsigned number type (word) $8000 Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 Finalized unsigned number type (word) $3fff Finalized unsigned number type (byte) 4 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $ff Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 Finalized unsigned number type (word) $3fff Finalized unsigned number type (byte) 2 Finalized unsigned number type (byte) 3 Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 Finalized unsigned number type (word) $3fff Finalized unsigned number type (byte) $f Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 Finalized unsigned number type (word) $3fff Finalized unsigned number type (byte) $80 Finalized unsigned number type (byte) 0 @@ -7419,22 +7419,22 @@ Constant gfx_init_plane_8bppchunky::x#0 = 0 Constant gfx_init_plane_8bppchunky::gfxb#2 = (byte*) 16384 Constant dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 Constant gfx_init_plane_horisontal::gfxbCpuBank#0 = (byte)PLANE_HORISONTAL/$4000 -Constant gfx_init_plane_horisontal::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL&$3fff +Constant gfx_init_plane_horisontal::gfxa#0 = (byte*) 16384+PLANE_HORISONTAL&$3fff Constant gfx_init_plane_horisontal::ay#0 = 0 Constant gfx_init_plane_horisontal::ax#0 = 0 Constant dtvSetCpuBankSegment1::cpuBankIdx#4 = (byte)$4000/$4000 Constant gfx_init_plane_horisontal2::gfxbCpuBank#0 = (byte)PLANE_HORISONTAL2/$4000 -Constant gfx_init_plane_horisontal2::gfxa#0 = (byte*)$4000+PLANE_HORISONTAL2&$3fff +Constant gfx_init_plane_horisontal2::gfxa#0 = (byte*) 16384+PLANE_HORISONTAL2&$3fff Constant gfx_init_plane_horisontal2::ay#0 = 0 Constant gfx_init_plane_horisontal2::ax#0 = 0 Constant dtvSetCpuBankSegment1::cpuBankIdx#6 = (byte)$4000/$4000 Constant gfx_init_plane_vertical::gfxbCpuBank#0 = (byte)PLANE_VERTICAL/$4000 -Constant gfx_init_plane_vertical::gfxb#0 = (byte*)$4000+PLANE_VERTICAL&$3fff +Constant gfx_init_plane_vertical::gfxb#0 = (byte*) 16384+PLANE_VERTICAL&$3fff Constant gfx_init_plane_vertical::by#0 = 0 Constant gfx_init_plane_vertical::bx#0 = 0 Constant dtvSetCpuBankSegment1::cpuBankIdx#8 = (byte)$4000/$4000 Constant gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)PLANE_CHARSET8/$4000 -Constant gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+PLANE_CHARSET8&$3fff +Constant gfx_init_plane_charset8::gfxa#0 = (byte*) 16384+PLANE_CHARSET8&$3fff Constant gfx_init_plane_charset8::chargen#0 = CHARGEN Constant gfx_init_plane_charset8::col#0 = 0 Constant gfx_init_plane_charset8::ch#0 = 0 @@ -7579,9 +7579,9 @@ Simplifying constant evaluating to zero (byte)(word)FORM_CHARSET/$4000 in [970] Simplifying constant evaluating to zero <FORM_SCREEN in [975] *DTV_PLANEA_START_LO = <FORM_SCREEN Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero form_fields_val in -Simplifying expression containing zero $4000 in -Simplifying expression containing zero $4000 in -Simplifying expression containing zero $4000 in +Simplifying expression containing zero (byte*) 16384 in +Simplifying expression containing zero (byte*) 16384 in +Simplifying expression containing zero (byte*) 16384 in Simplifying expression containing zero (byte*)CIA1 in [67] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] Simplifying expression containing zero KEY_MODIFIER_LSHIFT in [121] keyboard_modifiers#1 = keyboard_modifiers#0 | KEY_MODIFIER_LSHIFT Simplifying expression containing zero bitmap_clear::$0 in [189] bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#0 @@ -7968,7 +7968,7 @@ Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#3 = gfx_init_plane_horisontal Constant inlined gfx_mode::i#0 = 0 Constant inlined gfx_init_plane_charset8::cp#0 = 0 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 -Constant inlined gfx_init_plane_horisontal::gfxa#0 = (byte*)$4000 +Constant inlined gfx_init_plane_horisontal::gfxa#0 = (byte*) 16384 Constant inlined gfx_init_screen3::cx#0 = 0 Constant inlined apply_preset::i#0 = 0 Constant inlined gfx_init_plane_horisontal::ax#0 = 0 @@ -8013,7 +8013,7 @@ Constant inlined sgn_u16::return#3 = 1 Constant inlined sgn_u16::return#2 = -1 Constant inlined keyboard_events_size#16 = 0 Constant inlined gfx_init_plane_horisontal2::ay#0 = 0 -Constant inlined gfx_init_plane_vertical::gfxb#0 = (byte*)$4000+PLANE_VERTICAL&$3fff +Constant inlined gfx_init_plane_vertical::gfxb#0 = (byte*) 16384+PLANE_VERTICAL&$3fff Constant inlined get_VICII_screen::return#2 = VICII_SCREEN2 Constant inlined apply_preset::preset#11 = preset_8bpppixelcell Constant inlined gfx_init_screen0::cx#0 = 0 @@ -8054,7 +8054,7 @@ Constant inlined get_plane::return#0 = (dword)VICII_SCREEN0 Constant inlined bitmap_init::gfx#0 = VICII_BITMAP Constant inlined print_str_at::at#1 = FORM_SCREEN+(byte)$28*2+$a Constant inlined get_plane::return#1 = (dword)VICII_SCREEN1 -Constant inlined gfx_init_plane_horisontal2::gfxa#0 = (byte*)$4000 +Constant inlined gfx_init_plane_horisontal2::gfxa#0 = (byte*) 16384 Constant inlined get_plane::return#6 = PLANE_8BPP_CHUNKY Constant inlined keyboard_modifiers#0 = 0 Constant inlined get_plane::return#7 = PLANE_HORISONTAL @@ -8092,7 +8092,7 @@ Constant inlined gfx_init_screen4::cx#0 = 0 Constant inlined bitmap_init::x#0 = 0 Constant inlined render_preset_name::$13 = render_preset_name::name#2 Constant inlined render_preset_name::$14 = render_preset_name::name#3 -Constant inlined gfx_init_plane_charset8::gfxa#0 = (byte*)$4000 +Constant inlined gfx_init_plane_charset8::gfxa#0 = (byte*) 16384 Constant inlined render_preset_name::$15 = render_preset_name::name#4 Constant inlined render_preset_name::$16 = render_preset_name::name#5 Constant inlined gfx_init_VICII_bitmap::l#0 = 0 @@ -9699,7 +9699,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [349] gfx_init_plane_charset8::ch#8 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::ch#1, gfx_init_plane_charset8::@9/0 ) [349] gfx_init_plane_charset8::col#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::col#1, gfx_init_plane_charset8::@9/0 ) - [349] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*)$4000 ) + [349] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*) 16384 ) [349] gfx_init_plane_charset8::chargen#3 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::chargen#1, gfx_init_plane_charset8::@9/CHARGEN ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -9752,7 +9752,7 @@ gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9 [372] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@1: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal gfx_init_plane_horisontal::@6 - [373] gfx_init_plane_horisontal::gfxa#6 = phi( gfx_init_plane_horisontal::@6/gfx_init_plane_horisontal::gfxa#7, gfx_init_plane_horisontal/(byte*)$4000 ) + [373] gfx_init_plane_horisontal::gfxa#6 = phi( gfx_init_plane_horisontal::@6/gfx_init_plane_horisontal::gfxa#7, gfx_init_plane_horisontal/(byte*) 16384 ) [373] gfx_init_plane_horisontal::ay#4 = phi( gfx_init_plane_horisontal::@6/gfx_init_plane_horisontal::ay#1, gfx_init_plane_horisontal/0 ) to:gfx_init_plane_horisontal::@2 gfx_init_plane_horisontal::@2: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@4 @@ -9793,7 +9793,7 @@ gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10 to:gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@1: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical gfx_init_plane_vertical::@3 [391] gfx_init_plane_vertical::by#4 = phi( gfx_init_plane_vertical::@3/gfx_init_plane_vertical::by#1, gfx_init_plane_vertical/0 ) - [391] gfx_init_plane_vertical::gfxb#3 = phi( gfx_init_plane_vertical::@3/gfx_init_plane_vertical::gfxb#1, gfx_init_plane_vertical/(byte*)$4000+PLANE_VERTICAL&$3fff ) + [391] gfx_init_plane_vertical::gfxb#3 = phi( gfx_init_plane_vertical::@3/gfx_init_plane_vertical::gfxb#1, gfx_init_plane_vertical/(byte*) 16384+PLANE_VERTICAL&$3fff ) to:gfx_init_plane_vertical::@2 gfx_init_plane_vertical::@2: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@2 [392] gfx_init_plane_vertical::bx#2 = phi( gfx_init_plane_vertical::@1/0, gfx_init_plane_vertical::@2/gfx_init_plane_vertical::bx#1 ) @@ -9821,7 +9821,7 @@ gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@ [403] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@1: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@3 - [404] gfx_init_plane_horisontal2::gfxa#3 = phi( gfx_init_plane_horisontal2::@3/gfx_init_plane_horisontal2::gfxa#1, gfx_init_plane_horisontal2/(byte*)$4000 ) + [404] gfx_init_plane_horisontal2::gfxa#3 = phi( gfx_init_plane_horisontal2::@3/gfx_init_plane_horisontal2::gfxa#1, gfx_init_plane_horisontal2/(byte*) 16384 ) [404] gfx_init_plane_horisontal2::ay#4 = phi( gfx_init_plane_horisontal2::@3/gfx_init_plane_horisontal2::ay#1, gfx_init_plane_horisontal2/0 ) to:gfx_init_plane_horisontal2::@2 gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@2 @@ -15408,7 +15408,7 @@ gfx_init_plane_charset8: { // [349] phi gfx_init_plane_charset8::col#6 = 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta.z col - // [349] phi gfx_init_plane_charset8::gfxa#6 = (byte*)$4000 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + // [349] phi gfx_init_plane_charset8::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -15561,7 +15561,7 @@ gfx_init_plane_horisontal: { jsr dtvSetCpuBankSegment1 // [373] phi from gfx_init_plane_horisontal to gfx_init_plane_horisontal::@1 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1] __b1_from_gfx_init_plane_horisontal: - // [373] phi gfx_init_plane_horisontal::gfxa#6 = (byte*)$4000 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 + // [373] phi gfx_init_plane_horisontal::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -15676,7 +15676,7 @@ gfx_init_plane_vertical: { // [391] phi gfx_init_plane_vertical::by#4 = 0 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#0] -- vbuz1=vbuc1 lda #0 sta.z by - // [391] phi gfx_init_plane_vertical::gfxb#3 = (byte*)$4000+PLANE_VERTICAL&$3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 + // [391] phi gfx_init_plane_vertical::gfxb#3 = (byte*) 16384+PLANE_VERTICAL&$3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 lda #<$4000+(PLANE_VERTICAL&$3fff) sta.z gfxb lda #>$4000+(PLANE_VERTICAL&$3fff) @@ -15757,7 +15757,7 @@ gfx_init_plane_horisontal2: { jsr dtvSetCpuBankSegment1 // [404] phi from gfx_init_plane_horisontal2 to gfx_init_plane_horisontal2::@1 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1] __b1_from_gfx_init_plane_horisontal2: - // [404] phi gfx_init_plane_horisontal2::gfxa#3 = (byte*)$4000 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 + // [404] phi gfx_init_plane_horisontal2::gfxa#3 = (byte*) 16384 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -22480,7 +22480,7 @@ gfx_init_plane_charset8: { sta.z ch // [349] phi gfx_init_plane_charset8::col#6 = 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 sta.z col - // [349] phi gfx_init_plane_charset8::gfxa#6 = (byte*)$4000 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + // [349] phi gfx_init_plane_charset8::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -22621,7 +22621,7 @@ gfx_init_plane_horisontal: { lda #gfxbCpuBank jsr dtvSetCpuBankSegment1 // [373] phi from gfx_init_plane_horisontal to gfx_init_plane_horisontal::@1 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1] - // [373] phi gfx_init_plane_horisontal::gfxa#6 = (byte*)$4000 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 + // [373] phi gfx_init_plane_horisontal::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -22725,7 +22725,7 @@ gfx_init_plane_vertical: { // [391] phi gfx_init_plane_vertical::by#4 = 0 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#0] -- vbuz1=vbuc1 lda #0 sta.z by - // [391] phi gfx_init_plane_vertical::gfxb#3 = (byte*)$4000+PLANE_VERTICAL&$3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 + // [391] phi gfx_init_plane_vertical::gfxb#3 = (byte*) 16384+PLANE_VERTICAL&$3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 lda #<$4000+(PLANE_VERTICAL&$3fff) sta.z gfxb lda #>$4000+(PLANE_VERTICAL&$3fff) @@ -22796,7 +22796,7 @@ gfx_init_plane_horisontal2: { lda #gfxbCpuBank jsr dtvSetCpuBankSegment1 // [404] phi from gfx_init_plane_horisontal2 to gfx_init_plane_horisontal2::@1 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1] - // [404] phi gfx_init_plane_horisontal2::gfxa#3 = (byte*)$4000 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 + // [404] phi gfx_init_plane_horisontal2::gfxa#3 = (byte*) 16384 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 diff --git a/src/test/ref/complex/borderline_pacman/pacman.log b/src/test/ref/complex/borderline_pacman/pacman.log index a26be365e..483a97cf1 100644 --- a/src/test/ref/complex/borderline_pacman/pacman.log +++ b/src/test/ref/complex/borderline_pacman/pacman.log @@ -3698,7 +3698,7 @@ constant byte* const RENDER_INDEX = (byte*)$b600 constant const byte RENDER_OFFSET_CANVAS_HI = $50 constant const byte RENDER_OFFSET_CANVAS_LO = 0 constant const byte RENDER_OFFSET_YPOS_INC = $a0 -constant byte** RENDER_XCOLS[$1a] = { (byte*)0, (byte*)1, (byte*)2, (byte*)$400, (byte*)$401, (byte*)$402, (byte*)$800, (byte*)$801, (byte*)$802, (byte*)$c00, (byte*)$c01, (byte*)$c02, (byte*)$1000, (byte*)$1001, (byte*)$1002, (byte*)$1400, (byte*)$1401, (byte*)$1402, (byte*)$1800, (byte*)$1801, (byte*)$1802, (byte*)$1c00, (byte*)$1c01, (byte*)$1c02, (byte*)0, (byte*)0 } +constant byte** RENDER_XCOLS[$1a] = { 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0 } constant word* RENDER_YPOS[$95] = { (word)0+0, (word)0+0, (word)0+0, (word)0+6, (word)0+$c, (word)0+$12, (word)0+$18, (word)0+$1e, (word)0+$24, (word)0+$2a, (word)0+$30, (word)0+$36, (word)0+$3c, (word)$40+3, (word)$40+9, (word)$40+$f, (word)$40+$15, (word)$40+$1b, (word)$40+$21, (word)$40+$27, (word)$40+$2d, (word)$40+$33, (word)$40+$39, (word)$80+0, (word)$80+6, (word)$80+$c, (word)$80+$12, (word)$80+$18, (word)$80+$1e, (word)$80+$24, (word)$80+$2a, (word)$80+$30, (word)$80+$36, (word)$80+$3c, (word)$c0+3, (word)$c0+9, (word)$c0+$f, (word)$c0+$15, (word)$c0+$1b, (word)$c0+$21, (word)$c0+$27, (word)$c0+$2d, (word)$c0+$33, (word)$c0+$39, (word)$100+0, (word)$100+6, (word)$100+$c, (word)$100+$12, (word)$100+$18, (word)$100+$1e, (word)$100+$24, (word)$100+$2a, (word)$100+$30, (word)$100+$36, (word)$100+$3c, (word)$140+3, (word)$140+9, (word)$140+$f, (word)$140+$15, (word)$140+$1b, (word)$140+$21, (word)$140+$27, (word)$140+$2d, (word)$140+$33, (word)$140+$39, (word)$180+0, (word)$180+6, (word)$180+$c, (word)$180+$12, (word)$180+$18, (word)$180+$1e, (word)$180+$24, (word)$180+$2a, (word)$180+$30, (word)$180+$36, (word)$180+$3c, (word)$1c0+3, (word)$1c0+9, (word)$1c0+$f, (word)$1c0+$15, (word)$1c0+$1b, (word)$1c0+$21, (word)$1c0+$27, (word)$1c0+$2d, (word)$1c0+$33, (word)$1c0+$39, (word)$200+0, (word)$200+6, (word)$200+$c, (word)$200+$12, (word)$200+$18, (word)$200+$1e, (word)$200+$24, (word)$200+$2a, (word)$200+$30, (word)$200+$36, (word)$200+$3c, (word)$240+3, (word)$240+9, (word)$240+$f, (word)$240+$15, (word)$240+$1b, (word)$240+$21, (word)$240+$27, (word)$240+$2d, (word)$240+$33, (word)$240+$39, (word)$280+0, (word)$280+6, (word)$280+$c, (word)$280+$12, (word)$280+$18, (word)$280+$1e, (word)$280+$24, (word)$280+$2a, (word)$280+$30, (word)$280+$36, (word)$280+$3c, (word)$2c0+3, (word)$2c0+9, (word)$2c0+$f, (word)$2c0+$15, (word)$2c0+$1b, (word)$2c0+$21, (word)$2c0+$27, (word)$2c0+$2d, (word)$2c0+$33, (word)$2c0+$39, (word)$300+0, (word)$300+6, (word)$300+$c, (word)$300+$12, (word)$300+$18, (word)$300+$1e, (word)$300+$24, (word)$300+$2a, (word)$300+$30, (word)$300+$36, (word)$300+$3c, (word)$340+3, (word)$340+9, (word)$340+$f, (word)$340+$15, (word)$340+$1b, (word)$340+$21, (word)$340+$27, (word)$340+$2d, (word)$340+$33, (word)$340+$39 } constant word* RENDER_YPOS_9TH[$95] = { (word)0+3, (word)0+3, (word)0+3, (word)0+9, (word)0+$f, (word)0+$15, (word)0+$1b, (word)0+$21, (word)0+$27, (word)0+$2d, (word)0+$33, (word)0+$39, (word)$40+0, (word)$40+6, (word)$40+$c, (word)$40+$12, (word)$40+$18, (word)$40+$1e, (word)$40+$24, (word)$40+$2a, (word)$40+$30, (word)$40+$36, (word)$40+$3c, (word)$80+3, (word)$80+9, (word)$80+$f, (word)$80+$15, (word)$80+$1b, (word)$80+$21, (word)$80+$27, (word)$80+$2d, (word)$80+$33, (word)$80+$39, (word)$c0+0, (word)$c0+6, (word)$c0+$c, (word)$c0+$12, (word)$c0+$18, (word)$c0+$1e, (word)$c0+$24, (word)$c0+$2a, (word)$c0+$30, (word)$c0+$36, (word)$c0+$3c, (word)$100+3, (word)$100+9, (word)$100+$f, (word)$100+$15, (word)$100+$1b, (word)$100+$21, (word)$100+$27, (word)$100+$2d, (word)$100+$33, (word)$100+$39, (word)$140+0, (word)$140+6, (word)$140+$c, (word)$140+$12, (word)$140+$18, (word)$140+$1e, (word)$140+$24, (word)$140+$2a, (word)$140+$30, (word)$140+$36, (word)$140+$3c, (word)$180+3, (word)$180+9, (word)$180+$f, (word)$180+$15, (word)$180+$1b, (word)$180+$21, (word)$180+$27, (word)$180+$2d, (word)$180+$33, (word)$180+$39, (word)$1c0+0, (word)$1c0+6, (word)$1c0+$c, (word)$1c0+$12, (word)$1c0+$18, (word)$1c0+$1e, (word)$1c0+$24, (word)$1c0+$2a, (word)$1c0+$30, (word)$1c0+$36, (word)$1c0+$3c, (word)$200+3, (word)$200+9, (word)$200+$f, (word)$200+$15, (word)$200+$1b, (word)$200+$21, (word)$200+$27, (word)$200+$2d, (word)$200+$33, (word)$200+$39, (word)$240+0, (word)$240+6, (word)$240+$c, (word)$240+$12, (word)$240+$18, (word)$240+$1e, (word)$240+$24, (word)$240+$2a, (word)$240+$30, (word)$240+$36, (word)$240+$3c, (word)$280+3, (word)$280+9, (word)$280+$f, (word)$280+$15, (word)$280+$1b, (word)$280+$21, (word)$280+$27, (word)$280+$2d, (word)$280+$33, (word)$280+$39, (word)$2c0+0, (word)$2c0+6, (word)$2c0+$c, (word)$2c0+$12, (word)$2c0+$18, (word)$2c0+$1e, (word)$2c0+$24, (word)$2c0+$2a, (word)$2c0+$30, (word)$2c0+$36, (word)$2c0+$3c, (word)$300+3, (word)$300+9, (word)$300+$f, (word)$300+$15, (word)$300+$1b, (word)$300+$21, (word)$300+$27, (word)$300+$2d, (word)$300+$33, (word)$300+$39, (word)$340+0, (word)$340+6, (word)$340+$c, (word)$340+$12, (word)$340+$18, (word)$340+$1e, (word)$340+$24, (word)$340+$2a, (word)$340+$30, (word)$340+$36, (word)$340+$3c } constant byte* RENDER_YPOS_INC[$a0] = { 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7 } @@ -5120,7 +5120,7 @@ volatile byte pacman_lives loadstore void pacman_sound_init() void pacman_sound_play() bool~ pacman_sound_play::$0 -byte~ pacman_sound_play::$1 +word~ pacman_sound_play::$1 bool~ pacman_sound_play::$2 bool~ pacman_sound_play::$3 bool~ pacman_sound_play::$4 @@ -6085,32 +6085,6 @@ Simplifying constant integer cast $c Simplifying constant integer cast BOB_ROW_SIZE*(unumber)$12 Simplifying constant integer cast $12 Simplifying constant pointer cast (byte*) 46592 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 2 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1025 -Simplifying constant pointer cast (byte*) 1026 -Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 2049 -Simplifying constant pointer cast (byte*) 2050 -Simplifying constant pointer cast (byte*) 3072 -Simplifying constant pointer cast (byte*) 3073 -Simplifying constant pointer cast (byte*) 3074 -Simplifying constant pointer cast (byte*) 4096 -Simplifying constant pointer cast (byte*) 4097 -Simplifying constant pointer cast (byte*) 4098 -Simplifying constant pointer cast (byte*) 5120 -Simplifying constant pointer cast (byte*) 5121 -Simplifying constant pointer cast (byte*) 5122 -Simplifying constant pointer cast (byte*) 6144 -Simplifying constant pointer cast (byte*) 6145 -Simplifying constant pointer cast (byte*) 6146 -Simplifying constant pointer cast (byte*) 7168 -Simplifying constant pointer cast (byte*) 7169 -Simplifying constant pointer cast (byte*) 7170 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 0 Simplifying constant integer cast 2 Simplifying constant pointer cast (byte*) 59904 Simplifying constant pointer cast (byte*) 42752 @@ -8454,6 +8428,32 @@ Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 2 Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 2 +Finalized unsigned number type (word) $400 +Finalized unsigned number type (word) $401 +Finalized unsigned number type (word) $402 +Finalized unsigned number type (word) $800 +Finalized unsigned number type (word) $801 +Finalized unsigned number type (word) $802 +Finalized unsigned number type (word) $c00 +Finalized unsigned number type (word) $c01 +Finalized unsigned number type (word) $c02 +Finalized unsigned number type (word) $1000 +Finalized unsigned number type (word) $1001 +Finalized unsigned number type (word) $1002 +Finalized unsigned number type (word) $1400 +Finalized unsigned number type (word) $1401 +Finalized unsigned number type (word) $1402 +Finalized unsigned number type (word) $1800 +Finalized unsigned number type (word) $1801 +Finalized unsigned number type (word) $1802 +Finalized unsigned number type (word) $1c00 +Finalized unsigned number type (word) $1c01 +Finalized unsigned number type (word) $1c02 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $1a Finalized unsigned number type (byte) $40 Finalized unsigned number type (byte) 3 @@ -23939,7 +23939,7 @@ constant byte* const RENDER_INDEX = (byte*) 46592 constant const byte RENDER_OFFSET_CANVAS_HI = $50 constant const byte RENDER_OFFSET_CANVAS_LO = 0 constant const byte RENDER_OFFSET_YPOS_INC = $a0 -constant byte** RENDER_XCOLS[$1a] = { (byte*) 0, (byte*) 1, (byte*) 2, (byte*) 1024, (byte*) 1025, (byte*) 1026, (byte*) 2048, (byte*) 2049, (byte*) 2050, (byte*) 3072, (byte*) 3073, (byte*) 3074, (byte*) 4096, (byte*) 4097, (byte*) 4098, (byte*) 5120, (byte*) 5121, (byte*) 5122, (byte*) 6144, (byte*) 6145, (byte*) 6146, (byte*) 7168, (byte*) 7169, (byte*) 7170, (byte*) 0, (byte*) 0 } +constant byte** RENDER_XCOLS[$1a] = { 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0 } constant word* RENDER_YPOS[$95] = { 0, 0, 0, 6, $c, $12, $18, $1e, $24, $2a, $30, $36, $3c, (word)$40+3, (word)$40+9, (word)$40+$f, (word)$40+$15, (word)$40+$1b, (word)$40+$21, (word)$40+$27, (word)$40+$2d, (word)$40+$33, (word)$40+$39, $80, (word)$80+6, (word)$80+$c, (word)$80+$12, (word)$80+$18, (word)$80+$1e, (word)$80+$24, (word)$80+$2a, (word)$80+$30, (word)$80+$36, (word)$80+$3c, (word)$c0+3, (word)$c0+9, (word)$c0+$f, (word)$c0+$15, (word)$c0+$1b, (word)$c0+$21, (word)$c0+$27, (word)$c0+$2d, (word)$c0+$33, (word)$c0+$39, $100, $100+6, $100+$c, $100+$12, $100+$18, $100+$1e, $100+$24, $100+$2a, $100+$30, $100+$36, $100+$3c, $140+3, $140+9, $140+$f, $140+$15, $140+$1b, $140+$21, $140+$27, $140+$2d, $140+$33, $140+$39, $180, $180+6, $180+$c, $180+$12, $180+$18, $180+$1e, $180+$24, $180+$2a, $180+$30, $180+$36, $180+$3c, $1c0+3, $1c0+9, $1c0+$f, $1c0+$15, $1c0+$1b, $1c0+$21, $1c0+$27, $1c0+$2d, $1c0+$33, $1c0+$39, $200, $200+6, $200+$c, $200+$12, $200+$18, $200+$1e, $200+$24, $200+$2a, $200+$30, $200+$36, $200+$3c, $240+3, $240+9, $240+$f, $240+$15, $240+$1b, $240+$21, $240+$27, $240+$2d, $240+$33, $240+$39, $280, $280+6, $280+$c, $280+$12, $280+$18, $280+$1e, $280+$24, $280+$2a, $280+$30, $280+$36, $280+$3c, $2c0+3, $2c0+9, $2c0+$f, $2c0+$15, $2c0+$1b, $2c0+$21, $2c0+$27, $2c0+$2d, $2c0+$33, $2c0+$39, $300, $300+6, $300+$c, $300+$12, $300+$18, $300+$1e, $300+$24, $300+$2a, $300+$30, $300+$36, $300+$3c, $340+3, $340+9, $340+$f, $340+$15, $340+$1b, $340+$21, $340+$27, $340+$2d, $340+$33, $340+$39 } constant word* RENDER_YPOS_9TH[$95] = { 3, 3, 3, 9, $f, $15, $1b, $21, $27, $2d, $33, $39, $40, (word)$40+6, (word)$40+$c, (word)$40+$12, (word)$40+$18, (word)$40+$1e, (word)$40+$24, (word)$40+$2a, (word)$40+$30, (word)$40+$36, (word)$40+$3c, (word)$80+3, (word)$80+9, (word)$80+$f, (word)$80+$15, (word)$80+$1b, (word)$80+$21, (word)$80+$27, (word)$80+$2d, (word)$80+$33, (word)$80+$39, $c0, (word)$c0+6, (word)$c0+$c, (word)$c0+$12, (word)$c0+$18, (word)$c0+$1e, (word)$c0+$24, (word)$c0+$2a, (word)$c0+$30, (word)$c0+$36, (word)$c0+$3c, $100+3, $100+9, $100+$f, $100+$15, $100+$1b, $100+$21, $100+$27, $100+$2d, $100+$33, $100+$39, $140, $140+6, $140+$c, $140+$12, $140+$18, $140+$1e, $140+$24, $140+$2a, $140+$30, $140+$36, $140+$3c, $180+3, $180+9, $180+$f, $180+$15, $180+$1b, $180+$21, $180+$27, $180+$2d, $180+$33, $180+$39, $1c0, $1c0+6, $1c0+$c, $1c0+$12, $1c0+$18, $1c0+$1e, $1c0+$24, $1c0+$2a, $1c0+$30, $1c0+$36, $1c0+$3c, $200+3, $200+9, $200+$f, $200+$15, $200+$1b, $200+$21, $200+$27, $200+$2d, $200+$33, $200+$39, $240, $240+6, $240+$c, $240+$12, $240+$18, $240+$1e, $240+$24, $240+$2a, $240+$30, $240+$36, $240+$3c, $280+3, $280+9, $280+$f, $280+$15, $280+$1b, $280+$21, $280+$27, $280+$2d, $280+$33, $280+$39, $2c0, $2c0+6, $2c0+$c, $2c0+$12, $2c0+$18, $2c0+$1e, $2c0+$24, $2c0+$2a, $2c0+$30, $2c0+$36, $2c0+$3c, $300+3, $300+9, $300+$f, $300+$15, $300+$1b, $300+$21, $300+$27, $300+$2d, $300+$33, $300+$39, $340, $340+6, $340+$c, $340+$12, $340+$18, $340+$1e, $340+$24, $340+$2a, $340+$30, $340+$36, $340+$3c } constant byte* RENDER_YPOS_INC[$a0] = { 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7 } diff --git a/src/test/ref/complex/borderline_pacman/pacman.sym b/src/test/ref/complex/borderline_pacman/pacman.sym index 29bfe46d2..1284718f0 100644 --- a/src/test/ref/complex/borderline_pacman/pacman.sym +++ b/src/test/ref/complex/borderline_pacman/pacman.sym @@ -735,7 +735,7 @@ constant byte* const RENDER_INDEX = (byte*) 46592 constant const byte RENDER_OFFSET_CANVAS_HI = $50 constant const byte RENDER_OFFSET_CANVAS_LO = 0 constant const byte RENDER_OFFSET_YPOS_INC = $a0 -constant byte** RENDER_XCOLS[$1a] = { (byte*) 0, (byte*) 1, (byte*) 2, (byte*) 1024, (byte*) 1025, (byte*) 1026, (byte*) 2048, (byte*) 2049, (byte*) 2050, (byte*) 3072, (byte*) 3073, (byte*) 3074, (byte*) 4096, (byte*) 4097, (byte*) 4098, (byte*) 5120, (byte*) 5121, (byte*) 5122, (byte*) 6144, (byte*) 6145, (byte*) 6146, (byte*) 7168, (byte*) 7169, (byte*) 7170, (byte*) 0, (byte*) 0 } +constant byte** RENDER_XCOLS[$1a] = { 0, 1, 2, $400, $401, $402, $800, $801, $802, $c00, $c01, $c02, $1000, $1001, $1002, $1400, $1401, $1402, $1800, $1801, $1802, $1c00, $1c01, $1c02, 0, 0 } constant word* RENDER_YPOS[$95] = { 0, 0, 0, 6, $c, $12, $18, $1e, $24, $2a, $30, $36, $3c, (word)$40+3, (word)$40+9, (word)$40+$f, (word)$40+$15, (word)$40+$1b, (word)$40+$21, (word)$40+$27, (word)$40+$2d, (word)$40+$33, (word)$40+$39, $80, (word)$80+6, (word)$80+$c, (word)$80+$12, (word)$80+$18, (word)$80+$1e, (word)$80+$24, (word)$80+$2a, (word)$80+$30, (word)$80+$36, (word)$80+$3c, (word)$c0+3, (word)$c0+9, (word)$c0+$f, (word)$c0+$15, (word)$c0+$1b, (word)$c0+$21, (word)$c0+$27, (word)$c0+$2d, (word)$c0+$33, (word)$c0+$39, $100, $100+6, $100+$c, $100+$12, $100+$18, $100+$1e, $100+$24, $100+$2a, $100+$30, $100+$36, $100+$3c, $140+3, $140+9, $140+$f, $140+$15, $140+$1b, $140+$21, $140+$27, $140+$2d, $140+$33, $140+$39, $180, $180+6, $180+$c, $180+$12, $180+$18, $180+$1e, $180+$24, $180+$2a, $180+$30, $180+$36, $180+$3c, $1c0+3, $1c0+9, $1c0+$f, $1c0+$15, $1c0+$1b, $1c0+$21, $1c0+$27, $1c0+$2d, $1c0+$33, $1c0+$39, $200, $200+6, $200+$c, $200+$12, $200+$18, $200+$1e, $200+$24, $200+$2a, $200+$30, $200+$36, $200+$3c, $240+3, $240+9, $240+$f, $240+$15, $240+$1b, $240+$21, $240+$27, $240+$2d, $240+$33, $240+$39, $280, $280+6, $280+$c, $280+$12, $280+$18, $280+$1e, $280+$24, $280+$2a, $280+$30, $280+$36, $280+$3c, $2c0+3, $2c0+9, $2c0+$f, $2c0+$15, $2c0+$1b, $2c0+$21, $2c0+$27, $2c0+$2d, $2c0+$33, $2c0+$39, $300, $300+6, $300+$c, $300+$12, $300+$18, $300+$1e, $300+$24, $300+$2a, $300+$30, $300+$36, $300+$3c, $340+3, $340+9, $340+$f, $340+$15, $340+$1b, $340+$21, $340+$27, $340+$2d, $340+$33, $340+$39 } constant word* RENDER_YPOS_9TH[$95] = { 3, 3, 3, 9, $f, $15, $1b, $21, $27, $2d, $33, $39, $40, (word)$40+6, (word)$40+$c, (word)$40+$12, (word)$40+$18, (word)$40+$1e, (word)$40+$24, (word)$40+$2a, (word)$40+$30, (word)$40+$36, (word)$40+$3c, (word)$80+3, (word)$80+9, (word)$80+$f, (word)$80+$15, (word)$80+$1b, (word)$80+$21, (word)$80+$27, (word)$80+$2d, (word)$80+$33, (word)$80+$39, $c0, (word)$c0+6, (word)$c0+$c, (word)$c0+$12, (word)$c0+$18, (word)$c0+$1e, (word)$c0+$24, (word)$c0+$2a, (word)$c0+$30, (word)$c0+$36, (word)$c0+$3c, $100+3, $100+9, $100+$f, $100+$15, $100+$1b, $100+$21, $100+$27, $100+$2d, $100+$33, $100+$39, $140, $140+6, $140+$c, $140+$12, $140+$18, $140+$1e, $140+$24, $140+$2a, $140+$30, $140+$36, $140+$3c, $180+3, $180+9, $180+$f, $180+$15, $180+$1b, $180+$21, $180+$27, $180+$2d, $180+$33, $180+$39, $1c0, $1c0+6, $1c0+$c, $1c0+$12, $1c0+$18, $1c0+$1e, $1c0+$24, $1c0+$2a, $1c0+$30, $1c0+$36, $1c0+$3c, $200+3, $200+9, $200+$f, $200+$15, $200+$1b, $200+$21, $200+$27, $200+$2d, $200+$33, $200+$39, $240, $240+6, $240+$c, $240+$12, $240+$18, $240+$1e, $240+$24, $240+$2a, $240+$30, $240+$36, $240+$3c, $280+3, $280+9, $280+$f, $280+$15, $280+$1b, $280+$21, $280+$27, $280+$2d, $280+$33, $280+$39, $2c0, $2c0+6, $2c0+$c, $2c0+$12, $2c0+$18, $2c0+$1e, $2c0+$24, $2c0+$2a, $2c0+$30, $2c0+$36, $2c0+$3c, $300+3, $300+9, $300+$f, $300+$15, $300+$1b, $300+$21, $300+$27, $300+$2d, $300+$33, $300+$39, $340, $340+6, $340+$c, $340+$12, $340+$18, $340+$1e, $340+$24, $340+$2a, $340+$30, $340+$36, $340+$3c } constant byte* RENDER_YPOS_INC[$a0] = { 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7 } diff --git a/src/test/ref/complex/new_30_years_low_resolution/new_30_years_low_resolution.log b/src/test/ref/complex/new_30_years_low_resolution/new_30_years_low_resolution.log index 290561dab..d458204ec 100644 --- a/src/test/ref/complex/new_30_years_low_resolution/new_30_years_low_resolution.log +++ b/src/test/ref/complex/new_30_years_low_resolution/new_30_years_low_resolution.log @@ -2113,7 +2113,7 @@ byte flipper_fix_colors::i#3 word flipper_fix_colors::offset word flipper_fix_colors::offset#0 void init_rasters() -byte~ init_rasters::$0 +word~ init_rasters::$0 bool~ init_rasters::$1 bool~ init_rasters::$2 byte init_rasters::b @@ -2226,7 +2226,7 @@ number~ irq_swing_plex::$12 number~ irq_swing_plex::$14 number~ irq_swing_plex::$16 bool~ irq_swing_plex::$17 -byte~ irq_swing_plex::$19 +word~ irq_swing_plex::$19 bool~ irq_swing_plex::$2 bool~ irq_swing_plex::$20 bool~ irq_swing_plex::$21 @@ -2425,7 +2425,7 @@ byte~ part2_init::$16 byte~ part2_init::$17 bool~ part2_init::$18 number~ part2_init::$19 -byte~ part2_init::$9 +word~ part2_init::$9 struct BucketSprite* part2_init::frame struct BucketSprite* part2_init::frame#0 struct BucketSprite* part2_init::frame#1 @@ -8171,13 +8171,13 @@ ASSEMBLER BEFORE OPTIMIZATION // The vector used when the HARDWARE serves IRQ interrupts .label HARDWARE_IRQ = $fffe .label P1_COLORS = $a800 - // A800-AFFF + // A800-AFFF .label P1_PIXELS = $c000 // C000-DFFF .label P1_SCREEN = $e000 - // E000-E3FF + // E000-E3FF .label P1_SPRITES = $fc00 - // E000-E3FF + // E000-E3FF .label PIXELS_EMPTY = $e800 // E800-EFFF // A copy of the load screen and colors @@ -13202,13 +13202,13 @@ Score: 79370 // The vector used when the HARDWARE serves IRQ interrupts .label HARDWARE_IRQ = $fffe .label P1_COLORS = $a800 - // A800-AFFF + // A800-AFFF .label P1_PIXELS = $c000 // C000-DFFF .label P1_SCREEN = $e000 - // E000-E3FF + // E000-E3FF .label P1_SPRITES = $fc00 - // E000-E3FF + // E000-E3FF .label PIXELS_EMPTY = $e800 // E800-EFFF // A copy of the load screen and colors diff --git a/src/test/ref/cpu-45gs02.log b/src/test/ref/cpu-45gs02.log index 236808819..8bfecccae 100644 --- a/src/test/ref/cpu-45gs02.log +++ b/src/test/ref/cpu-45gs02.log @@ -46,7 +46,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant dword* SCREEN = (dword*)$400 +constant dword* SCREEN = (byte*)$400 void __start() void main() bool~ main::$0 @@ -69,7 +69,7 @@ dword main::sum#4 Adding number conversion cast (unumber) $64 in main::$0 = main::i#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (dword*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) $64 @@ -291,7 +291,7 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant dword* SCREEN = (dword*) 1024 +constant dword* SCREEN = (byte*) 1024 void main() dword main::addend dword main::addend#1 addend zp[4]:7 11.0 diff --git a/src/test/ref/cpu-45gs02.sym b/src/test/ref/cpu-45gs02.sym index 0a3e64f72..21782ac27 100644 --- a/src/test/ref/cpu-45gs02.sym +++ b/src/test/ref/cpu-45gs02.sym @@ -1,4 +1,4 @@ -constant dword* SCREEN = (dword*) 1024 +constant dword* SCREEN = (byte*) 1024 void main() dword main::addend dword main::addend#1 addend zp[4]:7 11.0 diff --git a/src/test/ref/declared-ssa-var-0.log b/src/test/ref/declared-ssa-var-0.log index c34e19a84..e5c8ec729 100644 --- a/src/test/ref/declared-ssa-var-0.log +++ b/src/test/ref/declared-ssa-var-0.log @@ -171,8 +171,22 @@ byte main::idx_ssa_l#7 byte main::idx_ssa_l#8 byte main::idx_ssa_l#9 +Adding number conversion cast (unumber) $28 in +Adding number conversion cast (unumber) $50 in +Adding number conversion cast (unumber) $78 in +Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $28 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $50 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $78 Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) $28 +Finalized unsigned number type (byte) $50 +Finalized unsigned number type (byte) $78 +Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx_ssa_g#1 = idx_ssa_g#9 Alias main::idx_ssa_l#8 = main::idx_ssa_l#9 Alias main::idx_ssa_l#4 = main::idx_ssa_l#7 @@ -266,13 +280,6 @@ Successful SSA optimization Pass2ConstantInlining Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $78 -Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@9(between main::@1 and main::@1) Added new block during phi lifting main::@10(between main::@3 and main::@3) Added new block during phi lifting main::@11(between main::@5 and main::@5) @@ -718,9 +725,9 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE constant byte* const SCREEN1 = (byte*) 1024 -constant byte* const SCREEN2 = (byte*)$400+$28 -constant byte* const SCREEN3 = (byte*)$400+$50 -constant byte* const SCREEN4 = (byte*)$400+$78 +constant byte* const SCREEN2 = (byte*) 1024+$28 +constant byte* const SCREEN3 = (byte*) 1024+$50 +constant byte* const SCREEN4 = (byte*) 1024+$78 void __start() byte idx_nssa_g loadstore zp[1]:2 20.61111111111111 byte idx_ssa_g diff --git a/src/test/ref/declared-ssa-var-0.sym b/src/test/ref/declared-ssa-var-0.sym index cb84f9a10..fb43b0b26 100644 --- a/src/test/ref/declared-ssa-var-0.sym +++ b/src/test/ref/declared-ssa-var-0.sym @@ -1,7 +1,7 @@ constant byte* const SCREEN1 = (byte*) 1024 -constant byte* const SCREEN2 = (byte*)$400+$28 -constant byte* const SCREEN3 = (byte*)$400+$50 -constant byte* const SCREEN4 = (byte*)$400+$78 +constant byte* const SCREEN2 = (byte*) 1024+$28 +constant byte* const SCREEN3 = (byte*) 1024+$50 +constant byte* const SCREEN4 = (byte*) 1024+$78 void __start() byte idx_nssa_g loadstore zp[1]:2 20.61111111111111 byte idx_ssa_g diff --git a/src/test/ref/deref-to-derefidx-2.log b/src/test/ref/deref-to-derefidx-2.log index 976c45e2b..7c8d5adbb 100644 --- a/src/test/ref/deref-to-derefidx-2.log +++ b/src/test/ref/deref-to-derefidx-2.log @@ -60,7 +60,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant word* const SCREEN = (word*)$400 +constant word* const SCREEN = (byte*)$400 constant byte SIZEOF_WORD = 2 void __start() void main() @@ -94,7 +94,7 @@ byte screen_idx#9 Adding number conversion cast (unumber) 2 in print::$0 = print::m#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 2 @@ -313,7 +313,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 void main() constant byte* msg1[] = { 'a', 'b', 'c', 'd' } constant byte* msg2[] = { '1', '2', '3', '4' } diff --git a/src/test/ref/deref-to-derefidx-2.sym b/src/test/ref/deref-to-derefidx-2.sym index ad72cff56..8838b2aa6 100644 --- a/src/test/ref/deref-to-derefidx-2.sym +++ b/src/test/ref/deref-to-derefidx-2.sym @@ -1,4 +1,4 @@ -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 void main() constant byte* msg1[] = { 'a', 'b', 'c', 'd' } constant byte* msg2[] = { '1', '2', '3', '4' } diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm index d411207da..50a02c225 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm @@ -42,7 +42,7 @@ .label plex_free_next = $b .segment Code __start: { - // char* volatile PLEX_SCREEN_PTR = 0x400+0x3f8 + // char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.cfg b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.cfg index d017d745b..b3ab63460 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.cfg +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.cfg @@ -4,7 +4,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 + [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [2] plex_show_idx = 0 [3] plex_sprite_idx = 0 [4] plex_sprite_msb = 1 diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log index 96ed4732f..5182c519b 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log @@ -550,6 +550,7 @@ Adding number conversion cast (unumber) 1 in loop::sy#1 = loop::sy#2 + rangenext Adding number conversion cast (unumber) 1 in loop::sin_idx#1 = loop::sin_idx#3 + 1 Adding number conversion cast (unumber) 0 in loop::$6 = loop::$5 != 0 Adding number conversion cast (unumber) 1 in loop::ss#1 = loop::ss#2 + rangenext(0,PLEX_COUNT-1) +Adding number conversion cast (unumber) $3f8 in PLEX_SCREEN_PTR = (byte*)$400+$3f8 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast plex_show_idx = (unumber)0 Inlining cast plex_sprite_idx = (unumber)0 @@ -601,6 +602,8 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $3f8 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (word) $3f8 Finalized unsigned number type (byte) 1 @@ -635,6 +638,7 @@ Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 1 +Finalized unsigned number type (word) $3f8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to byte in plexSort::$1 = plexSort::m#2 + 1 Inferred type updated to byte in plexSort::$4 = plexSort::s#3 + 1 @@ -830,8 +834,6 @@ Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $2000 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $3f8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$6 @@ -916,7 +918,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 + [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [2] plex_show_idx = 0 [3] plex_sprite_idx = 0 [4] plex_sprite_msb = 1 @@ -1322,7 +1324,7 @@ Allocated zp[1]:35 [ plexShowSprite::$9 ] Allocated zp[1]:36 [ plexShowSprite::$5 ] Allocated zp[1]:37 [ plexShowSprite::$6 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1385,7 +1387,7 @@ Statement [102] *SPRITES_XMSB = *SPRITES_XMSB & plexShowSprite::$9 [ PLEX_SCREEN Statement [108] if(plex_sprite_msb!=0) goto plexShowSprite::@return [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [109] plex_sprite_msb = 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [111] *SPRITES_XMSB = *SPRITES_XMSB | plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1432,7 +1434,7 @@ Statement [102] *SPRITES_XMSB = *SPRITES_XMSB & plexShowSprite::$9 [ PLEX_SCREEN Statement [108] if(plex_sprite_msb!=0) goto plexShowSprite::@return [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [109] plex_sprite_msb = 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [111] *SPRITES_XMSB = *SPRITES_XMSB | plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1655,7 +1657,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 -- pbuz1=pbuc1 + // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 @@ -2549,8 +2551,8 @@ Score: 58107 // __start __start: { // __start::__init1 - // char* volatile PLEX_SCREEN_PTR = 0x400+0x3f8 - // [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 -- pbuz1=pbuc1 + // char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8 + // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 diff --git a/src/test/ref/examples/conio/nacht-screen.log b/src/test/ref/examples/conio/nacht-screen.log index 8d1eecf7c..cbdcb9c16 100644 --- a/src/test/ref/examples/conio/nacht-screen.log +++ b/src/test/ref/examples/conio/nacht-screen.log @@ -819,8 +819,8 @@ constant const byte LIGHT_BLUE = $e void MakeNiceScreen() number~ MakeNiceScreen::$12 number~ MakeNiceScreen::$15 -byte~ MakeNiceScreen::$19 -byte~ MakeNiceScreen::$20 +word~ MakeNiceScreen::$19 +word~ MakeNiceScreen::$20 bool~ MakeNiceScreen::$21 word~ MakeNiceScreen::$22 byte~ MakeNiceScreen::$23 diff --git a/src/test/ref/examples/cx16/cx16-bankload.log b/src/test/ref/examples/cx16/cx16-bankload.log index 9eff9766a..73ac22f5e 100644 --- a/src/test/ref/examples/cx16/cx16-bankload.log +++ b/src/test/ref/examples/cx16/cx16-bankload.log @@ -2106,7 +2106,7 @@ byte load_to_bank::return#1 byte load_to_bank::return#2 byte load_to_bank::return#3 void main() -byte~ main::$7 +word~ main::$7 constant const dword main::BANK_SPRITE = $12000 volatile struct VERA_SPRITE main::SPRITE_ATTR loadstore constant const dword main::VRAM_SPRITE = $10000 diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.log b/src/test/ref/examples/cx16/cx16-rasterbars.log index cfa22bfef..ddfcac2a3 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.log +++ b/src/test/ref/examples/cx16/cx16-rasterbars.log @@ -247,9 +247,9 @@ __interrupt(rom_min_cx16) void irq_line() bool~ irq_line::$0 bool~ irq_line::$1 byte*~ irq_line::$10 -byte~ irq_line::$11 +word~ irq_line::$11 bool~ irq_line::$12 -byte~ irq_line::$2 +word~ irq_line::$2 bool~ irq_line::$4 bool~ irq_line::$5 bool~ irq_line::$6 diff --git a/src/test/ref/examples/cx16/cx16-sprites.log b/src/test/ref/examples/cx16/cx16-sprites.log index a37490f0d..01b3985f1 100644 --- a/src/test/ref/examples/cx16/cx16-sprites.log +++ b/src/test/ref/examples/cx16/cx16-sprites.log @@ -301,7 +301,7 @@ word~ irq_vsync::$12 bool~ irq_vsync::$2 bool~ irq_vsync::$3 bool~ irq_vsync::$4 -byte~ irq_vsync::$6 +word~ irq_vsync::$6 bool~ irq_vsync::$7 bool~ irq_vsync::$8 bool~ irq_vsync::$9 @@ -350,8 +350,8 @@ byte* irq_vsync::vram_sprite_pos#7 byte* irq_vsync::vram_sprite_pos#8 void main() bool~ main::$4 -byte~ main::$5 -byte~ main::$7 +word~ main::$5 +word~ main::$7 byte main::s byte main::s#0 byte main::s#1 diff --git a/src/test/ref/examples/cx16/cx16-text.log b/src/test/ref/examples/cx16/cx16-text.log index 02de22634..334db0bf0 100644 --- a/src/test/ref/examples/cx16/cx16-text.log +++ b/src/test/ref/examples/cx16/cx16-text.log @@ -130,7 +130,7 @@ constant const byte VERA_INC_0 = 0 constant const byte VERA_INC_1 = $10 void __start() void main() -byte~ main::$0 +word~ main::$0 bool~ main::$4 constant byte* main::MSG[] = "hello world!" constant byte* main::MSG2[] = "h e l l o w o r l d ! " diff --git a/src/test/ref/examples/mega65/banked-music.log b/src/test/ref/examples/mega65/banked-music.log index 05b669daf..c495e8d59 100644 --- a/src/test/ref/examples/mega65/banked-music.log +++ b/src/test/ref/examples/mega65/banked-music.log @@ -317,7 +317,7 @@ void* memcpy_dma4::src#1 byte memcpy_dma4::src_bank byte memcpy_dma4::src_bank#0 byte memcpy_dma4::src_bank#1 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: (byte*)0, src_bank: 0, dest: (byte*)0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) byte~ memoryRemap::$0 byte~ memoryRemap::$1 @@ -449,8 +449,6 @@ Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 Simplifying constant pointer cast (byte*) 2048 Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 0 Simplifying constant pointer cast (byte*) 20992 Simplifying constant integer cast 3 Simplifying constant integer cast 4 @@ -674,6 +672,8 @@ Alias candidate removed (volatile)memoryRemap::yVal = memoryRemap::$5 Alias candidate removed (volatile)memoryRemap::zVal = memoryRemap::$9 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (word) $4000 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)memoryRemap::aVal = memoryRemap::$0 @@ -846,7 +846,7 @@ byte memcpy_dma4::dmaMode#0 2.0 word memcpy_dma4::num void* memcpy_dma4::src byte memcpy_dma4::src_bank -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) byte~ memoryRemap::$0 202.0 byte~ memoryRemap::$1 67.33333333333333 @@ -1726,7 +1726,7 @@ void* memcpy_dma4::src constant void* memcpy_dma4::src#0 src = (void*)upperCodeData byte memcpy_dma4::src_bank constant byte memcpy_dma4::src_bank#0 src_bank = 0 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) byte~ memoryRemap::$0 reg byte a 202.0 byte~ memoryRemap::$1 zp[1]:7 67.33333333333333 diff --git a/src/test/ref/examples/mega65/banked-music.sym b/src/test/ref/examples/mega65/banked-music.sym index a89eacb10..fba2cc3d7 100644 --- a/src/test/ref/examples/mega65/banked-music.sym +++ b/src/test/ref/examples/mega65/banked-music.sym @@ -58,7 +58,7 @@ void* memcpy_dma4::src constant void* memcpy_dma4::src#0 src = (void*)upperCodeData byte memcpy_dma4::src_bank constant byte memcpy_dma4::src_bank#0 src_bank = 0 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) byte~ memoryRemap::$0 reg byte a 202.0 byte~ memoryRemap::$1 zp[1]:7 67.33333333333333 diff --git a/src/test/ref/examples/mega65/dma-test2.log b/src/test/ref/examples/mega65/dma-test2.log index a44b00e38..2be069487 100644 --- a/src/test/ref/examples/mega65/dma-test2.log +++ b/src/test/ref/examples/mega65/dma-test2.log @@ -146,7 +146,7 @@ word memcpy_dma::num#1 void* memcpy_dma::src void* memcpy_dma::src#0 void* memcpy_dma::src#1 -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore = { command: DMA_COMMAND_COPY, count: 0, src: (byte*)0, src_bank: 0, dest: (byte*)0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) byte~ memoryRemap::$0 byte~ memoryRemap::$1 @@ -202,8 +202,6 @@ Inlining cast memcpy_dma::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 0 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -327,6 +325,8 @@ Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $18 Finalized unsigned number type (byte) $50 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -393,7 +393,7 @@ byte memcpy_dma::dmaMode byte memcpy_dma::dmaMode#0 2.4444444444444446 word memcpy_dma::num void* memcpy_dma::src -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) volatile byte memoryRemap::aVal loadstore 2.75 word memoryRemap::lowerPageOffset @@ -713,7 +713,7 @@ word memcpy_dma::num constant word memcpy_dma::num#0 num = (word)$18*$50 void* memcpy_dma::src constant void* memcpy_dma::src#0 src = (void*)DEFAULT_SCREEN+$50 -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 word memoryRemap::lowerPageOffset diff --git a/src/test/ref/examples/mega65/dma-test2.sym b/src/test/ref/examples/mega65/dma-test2.sym index 088be437d..7c93bee4f 100644 --- a/src/test/ref/examples/mega65/dma-test2.sym +++ b/src/test/ref/examples/mega65/dma-test2.sym @@ -18,7 +18,7 @@ word memcpy_dma::num constant word memcpy_dma::num#0 num = (word)$18*$50 void* memcpy_dma::src constant void* memcpy_dma::src#0 src = (void*)DEFAULT_SCREEN+$50 -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 word memoryRemap::lowerPageOffset diff --git a/src/test/ref/examples/mega65/dma-test3.log b/src/test/ref/examples/mega65/dma-test3.log index f81f0e61b..af125fc70 100644 --- a/src/test/ref/examples/mega65/dma-test3.log +++ b/src/test/ref/examples/mega65/dma-test3.log @@ -160,7 +160,7 @@ void* memcpy_dma4::src#1 byte memcpy_dma4::src_bank byte memcpy_dma4::src_bank#0 byte memcpy_dma4::src_bank#1 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: (byte*)0, src_bank: 0, dest: (byte*)0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) byte~ memoryRemap::$0 byte~ memoryRemap::$1 @@ -220,8 +220,6 @@ Inlining cast memcpy_dma4::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 0 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -353,6 +351,8 @@ Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $18 Finalized unsigned number type (byte) $50 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -423,7 +423,7 @@ byte memcpy_dma4::dmaMode#0 2.0 word memcpy_dma4::num void* memcpy_dma4::src byte memcpy_dma4::src_bank -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) volatile byte memoryRemap::aVal loadstore 2.75 word memoryRemap::lowerPageOffset @@ -765,7 +765,7 @@ void* memcpy_dma4::src constant void* memcpy_dma4::src#0 src = (void*)DEFAULT_SCREEN+$50 byte memcpy_dma4::src_bank constant byte memcpy_dma4::src_bank#0 src_bank = 0 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 word memoryRemap::lowerPageOffset diff --git a/src/test/ref/examples/mega65/dma-test3.sym b/src/test/ref/examples/mega65/dma-test3.sym index 4c710814f..eb4f46223 100644 --- a/src/test/ref/examples/mega65/dma-test3.sym +++ b/src/test/ref/examples/mega65/dma-test3.sym @@ -24,7 +24,7 @@ void* memcpy_dma4::src constant void* memcpy_dma4::src#0 src = (void*)DEFAULT_SCREEN+$50 byte memcpy_dma4::src_bank constant byte memcpy_dma4::src_bank#0 src_bank = 0 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 word memoryRemap::lowerPageOffset diff --git a/src/test/ref/examples/mega65/dma-test5.log b/src/test/ref/examples/mega65/dma-test5.log index d9cfbfc0c..4d6e100b7 100644 --- a/src/test/ref/examples/mega65/dma-test5.log +++ b/src/test/ref/examples/mega65/dma-test5.log @@ -170,7 +170,7 @@ byte memset_dma::fill#1 word memset_dma::num word memset_dma::num#0 word memset_dma::num#1 -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: (byte*)0, src_bank: 0, dest: (byte*)0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -200,8 +200,6 @@ Inlining cast memset_dma::num#0 = (unumber)$50*$a Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 0 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -323,6 +321,8 @@ Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $50 Finalized unsigned number type (byte) $a +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -397,7 +397,7 @@ byte memset_dma::dmaMode byte memset_dma::dmaMode#0 2.4444444444444446 byte memset_dma::fill word memset_dma::num -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } Initial phi equivalence classes Added variable memoryRemap::aVal to live range equivalence class [ memoryRemap::aVal ] @@ -717,7 +717,7 @@ byte memset_dma::fill constant byte memset_dma::fill#0 fill = '*' word memset_dma::num constant word memset_dma::num#0 num = (word)$50*$a -volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dma-test5.sym b/src/test/ref/examples/mega65/dma-test5.sym index 83d155666..f19d6f769 100644 --- a/src/test/ref/examples/mega65/dma-test5.sym +++ b/src/test/ref/examples/mega65/dma-test5.sym @@ -26,7 +26,7 @@ byte memset_dma::fill constant byte memset_dma::fill#0 fill = '*' word memset_dma::num constant word memset_dma::num#0 num = (word)$50*$a -volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dypp65.log b/src/test/ref/examples/mega65/dypp65.log index 75f78c741..c2c8d2421 100644 --- a/src/test/ref/examples/mega65/dypp65.log +++ b/src/test/ref/examples/mega65/dypp65.log @@ -468,7 +468,7 @@ byte memset_dma256::fill#1 word memset_dma256::num word memset_dma256::num#0 word memset_dma256::num#1 -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: (byte*)0, src_bank: 0, dest: (byte*)0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 @@ -566,8 +566,6 @@ Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 Simplifying constant pointer cast (struct MEGA65_VICIV*) 53248 Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 0 Simplifying constant pointer cast (byte*) 20480 Simplifying constant pointer cast (byte*) 24576 Simplifying constant integer cast 4 @@ -881,6 +879,8 @@ Consolidated array index constant in *((byte**)memset_dma256::f018b#0+OFFSET_STR Successful SSA optimization Pass2ConstantAdditionElimination Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $2d Finalized unsigned number type (byte) $19 Finalized unsigned number type (byte) 2 @@ -1144,7 +1144,7 @@ byte memset_dma256::dmaMode#0 2.0 struct DMA_LIST_F018B* memset_dma256::f018b byte memset_dma256::fill word memset_dma256::num -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } Initial phi equivalence classes [ main::r#2 main::r#1 ] @@ -2144,7 +2144,7 @@ constant struct DMA_LIST_F018B* memset_dma256::f018b#0 f018b = (struct DMA_LIST_ byte memset_dma256::fill word memset_dma256::num constant word memset_dma256::num#0 num = (word)$2d*$19*2 -volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } reg byte x [ main::r#2 main::r#1 ] diff --git a/src/test/ref/examples/mega65/dypp65.sym b/src/test/ref/examples/mega65/dypp65.sym index 234e6a9e1..66ed27792 100644 --- a/src/test/ref/examples/mega65/dypp65.sym +++ b/src/test/ref/examples/mega65/dypp65.sym @@ -104,7 +104,7 @@ constant struct DMA_LIST_F018B* memset_dma256::f018b#0 f018b = (struct DMA_LIST_ byte memset_dma256::fill word memset_dma256::num constant word memset_dma256::num#0 num = (word)$2d*$19*2 -volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: (byte*) 0, src_bank: 0, dest: (byte*) 0, dest_bank: 0, sub_command: 0, modulo: 0 } +volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } reg byte x [ main::r#2 main::r#1 ] diff --git a/src/test/ref/examples/mega65/helloworld-mega65.log b/src/test/ref/examples/mega65/helloworld-mega65.log index 75ffcd982..789b04236 100644 --- a/src/test/ref/examples/mega65/helloworld-mega65.log +++ b/src/test/ref/examples/mega65/helloworld-mega65.log @@ -373,8 +373,8 @@ constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE constant const byte CRAM2K = 1 constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant volatile byte* const IO_BANK = (volatile byte*)$d030 -constant volatile byte* const IO_KEY = (volatile byte*)$d02f +constant volatile byte* const IO_BANK = (byte*)$d030 +constant volatile byte* const IO_KEY = (byte*)$d02f constant const byte LIGHT_BLUE = $e constant byte RADIX::BINARY = 2 constant byte RADIX::DECIMAL = $a @@ -625,8 +625,8 @@ Inlining cast *IO_KEY = (unumber)$53 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_mega65_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (volatile byte*) 53295 -Simplifying constant pointer cast (volatile byte*) 53296 +Simplifying constant pointer cast (byte*) 53295 +Simplifying constant pointer cast (byte*) 53296 Simplifying constant pointer cast (byte*) 55296 Simplifying constant pointer cast (byte*) 2048 Simplifying constant pointer cast (byte*) 235 @@ -2407,8 +2407,8 @@ FINAL SYMBOL TABLE constant byte* const COLORRAM = (byte*) 55296 constant const byte CRAM2K = 1 constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant volatile byte* const IO_BANK = (volatile byte*) 53296 -constant volatile byte* const IO_KEY = (volatile byte*) 53295 +constant volatile byte* const IO_BANK = (byte*) 53296 +constant volatile byte* const IO_KEY = (byte*) 53295 constant const byte LIGHT_BLUE = $e constant byte RADIX::BINARY = 2 constant byte RADIX::DECIMAL = $a diff --git a/src/test/ref/examples/mega65/helloworld-mega65.sym b/src/test/ref/examples/mega65/helloworld-mega65.sym index 6e0f03541..66703a6d7 100644 --- a/src/test/ref/examples/mega65/helloworld-mega65.sym +++ b/src/test/ref/examples/mega65/helloworld-mega65.sym @@ -1,8 +1,8 @@ constant byte* const COLORRAM = (byte*) 55296 constant const byte CRAM2K = 1 constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant volatile byte* const IO_BANK = (volatile byte*) 53296 -constant volatile byte* const IO_KEY = (volatile byte*) 53295 +constant volatile byte* const IO_BANK = (byte*) 53296 +constant volatile byte* const IO_KEY = (byte*) 53295 constant const byte LIGHT_BLUE = $e constant byte RADIX::BINARY = 2 constant byte RADIX::DECIMAL = $a diff --git a/src/test/ref/examples/mega65/raster65.log b/src/test/ref/examples/mega65/raster65.log index 93742ec93..16d59076c 100644 --- a/src/test/ref/examples/mega65/raster65.log +++ b/src/test/ref/examples/mega65/raster65.log @@ -674,7 +674,7 @@ byte irq::wobble_idx#9 byte irq::zoomval byte irq::zoomval#0 void main() -byte~ main::$2 +word~ main::$2 bool~ main::$3 bool~ main::$4 bool~ main::$5 diff --git a/src/test/ref/examples/mega65/test-vic4.log b/src/test/ref/examples/mega65/test-vic4.log index 64e62491b..200ac6fff 100644 --- a/src/test/ref/examples/mega65/test-vic4.log +++ b/src/test/ref/examples/mega65/test-vic4.log @@ -67,8 +67,8 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA constant byte* const COLORS = (byte*)$d800 constant const byte CRAM2K = 1 -constant volatile byte* const IO_BANK = (volatile byte*)$d030 -constant volatile byte* const IO_KEY = (volatile byte*)$d02f +constant volatile byte* const IO_BANK = (byte*)$d030 +constant volatile byte* const IO_KEY = (byte*)$d02f constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 constant byte* const SCREEN = (byte*)$800 @@ -97,8 +97,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *IO_KEY = (unumber)$47 Inlining cast *IO_KEY = (unumber)$53 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (volatile byte*) 53295 -Simplifying constant pointer cast (volatile byte*) 53296 +Simplifying constant pointer cast (byte*) 53295 +Simplifying constant pointer cast (byte*) 53296 Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 Simplifying constant pointer cast (byte*) 2048 Simplifying constant pointer cast (byte*) 55296 @@ -384,8 +384,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE constant byte* const COLORS = (byte*) 55296 constant const byte CRAM2K = 1 -constant volatile byte* const IO_BANK = (volatile byte*) 53296 -constant volatile byte* const IO_KEY = (volatile byte*) 53295 +constant volatile byte* const IO_BANK = (byte*) 53296 +constant volatile byte* const IO_KEY = (byte*) 53295 constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 constant byte* const SCREEN = (byte*) 2048 diff --git a/src/test/ref/examples/mega65/test-vic4.sym b/src/test/ref/examples/mega65/test-vic4.sym index 0686f51b8..753811527 100644 --- a/src/test/ref/examples/mega65/test-vic4.sym +++ b/src/test/ref/examples/mega65/test-vic4.sym @@ -1,7 +1,7 @@ constant byte* const COLORS = (byte*) 55296 constant const byte CRAM2K = 1 -constant volatile byte* const IO_BANK = (volatile byte*) 53296 -constant volatile byte* const IO_KEY = (volatile byte*) 53295 +constant volatile byte* const IO_BANK = (byte*) 53296 +constant volatile byte* const IO_KEY = (byte*) 53295 constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 constant byte* const SCREEN = (byte*) 2048 diff --git a/src/test/ref/examples/nes/nes-conio.log b/src/test/ref/examples/nes/nes-conio.log index b9860831b..0272cf316 100644 --- a/src/test/ref/examples/nes/nes-conio.log +++ b/src/test/ref/examples/nes/nes-conio.log @@ -1076,8 +1076,8 @@ constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*)$23c0 constant byte* const PPU_ATTRIBUTE_TABLE_1 = (byte*)$27c0 constant byte* const PPU_NAME_TABLE_0 = (byte*)$2000 constant byte* const PPU_PALETTE = (byte*)$3f00 -constant volatile byte* const PPU_PPUDATA = (volatile byte*)$2007 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*)$2002 +constant volatile byte* const PPU_PPUDATA = (byte*)$2007 +constant volatile byte* const PPU_PPUSTATUS = (byte*)$2002 constant byte RADIX::BINARY = 2 constant byte RADIX::DECIMAL = $a constant byte RADIX::HEXADECIMAL = $10 @@ -1094,7 +1094,7 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*)0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void clrscr() constant byte* conio_cscroll_buffer[$20] = { fill( $20, 0) } @@ -1213,7 +1213,7 @@ byte gotoxy::y#5 byte gotoxy::y#6 byte gotoxy::y#7 void main() -byte~ main::$1 +word~ main::$1 byte~ main::$11 number~ main::$12 byte~ main::$14 @@ -1840,11 +1840,10 @@ Simplifying constant pointer cast (byte*) 8192 Simplifying constant pointer cast (byte*) 9152 Simplifying constant pointer cast (byte*) 10176 Simplifying constant pointer cast (byte*) 16128 -Simplifying constant pointer cast (volatile byte*) 8194 -Simplifying constant pointer cast (volatile byte*) 8199 +Simplifying constant pointer cast (byte*) 8194 +Simplifying constant pointer cast (byte*) 8199 Simplifying constant pointer cast (byte*) 16407 Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (void()*) 0 Simplifying constant pointer cast (struct RICOH_2C02*) 8192 Simplifying constant pointer cast (struct RICOH_2A03*) 16384 Simplifying constant integer cast 1 @@ -2627,6 +2626,7 @@ Finalized unsigned number type (byte) $b Finalized unsigned number type (byte) $b Finalized unsigned number type (byte) $b Finalized unsigned number type (byte) $20 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $1e Finalized unsigned number type (byte) $20 Finalized unsigned number type (byte) $1e @@ -6054,8 +6054,8 @@ constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 constant byte* const PPU_ATTRIBUTE_TABLE_1 = (byte*) 10176 constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUDATA = (volatile byte*) 8199 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*) 8194 +constant volatile byte* const PPU_PPUDATA = (byte*) 8199 +constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 constant byte RADIX::BINARY = 2 constant byte RADIX::DECIMAL = $a constant byte RADIX::HEXADECIMAL = $10 @@ -6070,7 +6070,7 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*) 0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void clrscr() constant byte* conio_cscroll_buffer[$20] = { fill( $20, 0) } diff --git a/src/test/ref/examples/nes/nes-conio.sym b/src/test/ref/examples/nes/nes-conio.sym index d10280573..8503c2a98 100644 --- a/src/test/ref/examples/nes/nes-conio.sym +++ b/src/test/ref/examples/nes/nes-conio.sym @@ -19,8 +19,8 @@ constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 constant byte* const PPU_ATTRIBUTE_TABLE_1 = (byte*) 10176 constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUDATA = (volatile byte*) 8199 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*) 8194 +constant volatile byte* const PPU_PPUDATA = (byte*) 8199 +constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 constant byte RADIX::BINARY = 2 constant byte RADIX::DECIMAL = $a constant byte RADIX::HEXADECIMAL = $10 @@ -35,7 +35,7 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*) 0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void clrscr() constant byte* conio_cscroll_buffer[$20] = { fill( $20, 0) } diff --git a/src/test/ref/examples/nes/nes-demo.log b/src/test/ref/examples/nes/nes-demo.log index 7e564d2a0..cd304855f 100644 --- a/src/test/ref/examples/nes/nes-demo.log +++ b/src/test/ref/examples/nes/nes-demo.log @@ -671,19 +671,19 @@ constant struct RICOH_2C02* PPU = (struct RICOH_2C02*)$2000 constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*)$23c0 constant byte* const PPU_NAME_TABLE_0 = (byte*)$2000 constant byte* const PPU_PALETTE = (byte*)$3f00 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*)$2002 +constant volatile byte* const PPU_PPUSTATUS = (byte*)$2002 constant byte SIZEOF_STRUCT_SPRITEDATA = 4 constant struct SpriteData* SPRITES[] = { { y: $96, tile: $36, attributes: 2, x: $c }, { y: $96, tile: $37, attributes: 2, x: $14 }, { y: $9e, tile: $38, attributes: 2, x: $c }, { y: $9e, tile: $39, attributes: 2, x: $14 }, { y: $96, tile: $70, attributes: 0, x: $48 }, { y: $96, tile: $71, attributes: 0, x: $50 }, { y: $9e, tile: $72, attributes: 1, x: $48 }, { y: $9e, tile: $73, attributes: 1, x: $50 } } constant struct SpriteData* SPRITE_BUFFER[$40] = { fill( $40, 0) } constant byte* TILES[] = kickasm {{ .import binary "smb1_chr.bin" }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*)0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void main() -byte~ main::$1 +word~ main::$1 byte*~ main::$10 bool~ main::$12 -byte~ main::$6 +word~ main::$6 bool~ main::$9 byte*~ main::enableVideoOutput1_$0 byte*~ main::enableVideoOutput1_$1 @@ -1140,10 +1140,9 @@ Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 8192 Simplifying constant pointer cast (byte*) 9152 Simplifying constant pointer cast (byte*) 16128 -Simplifying constant pointer cast (volatile byte*) 8194 +Simplifying constant pointer cast (byte*) 8194 Simplifying constant pointer cast (byte*) 16407 Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (void()*) 0 Simplifying constant pointer cast (struct RICOH_2C02*) 8192 Simplifying constant pointer cast (struct RICOH_2A03*) 16384 Simplifying constant integer cast 1 @@ -1851,6 +1850,7 @@ Successful SSA optimization Pass2ConstantAdditionElimination Finalized unsigned number type (byte) $20 Finalized unsigned number type (byte) $40 Finalized unsigned number type (byte) $40 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $12 Finalized unsigned number type (byte) $20 Finalized unsigned number type (byte) $14 @@ -3613,14 +3613,14 @@ constant struct RICOH_2C02* PPU = (struct RICOH_2C02*) 8192 constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*) 8194 +constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 constant byte SIZEOF_BYTE = 1 constant byte SIZEOF_STRUCT_SPRITEDATA = 4 constant struct SpriteData* SPRITES[] = { { y: $96, tile: $36, attributes: 2, x: $c }, { y: $96, tile: $37, attributes: 2, x: $14 }, { y: $9e, tile: $38, attributes: 2, x: $c }, { y: $9e, tile: $39, attributes: 2, x: $14 }, { y: $96, tile: $70, attributes: 0, x: $48 }, { y: $96, tile: $71, attributes: 0, x: $50 }, { y: $9e, tile: $72, attributes: 1, x: $48 }, { y: $9e, tile: $73, attributes: 1, x: $50 } } constant struct SpriteData* SPRITE_BUFFER[$40] = { fill( $40, 0) } constant byte* TILES[] = kickasm {{ .import binary "smb1_chr.bin" }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*) 0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void main() byte main::initNES1_i byte main::initNES1_i#1 reg byte x 16.5 diff --git a/src/test/ref/examples/nes/nes-demo.sym b/src/test/ref/examples/nes/nes-demo.sym index 194bcd718..88d1d91d7 100644 --- a/src/test/ref/examples/nes/nes-demo.sym +++ b/src/test/ref/examples/nes/nes-demo.sym @@ -22,14 +22,14 @@ constant struct RICOH_2C02* PPU = (struct RICOH_2C02*) 8192 constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*) 8194 +constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 constant byte SIZEOF_BYTE = 1 constant byte SIZEOF_STRUCT_SPRITEDATA = 4 constant struct SpriteData* SPRITES[] = { { y: $96, tile: $36, attributes: 2, x: $c }, { y: $96, tile: $37, attributes: 2, x: $14 }, { y: $9e, tile: $38, attributes: 2, x: $c }, { y: $9e, tile: $39, attributes: 2, x: $14 }, { y: $96, tile: $70, attributes: 0, x: $48 }, { y: $96, tile: $71, attributes: 0, x: $50 }, { y: $9e, tile: $72, attributes: 1, x: $48 }, { y: $9e, tile: $73, attributes: 1, x: $50 } } constant struct SpriteData* SPRITE_BUFFER[$40] = { fill( $40, 0) } constant byte* TILES[] = kickasm {{ .import binary "smb1_chr.bin" }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*) 0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void main() byte main::initNES1_i byte main::initNES1_i#1 reg byte x 16.5 diff --git a/src/test/ref/examples/nes/nes-dxycp.log b/src/test/ref/examples/nes/nes-dxycp.log index 310db0f32..ef26944c8 100644 --- a/src/test/ref/examples/nes/nes-dxycp.log +++ b/src/test/ref/examples/nes/nes-dxycp.log @@ -496,7 +496,7 @@ constant struct RICOH_2C02* PPU = (struct RICOH_2C02*)$2000 constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*)$23c0 constant byte* const PPU_NAME_TABLE_0 = (byte*)$2000 constant byte* const PPU_PALETTE = (byte*)$3f00 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*)$2002 +constant volatile byte* const PPU_PPUSTATUS = (byte*)$2002 constant const byte* SINTABLE_184[$ef] = kickasm {{ .fill 239, round(71.5+71.5*sin(2*PI*i/239)) }} constant const byte* SINTABLE_240[$100] = kickasm {{ .fill $100, round(115.5+107.5*sin(2*PI*i/256)) @@ -513,10 +513,10 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*)0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void main() -byte~ main::$1 +word~ main::$1 bool~ main::$6 byte~ main::$7 bool~ main::$8 @@ -890,10 +890,9 @@ Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 8192 Simplifying constant pointer cast (byte*) 9152 Simplifying constant pointer cast (byte*) 16128 -Simplifying constant pointer cast (volatile byte*) 8194 +Simplifying constant pointer cast (byte*) 8194 Simplifying constant pointer cast (byte*) 16407 Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (void()*) 0 Simplifying constant pointer cast (struct RICOH_2C02*) 8192 Simplifying constant pointer cast (struct RICOH_2A03*) 16384 Simplifying constant integer cast 1 @@ -1347,6 +1346,7 @@ Finalized unsigned number type (byte) $59 Finalized unsigned number type (byte) $ef Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) $20 Finalized unsigned number type (byte) $1e Successful SSA optimization PassNFinalizeNumberTypeConversions @@ -3026,7 +3026,7 @@ constant struct RICOH_2C02* PPU = (struct RICOH_2C02*) 8192 constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*) 8194 +constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 constant const byte* SINTABLE_184[$ef] = kickasm {{ .fill 239, round(71.5+71.5*sin(2*PI*i/239)) }} constant const byte* SINTABLE_240[$100] = kickasm {{ .fill $100, round(115.5+107.5*sin(2*PI*i/256)) @@ -3043,7 +3043,7 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*) 0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void main() byte~ main::$7 reg byte y 126.25 diff --git a/src/test/ref/examples/nes/nes-dxycp.sym b/src/test/ref/examples/nes/nes-dxycp.sym index 06cf220f2..c7df80fcc 100644 --- a/src/test/ref/examples/nes/nes-dxycp.sym +++ b/src/test/ref/examples/nes/nes-dxycp.sym @@ -19,7 +19,7 @@ constant struct RICOH_2C02* PPU = (struct RICOH_2C02*) 8192 constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUSTATUS = (volatile byte*) 8194 +constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 constant const byte* SINTABLE_184[$ef] = kickasm {{ .fill 239, round(71.5+71.5*sin(2*PI*i/239)) }} constant const byte* SINTABLE_240[$100] = kickasm {{ .fill $100, round(115.5+107.5*sin(2*PI*i/256)) @@ -36,7 +36,7 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()* const* VECTORS[] = { &vblank, &main, (void()*) 0 } +constant void()* const* VECTORS[] = { &vblank, &main, 0 } void __start() void main() byte~ main::$7 reg byte y 126.25 diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.log b/src/test/ref/examples/plus4/plus4-randomwalk.log index aa6dbe8dc..c51d727e2 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.log +++ b/src/test/ref/examples/plus4/plus4-randomwalk.log @@ -1106,7 +1106,7 @@ Uplift Scope [MOS7360_TED] Uplift Scope [MOS6551_ACIA] Uplift Scope [MOS6529_PIO] Uplift Scope [MOS7501_PORT] -Uplift Scope [$0] +Uplift Scope [PLUS4_ROM_BANKING] Uplift Scope [RADIX] Uplifting [main] best 8134 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]:13 [ main::$29 ] zp[2]:15 [ main::$30 ] zp[2]:17 [ main::$3 ] zp[2]:21 [ main::$6 ] reg byte a [ main::$9 ] zp[2]:29 [ main::$10 ] reg byte a [ main::$12 ] reg byte a [ main::$13 ] zp[1]:34 [ main::$18 ] zp[2]:11 [ main::$24 ] zp[1]:31 [ main::rnd#0 ] zp[1]:23 [ main::cnt#0 ] zp[2]:24 [ main::$8 ] zp[2]:19 [ main::offset#0 ] @@ -1118,7 +1118,7 @@ Uplifting [MOS7360_TED] best 8115 combination Uplifting [MOS6551_ACIA] best 8115 combination Uplifting [MOS6529_PIO] best 8115 combination Uplifting [MOS7501_PORT] best 8115 combination -Uplifting [$0] best 8115 combination +Uplifting [PLUS4_ROM_BANKING] best 8115 combination Uplifting [RADIX] best 8115 combination Attempting to uplift remaining variables inzp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] Uplifting [main] best 8115 combination zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-13.log b/src/test/ref/function-pointer-noarg-call-13.log index b819d6824..a0cf5026f 100644 --- a/src/test/ref/function-pointer-noarg-call-13.log +++ b/src/test/ref/function-pointer-noarg-call-13.log @@ -65,7 +65,7 @@ void* volatile enableDLI::dliptr loadstore void fn1() void fn2() void main() -constant const byte* r = (const byte*)$8000 +constant const byte* r = (byte*)$8000 Adding number conversion cast (unumber) 1 in *r = 1 Adding number conversion cast (unumber) 2 in *r = 2 @@ -73,7 +73,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *r = (unumber)1 Inlining cast *r = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (const byte*) 32768 +Simplifying constant pointer cast (byte*) 32768 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification @@ -272,7 +272,7 @@ void* volatile enableDLI::dliptr loadstore zp[2]:128 2.0 void fn1() void fn2() void main() -constant const byte* r = (const byte*) 32768 +constant const byte* r = (byte*) 32768 zp[2]:128 [ enableDLI::dliptr ] diff --git a/src/test/ref/function-pointer-noarg-call-13.sym b/src/test/ref/function-pointer-noarg-call-13.sym index 694de0d46..d46269bf9 100644 --- a/src/test/ref/function-pointer-noarg-call-13.sym +++ b/src/test/ref/function-pointer-noarg-call-13.sym @@ -3,6 +3,6 @@ void* volatile enableDLI::dliptr loadstore zp[2]:128 2.0 void fn1() void fn2() void main() -constant const byte* r = (const byte*) 32768 +constant const byte* r = (byte*) 32768 zp[2]:128 [ enableDLI::dliptr ] diff --git a/src/test/ref/function-pointer-noarg-call-6.asm b/src/test/ref/function-pointer-noarg-call-6.asm index 0df3b0f25..5a65dc56b 100644 --- a/src/test/ref/function-pointer-noarg-call-6.asm +++ b/src/test/ref/function-pointer-noarg-call-6.asm @@ -15,7 +15,7 @@ main: { lda #>$d800 sta.z cols+1 __b1: - // for(byte* cols = $d800; cols<$d800+1000;cols++) + // for(byte* cols = (char*)$d800; cols<$d800+1000;cols++) lda.z cols+1 cmp #>$d800+$3e8 bcc __b2 @@ -35,7 +35,7 @@ main: { clc adc #1 sta (cols),y - // for(byte* cols = $d800; cols<$d800+1000;cols++) + // for(byte* cols = (char*)$d800; cols<$d800+1000;cols++) inc.z cols bne !+ inc.z cols+1 @@ -49,7 +49,7 @@ fn1: { lda #>$400 sta.z screen+1 __b1: - // for(byte* screen=$400;screen<$400+1000;screen++) + // for(byte* screen=(byte*)$400;screen<$400+1000;screen++) lda.z screen+1 cmp #>$400+$3e8 bcc __b2 @@ -67,7 +67,7 @@ fn1: { clc adc #1 sta (screen),y - // for(byte* screen=$400;screen<$400+1000;screen++) + // for(byte* screen=(byte*)$400;screen<$400+1000;screen++) inc.z screen bne !+ inc.z screen+1 diff --git a/src/test/ref/function-pointer-noarg-call-6.log b/src/test/ref/function-pointer-noarg-call-6.log index ef345f628..00dfd44af 100644 --- a/src/test/ref/function-pointer-noarg-call-6.log +++ b/src/test/ref/function-pointer-noarg-call-6.log @@ -365,7 +365,7 @@ main: { sta.z cols+1 // main::@1 __b1: - // for(byte* cols = $d800; cols<$d800+1000;cols++) + // for(byte* cols = (char*)$d800; cols<$d800+1000;cols++) // [2] if(main::cols#2<$d800+$3e8) goto main::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z cols+1 cmp #>$d800+$3e8 @@ -392,7 +392,7 @@ main: { clc adc #1 sta (cols),y - // for(byte* cols = $d800; cols<$d800+1000;cols++) + // for(byte* cols = (char*)$d800; cols<$d800+1000;cols++) // [7] main::cols#1 = ++ main::cols#2 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ @@ -413,7 +413,7 @@ fn1: { sta.z screen+1 // fn1::@1 __b1: - // for(byte* screen=$400;screen<$400+1000;screen++) + // for(byte* screen=(byte*)$400;screen<$400+1000;screen++) // [10] if(fn1::screen#2<$400+$3e8) goto fn1::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z screen+1 cmp #>$400+$3e8 @@ -436,7 +436,7 @@ fn1: { clc adc #1 sta (screen),y - // for(byte* screen=$400;screen<$400+1000;screen++) + // for(byte* screen=(byte*)$400;screen<$400+1000;screen++) // [13] fn1::screen#1 = ++ fn1::screen#2 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ diff --git a/src/test/ref/function-pointer-problem-1.log b/src/test/ref/function-pointer-problem-1.log index 5f1b87caa..33cfe7505 100644 --- a/src/test/ref/function-pointer-problem-1.log +++ b/src/test/ref/function-pointer-problem-1.log @@ -51,13 +51,13 @@ void enableDLI(void* volatile enableDLI::dliptr) void* volatile enableDLI::dliptr loadstore void fn1() void main() -constant const byte* r = (const byte*)$8000 +constant const byte* r = (byte*)$8000 Adding number conversion cast (unumber) 1 in *r = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *r = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (const byte*) 32768 +Simplifying constant pointer cast (byte*) 32768 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 1 @@ -211,7 +211,7 @@ void enableDLI(void* volatile enableDLI::dliptr) void* volatile enableDLI::dliptr loadstore zp[2]:2 2.0 void fn1() void main() -constant const byte* r = (const byte*) 32768 +constant const byte* r = (byte*) 32768 zp[2]:2 [ enableDLI::dliptr ] diff --git a/src/test/ref/function-pointer-problem-1.sym b/src/test/ref/function-pointer-problem-1.sym index 0a6b0343d..e6b373120 100644 --- a/src/test/ref/function-pointer-problem-1.sym +++ b/src/test/ref/function-pointer-problem-1.sym @@ -2,6 +2,6 @@ void enableDLI(void* volatile enableDLI::dliptr) void* volatile enableDLI::dliptr loadstore zp[2]:2 2.0 void fn1() void main() -constant const byte* r = (const byte*) 32768 +constant const byte* r = (byte*) 32768 zp[2]:2 [ enableDLI::dliptr ] diff --git a/src/test/ref/inline-asm-uses-problem-2.asm b/src/test/ref/inline-asm-uses-problem-2.asm index 4ffeb58ea..5400af3fd 100644 --- a/src/test/ref/inline-asm-uses-problem-2.asm +++ b/src/test/ref/inline-asm-uses-problem-2.asm @@ -11,7 +11,7 @@ .segment Code main: { .label zp2 = $fc - // __address(0xfc) char * zp2 = 0x0400 + // __address(0xfc) char * zp2 = (char*)0x0400 lda #<$400 sta.z zp2 lda #>$400 diff --git a/src/test/ref/inline-asm-uses-problem-2.log b/src/test/ref/inline-asm-uses-problem-2.log index e613462bc..9cf13536d 100644 --- a/src/test/ref/inline-asm-uses-problem-2.log +++ b/src/test/ref/inline-asm-uses-problem-2.log @@ -159,7 +159,7 @@ Score: 42 // main main: { .label zp2 = $fc - // __address(0xfc) char * zp2 = 0x0400 + // __address(0xfc) char * zp2 = (char*)0x0400 // [0] main::zp2 = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z zp2 diff --git a/src/test/ref/inline-dword-0.log b/src/test/ref/inline-dword-0.log index 25df64c38..423139c00 100644 --- a/src/test/ref/inline-dword-0.log +++ b/src/test/ref/inline-dword-0.log @@ -25,13 +25,13 @@ constant byte SIZEOF_DWORD = 4 void __start() void main() number~ main::$0 -constant dword* main::screen = (dword*)$400 +constant dword* main::screen = (byte*)$400 constant dword main::w = $1234*$10000+$5678 Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_DWORD Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_DWORD Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (dword*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 0 @@ -127,7 +127,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant dword* main::screen = (dword*) 1024 +constant dword* main::screen = (byte*) 1024 constant dword main::w = $1234*$10000+$5678 diff --git a/src/test/ref/inline-dword-0.sym b/src/test/ref/inline-dword-0.sym index 7cfdb50ff..2f08843d9 100644 --- a/src/test/ref/inline-dword-0.sym +++ b/src/test/ref/inline-dword-0.sym @@ -1,4 +1,4 @@ void main() -constant dword* main::screen = (dword*) 1024 +constant dword* main::screen = (byte*) 1024 constant dword main::w = $1234*$10000+$5678 diff --git a/src/test/ref/inline-kickasm-uses-problem.log b/src/test/ref/inline-kickasm-uses-problem.log index 99fc394d1..367fc8b74 100644 --- a/src/test/ref/inline-kickasm-uses-problem.log +++ b/src/test/ref/inline-kickasm-uses-problem.log @@ -53,7 +53,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte* OUT = (const byte*)$8000 +constant const byte* OUT = (byte*)$8000 void __start() void foo(byte* foo::x1 , byte* foo::x2) volatile byte foo::a2 loadstore @@ -68,7 +68,7 @@ void main() constant byte* main::a[] = { $80, $4f, 2, $d } constant byte* main::b[] = { $80, $6e, $d9, $ec } -Simplifying constant pointer cast (const byte*) 32768 +Simplifying constant pointer cast (byte*) 32768 Successful SSA optimization PassNCastSimplification Alias candidate removed (volatile)foo::x1#1 = foo::v1 Identical Phi Values foo::x1#1 foo::x1#0 @@ -254,7 +254,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte* OUT = (const byte*) 32768 +constant const byte* OUT = (byte*) 32768 void foo(byte* foo::x1 , byte* foo::x2) volatile byte foo::a2 loadstore zp[1]:132 5.5 volatile byte* volatile foo::v1 loadstore zp[2]:128 11.0 diff --git a/src/test/ref/inline-kickasm-uses-problem.sym b/src/test/ref/inline-kickasm-uses-problem.sym index f57ab08fc..8bfdd9c12 100644 --- a/src/test/ref/inline-kickasm-uses-problem.sym +++ b/src/test/ref/inline-kickasm-uses-problem.sym @@ -1,4 +1,4 @@ -constant const byte* OUT = (const byte*) 32768 +constant const byte* OUT = (byte*) 32768 void foo(byte* foo::x1 , byte* foo::x2) volatile byte foo::a2 loadstore zp[1]:132 5.5 volatile byte* volatile foo::v1 loadstore zp[2]:128 11.0 diff --git a/src/test/ref/inline-string-4.log b/src/test/ref/inline-string-4.log index 3b696568e..e72e2c6c0 100644 --- a/src/test/ref/inline-string-4.log +++ b/src/test/ref/inline-string-4.log @@ -40,9 +40,9 @@ void output(dword output::dw) dword output::dw dword output::dw#0 dword output::dw#1 -constant dword* const screen = (dword*)$400 +constant dword* const screen = (byte*)$400 -Simplifying constant pointer cast (dword*) 1024 +Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification Identical Phi Values output::dw#1 output::dw#0 Successful SSA optimization Pass2IdenticalPhiElimination @@ -167,7 +167,7 @@ constant dword main::dw = (dword)main::msg constant const byte* main::msg[] = "camelot" void output(dword output::dw) dword output::dw -constant dword* const screen = (dword*) 1024 +constant dword* const screen = (byte*) 1024 diff --git a/src/test/ref/inline-string-4.sym b/src/test/ref/inline-string-4.sym index 37f946229..ea2c15c06 100644 --- a/src/test/ref/inline-string-4.sym +++ b/src/test/ref/inline-string-4.sym @@ -3,5 +3,5 @@ constant dword main::dw = (dword)main::msg constant const byte* main::msg[] = "camelot" void output(dword output::dw) dword output::dw -constant dword* const screen = (dword*) 1024 +constant dword* const screen = (byte*) 1024 diff --git a/src/test/ref/inline-word-0.log b/src/test/ref/inline-word-0.log index 6a4dbaa87..8e0f1b23b 100644 --- a/src/test/ref/inline-word-0.log +++ b/src/test/ref/inline-word-0.log @@ -25,13 +25,13 @@ constant byte SIZEOF_WORD = 2 void __start() void main() number~ main::$0 -constant word* main::screen = (word*)$400 +constant word* main::screen = (byte*)$400 constant word main::w = 2*$100+1 Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_WORD Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_WORD Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 0 @@ -123,7 +123,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant word* main::screen = (word*) 1024 +constant word* main::screen = (byte*) 1024 constant word main::w = 2*$100+1 diff --git a/src/test/ref/inline-word-0.sym b/src/test/ref/inline-word-0.sym index c4cdda9b1..e3225e651 100644 --- a/src/test/ref/inline-word-0.sym +++ b/src/test/ref/inline-word-0.sym @@ -1,4 +1,4 @@ void main() -constant word* main::screen = (word*) 1024 +constant word* main::screen = (byte*) 1024 constant word main::w = 2*$100+1 diff --git a/src/test/ref/inline-word-1.log b/src/test/ref/inline-word-1.log index 7a1f564ca..7aec51c51 100644 --- a/src/test/ref/inline-word-1.log +++ b/src/test/ref/inline-word-1.log @@ -25,13 +25,13 @@ constant byte SIZEOF_WORD = 2 void __start() void main() number~ main::$0 -constant word* main::screen = (word*)$400 +constant word* main::screen = (byte*)$400 constant word main::w = 1*$100+2 Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_WORD Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_WORD Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 0 @@ -123,7 +123,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant word* main::screen = (word*) 1024 +constant word* main::screen = (byte*) 1024 constant word main::w = 1*$100+2 diff --git a/src/test/ref/inline-word-1.sym b/src/test/ref/inline-word-1.sym index 1f4e2bcc5..197a2f4e7 100644 --- a/src/test/ref/inline-word-1.sym +++ b/src/test/ref/inline-word-1.sym @@ -1,4 +1,4 @@ void main() -constant word* main::screen = (word*) 1024 +constant word* main::screen = (byte*) 1024 constant word main::w = 1*$100+2 diff --git a/src/test/ref/inlinearrayproblem.log b/src/test/ref/inlinearrayproblem.log index dafae0c15..e6127226f 100644 --- a/src/test/ref/inlinearrayproblem.log +++ b/src/test/ref/inlinearrayproblem.log @@ -45,8 +45,14 @@ byte main::i#1 byte main::i#2 constant byte* main::txt[] = "qwe"z +Adding number conversion cast (unumber) $28 in +Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) $28 +Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 @@ -69,9 +75,6 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $28 -Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main CALL GRAPH @@ -193,7 +196,7 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*)$400+$28 +constant byte* SCREEN2 = (byte*) 1024+$28 void main() constant byte* main::data[] = { 1, 2, 3 } byte main::i diff --git a/src/test/ref/inlinearrayproblem.sym b/src/test/ref/inlinearrayproblem.sym index 2a1efb40e..2e4c41543 100644 --- a/src/test/ref/inlinearrayproblem.sym +++ b/src/test/ref/inlinearrayproblem.sym @@ -1,5 +1,5 @@ constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*)$400+$28 +constant byte* SCREEN2 = (byte*) 1024+$28 void main() constant byte* main::data[] = { 1, 2, 3 } byte main::i diff --git a/src/test/ref/issue-594-case.log b/src/test/ref/issue-594-case.log index b713b3a9b..55115a13c 100644 --- a/src/test/ref/issue-594-case.log +++ b/src/test/ref/issue-594-case.log @@ -41,7 +41,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA constant byte DEVICES = 1 constant byte HOSTS = 0 -constant const byte* OUT = (const byte*)$8000 +constant const byte* OUT = (byte*)$8000 void __start() constant byte _substate_hosts::DEVICES = 1 constant byte _substate_hosts::DONE = 2 @@ -60,7 +60,7 @@ Adding number conversion cast (unumber) main::$3 in main::x#0 = main::$3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::x#0 = (unumber)main::$3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (const byte*) 32768 +Simplifying constant pointer cast (byte*) 32768 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [2] if(*main::ss==DEVICES) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -218,7 +218,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE constant byte DEVICES = 1 constant byte HOSTS = 0 -constant const byte* OUT = (const byte*) 32768 +constant const byte* OUT = (byte*) 32768 constant byte _substate_hosts::DEVICES = 1 constant byte _substate_hosts::DONE = 2 constant byte _substate_hosts::HOSTS = 0 diff --git a/src/test/ref/issue-594-case.sym b/src/test/ref/issue-594-case.sym index 31675cb99..e4ce391b2 100644 --- a/src/test/ref/issue-594-case.sym +++ b/src/test/ref/issue-594-case.sym @@ -1,6 +1,6 @@ constant byte DEVICES = 1 constant byte HOSTS = 0 -constant const byte* OUT = (const byte*) 32768 +constant const byte* OUT = (byte*) 32768 constant byte _substate_hosts::DEVICES = 1 constant byte _substate_hosts::DONE = 2 constant byte _substate_hosts::HOSTS = 0 diff --git a/src/test/ref/liverange-call-problem.log b/src/test/ref/liverange-call-problem.log index 4a1083d80..7576d1642 100644 --- a/src/test/ref/liverange-call-problem.log +++ b/src/test/ref/liverange-call-problem.log @@ -99,7 +99,7 @@ void incw2() void main() number~ main::$4 number~ main::$5 -constant word* main::SCREEN = (word*)$400 +constant word* main::SCREEN = (byte*)$400 word w1 word w1#0 word w1#1 @@ -146,7 +146,7 @@ Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZE Adding number conversion cast (unumber) 2 in main::$5 = 2 * SIZEOF_WORD Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)2 * SIZEOF_WORD Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification @@ -446,7 +446,7 @@ constant byte SIZEOF_WORD = 2 void incw1() void incw2() void main() -constant word* main::SCREEN = (word*) 1024 +constant word* main::SCREEN = (byte*) 1024 word w1 word w1#12 w1 zp[2]:2 13.0 word w1#13 w1 zp[2]:2 1.6666666666666667 diff --git a/src/test/ref/liverange-call-problem.sym b/src/test/ref/liverange-call-problem.sym index a8c32dd0b..09c0ca2c2 100644 --- a/src/test/ref/liverange-call-problem.sym +++ b/src/test/ref/liverange-call-problem.sym @@ -2,7 +2,7 @@ constant byte SIZEOF_WORD = 2 void incw1() void incw2() void main() -constant word* main::SCREEN = (word*) 1024 +constant word* main::SCREEN = (byte*) 1024 word w1 word w1#12 w1 zp[2]:2 13.0 word w1#13 w1 zp[2]:2 1.6666666666666667 diff --git a/src/test/ref/loop-break-nested.asm b/src/test/ref/loop-break-nested.asm index ae5bb53eb..186210390 100644 --- a/src/test/ref/loop-break-nested.asm +++ b/src/test/ref/loop-break-nested.asm @@ -15,7 +15,7 @@ main: { lda #>$400 sta.z line+1 __b1: - // for(byte* line = $400; line<$400+40*25;line+=40 ) + // for(byte* line = (char*)$400; line<$400+40*25;line+=40 ) lda.z line+1 cmp #>$400+$28*$19 bcc !+ diff --git a/src/test/ref/loop-break-nested.log b/src/test/ref/loop-break-nested.log index 500d783d8..8e76db3c7 100644 --- a/src/test/ref/loop-break-nested.log +++ b/src/test/ref/loop-break-nested.log @@ -372,7 +372,7 @@ main: { sta.z line+1 // main::@1 __b1: - // for(byte* line = $400; line<$400+40*25;line+=40 ) + // for(byte* line = (char*)$400; line<$400+40*25;line+=40 ) // [2] if(main::line#2>=$400+$28*$19) goto main::@return -- pbuz1_ge_vwuc1_then_la1 lda.z line+1 cmp #>$400+$28*$19 diff --git a/src/test/ref/loop-problem3.asm b/src/test/ref/loop-problem3.asm index e7fcbf9b7..300d112d5 100644 --- a/src/test/ref/loop-problem3.asm +++ b/src/test/ref/loop-problem3.asm @@ -16,7 +16,7 @@ main: { lda #>$400 sta.z sc+1 __b1: - // for(char* sc = 0x0400;sc<0x0800; sc++) + // for(char* sc = (char*)0x0400;sc<0x0800; sc++) lda.z sc+1 cmp #>$800 bcc __b2 @@ -33,7 +33,7 @@ main: { clc adc #1 sta (sc),y - // for(char* sc = 0x0400;sc<0x0800; sc++) + // for(char* sc = (char*)0x0400;sc<0x0800; sc++) inc.z sc bne !+ inc.z sc+1 diff --git a/src/test/ref/loop-problem3.log b/src/test/ref/loop-problem3.log index d8f42ba3f..ce1fa97c1 100644 --- a/src/test/ref/loop-problem3.log +++ b/src/test/ref/loop-problem3.log @@ -223,7 +223,7 @@ main: { sta.z sc+1 // main::@1 __b1: - // for(char* sc = 0x0400;sc<0x0800; sc++) + // for(char* sc = (char*)0x0400;sc<0x0800; sc++) // [2] if(main::sc#2<$800) goto main::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z sc+1 cmp #>$800 @@ -243,7 +243,7 @@ main: { clc adc #1 sta (sc),y - // for(char* sc = 0x0400;sc<0x0800; sc++) + // for(char* sc = (char*)0x0400;sc<0x0800; sc++) // [4] main::sc#1 = ++ main::sc#2 -- pbuz1=_inc_pbuz1 inc.z sc bne !+ diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm index a26289e1d..9011d9a19 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm @@ -54,7 +54,7 @@ .label framedone = $c .segment Code __start: { - // char* volatile PLEX_SCREEN_PTR = 0x400+0x3f8 + // char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg index eda107e82..44e52b9ac 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg @@ -4,7 +4,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 + [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [2] plex_show_idx = 0 [3] plex_sprite_idx = 0 [4] plex_sprite_msb = 1 diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log index 517b61b44..131da767d 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log @@ -547,6 +547,7 @@ Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0 Adding number conversion cast (unumber) 8 in loop::y_idx#1 = loop::y_idx#2 + 8 Adding number conversion cast (unumber) 1 in loop::sy#1 = loop::sy#2 + rangenext(0,PLEX_COUNT-1) Adding number conversion cast (unumber) 1 in loop::sin_idx#1 = loop::sin_idx#3 + 1 +Adding number conversion cast (unumber) $3f8 in PLEX_SCREEN_PTR = (byte*)$400+$3f8 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast plex_show_idx = (unumber)0 Inlining cast plex_sprite_idx = (unumber)0 @@ -610,6 +611,8 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast 1 Simplifying constant integer cast 1 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $3f8 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (word) $3f8 Finalized unsigned number type (byte) 1 @@ -646,6 +649,7 @@ Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 +Finalized unsigned number type (word) $3f8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to byte in plexSort::$1 = plexSort::m#2 + 1 Inferred type updated to byte in plexSort::$4 = plexSort::s#3 + 1 @@ -827,8 +831,6 @@ Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $40 Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $3f8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$6 @@ -906,7 +908,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 + [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [2] plex_show_idx = 0 [3] plex_sprite_idx = 0 [4] plex_sprite_msb = 1 @@ -1336,7 +1338,7 @@ Allocated zp[1]:35 [ plexSort::nxt_idx#0 ] Allocated zp[1]:36 [ plexSort::nxt_y#0 ] Allocated zp[1]:37 [ plexSort::s#2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1409,7 +1411,7 @@ Statement [119] plex_sprite_msb = 1 [ ] ( main:8::loop:29::plexSort:92 [ loop::s Statement [122] PLEX_FREE_YPOS[plexSort::plexFreePrepare1_s#2] = 0 [ plexSort::plexFreePrepare1_s#2 ] ( main:8::loop:29::plexSort:92 [ loop::sin_idx#1 plexSort::plexFreePrepare1_s#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:12 [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] Statement [125] plex_free_next = 0 [ ] ( main:8::loop:29::plexSort:92 [ loop::sin_idx#1 ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1468,7 +1470,7 @@ Statement [118] plex_sprite_idx = 0 [ ] ( main:8::loop:29::plexSort:92 [ loop::s Statement [119] plex_sprite_msb = 1 [ ] ( main:8::loop:29::plexSort:92 [ loop::sin_idx#1 ] { } ) always clobbers reg byte a Statement [122] PLEX_FREE_YPOS[plexSort::plexFreePrepare1_s#2] = 0 [ plexSort::plexFreePrepare1_s#2 ] ( main:8::loop:29::plexSort:92 [ loop::sin_idx#1 plexSort::plexFreePrepare1_s#2 ] { } ) always clobbers reg byte a Statement [125] plex_free_next = 0 [ ] ( main:8::loop:29::plexSort:92 [ loop::sin_idx#1 ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1713,7 +1715,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 -- pbuz1=pbuc1 + // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 @@ -2674,8 +2676,8 @@ Score: 43652 // __start __start: { // __start::__init1 - // char* volatile PLEX_SCREEN_PTR = 0x400+0x3f8 - // [1] PLEX_SCREEN_PTR = (byte*)$400+$3f8 -- pbuz1=pbuc1 + // char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8 + // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 diff --git a/src/test/ref/operator-byte0.asm b/src/test/ref/operator-byte0.asm index f912caadc..6db016991 100644 --- a/src/test/ref/operator-byte0.asm +++ b/src/test/ref/operator-byte0.asm @@ -50,7 +50,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // char * volatile ptr = 0x0000 + // char * volatile ptr = (char*)0x0000 lda #<0 sta.z ptr sta.z ptr+1 diff --git a/src/test/ref/operator-byte0.log b/src/test/ref/operator-byte0.log index 281b47681..629948f00 100644 --- a/src/test/ref/operator-byte0.log +++ b/src/test/ref/operator-byte0.log @@ -534,7 +534,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // char * volatile ptr = 0x0000 + // char * volatile ptr = (char*)0x0000 // [6] main::ptr = (byte*) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr diff --git a/src/test/ref/operator-byte1.asm b/src/test/ref/operator-byte1.asm index 103448b40..b5902ff68 100644 --- a/src/test/ref/operator-byte1.asm +++ b/src/test/ref/operator-byte1.asm @@ -43,7 +43,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // char * volatile ptr = 0x0000 + // char * volatile ptr = (char*)0x0000 lda #<0 sta.z ptr sta.z ptr+1 diff --git a/src/test/ref/operator-byte1.log b/src/test/ref/operator-byte1.log index 83f96c55c..c4c9e3ec9 100644 --- a/src/test/ref/operator-byte1.log +++ b/src/test/ref/operator-byte1.log @@ -484,7 +484,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // char * volatile ptr = 0x0000 + // char * volatile ptr = (char*)0x0000 // [4] main::ptr = (byte*) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr diff --git a/src/test/ref/operator-word0.asm b/src/test/ref/operator-word0.asm index 369550f29..a33a08ed7 100644 --- a/src/test/ref/operator-word0.asm +++ b/src/test/ref/operator-word0.asm @@ -58,7 +58,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // char * volatile ptr = 0x0000 + // char * volatile ptr = (char*)0x0000 lda #<0 sta.z ptr sta.z ptr+1 diff --git a/src/test/ref/operator-word0.log b/src/test/ref/operator-word0.log index 032374aad..0d8098761 100644 --- a/src/test/ref/operator-word0.log +++ b/src/test/ref/operator-word0.log @@ -80,7 +80,7 @@ word~ main::$6 byte~ main::$7 byte~ main::$8 byte~ main::$9 -constant word* const main::SCREEN = (word*)$400 +constant word* const main::SCREEN = (byte*)$400 volatile signed byte main::bs loadstore volatile byte main::bu loadstore volatile signed dword main::ds loadstore @@ -100,7 +100,7 @@ byte* volatile main::ptr loadstore volatile signed word main::ws loadstore volatile word main::wu loadstore -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (byte*) 0 Successful SSA optimization PassNCastSimplification Constant main::i#0 = 0 @@ -557,7 +557,7 @@ word~ main::$3 zp[2]:24 4.0 word~ main::$4 zp[2]:26 4.0 word~ main::$5 zp[2]:28 4.0 word~ main::$6 zp[2]:30 4.0 -constant word* const main::SCREEN = (word*) 1024 +constant word* const main::SCREEN = (byte*) 1024 volatile signed byte main::bs loadstore zp[1]:3 0.4 volatile byte main::bu loadstore zp[1]:2 0.4444444444444444 volatile signed dword main::ds loadstore zp[4]:12 0.2857142857142857 @@ -656,7 +656,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // char * volatile ptr = 0x0000 + // char * volatile ptr = (char*)0x0000 // [6] main::ptr = (byte*) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr diff --git a/src/test/ref/operator-word0.sym b/src/test/ref/operator-word0.sym index 514ebe1ab..e220e7c1d 100644 --- a/src/test/ref/operator-word0.sym +++ b/src/test/ref/operator-word0.sym @@ -7,7 +7,7 @@ word~ main::$3 zp[2]:24 4.0 word~ main::$4 zp[2]:26 4.0 word~ main::$5 zp[2]:28 4.0 word~ main::$6 zp[2]:30 4.0 -constant word* const main::SCREEN = (word*) 1024 +constant word* const main::SCREEN = (byte*) 1024 volatile signed byte main::bs loadstore zp[1]:3 0.4 volatile byte main::bu loadstore zp[1]:2 0.4444444444444444 volatile signed dword main::ds loadstore zp[4]:12 0.2857142857142857 diff --git a/src/test/ref/operator-word1.log b/src/test/ref/operator-word1.log index 4e365c11e..5152690e5 100644 --- a/src/test/ref/operator-word1.log +++ b/src/test/ref/operator-word1.log @@ -80,7 +80,7 @@ word~ main::$6 byte~ main::$7 byte~ main::$8 byte~ main::$9 -constant word* const main::SCREEN = (word*)$400 +constant word* const main::SCREEN = (byte*)$400 volatile signed byte main::bs loadstore volatile byte main::bu loadstore volatile signed dword main::ds loadstore @@ -100,7 +100,7 @@ byte* volatile main::ptr loadstore volatile signed word main::ws loadstore volatile word main::wu loadstore -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (byte*) 0 Successful SSA optimization PassNCastSimplification Constant right-side identified [14] main::$0 = _word1_ main::bu @@ -450,7 +450,7 @@ constant byte SIZEOF_WORD = 2 void main() word~ main::$4 zp[2]:10 4.0 word~ main::$5 zp[2]:12 4.0 -constant word* const main::SCREEN = (word*) 1024 +constant word* const main::SCREEN = (byte*) 1024 volatile signed dword main::ds loadstore zp[4]:6 0.4444444444444444 volatile dword main::du loadstore zp[4]:2 0.5 byte main::i diff --git a/src/test/ref/operator-word1.sym b/src/test/ref/operator-word1.sym index eca0186a5..30e69d944 100644 --- a/src/test/ref/operator-word1.sym +++ b/src/test/ref/operator-word1.sym @@ -2,7 +2,7 @@ constant byte SIZEOF_WORD = 2 void main() word~ main::$4 zp[2]:10 4.0 word~ main::$5 zp[2]:12 4.0 -constant word* const main::SCREEN = (word*) 1024 +constant word* const main::SCREEN = (byte*) 1024 volatile signed dword main::ds loadstore zp[4]:6 0.4444444444444444 volatile dword main::du loadstore zp[4]:2 0.5 byte main::i diff --git a/src/test/ref/plus4-kbhit.log b/src/test/ref/plus4-kbhit.log index 67af272f4..afd6ef357 100644 --- a/src/test/ref/plus4-kbhit.log +++ b/src/test/ref/plus4-kbhit.log @@ -174,7 +174,7 @@ Uplift Scope [MOS7360_TED] Uplift Scope [MOS6551_ACIA] Uplift Scope [MOS6529_PIO] Uplift Scope [MOS7501_PORT] -Uplift Scope [$0] +Uplift Scope [PLUS4_ROM_BANKING] Uplift Scope [] Uplifting [kbhit] best 268 combination reg byte a [ kbhit::return#1 ] reg byte a [ kbhit::return#0 ] @@ -183,7 +183,7 @@ Uplifting [MOS7360_TED] best 228 combination Uplifting [MOS6551_ACIA] best 228 combination Uplifting [MOS6529_PIO] best 228 combination Uplifting [MOS7501_PORT] best 228 combination -Uplifting [$0] best 228 combination +Uplifting [PLUS4_ROM_BANKING] best 228 combination Uplifting [] best 228 combination ASSEMBLER BEFORE OPTIMIZATION diff --git a/src/test/ref/pointer-const-typedef.log b/src/test/ref/pointer-const-typedef.log index 452cc23c2..0a30708b9 100644 --- a/src/test/ref/pointer-const-typedef.log +++ b/src/test/ref/pointer-const-typedef.log @@ -48,9 +48,9 @@ void __start() constant byte* const cp0 = (byte*)$400 constant byte* const cp1 = (byte*)$400 constant byte* const cp2 = (byte*)$400 -constant const byte* const cpc0 = (const byte*)$400 -constant const byte* const cpc1 = (const byte*)$400 -constant const byte* const cpc2 = (const byte*)$400 +constant const byte* const cpc0 = (byte*)$400 +constant const byte* const cpc1 = (byte*)$400 +constant const byte* const cpc2 = (byte*)$400 void main() byte main::idx byte main::idx#0 @@ -63,19 +63,19 @@ byte main::idx#6 byte main::idx#7 byte main::idx#8 byte main::idx#9 -constant const byte* pc0 = (const byte*)$400 -constant const byte* pc1 = (const byte*)$400 -constant const byte* pc2 = (const byte*)$400 +constant const byte* pc0 = (byte*)$400 +constant const byte* pc1 = (byte*)$400 +constant const byte* pc2 = (byte*)$400 Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (const byte*) 1024 -Simplifying constant pointer cast (const byte*) 1024 -Simplifying constant pointer cast (const byte*) 1024 -Simplifying constant pointer cast (const byte*) 1024 -Simplifying constant pointer cast (const byte*) 1024 -Simplifying constant pointer cast (const byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification Constant main::idx#0 = 0 @@ -291,14 +291,14 @@ constant byte* SCREEN = (byte*) 1024 constant byte* const cp0 = (byte*) 1024 constant byte* const cp1 = (byte*) 1024 constant byte* const cp2 = (byte*) 1024 -constant const byte* const cpc0 = (const byte*) 1024 -constant const byte* const cpc1 = (const byte*) 1024 -constant const byte* const cpc2 = (const byte*) 1024 +constant const byte* const cpc0 = (byte*) 1024 +constant const byte* const cpc1 = (byte*) 1024 +constant const byte* const cpc2 = (byte*) 1024 void main() byte main::idx -constant const byte* pc0 = (const byte*) 1024 -constant const byte* pc1 = (const byte*) 1024 -constant const byte* pc2 = (const byte*) 1024 +constant const byte* pc0 = (byte*) 1024 +constant const byte* pc1 = (byte*) 1024 +constant const byte* pc2 = (byte*) 1024 diff --git a/src/test/ref/pointer-const-typedef.sym b/src/test/ref/pointer-const-typedef.sym index c6bf1c333..e67413e06 100644 --- a/src/test/ref/pointer-const-typedef.sym +++ b/src/test/ref/pointer-const-typedef.sym @@ -2,12 +2,12 @@ constant byte* SCREEN = (byte*) 1024 constant byte* const cp0 = (byte*) 1024 constant byte* const cp1 = (byte*) 1024 constant byte* const cp2 = (byte*) 1024 -constant const byte* const cpc0 = (const byte*) 1024 -constant const byte* const cpc1 = (const byte*) 1024 -constant const byte* const cpc2 = (const byte*) 1024 +constant const byte* const cpc0 = (byte*) 1024 +constant const byte* const cpc1 = (byte*) 1024 +constant const byte* const cpc2 = (byte*) 1024 void main() byte main::idx -constant const byte* pc0 = (const byte*) 1024 -constant const byte* pc1 = (const byte*) 1024 -constant const byte* pc2 = (const byte*) 1024 +constant const byte* pc0 = (byte*) 1024 +constant const byte* pc1 = (byte*) 1024 +constant const byte* pc2 = (byte*) 1024 diff --git a/src/test/ref/pointer-const.log b/src/test/ref/pointer-const.log index 7a129a14f..934d0d003 100644 --- a/src/test/ref/pointer-const.log +++ b/src/test/ref/pointer-const.log @@ -50,7 +50,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte* const BASIC = (const byte*)$a004 +constant const byte* const BASIC = (byte*)$a004 constant const byte* MSG = "hello world!" constant byte* const SCREEN = (byte*)$400 void __start() @@ -79,7 +79,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::i#2 = (unumber)0 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (const byte*) 40964 +Simplifying constant pointer cast (byte*) 40964 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $28 @@ -291,7 +291,7 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte* const BASIC = (const byte*) 40964 +constant const byte* const BASIC = (byte*) 40964 constant const byte* MSG = "hello world!" constant byte* const SCREEN = (byte*) 1024 void main() diff --git a/src/test/ref/pointer-const.sym b/src/test/ref/pointer-const.sym index d251505a3..e2ff9d225 100644 --- a/src/test/ref/pointer-const.sym +++ b/src/test/ref/pointer-const.sym @@ -1,4 +1,4 @@ -constant const byte* const BASIC = (const byte*) 40964 +constant const byte* const BASIC = (byte*) 40964 constant const byte* MSG = "hello world!" constant byte* const SCREEN = (byte*) 1024 void main() diff --git a/src/test/ref/pointer-plus-signed-word.log b/src/test/ref/pointer-plus-signed-word.log index 3df6d7dcd..c3f79e05c 100644 --- a/src/test/ref/pointer-plus-signed-word.log +++ b/src/test/ref/pointer-plus-signed-word.log @@ -46,6 +46,10 @@ signed word main::i#2 byte* main::sc byte* main::sc#0 +Adding number conversion cast (unumber) $28*$a in +Successful SSA optimization PassNAddNumberTypeConversions +Simplifying constant pointer cast (byte*) 1024 +Successful SSA optimization PassNCastSimplification Alias main::sc#0 = main::$0 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [6] if(main::i#1!=rangelast(-$a,$a)) goto main::@1 @@ -70,7 +74,6 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = -$a Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 Finalized unsigned number type (byte) $28 Finalized unsigned number type (byte) $a Successful SSA optimization PassNFinalizeNumberTypeConversions @@ -213,7 +216,7 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*)$400+$28*$a +constant byte* SCREEN = (byte*) 1024+(word)$28*$a void main() signed word main::i signed word main::i#1 i zp[2]:2 16.5 diff --git a/src/test/ref/pointer-plus-signed-word.sym b/src/test/ref/pointer-plus-signed-word.sym index 449324faf..1ec2b183f 100644 --- a/src/test/ref/pointer-plus-signed-word.sym +++ b/src/test/ref/pointer-plus-signed-word.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*)$400+$28*$a +constant byte* SCREEN = (byte*) 1024+(word)$28*$a void main() signed word main::i signed word main::i#1 i zp[2]:2 16.5 diff --git a/src/test/ref/pointer-pointer-3.asm b/src/test/ref/pointer-pointer-3.asm index 38c63f625..de9393eb7 100644 --- a/src/test/ref/pointer-pointer-3.asm +++ b/src/test/ref/pointer-pointer-3.asm @@ -12,7 +12,7 @@ .label screen = 4 .segment Code __start: { - // byte* screen = $400 + // byte* screen = (char*)$400 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/pointer-pointer-3.log b/src/test/ref/pointer-pointer-3.log index ed201ebf1..de1ac487f 100644 --- a/src/test/ref/pointer-pointer-3.log +++ b/src/test/ref/pointer-pointer-3.log @@ -63,14 +63,18 @@ byte* setscreen::val#0 byte* setscreen::val#1 byte* setscreen::val#2 +Adding number conversion cast (unumber) $28 in Adding number conversion cast (unumber) 0 in screen[0] = 'a' Adding number conversion cast (unumber) 0 in screen[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) $28 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions @@ -93,9 +97,6 @@ Constant inlined setscreen::val#0 = screen1 Successful SSA optimization Pass2ConstantInlining Identical Phi Values setscreen::screen#2 &screen Successful SSA optimization Pass2IdenticalPhiElimination -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $28 -Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 Adding NOP phi() at start of __start::@2 @@ -317,7 +318,7 @@ void __start() void main() byte* volatile screen loadstore zp[2]:4 2.666666666666667 constant byte* screen1 = (byte*) 1024 -constant byte* screen2 = (byte*)$400+$28 +constant byte* screen2 = (byte*) 1024+$28 void setscreen(byte** setscreen::screen , byte* setscreen::val) byte** setscreen::screen byte* setscreen::val @@ -349,7 +350,7 @@ Score: 98 // __start __start: { // __start::__init1 - // byte* screen = $400 + // byte* screen = (char*)$400 // [1] screen = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen diff --git a/src/test/ref/pointer-pointer-3.sym b/src/test/ref/pointer-pointer-3.sym index a792c5620..8124ed3d6 100644 --- a/src/test/ref/pointer-pointer-3.sym +++ b/src/test/ref/pointer-pointer-3.sym @@ -2,7 +2,7 @@ void __start() void main() byte* volatile screen loadstore zp[2]:4 2.666666666666667 constant byte* screen1 = (byte*) 1024 -constant byte* screen2 = (byte*)$400+$28 +constant byte* screen2 = (byte*) 1024+$28 void setscreen(byte** setscreen::screen , byte* setscreen::val) byte** setscreen::screen byte* setscreen::val diff --git a/src/test/ref/post-increment-problem-2.log b/src/test/ref/post-increment-problem-2.log index ddf0441b3..36f3e68f7 100644 --- a/src/test/ref/post-increment-problem-2.log +++ b/src/test/ref/post-increment-problem-2.log @@ -59,12 +59,12 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void incscreen(word incscreen::ptr) -const byte*~ incscreen::$0 -const byte*~ incscreen::$10 -const byte*~ incscreen::$11 -const byte*~ incscreen::$20 -const byte*~ incscreen::$21 -const byte*~ incscreen::$9 +byte*~ incscreen::$0 +byte*~ incscreen::$10 +byte*~ incscreen::$11 +byte*~ incscreen::$20 +byte*~ incscreen::$21 +byte*~ incscreen::$9 word incscreen::ptr word incscreen::ptr#0 word incscreen::ptr#1 @@ -77,13 +77,13 @@ byte main::x#1 byte main::x#2 byte main::x#3 byte main::x#4 -constant const byte* screen = (const byte*)$400 +constant byte* screen = (byte*)$400 Adding number conversion cast (unumber) $fe in main::$0 = main::x#2 < $fe Adding number conversion cast (unumber) 1 in incscreen::$10 = incscreen::$9 + 1 Adding number conversion cast (unumber) 1 in incscreen::$21 = incscreen::$20 + 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (const byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast $fe Simplifying constant integer cast 1 Simplifying constant integer cast 1 @@ -300,7 +300,7 @@ constant word main::offset = (word)$28*$a byte main::x byte main::x#1 reg byte x 22.0 byte main::x#2 reg byte x 8.25 -constant const byte* screen = (const byte*) 1024 +constant byte* screen = (byte*) 1024 reg byte x [ main::x#2 main::x#1 ] diff --git a/src/test/ref/post-increment-problem-2.sym b/src/test/ref/post-increment-problem-2.sym index 73004194b..2e240861c 100644 --- a/src/test/ref/post-increment-problem-2.sym +++ b/src/test/ref/post-increment-problem-2.sym @@ -5,6 +5,6 @@ constant word main::offset = (word)$28*$a byte main::x byte main::x#1 reg byte x 22.0 byte main::x#2 reg byte x 8.25 -constant const byte* screen = (const byte*) 1024 +constant byte* screen = (byte*) 1024 reg byte x [ main::x#2 main::x#1 ] diff --git a/src/test/ref/problem-negative-word-const.log b/src/test/ref/problem-negative-word-const.log index 90d979f66..8480e01ad 100644 --- a/src/test/ref/problem-negative-word-const.log +++ b/src/test/ref/problem-negative-word-const.log @@ -64,7 +64,7 @@ word main::w word main::w#0 word main::w#1 word main::w#2 -constant word* screen = (word*)$400 +constant word* screen = (byte*)$400 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -73,7 +73,7 @@ Adding number conversion cast (unumber) -1 in main::w#1 = -1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::w#1 = (unumber)-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast -1 @@ -324,7 +324,7 @@ byte main::i#2 reg byte x 5.5 word main::w word main::w#0 w zp[2]:2 5.5 word main::w#2 w zp[2]:2 11.0 -constant word* screen = (word*) 1024 +constant word* screen = (byte*) 1024 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::w#2 main::w#0 ] diff --git a/src/test/ref/problem-negative-word-const.sym b/src/test/ref/problem-negative-word-const.sym index 533a87ed4..34f3cb360 100644 --- a/src/test/ref/problem-negative-word-const.sym +++ b/src/test/ref/problem-negative-word-const.sym @@ -7,7 +7,7 @@ byte main::i#2 reg byte x 5.5 word main::w word main::w#0 w zp[2]:2 5.5 word main::w#2 w zp[2]:2 11.0 -constant word* screen = (word*) 1024 +constant word* screen = (byte*) 1024 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::w#2 main::w#0 ] diff --git a/src/test/ref/procedure-callingconvention-stack-2.log b/src/test/ref/procedure-callingconvention-stack-2.log index ed87bfed6..e20e0b146 100644 --- a/src/test/ref/procedure-callingconvention-stack-2.log +++ b/src/test/ref/procedure-callingconvention-stack-2.log @@ -46,7 +46,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant word* const SCREEN = (word*)$400 +constant word* const SCREEN = (byte*)$400 constant byte SIZEOF_WORD = 2 constant word STACK_BASE = $103 void __start() @@ -74,7 +74,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast stackpush(word) = (unumber)$1234 Inlining cast stackpush(word) = (unumber)$2345 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast $1234 Simplifying constant integer cast $2345 Simplifying constant integer cast 0 @@ -292,7 +292,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 constant word STACK_BASE = $103 void main() word~ main::$0 zp[2]:4 4.0 diff --git a/src/test/ref/procedure-callingconvention-stack-2.sym b/src/test/ref/procedure-callingconvention-stack-2.sym index 7923bce0f..6ce921833 100644 --- a/src/test/ref/procedure-callingconvention-stack-2.sym +++ b/src/test/ref/procedure-callingconvention-stack-2.sym @@ -1,4 +1,4 @@ -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 constant word STACK_BASE = $103 void main() word~ main::$0 zp[2]:4 4.0 diff --git a/src/test/ref/procedure-callingconvention-stack-3.log b/src/test/ref/procedure-callingconvention-stack-3.log index cb27857f1..81e652fbf 100644 --- a/src/test/ref/procedure-callingconvention-stack-3.log +++ b/src/test/ref/procedure-callingconvention-stack-3.log @@ -46,7 +46,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant word* const SCREEN = (word*)$400 +constant word* const SCREEN = (byte*)$400 constant byte SIZEOF_WORD = 2 constant word STACK_BASE = $103 void __start() @@ -72,7 +72,7 @@ Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZE Successful SSA optimization PassNAddNumberTypeConversions Inlining cast stackpush(word) = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -291,7 +291,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 constant word STACK_BASE = $103 void main() word~ main::$0 zp[2]:4 4.0 diff --git a/src/test/ref/procedure-callingconvention-stack-3.sym b/src/test/ref/procedure-callingconvention-stack-3.sym index 7923bce0f..6ce921833 100644 --- a/src/test/ref/procedure-callingconvention-stack-3.sym +++ b/src/test/ref/procedure-callingconvention-stack-3.sym @@ -1,4 +1,4 @@ -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 constant word STACK_BASE = $103 void main() word~ main::$0 zp[2]:4 4.0 diff --git a/src/test/ref/ptrptr-optimize-0.asm b/src/test/ref/ptrptr-optimize-0.asm index 2e8e4752d..1968c016d 100644 --- a/src/test/ref/ptrptr-optimize-0.asm +++ b/src/test/ref/ptrptr-optimize-0.asm @@ -11,7 +11,7 @@ main: { .label pscreen = screen .label screen = 2 - // byte* screen = 0x400 + // byte* screen = (char*)0x400 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/ptrptr-optimize-0.log b/src/test/ref/ptrptr-optimize-0.log index b1c63439b..a25ac7e79 100644 --- a/src/test/ref/ptrptr-optimize-0.log +++ b/src/test/ref/ptrptr-optimize-0.log @@ -163,7 +163,7 @@ Score: 72 main: { .label pscreen = screen .label screen = 2 - // byte* screen = 0x400 + // byte* screen = (char*)0x400 // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen diff --git a/src/test/ref/ptrptr-optimize-1.asm b/src/test/ref/ptrptr-optimize-1.asm index a1079966f..a6b68c33c 100644 --- a/src/test/ref/ptrptr-optimize-1.asm +++ b/src/test/ref/ptrptr-optimize-1.asm @@ -11,7 +11,7 @@ main: { .label pscreen = screen .label screen = 2 - // byte* screen = 0x400 + // byte* screen = (char*)0x400 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/ptrptr-optimize-1.log b/src/test/ref/ptrptr-optimize-1.log index 036bcd76b..87d62610d 100644 --- a/src/test/ref/ptrptr-optimize-1.log +++ b/src/test/ref/ptrptr-optimize-1.log @@ -263,7 +263,7 @@ Score: 70 main: { .label pscreen = screen .label screen = 2 - // byte* screen = 0x400 + // byte* screen = (char*)0x400 // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen diff --git a/src/test/ref/ptrptr-optimize-2.asm b/src/test/ref/ptrptr-optimize-2.asm index 43cc333e8..50f1ec6fe 100644 --- a/src/test/ref/ptrptr-optimize-2.asm +++ b/src/test/ref/ptrptr-optimize-2.asm @@ -11,7 +11,7 @@ .segment Code main: { .label screen = 2 - // byte* screen = 0x400 + // byte* screen = (char*)0x400 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/ptrptr-optimize-2.log b/src/test/ref/ptrptr-optimize-2.log index d1477dac2..383717073 100644 --- a/src/test/ref/ptrptr-optimize-2.log +++ b/src/test/ref/ptrptr-optimize-2.log @@ -261,7 +261,7 @@ Score: 70 // main main: { .label screen = 2 - // byte* screen = 0x400 + // byte* screen = (char*)0x400 // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen diff --git a/src/test/ref/robozzle64-label-problem.cfg b/src/test/ref/robozzle64-label-problem.cfg index 3196940e3..6c7ad2b08 100644 --- a/src/test/ref/robozzle64-label-problem.cfg +++ b/src/test/ref/robozzle64-label-problem.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::screen#1 = phi( main/(word*) 1024, main::@3/main::screen#2 ) + [1] main::screen#1 = phi( main/(byte*) 1024, main::@3/main::screen#2 ) [1] main::y#2 = phi( main/0, main::@3/main::y#1 ) [2] mul8u::a#1 = main::y#2 [3] call mul8u diff --git a/src/test/ref/robozzle64-label-problem.log b/src/test/ref/robozzle64-label-problem.log index cda6cbe39..872840d1a 100644 --- a/src/test/ref/robozzle64-label-problem.log +++ b/src/test/ref/robozzle64-label-problem.log @@ -52,7 +52,7 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 void main() main: scope:[main] from __start - main::screen#0 = (word*)$400 + main::screen#0 = (byte*)$400 main::y#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@3 @@ -188,7 +188,7 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification @@ -225,7 +225,7 @@ Simple Condition mul8u::$3 [8] if(mul8u::$1==0) goto mul8u::@4 Simple Condition main::$2 [33] if(main::y#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant mul8u::res#0 = 0 -Constant main::screen#0 = (word*) 1024 +Constant main::screen#0 = (byte*) 1024 Constant main::y#0 = 0 Constant mul8u::b#0 = $28 Constant mul8u::b#1 = $28 @@ -250,7 +250,7 @@ Inlining constant with var siblings mul8u::b#0 Inlining constant with var siblings mul8u::b#1 Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::y#0 -Constant inlined main::screen#0 = (word*) 1024 +Constant inlined main::screen#0 = (byte*) 1024 Constant inlined mul8u::res#0 = 0 Constant inlined main::y#0 = 0 Constant inlined mul8u::b#1 = $28 @@ -304,7 +304,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::screen#1 = phi( main/(word*) 1024, main::@3/main::screen#2 ) + [1] main::screen#1 = phi( main/(byte*) 1024, main::@3/main::screen#2 ) [1] main::y#2 = phi( main/0, main::@3/main::y#1 ) [2] mul8u::a#1 = main::y#2 [3] call mul8u @@ -491,7 +491,7 @@ main: { .label y = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#1 = (word*) 1024 [phi:main->main::@1#0] -- pwuz1=pwuc1 + // [1] phi main::screen#1 = (byte*) 1024 [phi:main->main::@1#0] -- pwuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -735,7 +735,7 @@ main: { .label z2 = 5 .label y = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#1 = (word*) 1024 [phi:main->main::@1#0] -- pwuz1=pwuc1 + // [1] phi main::screen#1 = (byte*) 1024 [phi:main->main::@1#0] -- pwuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/semi-struct-2.asm b/src/test/ref/semi-struct-2.asm index e71bf9734..893d5db6b 100644 --- a/src/test/ref/semi-struct-2.asm +++ b/src/test/ref/semi-struct-2.asm @@ -286,7 +286,7 @@ initEntry: { .label __7 = $c .label __17 = $e .label entry = 4 - // (byte*)0x1111+n + // 0x1111+n txa clc adc #<$1111 @@ -294,14 +294,14 @@ initEntry: { lda #>$1111 adc #0 sta.z __1+1 - // *entryBufDisk(entry) = (byte*)0x1111+n + // *entryBufDisk(entry) = (byte*)(0x1111+n) ldy #0 lda.z __1 sta (entry),y iny lda.z __1+1 sta (entry),y - // (byte*)0x2222+n + // 0x2222+n txa clc adc #<$2222 @@ -309,7 +309,7 @@ initEntry: { lda #>$2222 adc #0 sta.z __3+1 - // *entryBufEdit(entry) = (byte*)0x2222+n + // *entryBufEdit(entry) = (byte*)(0x2222+n) ldy #2 lda.z __3 sta (entry),y @@ -331,16 +331,15 @@ initEntry: { iny lda.z __5+1 sta (entry),y - // (word*)0x4444+n + // 0x4444+n txa - asl clc adc #<$4444 sta.z __7 lda #>$4444 adc #0 sta.z __7+1 - // *entryTsOrder(entry) = (word*)0x4444+n + // *entryTsOrder(entry) = (word*)(0x4444+n) ldy #6 lda.z __7 sta (entry),y diff --git a/src/test/ref/semi-struct-2.cfg b/src/test/ref/semi-struct-2.cfg index 63fafb7de..c405ace5a 100644 --- a/src/test/ref/semi-struct-2.cfg +++ b/src/test/ref/semi-struct-2.cfg @@ -160,15 +160,15 @@ initEntry::entryBufDisk1: scope:[initEntry] from initEntry [75] phi() to:initEntry::@1 initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1 - [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 - [77] *((byte**)initEntry::entry#10) = initEntry::$1 + [76] initEntry::$1 = $1111 + initEntry::n#10 + [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 to:initEntry::entryBufEdit1 initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1 [78] phi() to:initEntry::@2 initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1 - [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 - [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 + [79] initEntry::$3 = $2222 + initEntry::n#10 + [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 to:initEntry::entryTsLen1 initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2 [81] phi() @@ -181,402 +181,401 @@ initEntry::entryTsOrder1: scope:[initEntry] from initEntry::@3 [84] phi() to:initEntry::@4 initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1 - [85] initEntry::$26 = initEntry::n#10 << 1 - [86] initEntry::$7 = (word*) 17476 + initEntry::$26 - [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 + [85] initEntry::$7 = $4444 + initEntry::n#10 + [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 to:initEntry::entryTLastLink1 initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4 - [88] phi() + [87] phi() to:initEntry::@5 initEntry::@5: scope:[initEntry] from initEntry::entryTLastLink1 - [89] initEntry::$9 = $55 + initEntry::n#10 - [90] initEntry::entry#10[8] = initEntry::$9 + [88] initEntry::$9 = $55 + initEntry::n#10 + [89] initEntry::entry#10[8] = initEntry::$9 to:initEntry::entrySLastLink1 initEntry::entrySLastLink1: scope:[initEntry] from initEntry::@5 - [91] phi() + [90] phi() to:initEntry::@6 initEntry::@6: scope:[initEntry] from initEntry::entrySLastLink1 - [92] initEntry::$11 = $66 + initEntry::n#10 - [93] initEntry::entry#10[9] = initEntry::$11 + [91] initEntry::$11 = $66 + initEntry::n#10 + [92] initEntry::entry#10[9] = initEntry::$11 to:initEntry::entryBFlag1 initEntry::entryBFlag1: scope:[initEntry] from initEntry::@6 - [94] phi() + [93] phi() to:initEntry::@7 initEntry::@7: scope:[initEntry] from initEntry::entryBFlag1 - [95] initEntry::$13 = $77 + initEntry::n#10 - [96] initEntry::entry#10[$a] = initEntry::$13 + [94] initEntry::$13 = $77 + initEntry::n#10 + [95] initEntry::entry#10[$a] = initEntry::$13 to:initEntry::entryBError1 initEntry::entryBError1: scope:[initEntry] from initEntry::@7 - [97] phi() + [96] phi() to:initEntry::@8 initEntry::@8: scope:[initEntry] from initEntry::entryBError1 - [98] initEntry::$15 = $88 + initEntry::n#10 - [99] initEntry::entry#10[$b] = initEntry::$15 + [97] initEntry::$15 = $88 + initEntry::n#10 + [98] initEntry::entry#10[$b] = initEntry::$15 to:initEntry::entryUCross1 initEntry::entryUCross1: scope:[initEntry] from initEntry::@8 - [100] phi() + [99] phi() to:initEntry::@9 initEntry::@9: scope:[initEntry] from initEntry::entryUCross1 - [101] initEntry::$17 = $9999 + initEntry::n#10 - [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 + [100] initEntry::$17 = $9999 + initEntry::n#10 + [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 to:initEntry::entryBAddrLo1 initEntry::entryBAddrLo1: scope:[initEntry] from initEntry::@9 - [103] phi() + [102] phi() to:initEntry::@10 initEntry::@10: scope:[initEntry] from initEntry::entryBAddrLo1 - [104] initEntry::$19 = $aa + initEntry::n#10 - [105] initEntry::entry#10[$e] = initEntry::$19 + [103] initEntry::$19 = $aa + initEntry::n#10 + [104] initEntry::entry#10[$e] = initEntry::$19 to:initEntry::entryBAddrHi1 initEntry::entryBAddrHi1: scope:[initEntry] from initEntry::@10 - [106] phi() + [105] phi() to:initEntry::@11 initEntry::@11: scope:[initEntry] from initEntry::entryBAddrHi1 - [107] initEntry::$21 = $bb + initEntry::n#10 - [108] initEntry::entry#10[$f] = initEntry::$21 + [106] initEntry::$21 = $bb + initEntry::n#10 + [107] initEntry::entry#10[$f] = initEntry::$21 to:initEntry::entryTHi1 initEntry::entryTHi1: scope:[initEntry] from initEntry::@11 - [109] phi() + [108] phi() to:initEntry::@12 initEntry::@12: scope:[initEntry] from initEntry::entryTHi1 - [110] initEntry::$23 = $cc + initEntry::n#10 - [111] initEntry::entry#10[$10] = initEntry::$23 + [109] initEntry::$23 = $cc + initEntry::n#10 + [110] initEntry::entry#10[$10] = initEntry::$23 to:initEntry::entryTLo1 initEntry::entryTLo1: scope:[initEntry] from initEntry::@12 - [112] phi() + [111] phi() to:initEntry::@13 initEntry::@13: scope:[initEntry] from initEntry::entryTLo1 - [113] initEntry::$25 = $dd + initEntry::n#10 - [114] initEntry::entry#10[$11] = initEntry::$25 + [112] initEntry::$25 = $dd + initEntry::n#10 + [113] initEntry::entry#10[$11] = initEntry::$25 to:initEntry::@return initEntry::@return: scope:[initEntry] from initEntry::@13 - [115] return + [114] return to:@return void print_cls() print_cls: scope:[print_cls] from main::@2 main::@4 main::@9 - [116] phi() - [117] call memset + [115] phi() + [116] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls - [118] return + [117] return to:@return void print_str(byte* print_str::str) print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37 - [119] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) - [119] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) + [118] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) + [118] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@3 - [120] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) - [120] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) - [121] if(0!=*print_str::str#18) goto print_str::@2 + [119] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) + [119] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) + [120] if(0!=*print_str::str#18) goto print_str::@2 to:print_str::@return print_str::@return: scope:[print_str] from print_str::@1 - [122] return + [121] return to:@return print_str::@2: scope:[print_str] from print_str::@1 - [123] print_char::ch#0 = *print_str::str#18 - [124] call print_char + [122] print_char::ch#0 = *print_str::str#18 + [123] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 - [125] print_str::str#0 = ++ print_str::str#18 + [124] print_str::str#0 = ++ print_str::str#18 to:print_str::@1 void print_ln() print_ln: scope:[print_ln] from main::@11 main::@12 main::@14 main::@18 main::@19 main::@21 printEntry::@14 printEntry::@16 printEntry::@18 printEntry::@20 printEntry::@22 printEntry::@24 printEntry::@26 printEntry::@28 printEntry::@30 printEntry::@32 printEntry::@34 printEntry::@36 printEntry::@38 - [126] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) - [126] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) + [125] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) + [125] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@2 - [127] print_line_cursor#33 = phi( print_ln/print_line_cursor#65, print_ln::@2/print_line_cursor#173 ) - [128] print_line_cursor#0 = print_line_cursor#33 + $28 - [129] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 + [126] print_line_cursor#33 = phi( print_ln/print_line_cursor#65, print_ln::@2/print_line_cursor#173 ) + [127] print_line_cursor#0 = print_line_cursor#33 + $28 + [128] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 - [130] return + [129] return to:@return print_ln::@2: scope:[print_ln] from print_ln::@1 - [131] print_line_cursor#173 = print_line_cursor#0 + [130] print_line_cursor#173 = print_line_cursor#0 to:print_ln::@1 void printEntry(byte* printEntry::entry) printEntry: scope:[printEntry] from main::@13 main::@20 - [132] printEntry::entry#10 = phi( main::@13/printEntry::entry#0, main::@20/printEntry::entry#1 ) - [133] print_char_cursor#211 = print_line_cursor#0 - [134] call print_str + [131] printEntry::entry#10 = phi( main::@13/printEntry::entry#0, main::@20/printEntry::entry#1 ) + [132] print_char_cursor#211 = print_line_cursor#0 + [133] call print_str to:printEntry::entryBufDisk1 printEntry::entryBufDisk1: scope:[printEntry] from printEntry - [135] phi() + [134] phi() to:printEntry::@1 printEntry::@1: scope:[printEntry] from printEntry::entryBufDisk1 - [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) - [137] call print_uint + [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) + [136] call print_uint to:printEntry::@14 printEntry::@14: scope:[printEntry] from printEntry::@1 - [138] print_line_cursor#159 = print_line_cursor#0 - [139] call print_ln + [137] print_line_cursor#159 = print_line_cursor#0 + [138] call print_ln to:printEntry::@15 printEntry::@15: scope:[printEntry] from printEntry::@14 - [140] print_char_cursor#212 = print_line_cursor#0 - [141] call print_str + [139] print_char_cursor#212 = print_line_cursor#0 + [140] call print_str to:printEntry::entryBufEdit1 printEntry::entryBufEdit1: scope:[printEntry] from printEntry::@15 - [142] phi() + [141] phi() to:printEntry::@2 printEntry::@2: scope:[printEntry] from printEntry::entryBufEdit1 - [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] - [144] call print_uint + [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] + [143] call print_uint to:printEntry::@16 printEntry::@16: scope:[printEntry] from printEntry::@2 - [145] print_line_cursor#160 = print_line_cursor#0 - [146] call print_ln + [144] print_line_cursor#160 = print_line_cursor#0 + [145] call print_ln to:printEntry::@17 printEntry::@17: scope:[printEntry] from printEntry::@16 - [147] print_char_cursor#213 = print_line_cursor#0 - [148] call print_str + [146] print_char_cursor#213 = print_line_cursor#0 + [147] call print_str to:printEntry::entryTsLen1 printEntry::entryTsLen1: scope:[printEntry] from printEntry::@17 - [149] phi() + [148] phi() to:printEntry::@3 printEntry::@3: scope:[printEntry] from printEntry::entryTsLen1 - [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] - [151] call print_uint + [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] + [150] call print_uint to:printEntry::@18 printEntry::@18: scope:[printEntry] from printEntry::@3 - [152] print_line_cursor#161 = print_line_cursor#0 - [153] call print_ln + [151] print_line_cursor#161 = print_line_cursor#0 + [152] call print_ln to:printEntry::@19 printEntry::@19: scope:[printEntry] from printEntry::@18 - [154] print_char_cursor#214 = print_line_cursor#0 - [155] call print_str + [153] print_char_cursor#214 = print_line_cursor#0 + [154] call print_str to:printEntry::entryTsOrder1 printEntry::entryTsOrder1: scope:[printEntry] from printEntry::@19 - [156] phi() + [155] phi() to:printEntry::@4 printEntry::@4: scope:[printEntry] from printEntry::entryTsOrder1 - [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] - [158] call print_uint + [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] + [157] call print_uint to:printEntry::@20 printEntry::@20: scope:[printEntry] from printEntry::@4 - [159] print_line_cursor#162 = print_line_cursor#0 - [160] call print_ln + [158] print_line_cursor#162 = print_line_cursor#0 + [159] call print_ln to:printEntry::@21 printEntry::@21: scope:[printEntry] from printEntry::@20 - [161] print_char_cursor#215 = print_line_cursor#0 - [162] call print_str + [160] print_char_cursor#215 = print_line_cursor#0 + [161] call print_str to:printEntry::entryTLastLink1 printEntry::entryTLastLink1: scope:[printEntry] from printEntry::@21 - [163] phi() + [162] phi() to:printEntry::@5 printEntry::@5: scope:[printEntry] from printEntry::entryTLastLink1 - [164] print_uchar::b#2 = printEntry::entry#10[8] - [165] call print_uchar + [163] print_uchar::b#2 = printEntry::entry#10[8] + [164] call print_uchar to:printEntry::@22 printEntry::@22: scope:[printEntry] from printEntry::@5 - [166] print_line_cursor#163 = print_line_cursor#0 - [167] call print_ln + [165] print_line_cursor#163 = print_line_cursor#0 + [166] call print_ln to:printEntry::@23 printEntry::@23: scope:[printEntry] from printEntry::@22 - [168] print_char_cursor#216 = print_line_cursor#0 - [169] call print_str + [167] print_char_cursor#216 = print_line_cursor#0 + [168] call print_str to:printEntry::entrySLastLink1 printEntry::entrySLastLink1: scope:[printEntry] from printEntry::@23 - [170] phi() + [169] phi() to:printEntry::@6 printEntry::@6: scope:[printEntry] from printEntry::entrySLastLink1 - [171] print_uchar::b#3 = printEntry::entry#10[9] - [172] call print_uchar + [170] print_uchar::b#3 = printEntry::entry#10[9] + [171] call print_uchar to:printEntry::@24 printEntry::@24: scope:[printEntry] from printEntry::@6 - [173] print_line_cursor#164 = print_line_cursor#0 - [174] call print_ln + [172] print_line_cursor#164 = print_line_cursor#0 + [173] call print_ln to:printEntry::@25 printEntry::@25: scope:[printEntry] from printEntry::@24 - [175] print_char_cursor#217 = print_line_cursor#0 - [176] call print_str + [174] print_char_cursor#217 = print_line_cursor#0 + [175] call print_str to:printEntry::entryBFlag1 printEntry::entryBFlag1: scope:[printEntry] from printEntry::@25 - [177] phi() + [176] phi() to:printEntry::@7 printEntry::@7: scope:[printEntry] from printEntry::entryBFlag1 - [178] print_uchar::b#4 = printEntry::entry#10[$a] - [179] call print_uchar + [177] print_uchar::b#4 = printEntry::entry#10[$a] + [178] call print_uchar to:printEntry::@26 printEntry::@26: scope:[printEntry] from printEntry::@7 - [180] print_line_cursor#165 = print_line_cursor#0 - [181] call print_ln + [179] print_line_cursor#165 = print_line_cursor#0 + [180] call print_ln to:printEntry::@27 printEntry::@27: scope:[printEntry] from printEntry::@26 - [182] print_char_cursor#218 = print_line_cursor#0 - [183] call print_str + [181] print_char_cursor#218 = print_line_cursor#0 + [182] call print_str to:printEntry::entryBError1 printEntry::entryBError1: scope:[printEntry] from printEntry::@27 - [184] phi() + [183] phi() to:printEntry::@8 printEntry::@8: scope:[printEntry] from printEntry::entryBError1 - [185] print_uchar::b#5 = printEntry::entry#10[$b] - [186] call print_uchar + [184] print_uchar::b#5 = printEntry::entry#10[$b] + [185] call print_uchar to:printEntry::@28 printEntry::@28: scope:[printEntry] from printEntry::@8 - [187] print_line_cursor#166 = print_line_cursor#0 - [188] call print_ln + [186] print_line_cursor#166 = print_line_cursor#0 + [187] call print_ln to:printEntry::@29 printEntry::@29: scope:[printEntry] from printEntry::@28 - [189] print_char_cursor#219 = print_line_cursor#0 - [190] call print_str + [188] print_char_cursor#219 = print_line_cursor#0 + [189] call print_str to:printEntry::entryUCross1 printEntry::entryUCross1: scope:[printEntry] from printEntry::@29 - [191] phi() + [190] phi() to:printEntry::@9 printEntry::@9: scope:[printEntry] from printEntry::entryUCross1 - [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] - [193] call print_uint + [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] + [192] call print_uint to:printEntry::@30 printEntry::@30: scope:[printEntry] from printEntry::@9 - [194] print_line_cursor#167 = print_line_cursor#0 - [195] call print_ln + [193] print_line_cursor#167 = print_line_cursor#0 + [194] call print_ln to:printEntry::@31 printEntry::@31: scope:[printEntry] from printEntry::@30 - [196] print_char_cursor#220 = print_line_cursor#0 - [197] call print_str + [195] print_char_cursor#220 = print_line_cursor#0 + [196] call print_str to:printEntry::entryBAddrLo1 printEntry::entryBAddrLo1: scope:[printEntry] from printEntry::@31 - [198] phi() + [197] phi() to:printEntry::@10 printEntry::@10: scope:[printEntry] from printEntry::entryBAddrLo1 - [199] print_uchar::b#6 = printEntry::entry#10[$e] - [200] call print_uchar + [198] print_uchar::b#6 = printEntry::entry#10[$e] + [199] call print_uchar to:printEntry::@32 printEntry::@32: scope:[printEntry] from printEntry::@10 - [201] print_line_cursor#168 = print_line_cursor#0 - [202] call print_ln + [200] print_line_cursor#168 = print_line_cursor#0 + [201] call print_ln to:printEntry::@33 printEntry::@33: scope:[printEntry] from printEntry::@32 - [203] print_char_cursor#221 = print_line_cursor#0 - [204] call print_str + [202] print_char_cursor#221 = print_line_cursor#0 + [203] call print_str to:printEntry::entryBAddrHi1 printEntry::entryBAddrHi1: scope:[printEntry] from printEntry::@33 - [205] phi() + [204] phi() to:printEntry::@11 printEntry::@11: scope:[printEntry] from printEntry::entryBAddrHi1 - [206] print_uchar::b#7 = printEntry::entry#10[$f] - [207] call print_uchar + [205] print_uchar::b#7 = printEntry::entry#10[$f] + [206] call print_uchar to:printEntry::@34 printEntry::@34: scope:[printEntry] from printEntry::@11 - [208] print_line_cursor#169 = print_line_cursor#0 - [209] call print_ln + [207] print_line_cursor#169 = print_line_cursor#0 + [208] call print_ln to:printEntry::@35 printEntry::@35: scope:[printEntry] from printEntry::@34 - [210] print_char_cursor#222 = print_line_cursor#0 - [211] call print_str + [209] print_char_cursor#222 = print_line_cursor#0 + [210] call print_str to:printEntry::entryTHi1 printEntry::entryTHi1: scope:[printEntry] from printEntry::@35 - [212] phi() + [211] phi() to:printEntry::@12 printEntry::@12: scope:[printEntry] from printEntry::entryTHi1 - [213] print_uchar::b#8 = printEntry::entry#10[$10] - [214] call print_uchar + [212] print_uchar::b#8 = printEntry::entry#10[$10] + [213] call print_uchar to:printEntry::@36 printEntry::@36: scope:[printEntry] from printEntry::@12 - [215] print_line_cursor#170 = print_line_cursor#0 - [216] call print_ln + [214] print_line_cursor#170 = print_line_cursor#0 + [215] call print_ln to:printEntry::@37 printEntry::@37: scope:[printEntry] from printEntry::@36 - [217] print_char_cursor#223 = print_line_cursor#0 - [218] call print_str + [216] print_char_cursor#223 = print_line_cursor#0 + [217] call print_str to:printEntry::entryTLo1 printEntry::entryTLo1: scope:[printEntry] from printEntry::@37 - [219] phi() + [218] phi() to:printEntry::@13 printEntry::@13: scope:[printEntry] from printEntry::entryTLo1 - [220] print_uchar::b#9 = printEntry::entry#10[$11] - [221] call print_uchar + [219] print_uchar::b#9 = printEntry::entry#10[$11] + [220] call print_uchar to:printEntry::@38 printEntry::@38: scope:[printEntry] from printEntry::@13 - [222] print_line_cursor#171 = print_line_cursor#0 - [223] call print_ln + [221] print_line_cursor#171 = print_line_cursor#0 + [222] call print_ln to:printEntry::@return printEntry::@return: scope:[printEntry] from printEntry::@38 - [224] return + [223] return to:@return byte keyboard_key_pressed(byte keyboard_key_pressed::key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@1 main::@3 - [225] phi() - [226] call keyboard_matrix_read - [227] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 + [224] phi() + [225] call keyboard_matrix_read + [226] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed - [228] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 - [229] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) + [227] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 + [228] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@1 - [230] return + [229] return to:@return void* memset(void* memset::str , byte memset::c , word memset::num) memset: scope:[memset] from print_cls - [231] phi() + [230] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [232] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) - [233] if(memset::dst#2!=memset::end#0) goto memset::@2 + [231] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [232] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 - [234] return + [233] return to:@return memset::@2: scope:[memset] from memset::@1 - [235] *memset::dst#2 = memset::c#0 - [236] memset::dst#1 = ++ memset::dst#2 + [234] *memset::dst#2 = memset::c#0 + [235] memset::dst#1 = ++ memset::dst#2 to:memset::@1 void print_char(byte print_char::ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 - [237] print_char_cursor#83 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#148, print_uchar::@1/print_char_cursor#10 ) - [237] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) - [238] *print_char_cursor#83 = print_char::ch#3 - [239] print_char_cursor#10 = ++ print_char_cursor#83 + [236] print_char_cursor#83 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#148, print_uchar::@1/print_char_cursor#10 ) + [236] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) + [237] *print_char_cursor#83 = print_char::ch#3 + [238] print_char_cursor#10 = ++ print_char_cursor#83 to:print_char::@return print_char::@return: scope:[print_char] from print_char - [240] return + [239] return to:@return void print_uint(word print_uint::w) print_uint: scope:[print_uint] from printEntry::@1 printEntry::@2 printEntry::@3 printEntry::@4 printEntry::@9 - [241] print_uint::w#5 = phi( printEntry::@1/print_uint::w#7, printEntry::@2/print_uint::w#8, printEntry::@3/print_uint::w#2, printEntry::@4/print_uint::w#10, printEntry::@9/print_uint::w#4 ) - [242] print_uchar::b#0 = > print_uint::w#5 - [243] call print_uchar + [240] print_uint::w#5 = phi( printEntry::@1/print_uint::w#7, printEntry::@2/print_uint::w#8, printEntry::@3/print_uint::w#2, printEntry::@4/print_uint::w#10, printEntry::@9/print_uint::w#4 ) + [241] print_uchar::b#0 = > print_uint::w#5 + [242] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint - [244] print_uchar::b#1 = < print_uint::w#5 - [245] call print_uchar + [243] print_uchar::b#1 = < print_uint::w#5 + [244] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 - [246] return + [245] return to:@return void print_uchar(byte print_uchar::b) print_uchar: scope:[print_uchar] from printEntry::@10 printEntry::@11 printEntry::@12 printEntry::@13 printEntry::@5 printEntry::@6 printEntry::@7 printEntry::@8 print_uint print_uint::@1 - [247] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) - [247] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) - [248] print_uchar::$0 = print_uchar::b#10 >> 4 - [249] print_char::ch#1 = print_hextab[print_uchar::$0] - [250] call print_char + [246] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) + [246] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) + [247] print_uchar::$0 = print_uchar::b#10 >> 4 + [248] print_char::ch#1 = print_hextab[print_uchar::$0] + [249] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar - [251] print_uchar::$2 = print_uchar::b#10 & $f - [252] print_char::ch#2 = print_hextab[print_uchar::$2] - [253] call print_char + [250] print_uchar::$2 = print_uchar::b#10 & $f + [251] print_char::ch#2 = print_hextab[print_uchar::$2] + [252] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 - [254] return + [253] return to:@return byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) - [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) + [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [257] return + [256] return to:@return diff --git a/src/test/ref/semi-struct-2.log b/src/test/ref/semi-struct-2.log index 8fbc3cdf1..942c02a12 100644 --- a/src/test/ref/semi-struct-2.log +++ b/src/test/ref/semi-struct-2.log @@ -633,8 +633,8 @@ initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1_@return initEntry::n#2 = phi( initEntry::entryBufDisk1_@return/initEntry::n#15 ) initEntry::entryBufDisk1_return#3 = phi( initEntry::entryBufDisk1_@return/initEntry::entryBufDisk1_return#1 ) initEntry::$0 = initEntry::entryBufDisk1_return#3 - initEntry::$1 = (byte*)$1111 + initEntry::n#2 - *initEntry::$0 = initEntry::$1 + initEntry::$1 = $1111 + initEntry::n#2 + *initEntry::$0 = (byte*)initEntry::$1 initEntry::entryBufEdit1_entry#0 = initEntry::entry#3 to:initEntry::entryBufEdit1 initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1 @@ -655,8 +655,8 @@ initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1_@return initEntry::n#3 = phi( initEntry::entryBufEdit1_@return/initEntry::n#16 ) initEntry::entryBufEdit1_return#3 = phi( initEntry::entryBufEdit1_@return/initEntry::entryBufEdit1_return#1 ) initEntry::$2 = initEntry::entryBufEdit1_return#3 - initEntry::$3 = (byte*)$2222 + initEntry::n#3 - *initEntry::$2 = initEntry::$3 + initEntry::$3 = $2222 + initEntry::n#3 + *initEntry::$2 = (byte*)initEntry::$3 initEntry::entryTsLen1_entry#0 = initEntry::entry#4 to:initEntry::entryTsLen1 initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2 @@ -699,9 +699,8 @@ initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1_@return initEntry::n#5 = phi( initEntry::entryTsOrder1_@return/initEntry::n#18 ) initEntry::entryTsOrder1_return#3 = phi( initEntry::entryTsOrder1_@return/initEntry::entryTsOrder1_return#1 ) initEntry::$6 = initEntry::entryTsOrder1_return#3 - initEntry::$26 = initEntry::n#5 * SIZEOF_WORD - initEntry::$7 = (word*)$4444 + initEntry::$26 - *initEntry::$6 = initEntry::$7 + initEntry::$7 = $4444 + initEntry::n#5 + *initEntry::$6 = (word*)initEntry::$7 initEntry::entryTLastLink1_entry#0 = initEntry::entry#6 to:initEntry::entryTLastLink1 initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4 @@ -1566,12 +1565,11 @@ constant byte RADIX::DECIMAL = $a constant byte RADIX::HEXADECIMAL = $10 constant byte RADIX::OCTAL = 8 constant const byte SIZEOF_ENTRY = $12 -constant byte SIZEOF_WORD = 2 void __start() constant byte* files[(word)MAX_FILES*SIZEOF_ENTRY] = { fill( (word)MAX_FILES*SIZEOF_ENTRY, 0) } void initEntry(byte* initEntry::entry , byte initEntry::n) byte**~ initEntry::$0 -byte*~ initEntry::$1 +number~ initEntry::$1 byte*~ initEntry::$10 number~ initEntry::$11 byte*~ initEntry::$12 @@ -1589,12 +1587,11 @@ byte*~ initEntry::$22 number~ initEntry::$23 byte*~ initEntry::$24 number~ initEntry::$25 -byte~ initEntry::$26 -byte*~ initEntry::$3 +number~ initEntry::$3 word*~ initEntry::$4 number~ initEntry::$5 word**~ initEntry::$6 -word*~ initEntry::$7 +number~ initEntry::$7 byte*~ initEntry::$8 number~ initEntry::$9 byte* initEntry::entry @@ -2693,11 +2690,17 @@ Adding number conversion cast (unumber) $11 in initEntry::n#1 = $11 Adding number conversion cast (unumber) 0 in main::$21 = main::$20 == 0 Adding number conversion cast (unumber) 0 in main::$23 = main::$22 == 0 Adding number conversion cast (unumber) 0 in initEntry::entryBufDisk1_$0 = initEntry::entryBufDisk1_entry#1 + 0 +Adding number conversion cast (unumber) $1111 in initEntry::$1 = $1111 + initEntry::n#2 +Adding number conversion cast (unumber) initEntry::$1 in initEntry::$1 = (unumber)$1111 + initEntry::n#2 Adding number conversion cast (unumber) 2 in initEntry::entryBufEdit1_$0 = initEntry::entryBufEdit1_entry#1 + 2 +Adding number conversion cast (unumber) $2222 in initEntry::$3 = $2222 + initEntry::n#3 +Adding number conversion cast (unumber) initEntry::$3 in initEntry::$3 = (unumber)$2222 + initEntry::n#3 Adding number conversion cast (unumber) 4 in initEntry::entryTsLen1_$0 = initEntry::entryTsLen1_entry#1 + 4 Adding number conversion cast (unumber) $3333 in initEntry::$5 = $3333 + initEntry::n#4 Adding number conversion cast (unumber) initEntry::$5 in initEntry::$5 = (unumber)$3333 + initEntry::n#4 Adding number conversion cast (unumber) 6 in initEntry::entryTsOrder1_$0 = initEntry::entryTsOrder1_entry#1 + 6 +Adding number conversion cast (unumber) $4444 in initEntry::$7 = $4444 + initEntry::n#5 +Adding number conversion cast (unumber) initEntry::$7 in initEntry::$7 = (unumber)$4444 + initEntry::n#5 Adding number conversion cast (unumber) 8 in initEntry::entryTLastLink1_$0 = initEntry::entryTLastLink1_entry#1 + 8 Adding number conversion cast (unumber) $55 in initEntry::$9 = $55 + initEntry::n#6 Adding number conversion cast (unumber) initEntry::$9 in initEntry::$9 = (unumber)$55 + initEntry::n#6 @@ -2771,13 +2774,13 @@ Simplifying constant integer cast $11 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 4369 +Simplifying constant integer cast $1111 Simplifying constant integer cast 2 -Simplifying constant pointer cast (byte*) 8738 +Simplifying constant integer cast $2222 Simplifying constant integer cast 4 Simplifying constant integer cast $3333 Simplifying constant integer cast 6 -Simplifying constant pointer cast (word*) 17476 +Simplifying constant integer cast $4444 Simplifying constant integer cast 8 Simplifying constant integer cast initEntry::entryTLastLink1_$0 Simplifying constant integer cast $55 @@ -2847,10 +2850,13 @@ Finalized unsigned number type (byte) $11 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 +Finalized unsigned number type (word) $1111 Finalized unsigned number type (byte) 2 +Finalized unsigned number type (word) $2222 Finalized unsigned number type (byte) 4 Finalized unsigned number type (word) $3333 Finalized unsigned number type (byte) 6 +Finalized unsigned number type (word) $4444 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) $55 Finalized unsigned number type (byte) 9 @@ -2886,7 +2892,10 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to byte in mul8u::$1 = mul8u::a#4 & 1 Inferred type updated to byte in print_uchar::$2 = print_uchar::b#11 & $f Inferred type updated to byte in keyboard_key_pressed::$0 = keyboard_key_pressed::key#2 & 7 +Inferred type updated to word in initEntry::$1 = $1111 + initEntry::n#2 +Inferred type updated to word in initEntry::$3 = $2222 + initEntry::n#3 Inferred type updated to word in initEntry::$5 = $3333 + initEntry::n#4 +Inferred type updated to word in initEntry::$7 = $4444 + initEntry::n#5 Inferred type updated to byte in initEntry::$9 = $55 + initEntry::n#6 Inferred type updated to byte in initEntry::$11 = $66 + initEntry::n#7 Inferred type updated to byte in initEntry::$13 = $77 + initEntry::n#8 @@ -3227,65 +3236,65 @@ if() condition always false - eliminating [16] if(memset::num#0<=0) goto memset: Successful SSA optimization Pass2ConstantIfs Consolidated constant strings into main::str1 Successful SSA optimization Pass2ConstantStringConsolidation -Converting *(pointer+n) to pointer[n] [164] *initEntry::entryBufDisk1_return#0 = initEntry::$1 -- ((byte**)initEntry::entry#10)[0] -Converting *(pointer+n) to pointer[n] [168] *initEntry::entryBufEdit1_return#0 = initEntry::$3 -- ((byte**)initEntry::entry#10)[2] +Converting *(pointer+n) to pointer[n] [164] *initEntry::entryBufDisk1_return#0 = (byte*)initEntry::$1 -- ((byte**)initEntry::entry#10)[0] +Converting *(pointer+n) to pointer[n] [168] *initEntry::entryBufEdit1_return#0 = (byte*)initEntry::$3 -- ((byte**)initEntry::entry#10)[2] Converting *(pointer+n) to pointer[n] [172] *initEntry::entryTsLen1_return#0 = initEntry::$5 -- ((word*)initEntry::entry#10)[4] -Converting *(pointer+n) to pointer[n] [177] *initEntry::entryTsOrder1_return#0 = initEntry::$7 -- ((word**)initEntry::entry#10)[6] -Converting *(pointer+n) to pointer[n] [180] *initEntry::entryTLastLink1_return#0 = initEntry::$9 -- initEntry::entry#10[8] -Converting *(pointer+n) to pointer[n] [183] *initEntry::entrySLastLink1_return#0 = initEntry::$11 -- initEntry::entry#10[9] -Converting *(pointer+n) to pointer[n] [186] *initEntry::entryBFlag1_return#0 = initEntry::$13 -- initEntry::entry#10[$a] -Converting *(pointer+n) to pointer[n] [189] *initEntry::entryBError1_return#0 = initEntry::$15 -- initEntry::entry#10[$b] -Converting *(pointer+n) to pointer[n] [193] *initEntry::entryUCross1_return#0 = initEntry::$17 -- ((word*)initEntry::entry#10)[$c] -Converting *(pointer+n) to pointer[n] [196] *initEntry::entryBAddrLo1_return#0 = initEntry::$19 -- initEntry::entry#10[$e] -Converting *(pointer+n) to pointer[n] [199] *initEntry::entryBAddrHi1_return#0 = initEntry::$21 -- initEntry::entry#10[$f] -Converting *(pointer+n) to pointer[n] [202] *initEntry::entryTHi1_return#0 = initEntry::$23 -- initEntry::entry#10[$10] -Converting *(pointer+n) to pointer[n] [205] *initEntry::entryTLo1_return#0 = initEntry::$25 -- initEntry::entry#10[$11] -Converting *(pointer+n) to pointer[n] [213] print_uint::w#0 = (word)*printEntry::entryBufDisk1_return#0 -- ((byte**)printEntry::entry#10)[0] -Converting *(pointer+n) to pointer[n] [223] print_uint::w#1 = (word)*printEntry::entryBufEdit1_return#0 -- ((byte**)printEntry::entry#10)[2] -Converting *(pointer+n) to pointer[n] [233] print_uint::w#2 = *printEntry::entryTsLen1_return#0 -- ((word*)printEntry::entry#10)[4] -Converting *(pointer+n) to pointer[n] [243] print_uint::w#3 = (word)*printEntry::entryTsOrder1_return#0 -- ((word**)printEntry::entry#10)[6] -Converting *(pointer+n) to pointer[n] [252] print_uchar::b#2 = *printEntry::entryTLastLink1_return#0 -- printEntry::entry#10[8] -Converting *(pointer+n) to pointer[n] [261] print_uchar::b#3 = *printEntry::entrySLastLink1_return#0 -- printEntry::entry#10[9] -Converting *(pointer+n) to pointer[n] [270] print_uchar::b#4 = *printEntry::entryBFlag1_return#0 -- printEntry::entry#10[$a] -Converting *(pointer+n) to pointer[n] [279] print_uchar::b#5 = *printEntry::entryBError1_return#0 -- printEntry::entry#10[$b] -Converting *(pointer+n) to pointer[n] [289] print_uint::w#4 = *printEntry::entryUCross1_return#0 -- ((word*)printEntry::entry#10)[$c] -Converting *(pointer+n) to pointer[n] [298] print_uchar::b#6 = *printEntry::entryBAddrLo1_return#0 -- printEntry::entry#10[$e] -Converting *(pointer+n) to pointer[n] [307] print_uchar::b#7 = *printEntry::entryBAddrHi1_return#0 -- printEntry::entry#10[$f] -Converting *(pointer+n) to pointer[n] [316] print_uchar::b#8 = *printEntry::entryTHi1_return#0 -- printEntry::entry#10[$10] -Converting *(pointer+n) to pointer[n] [325] print_uchar::b#9 = *printEntry::entryTLo1_return#0 -- printEntry::entry#10[$11] +Converting *(pointer+n) to pointer[n] [176] *initEntry::entryTsOrder1_return#0 = (word*)initEntry::$7 -- ((word**)initEntry::entry#10)[6] +Converting *(pointer+n) to pointer[n] [179] *initEntry::entryTLastLink1_return#0 = initEntry::$9 -- initEntry::entry#10[8] +Converting *(pointer+n) to pointer[n] [182] *initEntry::entrySLastLink1_return#0 = initEntry::$11 -- initEntry::entry#10[9] +Converting *(pointer+n) to pointer[n] [185] *initEntry::entryBFlag1_return#0 = initEntry::$13 -- initEntry::entry#10[$a] +Converting *(pointer+n) to pointer[n] [188] *initEntry::entryBError1_return#0 = initEntry::$15 -- initEntry::entry#10[$b] +Converting *(pointer+n) to pointer[n] [192] *initEntry::entryUCross1_return#0 = initEntry::$17 -- ((word*)initEntry::entry#10)[$c] +Converting *(pointer+n) to pointer[n] [195] *initEntry::entryBAddrLo1_return#0 = initEntry::$19 -- initEntry::entry#10[$e] +Converting *(pointer+n) to pointer[n] [198] *initEntry::entryBAddrHi1_return#0 = initEntry::$21 -- initEntry::entry#10[$f] +Converting *(pointer+n) to pointer[n] [201] *initEntry::entryTHi1_return#0 = initEntry::$23 -- initEntry::entry#10[$10] +Converting *(pointer+n) to pointer[n] [204] *initEntry::entryTLo1_return#0 = initEntry::$25 -- initEntry::entry#10[$11] +Converting *(pointer+n) to pointer[n] [212] print_uint::w#0 = (word)*printEntry::entryBufDisk1_return#0 -- ((byte**)printEntry::entry#10)[0] +Converting *(pointer+n) to pointer[n] [222] print_uint::w#1 = (word)*printEntry::entryBufEdit1_return#0 -- ((byte**)printEntry::entry#10)[2] +Converting *(pointer+n) to pointer[n] [232] print_uint::w#2 = *printEntry::entryTsLen1_return#0 -- ((word*)printEntry::entry#10)[4] +Converting *(pointer+n) to pointer[n] [242] print_uint::w#3 = (word)*printEntry::entryTsOrder1_return#0 -- ((word**)printEntry::entry#10)[6] +Converting *(pointer+n) to pointer[n] [251] print_uchar::b#2 = *printEntry::entryTLastLink1_return#0 -- printEntry::entry#10[8] +Converting *(pointer+n) to pointer[n] [260] print_uchar::b#3 = *printEntry::entrySLastLink1_return#0 -- printEntry::entry#10[9] +Converting *(pointer+n) to pointer[n] [269] print_uchar::b#4 = *printEntry::entryBFlag1_return#0 -- printEntry::entry#10[$a] +Converting *(pointer+n) to pointer[n] [278] print_uchar::b#5 = *printEntry::entryBError1_return#0 -- printEntry::entry#10[$b] +Converting *(pointer+n) to pointer[n] [288] print_uint::w#4 = *printEntry::entryUCross1_return#0 -- ((word*)printEntry::entry#10)[$c] +Converting *(pointer+n) to pointer[n] [297] print_uchar::b#6 = *printEntry::entryBAddrLo1_return#0 -- printEntry::entry#10[$e] +Converting *(pointer+n) to pointer[n] [306] print_uchar::b#7 = *printEntry::entryBAddrHi1_return#0 -- printEntry::entry#10[$f] +Converting *(pointer+n) to pointer[n] [315] print_uchar::b#8 = *printEntry::entryTHi1_return#0 -- printEntry::entry#10[$10] +Converting *(pointer+n) to pointer[n] [324] print_uchar::b#9 = *printEntry::entryTLo1_return#0 -- printEntry::entry#10[$11] Successful SSA optimization Pass2InlineDerefIdx Simplifying expression containing zero (byte*)CIA1 in [75] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] Simplifying expression containing zero initEntry::entry#10 in [161] initEntry::entryBufDisk1_$0 = initEntry::entry#10 + 0 -Simplifying expression containing zero (byte**)initEntry::entry#10 in [164] ((byte**)initEntry::entry#10)[0] = initEntry::$1 -Simplifying expression containing zero printEntry::entry#10 in [211] printEntry::entryBufDisk1_$0 = printEntry::entry#10 + 0 -Simplifying expression containing zero (byte**)printEntry::entry#10 in [213] print_uint::w#0 = (word)((byte**)printEntry::entry#10)[0] +Simplifying expression containing zero (byte**)initEntry::entry#10 in [164] ((byte**)initEntry::entry#10)[0] = (byte*)initEntry::$1 +Simplifying expression containing zero printEntry::entry#10 in [210] printEntry::entryBufDisk1_$0 = printEntry::entry#10 + 0 +Simplifying expression containing zero (byte**)printEntry::entry#10 in [212] print_uint::w#0 = (word)((byte**)printEntry::entry#10)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable initEntry::entryBufDisk1_return#0 and assignment [105] initEntry::entryBufDisk1_return#0 = (byte**)initEntry::entryBufDisk1_$0 Eliminating unused variable initEntry::entryBufEdit1_return#0 and assignment [109] initEntry::entryBufEdit1_return#0 = (byte**)initEntry::entryBufEdit1_$0 Eliminating unused variable initEntry::entryTsLen1_return#0 and assignment [113] initEntry::entryTsLen1_return#0 = (word*)initEntry::entryTsLen1_$0 Eliminating unused variable initEntry::entryTsOrder1_return#0 and assignment [117] initEntry::entryTsOrder1_return#0 = (word**)initEntry::entryTsOrder1_$0 -Eliminating unused variable initEntry::entryTLastLink1_return#0 and assignment [121] initEntry::entryTLastLink1_return#0 = initEntry::entry#10 + 8 -Eliminating unused variable initEntry::entrySLastLink1_return#0 and assignment [124] initEntry::entrySLastLink1_return#0 = initEntry::entry#10 + 9 -Eliminating unused variable initEntry::entryBFlag1_return#0 and assignment [127] initEntry::entryBFlag1_return#0 = initEntry::entry#10 + $a -Eliminating unused variable initEntry::entryBError1_return#0 and assignment [130] initEntry::entryBError1_return#0 = initEntry::entry#10 + $b -Eliminating unused variable initEntry::entryUCross1_return#0 and assignment [134] initEntry::entryUCross1_return#0 = (word*)initEntry::entryUCross1_$0 -Eliminating unused variable initEntry::entryBAddrLo1_return#0 and assignment [137] initEntry::entryBAddrLo1_return#0 = initEntry::entry#10 + $e -Eliminating unused variable initEntry::entryBAddrHi1_return#0 and assignment [140] initEntry::entryBAddrHi1_return#0 = initEntry::entry#10 + $f -Eliminating unused variable initEntry::entryTHi1_return#0 and assignment [143] initEntry::entryTHi1_return#0 = initEntry::entry#10 + $10 -Eliminating unused variable initEntry::entryTLo1_return#0 and assignment [146] initEntry::entryTLo1_return#0 = initEntry::entry#10 + $11 -Eliminating unused variable printEntry::entryBufDisk1_return#0 and assignment [153] printEntry::entryBufDisk1_return#0 = (byte**)printEntry::entryBufDisk1_$0 -Eliminating unused variable printEntry::entryBufEdit1_return#0 and assignment [159] printEntry::entryBufEdit1_return#0 = (byte**)printEntry::entryBufEdit1_$0 -Eliminating unused variable printEntry::entryTsLen1_return#0 and assignment [165] printEntry::entryTsLen1_return#0 = (word*)printEntry::entryTsLen1_$0 -Eliminating unused variable printEntry::entryTsOrder1_return#0 and assignment [171] printEntry::entryTsOrder1_return#0 = (word**)printEntry::entryTsOrder1_$0 -Eliminating unused variable printEntry::entryTLastLink1_return#0 and assignment [176] printEntry::entryTLastLink1_return#0 = printEntry::entry#10 + 8 -Eliminating unused variable printEntry::entrySLastLink1_return#0 and assignment [181] printEntry::entrySLastLink1_return#0 = printEntry::entry#10 + 9 -Eliminating unused variable printEntry::entryBFlag1_return#0 and assignment [186] printEntry::entryBFlag1_return#0 = printEntry::entry#10 + $a -Eliminating unused variable printEntry::entryBError1_return#0 and assignment [191] printEntry::entryBError1_return#0 = printEntry::entry#10 + $b -Eliminating unused variable printEntry::entryUCross1_return#0 and assignment [197] printEntry::entryUCross1_return#0 = (word*)printEntry::entryUCross1_$0 -Eliminating unused variable printEntry::entryBAddrLo1_return#0 and assignment [202] printEntry::entryBAddrLo1_return#0 = printEntry::entry#10 + $e -Eliminating unused variable printEntry::entryBAddrHi1_return#0 and assignment [207] printEntry::entryBAddrHi1_return#0 = printEntry::entry#10 + $f -Eliminating unused variable printEntry::entryTHi1_return#0 and assignment [212] printEntry::entryTHi1_return#0 = printEntry::entry#10 + $10 -Eliminating unused variable printEntry::entryTLo1_return#0 and assignment [217] printEntry::entryTLo1_return#0 = printEntry::entry#10 + $11 +Eliminating unused variable initEntry::entryTLastLink1_return#0 and assignment [120] initEntry::entryTLastLink1_return#0 = initEntry::entry#10 + 8 +Eliminating unused variable initEntry::entrySLastLink1_return#0 and assignment [123] initEntry::entrySLastLink1_return#0 = initEntry::entry#10 + 9 +Eliminating unused variable initEntry::entryBFlag1_return#0 and assignment [126] initEntry::entryBFlag1_return#0 = initEntry::entry#10 + $a +Eliminating unused variable initEntry::entryBError1_return#0 and assignment [129] initEntry::entryBError1_return#0 = initEntry::entry#10 + $b +Eliminating unused variable initEntry::entryUCross1_return#0 and assignment [133] initEntry::entryUCross1_return#0 = (word*)initEntry::entryUCross1_$0 +Eliminating unused variable initEntry::entryBAddrLo1_return#0 and assignment [136] initEntry::entryBAddrLo1_return#0 = initEntry::entry#10 + $e +Eliminating unused variable initEntry::entryBAddrHi1_return#0 and assignment [139] initEntry::entryBAddrHi1_return#0 = initEntry::entry#10 + $f +Eliminating unused variable initEntry::entryTHi1_return#0 and assignment [142] initEntry::entryTHi1_return#0 = initEntry::entry#10 + $10 +Eliminating unused variable initEntry::entryTLo1_return#0 and assignment [145] initEntry::entryTLo1_return#0 = initEntry::entry#10 + $11 +Eliminating unused variable printEntry::entryBufDisk1_return#0 and assignment [152] printEntry::entryBufDisk1_return#0 = (byte**)printEntry::entryBufDisk1_$0 +Eliminating unused variable printEntry::entryBufEdit1_return#0 and assignment [158] printEntry::entryBufEdit1_return#0 = (byte**)printEntry::entryBufEdit1_$0 +Eliminating unused variable printEntry::entryTsLen1_return#0 and assignment [164] printEntry::entryTsLen1_return#0 = (word*)printEntry::entryTsLen1_$0 +Eliminating unused variable printEntry::entryTsOrder1_return#0 and assignment [170] printEntry::entryTsOrder1_return#0 = (word**)printEntry::entryTsOrder1_$0 +Eliminating unused variable printEntry::entryTLastLink1_return#0 and assignment [175] printEntry::entryTLastLink1_return#0 = printEntry::entry#10 + 8 +Eliminating unused variable printEntry::entrySLastLink1_return#0 and assignment [180] printEntry::entrySLastLink1_return#0 = printEntry::entry#10 + 9 +Eliminating unused variable printEntry::entryBFlag1_return#0 and assignment [185] printEntry::entryBFlag1_return#0 = printEntry::entry#10 + $a +Eliminating unused variable printEntry::entryBError1_return#0 and assignment [190] printEntry::entryBError1_return#0 = printEntry::entry#10 + $b +Eliminating unused variable printEntry::entryUCross1_return#0 and assignment [196] printEntry::entryUCross1_return#0 = (word*)printEntry::entryUCross1_$0 +Eliminating unused variable printEntry::entryBAddrLo1_return#0 and assignment [201] printEntry::entryBAddrLo1_return#0 = printEntry::entry#10 + $e +Eliminating unused variable printEntry::entryBAddrHi1_return#0 and assignment [206] printEntry::entryBAddrHi1_return#0 = printEntry::entry#10 + $f +Eliminating unused variable printEntry::entryTHi1_return#0 and assignment [211] printEntry::entryTHi1_return#0 = printEntry::entry#10 + $10 +Eliminating unused variable printEntry::entryTLo1_return#0 and assignment [216] printEntry::entryTLo1_return#0 = printEntry::entry#10 + $11 Eliminating unused constant memset::return#2 Eliminating unused constant OFFSET_STRUCT_MOS6526_CIA_PORT_A Successful SSA optimization PassNEliminateUnusedVars @@ -3293,12 +3302,12 @@ Eliminating unused variable initEntry::entryBufDisk1_$0 and assignment [104] ini Eliminating unused variable initEntry::entryBufEdit1_$0 and assignment [107] initEntry::entryBufEdit1_$0 = initEntry::entry#10 + 2 Eliminating unused variable initEntry::entryTsLen1_$0 and assignment [110] initEntry::entryTsLen1_$0 = initEntry::entry#10 + 4 Eliminating unused variable initEntry::entryTsOrder1_$0 and assignment [113] initEntry::entryTsOrder1_$0 = initEntry::entry#10 + 6 -Eliminating unused variable initEntry::entryUCross1_$0 and assignment [125] initEntry::entryUCross1_$0 = initEntry::entry#10 + $c -Eliminating unused variable printEntry::entryBufDisk1_$0 and assignment [139] printEntry::entryBufDisk1_$0 = printEntry::entry#10 -Eliminating unused variable printEntry::entryBufEdit1_$0 and assignment [144] printEntry::entryBufEdit1_$0 = printEntry::entry#10 + 2 -Eliminating unused variable printEntry::entryTsLen1_$0 and assignment [149] printEntry::entryTsLen1_$0 = printEntry::entry#10 + 4 -Eliminating unused variable printEntry::entryTsOrder1_$0 and assignment [154] printEntry::entryTsOrder1_$0 = printEntry::entry#10 + 6 -Eliminating unused variable printEntry::entryUCross1_$0 and assignment [175] printEntry::entryUCross1_$0 = printEntry::entry#10 + $c +Eliminating unused variable initEntry::entryUCross1_$0 and assignment [124] initEntry::entryUCross1_$0 = initEntry::entry#10 + $c +Eliminating unused variable printEntry::entryBufDisk1_$0 and assignment [138] printEntry::entryBufDisk1_$0 = printEntry::entry#10 +Eliminating unused variable printEntry::entryBufEdit1_$0 and assignment [143] printEntry::entryBufEdit1_$0 = printEntry::entry#10 + 2 +Eliminating unused variable printEntry::entryTsLen1_$0 and assignment [148] printEntry::entryTsLen1_$0 = printEntry::entry#10 + 4 +Eliminating unused variable printEntry::entryTsOrder1_$0 and assignment [153] printEntry::entryTsOrder1_$0 = printEntry::entry#10 + 6 +Eliminating unused variable printEntry::entryUCross1_$0 and assignment [174] printEntry::entryUCross1_$0 = printEntry::entry#10 + $c Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -3311,12 +3320,10 @@ Constant right-side identified [11] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [133] print_uint::w#0 = (word)*((byte**)printEntry::entry#10) keeping *((byte**)printEntry::entry#10) -Inlining Noop Cast [137] print_uint::w#1 = (word)((byte**)printEntry::entry#10)[2] keeping ((byte**)printEntry::entry#10)[2] -Inlining Noop Cast [145] print_uint::w#3 = (word)((word**)printEntry::entry#10)[6] keeping ((word**)printEntry::entry#10)[6] +Inlining Noop Cast [132] print_uint::w#0 = (word)*((byte**)printEntry::entry#10) keeping *((byte**)printEntry::entry#10) +Inlining Noop Cast [136] print_uint::w#1 = (word)((byte**)printEntry::entry#10)[2] keeping ((byte**)printEntry::entry#10)[2] +Inlining Noop Cast [144] print_uint::w#3 = (word)((word**)printEntry::entry#10)[6] keeping ((word**)printEntry::entry#10)[6] Successful SSA optimization Pass2NopCastInlining -Rewriting multiplication to use shift [109] initEntry::$26 = initEntry::n#10 * SIZEOF_WORD -Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings mul8u::res#0 Inlining constant with var siblings mul8u::b#0 Inlining constant with var siblings mul8u::b#1 @@ -3387,8 +3394,6 @@ Constant keyboard_key_pressed::rowidx#0 = KEY_SPACE>>3 Successful SSA optimization Pass2ConstantIdentification Constant keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 Successful SSA optimization Pass2ConstantIdentification -Eliminating unused constant SIZEOF_WORD -Successful SSA optimization PassNEliminateUnusedVars Inlining constant with var siblings mul8u::mb#0 Constant inlined mul8u::mb#0 = (word)SIZEOF_ENTRY Constant inlined keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 @@ -3500,12 +3505,12 @@ Adding NOP phi() at start of print_uint::@2 Adding NOP phi() at start of print_uchar::@2 CALL GRAPH Calls in [main] to keyboard_init:1 mul8u:4 mul8u:11 initEntry:18 initEntry:21 print_cls:23 print_str:25 print_ln:27 print_ln:30 printEntry:33 print_ln:36 print_str:38 keyboard_key_pressed:41 print_cls:46 print_str:48 print_ln:50 print_ln:53 printEntry:56 print_ln:59 print_str:61 keyboard_key_pressed:64 print_cls:69 -Calls in [print_cls] to memset:148 -Calls in [print_str] to print_char:160 -Calls in [printEntry] to print_str:174 print_uint:179 print_ln:182 print_str:184 print_uint:189 print_ln:192 print_str:194 print_uint:200 print_ln:203 print_str:205 print_uint:210 print_ln:213 print_str:215 print_uchar:222 print_ln:225 print_str:227 print_uchar:234 print_ln:237 print_str:239 print_uchar:246 print_ln:249 print_str:251 print_uchar:258 print_ln:261 print_str:263 print_uint:269 print_ln:272 print_str:274 print_uchar:281 print_ln:284 print_str:286 print_uchar:293 print_ln:296 print_str:298 print_uchar:305 print_ln:308 print_str:310 print_uchar:317 print_ln:320 -Calls in [keyboard_key_pressed] to keyboard_matrix_read:324 -Calls in [print_uint] to print_uchar:346 print_uchar:350 -Calls in [print_uchar] to print_char:358 print_char:363 +Calls in [print_cls] to memset:147 +Calls in [print_str] to print_char:159 +Calls in [printEntry] to print_str:173 print_uint:178 print_ln:181 print_str:183 print_uint:188 print_ln:191 print_str:193 print_uint:199 print_ln:202 print_str:204 print_uint:209 print_ln:212 print_str:214 print_uchar:221 print_ln:224 print_str:226 print_uchar:233 print_ln:236 print_str:238 print_uchar:245 print_ln:248 print_str:250 print_uchar:257 print_ln:260 print_str:262 print_uint:268 print_ln:271 print_str:273 print_uchar:280 print_ln:283 print_str:285 print_uchar:292 print_ln:295 print_str:297 print_uchar:304 print_ln:307 print_str:309 print_uchar:316 print_ln:319 +Calls in [keyboard_key_pressed] to keyboard_matrix_read:323 +Calls in [print_uint] to print_uchar:345 print_uchar:349 +Calls in [print_uchar] to print_char:357 print_char:362 Created 21 initial phi equivalence classes Coalesced [17] initEntry::entry#40 = initEntry::entry#0 @@ -3530,80 +3535,80 @@ Coalesced [88] mul8u::a#9 = mul8u::a#0 Coalesced [89] mul8u::res#7 = mul8u::res#6 Coalesced [90] mul8u::mb#6 = mul8u::mb#1 Coalesced (already) [91] mul8u::res#8 = mul8u::res#2 -Coalesced [152] print_str::str#22 = print_str::str#21 -Coalesced [153] print_char_cursor#224 = print_char_cursor#167 -Coalesced [158] print_char::ch#4 = print_char::ch#0 -Coalesced [159] print_char_cursor#255 = print_char_cursor#1 -Coalesced [162] print_str::str#23 = print_str::str#0 -Coalesced [163] print_char_cursor#225 = print_char_cursor#10 -Coalesced [165] print_line_cursor#172 = print_line_cursor#65 -Not coalescing [171] print_line_cursor#173 = print_line_cursor#0 -Not coalescing [173] print_char_cursor#211 = print_line_cursor#0 -Not coalescing [180] print_line_cursor#159 = print_line_cursor#0 -Coalesced (already) [181] print_char_cursor#232 = print_char_cursor#10 -Not coalescing [183] print_char_cursor#212 = print_line_cursor#0 -Not coalescing [190] print_line_cursor#160 = print_line_cursor#0 -Coalesced (already) [191] print_char_cursor#233 = print_char_cursor#10 -Not coalescing [193] print_char_cursor#213 = print_line_cursor#0 -Coalesced [199] print_uint::w#9 = print_uint::w#2 -Not coalescing [201] print_line_cursor#161 = print_line_cursor#0 -Coalesced (already) [202] print_char_cursor#234 = print_char_cursor#10 -Not coalescing [204] print_char_cursor#214 = print_line_cursor#0 -Not coalescing [211] print_line_cursor#162 = print_line_cursor#0 -Coalesced (already) [212] print_char_cursor#235 = print_char_cursor#10 -Not coalescing [214] print_char_cursor#215 = print_line_cursor#0 -Coalesced [220] print_uchar::b#16 = print_uchar::b#2 -Coalesced [221] print_char_cursor#249 = print_char_cursor#1 -Not coalescing [223] print_line_cursor#163 = print_line_cursor#0 -Coalesced (already) [224] print_char_cursor#236 = print_char_cursor#10 -Not coalescing [226] print_char_cursor#216 = print_line_cursor#0 -Coalesced [232] print_uchar::b#17 = print_uchar::b#3 -Coalesced (already) [233] print_char_cursor#250 = print_char_cursor#1 -Not coalescing [235] print_line_cursor#164 = print_line_cursor#0 -Coalesced (already) [236] print_char_cursor#237 = print_char_cursor#10 -Not coalescing [238] print_char_cursor#217 = print_line_cursor#0 -Coalesced [244] print_uchar::b#18 = print_uchar::b#4 -Coalesced (already) [245] print_char_cursor#251 = print_char_cursor#1 -Not coalescing [247] print_line_cursor#165 = print_line_cursor#0 -Coalesced (already) [248] print_char_cursor#238 = print_char_cursor#10 -Not coalescing [250] print_char_cursor#218 = print_line_cursor#0 -Coalesced [256] print_uchar::b#19 = print_uchar::b#5 -Coalesced (already) [257] print_char_cursor#252 = print_char_cursor#1 -Not coalescing [259] print_line_cursor#166 = print_line_cursor#0 -Coalesced (already) [260] print_char_cursor#239 = print_char_cursor#10 -Not coalescing [262] print_char_cursor#219 = print_line_cursor#0 -Coalesced [268] print_uint::w#11 = print_uint::w#4 -Not coalescing [270] print_line_cursor#167 = print_line_cursor#0 -Coalesced (already) [271] print_char_cursor#240 = print_char_cursor#10 -Not coalescing [273] print_char_cursor#220 = print_line_cursor#0 -Coalesced [279] print_uchar::b#12 = print_uchar::b#6 -Coalesced (already) [280] print_char_cursor#245 = print_char_cursor#1 -Not coalescing [282] print_line_cursor#168 = print_line_cursor#0 -Coalesced (already) [283] print_char_cursor#241 = print_char_cursor#10 -Not coalescing [285] print_char_cursor#221 = print_line_cursor#0 -Coalesced [291] print_uchar::b#13 = print_uchar::b#7 -Coalesced (already) [292] print_char_cursor#246 = print_char_cursor#1 -Not coalescing [294] print_line_cursor#169 = print_line_cursor#0 -Coalesced (already) [295] print_char_cursor#242 = print_char_cursor#10 -Not coalescing [297] print_char_cursor#222 = print_line_cursor#0 -Coalesced [303] print_uchar::b#14 = print_uchar::b#8 -Coalesced (already) [304] print_char_cursor#247 = print_char_cursor#1 -Not coalescing [306] print_line_cursor#170 = print_line_cursor#0 -Coalesced (already) [307] print_char_cursor#243 = print_char_cursor#10 -Not coalescing [309] print_char_cursor#223 = print_line_cursor#0 -Coalesced [315] print_uchar::b#15 = print_uchar::b#9 -Coalesced (already) [316] print_char_cursor#248 = print_char_cursor#1 -Not coalescing [318] print_line_cursor#171 = print_line_cursor#0 -Coalesced (already) [319] print_char_cursor#244 = print_char_cursor#10 -Coalesced [337] memset::dst#4 = memset::dst#1 -Coalesced [344] print_uchar::b#20 = print_uchar::b#0 -Coalesced (already) [345] print_char_cursor#253 = print_char_cursor#1 -Coalesced [348] print_uchar::b#21 = print_uchar::b#1 -Coalesced (already) [349] print_char_cursor#254 = print_char_cursor#10 -Coalesced [356] print_char::ch#5 = print_char::ch#1 -Coalesced (already) [357] print_char_cursor#256 = print_char_cursor#148 -Coalesced [361] print_char::ch#6 = print_char::ch#2 -Coalesced (already) [362] print_char_cursor#257 = print_char_cursor#10 +Coalesced [151] print_str::str#22 = print_str::str#21 +Coalesced [152] print_char_cursor#224 = print_char_cursor#167 +Coalesced [157] print_char::ch#4 = print_char::ch#0 +Coalesced [158] print_char_cursor#255 = print_char_cursor#1 +Coalesced [161] print_str::str#23 = print_str::str#0 +Coalesced [162] print_char_cursor#225 = print_char_cursor#10 +Coalesced [164] print_line_cursor#172 = print_line_cursor#65 +Not coalescing [170] print_line_cursor#173 = print_line_cursor#0 +Not coalescing [172] print_char_cursor#211 = print_line_cursor#0 +Not coalescing [179] print_line_cursor#159 = print_line_cursor#0 +Coalesced (already) [180] print_char_cursor#232 = print_char_cursor#10 +Not coalescing [182] print_char_cursor#212 = print_line_cursor#0 +Not coalescing [189] print_line_cursor#160 = print_line_cursor#0 +Coalesced (already) [190] print_char_cursor#233 = print_char_cursor#10 +Not coalescing [192] print_char_cursor#213 = print_line_cursor#0 +Coalesced [198] print_uint::w#9 = print_uint::w#2 +Not coalescing [200] print_line_cursor#161 = print_line_cursor#0 +Coalesced (already) [201] print_char_cursor#234 = print_char_cursor#10 +Not coalescing [203] print_char_cursor#214 = print_line_cursor#0 +Not coalescing [210] print_line_cursor#162 = print_line_cursor#0 +Coalesced (already) [211] print_char_cursor#235 = print_char_cursor#10 +Not coalescing [213] print_char_cursor#215 = print_line_cursor#0 +Coalesced [219] print_uchar::b#16 = print_uchar::b#2 +Coalesced [220] print_char_cursor#249 = print_char_cursor#1 +Not coalescing [222] print_line_cursor#163 = print_line_cursor#0 +Coalesced (already) [223] print_char_cursor#236 = print_char_cursor#10 +Not coalescing [225] print_char_cursor#216 = print_line_cursor#0 +Coalesced [231] print_uchar::b#17 = print_uchar::b#3 +Coalesced (already) [232] print_char_cursor#250 = print_char_cursor#1 +Not coalescing [234] print_line_cursor#164 = print_line_cursor#0 +Coalesced (already) [235] print_char_cursor#237 = print_char_cursor#10 +Not coalescing [237] print_char_cursor#217 = print_line_cursor#0 +Coalesced [243] print_uchar::b#18 = print_uchar::b#4 +Coalesced (already) [244] print_char_cursor#251 = print_char_cursor#1 +Not coalescing [246] print_line_cursor#165 = print_line_cursor#0 +Coalesced (already) [247] print_char_cursor#238 = print_char_cursor#10 +Not coalescing [249] print_char_cursor#218 = print_line_cursor#0 +Coalesced [255] print_uchar::b#19 = print_uchar::b#5 +Coalesced (already) [256] print_char_cursor#252 = print_char_cursor#1 +Not coalescing [258] print_line_cursor#166 = print_line_cursor#0 +Coalesced (already) [259] print_char_cursor#239 = print_char_cursor#10 +Not coalescing [261] print_char_cursor#219 = print_line_cursor#0 +Coalesced [267] print_uint::w#11 = print_uint::w#4 +Not coalescing [269] print_line_cursor#167 = print_line_cursor#0 +Coalesced (already) [270] print_char_cursor#240 = print_char_cursor#10 +Not coalescing [272] print_char_cursor#220 = print_line_cursor#0 +Coalesced [278] print_uchar::b#12 = print_uchar::b#6 +Coalesced (already) [279] print_char_cursor#245 = print_char_cursor#1 +Not coalescing [281] print_line_cursor#168 = print_line_cursor#0 +Coalesced (already) [282] print_char_cursor#241 = print_char_cursor#10 +Not coalescing [284] print_char_cursor#221 = print_line_cursor#0 +Coalesced [290] print_uchar::b#13 = print_uchar::b#7 +Coalesced (already) [291] print_char_cursor#246 = print_char_cursor#1 +Not coalescing [293] print_line_cursor#169 = print_line_cursor#0 +Coalesced (already) [294] print_char_cursor#242 = print_char_cursor#10 +Not coalescing [296] print_char_cursor#222 = print_line_cursor#0 +Coalesced [302] print_uchar::b#14 = print_uchar::b#8 +Coalesced (already) [303] print_char_cursor#247 = print_char_cursor#1 +Not coalescing [305] print_line_cursor#170 = print_line_cursor#0 +Coalesced (already) [306] print_char_cursor#243 = print_char_cursor#10 +Not coalescing [308] print_char_cursor#223 = print_line_cursor#0 +Coalesced [314] print_uchar::b#15 = print_uchar::b#9 +Coalesced (already) [315] print_char_cursor#248 = print_char_cursor#1 +Not coalescing [317] print_line_cursor#171 = print_line_cursor#0 +Coalesced (already) [318] print_char_cursor#244 = print_char_cursor#10 +Coalesced [336] memset::dst#4 = memset::dst#1 +Coalesced [343] print_uchar::b#20 = print_uchar::b#0 +Coalesced (already) [344] print_char_cursor#253 = print_char_cursor#1 +Coalesced [347] print_uchar::b#21 = print_uchar::b#1 +Coalesced (already) [348] print_char_cursor#254 = print_char_cursor#10 +Coalesced [355] print_char::ch#5 = print_char::ch#1 +Coalesced (already) [356] print_char_cursor#256 = print_char_cursor#148 +Coalesced [360] print_char::ch#6 = print_char::ch#2 +Coalesced (already) [361] print_char_cursor#257 = print_char_cursor#10 Coalesced down to 14 phi equivalence classes Culled Empty Block label main::@7 Culled Empty Block label main::fileEntry1_@return @@ -3914,15 +3919,15 @@ initEntry::entryBufDisk1: scope:[initEntry] from initEntry [75] phi() to:initEntry::@1 initEntry::@1: scope:[initEntry] from initEntry::entryBufDisk1 - [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 - [77] *((byte**)initEntry::entry#10) = initEntry::$1 + [76] initEntry::$1 = $1111 + initEntry::n#10 + [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 to:initEntry::entryBufEdit1 initEntry::entryBufEdit1: scope:[initEntry] from initEntry::@1 [78] phi() to:initEntry::@2 initEntry::@2: scope:[initEntry] from initEntry::entryBufEdit1 - [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 - [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 + [79] initEntry::$3 = $2222 + initEntry::n#10 + [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 to:initEntry::entryTsLen1 initEntry::entryTsLen1: scope:[initEntry] from initEntry::@2 [81] phi() @@ -3935,410 +3940,409 @@ initEntry::entryTsOrder1: scope:[initEntry] from initEntry::@3 [84] phi() to:initEntry::@4 initEntry::@4: scope:[initEntry] from initEntry::entryTsOrder1 - [85] initEntry::$26 = initEntry::n#10 << 1 - [86] initEntry::$7 = (word*) 17476 + initEntry::$26 - [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 + [85] initEntry::$7 = $4444 + initEntry::n#10 + [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 to:initEntry::entryTLastLink1 initEntry::entryTLastLink1: scope:[initEntry] from initEntry::@4 - [88] phi() + [87] phi() to:initEntry::@5 initEntry::@5: scope:[initEntry] from initEntry::entryTLastLink1 - [89] initEntry::$9 = $55 + initEntry::n#10 - [90] initEntry::entry#10[8] = initEntry::$9 + [88] initEntry::$9 = $55 + initEntry::n#10 + [89] initEntry::entry#10[8] = initEntry::$9 to:initEntry::entrySLastLink1 initEntry::entrySLastLink1: scope:[initEntry] from initEntry::@5 - [91] phi() + [90] phi() to:initEntry::@6 initEntry::@6: scope:[initEntry] from initEntry::entrySLastLink1 - [92] initEntry::$11 = $66 + initEntry::n#10 - [93] initEntry::entry#10[9] = initEntry::$11 + [91] initEntry::$11 = $66 + initEntry::n#10 + [92] initEntry::entry#10[9] = initEntry::$11 to:initEntry::entryBFlag1 initEntry::entryBFlag1: scope:[initEntry] from initEntry::@6 - [94] phi() + [93] phi() to:initEntry::@7 initEntry::@7: scope:[initEntry] from initEntry::entryBFlag1 - [95] initEntry::$13 = $77 + initEntry::n#10 - [96] initEntry::entry#10[$a] = initEntry::$13 + [94] initEntry::$13 = $77 + initEntry::n#10 + [95] initEntry::entry#10[$a] = initEntry::$13 to:initEntry::entryBError1 initEntry::entryBError1: scope:[initEntry] from initEntry::@7 - [97] phi() + [96] phi() to:initEntry::@8 initEntry::@8: scope:[initEntry] from initEntry::entryBError1 - [98] initEntry::$15 = $88 + initEntry::n#10 - [99] initEntry::entry#10[$b] = initEntry::$15 + [97] initEntry::$15 = $88 + initEntry::n#10 + [98] initEntry::entry#10[$b] = initEntry::$15 to:initEntry::entryUCross1 initEntry::entryUCross1: scope:[initEntry] from initEntry::@8 - [100] phi() + [99] phi() to:initEntry::@9 initEntry::@9: scope:[initEntry] from initEntry::entryUCross1 - [101] initEntry::$17 = $9999 + initEntry::n#10 - [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 + [100] initEntry::$17 = $9999 + initEntry::n#10 + [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 to:initEntry::entryBAddrLo1 initEntry::entryBAddrLo1: scope:[initEntry] from initEntry::@9 - [103] phi() + [102] phi() to:initEntry::@10 initEntry::@10: scope:[initEntry] from initEntry::entryBAddrLo1 - [104] initEntry::$19 = $aa + initEntry::n#10 - [105] initEntry::entry#10[$e] = initEntry::$19 + [103] initEntry::$19 = $aa + initEntry::n#10 + [104] initEntry::entry#10[$e] = initEntry::$19 to:initEntry::entryBAddrHi1 initEntry::entryBAddrHi1: scope:[initEntry] from initEntry::@10 - [106] phi() + [105] phi() to:initEntry::@11 initEntry::@11: scope:[initEntry] from initEntry::entryBAddrHi1 - [107] initEntry::$21 = $bb + initEntry::n#10 - [108] initEntry::entry#10[$f] = initEntry::$21 + [106] initEntry::$21 = $bb + initEntry::n#10 + [107] initEntry::entry#10[$f] = initEntry::$21 to:initEntry::entryTHi1 initEntry::entryTHi1: scope:[initEntry] from initEntry::@11 - [109] phi() + [108] phi() to:initEntry::@12 initEntry::@12: scope:[initEntry] from initEntry::entryTHi1 - [110] initEntry::$23 = $cc + initEntry::n#10 - [111] initEntry::entry#10[$10] = initEntry::$23 + [109] initEntry::$23 = $cc + initEntry::n#10 + [110] initEntry::entry#10[$10] = initEntry::$23 to:initEntry::entryTLo1 initEntry::entryTLo1: scope:[initEntry] from initEntry::@12 - [112] phi() + [111] phi() to:initEntry::@13 initEntry::@13: scope:[initEntry] from initEntry::entryTLo1 - [113] initEntry::$25 = $dd + initEntry::n#10 - [114] initEntry::entry#10[$11] = initEntry::$25 + [112] initEntry::$25 = $dd + initEntry::n#10 + [113] initEntry::entry#10[$11] = initEntry::$25 to:initEntry::@return initEntry::@return: scope:[initEntry] from initEntry::@13 - [115] return + [114] return to:@return void print_cls() print_cls: scope:[print_cls] from main::@2 main::@4 main::@9 - [116] phi() - [117] call memset + [115] phi() + [116] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls - [118] return + [117] return to:@return void print_str(byte* print_str::str) print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37 - [119] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) - [119] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) + [118] print_char_cursor#167 = phi( main::@10/print_screen#0, main::@15/print_char_cursor#209, main::@17/print_screen#0, main::@22/print_char_cursor#210, printEntry/print_char_cursor#211, printEntry::@15/print_char_cursor#212, printEntry::@17/print_char_cursor#213, printEntry::@19/print_char_cursor#214, printEntry::@21/print_char_cursor#215, printEntry::@23/print_char_cursor#216, printEntry::@25/print_char_cursor#217, printEntry::@27/print_char_cursor#218, printEntry::@29/print_char_cursor#219, printEntry::@31/print_char_cursor#220, printEntry::@33/print_char_cursor#221, printEntry::@35/print_char_cursor#222, printEntry::@37/print_char_cursor#223 ) + [118] print_str::str#21 = phi( main::@10/main::str, main::@15/main::str1, main::@17/main::str2, main::@22/main::str1, printEntry/printEntry::str, printEntry::@15/printEntry::str1, printEntry::@17/printEntry::str2, printEntry::@19/printEntry::str3, printEntry::@21/printEntry::str4, printEntry::@23/printEntry::str5, printEntry::@25/printEntry::str6, printEntry::@27/printEntry::str7, printEntry::@29/printEntry::str8, printEntry::@31/printEntry::str9, printEntry::@33/printEntry::str10, printEntry::@35/printEntry::str11, printEntry::@37/printEntry::str12 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@3 - [120] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) - [120] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) - [121] if(0!=*print_str::str#18) goto print_str::@2 + [119] print_char_cursor#1 = phi( print_str/print_char_cursor#167, print_str::@3/print_char_cursor#10 ) + [119] print_str::str#18 = phi( print_str/print_str::str#21, print_str::@3/print_str::str#0 ) + [120] if(0!=*print_str::str#18) goto print_str::@2 to:print_str::@return print_str::@return: scope:[print_str] from print_str::@1 - [122] return + [121] return to:@return print_str::@2: scope:[print_str] from print_str::@1 - [123] print_char::ch#0 = *print_str::str#18 - [124] call print_char + [122] print_char::ch#0 = *print_str::str#18 + [123] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 - [125] print_str::str#0 = ++ print_str::str#18 + [124] print_str::str#0 = ++ print_str::str#18 to:print_str::@1 void print_ln() print_ln: scope:[print_ln] from main::@11 main::@12 main::@14 main::@18 main::@19 main::@21 printEntry::@14 printEntry::@16 printEntry::@18 printEntry::@20 printEntry::@22 printEntry::@24 printEntry::@26 printEntry::@28 printEntry::@30 printEntry::@32 printEntry::@34 printEntry::@36 printEntry::@38 - [126] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) - [126] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) + [125] print_char_cursor#146 = phi( main::@11/print_char_cursor#1, main::@12/print_char_cursor#227, main::@14/print_char_cursor#228, main::@18/print_char_cursor#1, main::@19/print_char_cursor#230, main::@21/print_char_cursor#231, printEntry::@14/print_char_cursor#10, printEntry::@16/print_char_cursor#10, printEntry::@18/print_char_cursor#10, printEntry::@20/print_char_cursor#10, printEntry::@22/print_char_cursor#10, printEntry::@24/print_char_cursor#10, printEntry::@26/print_char_cursor#10, printEntry::@28/print_char_cursor#10, printEntry::@30/print_char_cursor#10, printEntry::@32/print_char_cursor#10, printEntry::@34/print_char_cursor#10, printEntry::@36/print_char_cursor#10, printEntry::@38/print_char_cursor#10 ) + [125] print_line_cursor#65 = phi( main::@11/print_screen#0, main::@12/print_line_cursor#155, main::@14/print_line_cursor#156, main::@18/print_screen#0, main::@19/print_line_cursor#157, main::@21/print_line_cursor#158, printEntry::@14/print_line_cursor#159, printEntry::@16/print_line_cursor#160, printEntry::@18/print_line_cursor#161, printEntry::@20/print_line_cursor#162, printEntry::@22/print_line_cursor#163, printEntry::@24/print_line_cursor#164, printEntry::@26/print_line_cursor#165, printEntry::@28/print_line_cursor#166, printEntry::@30/print_line_cursor#167, printEntry::@32/print_line_cursor#168, printEntry::@34/print_line_cursor#169, printEntry::@36/print_line_cursor#170, printEntry::@38/print_line_cursor#171 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@2 - [127] print_line_cursor#33 = phi( print_ln/print_line_cursor#65, print_ln::@2/print_line_cursor#173 ) - [128] print_line_cursor#0 = print_line_cursor#33 + $28 - [129] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 + [126] print_line_cursor#33 = phi( print_ln/print_line_cursor#65, print_ln::@2/print_line_cursor#173 ) + [127] print_line_cursor#0 = print_line_cursor#33 + $28 + [128] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 - [130] return + [129] return to:@return print_ln::@2: scope:[print_ln] from print_ln::@1 - [131] print_line_cursor#173 = print_line_cursor#0 + [130] print_line_cursor#173 = print_line_cursor#0 to:print_ln::@1 void printEntry(byte* printEntry::entry) printEntry: scope:[printEntry] from main::@13 main::@20 - [132] printEntry::entry#10 = phi( main::@13/printEntry::entry#0, main::@20/printEntry::entry#1 ) - [133] print_char_cursor#211 = print_line_cursor#0 - [134] call print_str + [131] printEntry::entry#10 = phi( main::@13/printEntry::entry#0, main::@20/printEntry::entry#1 ) + [132] print_char_cursor#211 = print_line_cursor#0 + [133] call print_str to:printEntry::entryBufDisk1 printEntry::entryBufDisk1: scope:[printEntry] from printEntry - [135] phi() + [134] phi() to:printEntry::@1 printEntry::@1: scope:[printEntry] from printEntry::entryBufDisk1 - [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) - [137] call print_uint + [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) + [136] call print_uint to:printEntry::@14 printEntry::@14: scope:[printEntry] from printEntry::@1 - [138] print_line_cursor#159 = print_line_cursor#0 - [139] call print_ln + [137] print_line_cursor#159 = print_line_cursor#0 + [138] call print_ln to:printEntry::@15 printEntry::@15: scope:[printEntry] from printEntry::@14 - [140] print_char_cursor#212 = print_line_cursor#0 - [141] call print_str + [139] print_char_cursor#212 = print_line_cursor#0 + [140] call print_str to:printEntry::entryBufEdit1 printEntry::entryBufEdit1: scope:[printEntry] from printEntry::@15 - [142] phi() + [141] phi() to:printEntry::@2 printEntry::@2: scope:[printEntry] from printEntry::entryBufEdit1 - [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] - [144] call print_uint + [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] + [143] call print_uint to:printEntry::@16 printEntry::@16: scope:[printEntry] from printEntry::@2 - [145] print_line_cursor#160 = print_line_cursor#0 - [146] call print_ln + [144] print_line_cursor#160 = print_line_cursor#0 + [145] call print_ln to:printEntry::@17 printEntry::@17: scope:[printEntry] from printEntry::@16 - [147] print_char_cursor#213 = print_line_cursor#0 - [148] call print_str + [146] print_char_cursor#213 = print_line_cursor#0 + [147] call print_str to:printEntry::entryTsLen1 printEntry::entryTsLen1: scope:[printEntry] from printEntry::@17 - [149] phi() + [148] phi() to:printEntry::@3 printEntry::@3: scope:[printEntry] from printEntry::entryTsLen1 - [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] - [151] call print_uint + [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] + [150] call print_uint to:printEntry::@18 printEntry::@18: scope:[printEntry] from printEntry::@3 - [152] print_line_cursor#161 = print_line_cursor#0 - [153] call print_ln + [151] print_line_cursor#161 = print_line_cursor#0 + [152] call print_ln to:printEntry::@19 printEntry::@19: scope:[printEntry] from printEntry::@18 - [154] print_char_cursor#214 = print_line_cursor#0 - [155] call print_str + [153] print_char_cursor#214 = print_line_cursor#0 + [154] call print_str to:printEntry::entryTsOrder1 printEntry::entryTsOrder1: scope:[printEntry] from printEntry::@19 - [156] phi() + [155] phi() to:printEntry::@4 printEntry::@4: scope:[printEntry] from printEntry::entryTsOrder1 - [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] - [158] call print_uint + [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] + [157] call print_uint to:printEntry::@20 printEntry::@20: scope:[printEntry] from printEntry::@4 - [159] print_line_cursor#162 = print_line_cursor#0 - [160] call print_ln + [158] print_line_cursor#162 = print_line_cursor#0 + [159] call print_ln to:printEntry::@21 printEntry::@21: scope:[printEntry] from printEntry::@20 - [161] print_char_cursor#215 = print_line_cursor#0 - [162] call print_str + [160] print_char_cursor#215 = print_line_cursor#0 + [161] call print_str to:printEntry::entryTLastLink1 printEntry::entryTLastLink1: scope:[printEntry] from printEntry::@21 - [163] phi() + [162] phi() to:printEntry::@5 printEntry::@5: scope:[printEntry] from printEntry::entryTLastLink1 - [164] print_uchar::b#2 = printEntry::entry#10[8] - [165] call print_uchar + [163] print_uchar::b#2 = printEntry::entry#10[8] + [164] call print_uchar to:printEntry::@22 printEntry::@22: scope:[printEntry] from printEntry::@5 - [166] print_line_cursor#163 = print_line_cursor#0 - [167] call print_ln + [165] print_line_cursor#163 = print_line_cursor#0 + [166] call print_ln to:printEntry::@23 printEntry::@23: scope:[printEntry] from printEntry::@22 - [168] print_char_cursor#216 = print_line_cursor#0 - [169] call print_str + [167] print_char_cursor#216 = print_line_cursor#0 + [168] call print_str to:printEntry::entrySLastLink1 printEntry::entrySLastLink1: scope:[printEntry] from printEntry::@23 - [170] phi() + [169] phi() to:printEntry::@6 printEntry::@6: scope:[printEntry] from printEntry::entrySLastLink1 - [171] print_uchar::b#3 = printEntry::entry#10[9] - [172] call print_uchar + [170] print_uchar::b#3 = printEntry::entry#10[9] + [171] call print_uchar to:printEntry::@24 printEntry::@24: scope:[printEntry] from printEntry::@6 - [173] print_line_cursor#164 = print_line_cursor#0 - [174] call print_ln + [172] print_line_cursor#164 = print_line_cursor#0 + [173] call print_ln to:printEntry::@25 printEntry::@25: scope:[printEntry] from printEntry::@24 - [175] print_char_cursor#217 = print_line_cursor#0 - [176] call print_str + [174] print_char_cursor#217 = print_line_cursor#0 + [175] call print_str to:printEntry::entryBFlag1 printEntry::entryBFlag1: scope:[printEntry] from printEntry::@25 - [177] phi() + [176] phi() to:printEntry::@7 printEntry::@7: scope:[printEntry] from printEntry::entryBFlag1 - [178] print_uchar::b#4 = printEntry::entry#10[$a] - [179] call print_uchar + [177] print_uchar::b#4 = printEntry::entry#10[$a] + [178] call print_uchar to:printEntry::@26 printEntry::@26: scope:[printEntry] from printEntry::@7 - [180] print_line_cursor#165 = print_line_cursor#0 - [181] call print_ln + [179] print_line_cursor#165 = print_line_cursor#0 + [180] call print_ln to:printEntry::@27 printEntry::@27: scope:[printEntry] from printEntry::@26 - [182] print_char_cursor#218 = print_line_cursor#0 - [183] call print_str + [181] print_char_cursor#218 = print_line_cursor#0 + [182] call print_str to:printEntry::entryBError1 printEntry::entryBError1: scope:[printEntry] from printEntry::@27 - [184] phi() + [183] phi() to:printEntry::@8 printEntry::@8: scope:[printEntry] from printEntry::entryBError1 - [185] print_uchar::b#5 = printEntry::entry#10[$b] - [186] call print_uchar + [184] print_uchar::b#5 = printEntry::entry#10[$b] + [185] call print_uchar to:printEntry::@28 printEntry::@28: scope:[printEntry] from printEntry::@8 - [187] print_line_cursor#166 = print_line_cursor#0 - [188] call print_ln + [186] print_line_cursor#166 = print_line_cursor#0 + [187] call print_ln to:printEntry::@29 printEntry::@29: scope:[printEntry] from printEntry::@28 - [189] print_char_cursor#219 = print_line_cursor#0 - [190] call print_str + [188] print_char_cursor#219 = print_line_cursor#0 + [189] call print_str to:printEntry::entryUCross1 printEntry::entryUCross1: scope:[printEntry] from printEntry::@29 - [191] phi() + [190] phi() to:printEntry::@9 printEntry::@9: scope:[printEntry] from printEntry::entryUCross1 - [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] - [193] call print_uint + [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] + [192] call print_uint to:printEntry::@30 printEntry::@30: scope:[printEntry] from printEntry::@9 - [194] print_line_cursor#167 = print_line_cursor#0 - [195] call print_ln + [193] print_line_cursor#167 = print_line_cursor#0 + [194] call print_ln to:printEntry::@31 printEntry::@31: scope:[printEntry] from printEntry::@30 - [196] print_char_cursor#220 = print_line_cursor#0 - [197] call print_str + [195] print_char_cursor#220 = print_line_cursor#0 + [196] call print_str to:printEntry::entryBAddrLo1 printEntry::entryBAddrLo1: scope:[printEntry] from printEntry::@31 - [198] phi() + [197] phi() to:printEntry::@10 printEntry::@10: scope:[printEntry] from printEntry::entryBAddrLo1 - [199] print_uchar::b#6 = printEntry::entry#10[$e] - [200] call print_uchar + [198] print_uchar::b#6 = printEntry::entry#10[$e] + [199] call print_uchar to:printEntry::@32 printEntry::@32: scope:[printEntry] from printEntry::@10 - [201] print_line_cursor#168 = print_line_cursor#0 - [202] call print_ln + [200] print_line_cursor#168 = print_line_cursor#0 + [201] call print_ln to:printEntry::@33 printEntry::@33: scope:[printEntry] from printEntry::@32 - [203] print_char_cursor#221 = print_line_cursor#0 - [204] call print_str + [202] print_char_cursor#221 = print_line_cursor#0 + [203] call print_str to:printEntry::entryBAddrHi1 printEntry::entryBAddrHi1: scope:[printEntry] from printEntry::@33 - [205] phi() + [204] phi() to:printEntry::@11 printEntry::@11: scope:[printEntry] from printEntry::entryBAddrHi1 - [206] print_uchar::b#7 = printEntry::entry#10[$f] - [207] call print_uchar + [205] print_uchar::b#7 = printEntry::entry#10[$f] + [206] call print_uchar to:printEntry::@34 printEntry::@34: scope:[printEntry] from printEntry::@11 - [208] print_line_cursor#169 = print_line_cursor#0 - [209] call print_ln + [207] print_line_cursor#169 = print_line_cursor#0 + [208] call print_ln to:printEntry::@35 printEntry::@35: scope:[printEntry] from printEntry::@34 - [210] print_char_cursor#222 = print_line_cursor#0 - [211] call print_str + [209] print_char_cursor#222 = print_line_cursor#0 + [210] call print_str to:printEntry::entryTHi1 printEntry::entryTHi1: scope:[printEntry] from printEntry::@35 - [212] phi() + [211] phi() to:printEntry::@12 printEntry::@12: scope:[printEntry] from printEntry::entryTHi1 - [213] print_uchar::b#8 = printEntry::entry#10[$10] - [214] call print_uchar + [212] print_uchar::b#8 = printEntry::entry#10[$10] + [213] call print_uchar to:printEntry::@36 printEntry::@36: scope:[printEntry] from printEntry::@12 - [215] print_line_cursor#170 = print_line_cursor#0 - [216] call print_ln + [214] print_line_cursor#170 = print_line_cursor#0 + [215] call print_ln to:printEntry::@37 printEntry::@37: scope:[printEntry] from printEntry::@36 - [217] print_char_cursor#223 = print_line_cursor#0 - [218] call print_str + [216] print_char_cursor#223 = print_line_cursor#0 + [217] call print_str to:printEntry::entryTLo1 printEntry::entryTLo1: scope:[printEntry] from printEntry::@37 - [219] phi() + [218] phi() to:printEntry::@13 printEntry::@13: scope:[printEntry] from printEntry::entryTLo1 - [220] print_uchar::b#9 = printEntry::entry#10[$11] - [221] call print_uchar + [219] print_uchar::b#9 = printEntry::entry#10[$11] + [220] call print_uchar to:printEntry::@38 printEntry::@38: scope:[printEntry] from printEntry::@13 - [222] print_line_cursor#171 = print_line_cursor#0 - [223] call print_ln + [221] print_line_cursor#171 = print_line_cursor#0 + [222] call print_ln to:printEntry::@return printEntry::@return: scope:[printEntry] from printEntry::@38 - [224] return + [223] return to:@return byte keyboard_key_pressed(byte keyboard_key_pressed::key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@1 main::@3 - [225] phi() - [226] call keyboard_matrix_read - [227] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 + [224] phi() + [225] call keyboard_matrix_read + [226] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed - [228] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 - [229] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) + [227] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 + [228] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@1 - [230] return + [229] return to:@return void* memset(void* memset::str , byte memset::c , word memset::num) memset: scope:[memset] from print_cls - [231] phi() + [230] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [232] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) - [233] if(memset::dst#2!=memset::end#0) goto memset::@2 + [231] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [232] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 - [234] return + [233] return to:@return memset::@2: scope:[memset] from memset::@1 - [235] *memset::dst#2 = memset::c#0 - [236] memset::dst#1 = ++ memset::dst#2 + [234] *memset::dst#2 = memset::c#0 + [235] memset::dst#1 = ++ memset::dst#2 to:memset::@1 void print_char(byte print_char::ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 - [237] print_char_cursor#83 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#148, print_uchar::@1/print_char_cursor#10 ) - [237] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) - [238] *print_char_cursor#83 = print_char::ch#3 - [239] print_char_cursor#10 = ++ print_char_cursor#83 + [236] print_char_cursor#83 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#148, print_uchar::@1/print_char_cursor#10 ) + [236] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) + [237] *print_char_cursor#83 = print_char::ch#3 + [238] print_char_cursor#10 = ++ print_char_cursor#83 to:print_char::@return print_char::@return: scope:[print_char] from print_char - [240] return + [239] return to:@return void print_uint(word print_uint::w) print_uint: scope:[print_uint] from printEntry::@1 printEntry::@2 printEntry::@3 printEntry::@4 printEntry::@9 - [241] print_uint::w#5 = phi( printEntry::@1/print_uint::w#7, printEntry::@2/print_uint::w#8, printEntry::@3/print_uint::w#2, printEntry::@4/print_uint::w#10, printEntry::@9/print_uint::w#4 ) - [242] print_uchar::b#0 = > print_uint::w#5 - [243] call print_uchar + [240] print_uint::w#5 = phi( printEntry::@1/print_uint::w#7, printEntry::@2/print_uint::w#8, printEntry::@3/print_uint::w#2, printEntry::@4/print_uint::w#10, printEntry::@9/print_uint::w#4 ) + [241] print_uchar::b#0 = > print_uint::w#5 + [242] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint - [244] print_uchar::b#1 = < print_uint::w#5 - [245] call print_uchar + [243] print_uchar::b#1 = < print_uint::w#5 + [244] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 - [246] return + [245] return to:@return void print_uchar(byte print_uchar::b) print_uchar: scope:[print_uchar] from printEntry::@10 printEntry::@11 printEntry::@12 printEntry::@13 printEntry::@5 printEntry::@6 printEntry::@7 printEntry::@8 print_uint print_uint::@1 - [247] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) - [247] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) - [248] print_uchar::$0 = print_uchar::b#10 >> 4 - [249] print_char::ch#1 = print_hextab[print_uchar::$0] - [250] call print_char + [246] print_char_cursor#148 = phi( printEntry::@10/print_char_cursor#1, printEntry::@11/print_char_cursor#1, printEntry::@12/print_char_cursor#1, printEntry::@13/print_char_cursor#1, printEntry::@5/print_char_cursor#1, printEntry::@6/print_char_cursor#1, printEntry::@7/print_char_cursor#1, printEntry::@8/print_char_cursor#1, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) + [246] print_uchar::b#10 = phi( printEntry::@10/print_uchar::b#6, printEntry::@11/print_uchar::b#7, printEntry::@12/print_uchar::b#8, printEntry::@13/print_uchar::b#9, printEntry::@5/print_uchar::b#2, printEntry::@6/print_uchar::b#3, printEntry::@7/print_uchar::b#4, printEntry::@8/print_uchar::b#5, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) + [247] print_uchar::$0 = print_uchar::b#10 >> 4 + [248] print_char::ch#1 = print_hextab[print_uchar::$0] + [249] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar - [251] print_uchar::$2 = print_uchar::b#10 & $f - [252] print_char::ch#2 = print_hextab[print_uchar::$2] - [253] call print_char + [250] print_uchar::$2 = print_uchar::b#10 & $f + [251] print_char::ch#2 = print_hextab[print_uchar::$2] + [252] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 - [254] return + [253] return to:@return byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) - [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) + [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [257] return + [256] return to:@return VARIABLE REGISTER WEIGHTS void initEntry(byte* initEntry::entry , byte initEntry::n) -byte*~ initEntry::$1 22.0 +word~ initEntry::$1 11.0 byte~ initEntry::$11 22.0 byte~ initEntry::$13 22.0 byte~ initEntry::$15 22.0 @@ -4347,15 +4351,14 @@ byte~ initEntry::$19 22.0 byte~ initEntry::$21 22.0 byte~ initEntry::$23 22.0 byte~ initEntry::$25 22.0 -byte~ initEntry::$26 22.0 -byte*~ initEntry::$3 22.0 +word~ initEntry::$3 11.0 word~ initEntry::$5 22.0 -word*~ initEntry::$7 22.0 +word~ initEntry::$7 11.0 byte~ initEntry::$9 22.0 byte* initEntry::entry byte* initEntry::entry#0 4.0 byte* initEntry::entry#1 4.0 -byte* initEntry::entry#10 2.3 +byte* initEntry::entry#10 2.3589743589743586 byte* initEntry::entryBAddrHi1_entry byte* initEntry::entryBAddrHi1_return byte* initEntry::entryBAddrLo1_entry @@ -4383,7 +4386,7 @@ word** initEntry::entryTsOrder1_return byte* initEntry::entryUCross1_entry word* initEntry::entryUCross1_return byte initEntry::n -byte initEntry::n#10 3.6666666666666656 +byte initEntry::n#10 3.7631578947368434 void keyboard_init() byte keyboard_key_pressed(byte keyboard_key_pressed::key) byte~ keyboard_key_pressed::$2 202.0 @@ -4584,7 +4587,6 @@ Added variable mul8u::$1 to live range equivalence class [ mul8u::$1 ] Added variable initEntry::$1 to live range equivalence class [ initEntry::$1 ] Added variable initEntry::$3 to live range equivalence class [ initEntry::$3 ] Added variable initEntry::$5 to live range equivalence class [ initEntry::$5 ] -Added variable initEntry::$26 to live range equivalence class [ initEntry::$26 ] Added variable initEntry::$7 to live range equivalence class [ initEntry::$7 ] Added variable initEntry::$9 to live range equivalence class [ initEntry::$9 ] Added variable initEntry::$11 to live range equivalence class [ initEntry::$11 ] @@ -4630,7 +4632,6 @@ Complete equivalence classes [ initEntry::$1 ] [ initEntry::$3 ] [ initEntry::$5 ] -[ initEntry::$26 ] [ initEntry::$7 ] [ initEntry::$9 ] [ initEntry::$11 ] @@ -4675,24 +4676,23 @@ Allocated zp[1]:40 [ mul8u::$1 ] Allocated zp[2]:41 [ initEntry::$1 ] Allocated zp[2]:43 [ initEntry::$3 ] Allocated zp[2]:45 [ initEntry::$5 ] -Allocated zp[1]:47 [ initEntry::$26 ] -Allocated zp[2]:48 [ initEntry::$7 ] -Allocated zp[1]:50 [ initEntry::$9 ] -Allocated zp[1]:51 [ initEntry::$11 ] -Allocated zp[1]:52 [ initEntry::$13 ] -Allocated zp[1]:53 [ initEntry::$15 ] -Allocated zp[2]:54 [ initEntry::$17 ] -Allocated zp[1]:56 [ initEntry::$19 ] -Allocated zp[1]:57 [ initEntry::$21 ] -Allocated zp[1]:58 [ initEntry::$23 ] -Allocated zp[1]:59 [ initEntry::$25 ] -Allocated zp[2]:60 [ print_line_cursor#0 ] -Allocated zp[1]:62 [ keyboard_matrix_read::return#2 ] -Allocated zp[1]:63 [ keyboard_key_pressed::$2 ] -Allocated zp[1]:64 [ keyboard_key_pressed::return#0 ] -Allocated zp[1]:65 [ print_uchar::$0 ] -Allocated zp[1]:66 [ print_uchar::$2 ] -Allocated zp[1]:67 [ keyboard_matrix_read::return#0 ] +Allocated zp[2]:47 [ initEntry::$7 ] +Allocated zp[1]:49 [ initEntry::$9 ] +Allocated zp[1]:50 [ initEntry::$11 ] +Allocated zp[1]:51 [ initEntry::$13 ] +Allocated zp[1]:52 [ initEntry::$15 ] +Allocated zp[2]:53 [ initEntry::$17 ] +Allocated zp[1]:55 [ initEntry::$19 ] +Allocated zp[1]:56 [ initEntry::$21 ] +Allocated zp[1]:57 [ initEntry::$23 ] +Allocated zp[1]:58 [ initEntry::$25 ] +Allocated zp[2]:59 [ print_line_cursor#0 ] +Allocated zp[1]:61 [ keyboard_matrix_read::return#2 ] +Allocated zp[1]:62 [ keyboard_key_pressed::$2 ] +Allocated zp[1]:63 [ keyboard_key_pressed::return#0 ] +Allocated zp[1]:64 [ print_uchar::$0 ] +Allocated zp[1]:65 [ print_uchar::$2 ] +Allocated zp[1]:66 [ keyboard_matrix_read::return#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] mul8u::return#2 = mul8u::res#2 [ mul8u::return#2 ] ( [ mul8u::return#2 ] { { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [5] main::fileEntry1_$0 = mul8u::return#2 [ main::fileEntry1_$0 ] ( [ main::fileEntry1_$0 ] { } ) always clobbers reg byte a @@ -4718,88 +4718,87 @@ Statement [61] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( k Statement [62] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a Statement [70] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u:3 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::entry1#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] -Statement [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [76] initEntry::$1 = $1111 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ initEntry::n#10 ] -Statement [77] *((byte**)initEntry::entry#10) = initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:9 [ initEntry::n#10 ] -Statement [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [79] initEntry::$3 = $2222 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y Statement [82] initEntry::$5 = $3333 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$5 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a Statement [83] ((word*)initEntry::entry#10)[4] = initEntry::$5 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [85] initEntry::$26 = initEntry::n#10 << 1 [ initEntry::entry#10 initEntry::n#10 initEntry::$26 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$26 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$26 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [86] initEntry::$7 = (word*) 17476 + initEntry::$26 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [89] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [90] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [92] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [93] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [95] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [96] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [98] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [99] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [101] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [104] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [105] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [107] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [108] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [110] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [111] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [113] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [114] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [121] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:134 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:134 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:141 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:141 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:148 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:148 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:155 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:155 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:162 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:162 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:169 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:169 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:176 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:176 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:183 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:183 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:190 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:190 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:197 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:197 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:204 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:204 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:211 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:211 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:218 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:218 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y -Statement [123] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:134 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:134 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:141 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:141 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:148 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:148 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:155 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:155 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:162 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:162 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:169 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:169 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:176 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:176 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:183 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:183 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:190 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:190 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:197 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:197 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:204 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:204 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:211 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:211 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:218 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:218 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y -Statement [128] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [129] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [131] print_line_cursor#173 = print_line_cursor#0 [ print_char_cursor#146 print_line_cursor#173 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [133] print_char_cursor#211 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } ) always clobbers reg byte a -Statement [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } } ) always clobbers reg byte a reg byte y -Statement [138] print_line_cursor#159 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [140] print_char_cursor#212 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } ) always clobbers reg byte a -Statement [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } } ) always clobbers reg byte a reg byte y -Statement [145] print_line_cursor#160 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [147] print_char_cursor#213 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } ) always clobbers reg byte a -Statement [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y -Statement [152] print_line_cursor#161 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [154] print_char_cursor#214 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } ) always clobbers reg byte a -Statement [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y -Statement [159] print_line_cursor#162 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [161] print_char_cursor#215 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } ) always clobbers reg byte a -Statement [164] print_uchar::b#2 = printEntry::entry#10[8] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [166] print_line_cursor#163 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [168] print_char_cursor#216 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } ) always clobbers reg byte a -Statement [171] print_uchar::b#3 = printEntry::entry#10[9] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [173] print_line_cursor#164 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [175] print_char_cursor#217 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } ) always clobbers reg byte a -Statement [178] print_uchar::b#4 = printEntry::entry#10[$a] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [180] print_line_cursor#165 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [182] print_char_cursor#218 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } ) always clobbers reg byte a -Statement [185] print_uchar::b#5 = printEntry::entry#10[$b] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [187] print_line_cursor#166 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [189] print_char_cursor#219 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } ) always clobbers reg byte a -Statement [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y -Statement [194] print_line_cursor#167 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [196] print_char_cursor#220 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } ) always clobbers reg byte a -Statement [199] print_uchar::b#6 = printEntry::entry#10[$e] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [201] print_line_cursor#168 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [203] print_char_cursor#221 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } ) always clobbers reg byte a -Statement [206] print_uchar::b#7 = printEntry::entry#10[$f] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [208] print_line_cursor#169 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [210] print_char_cursor#222 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } ) always clobbers reg byte a -Statement [213] print_uchar::b#8 = printEntry::entry#10[$10] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [215] print_line_cursor#170 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [217] print_char_cursor#223 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a -Statement [220] print_uchar::b#9 = printEntry::entry#10[$11] [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [222] print_line_cursor#171 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#171 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [233] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:17::memset:117 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:117 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:117 [ memset::dst#2 ] { } ) always clobbers reg byte a -Statement [235] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:17::memset:117 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:117 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:117 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [238] *print_char_cursor#83 = print_char::ch#3 [ print_char_cursor#83 ] ( print_str:19::print_char:124 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31::print_char:124 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40::print_char:124 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52::print_char:124 [ print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:134::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:134::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:141::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:141::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:148::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:148::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:155::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:155::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:162::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:162::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:169::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:169::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:176::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:176::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:183::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:183::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:190::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:190::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:197::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:197::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:204::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:204::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:211::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:211::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:218::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:218::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_uchar:165::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:165::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:172::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:172::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:179::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:179::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:186::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:186::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:200::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:200::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:207::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:207::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:214::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:214::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:221::print_char:250 [ main::entry2#0 print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:221::print_char:250 [ print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:165::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:165::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:172::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:172::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:179::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:179::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:186::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:186::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:200::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:200::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:207::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:207::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:214::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:214::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:221::print_char:253 [ main::entry2#0 print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:221::print_char:253 [ print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:137::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:144::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:144::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:151::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:151::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:158::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:158::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:193::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:193::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte y +Statement [85] initEntry::$7 = $4444 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [88] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [89] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [91] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [92] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [94] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [95] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [97] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [98] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [100] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [103] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [104] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [106] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [107] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [109] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [110] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [112] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [113] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [120] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y +Statement [122] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y +Statement [127] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [128] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [130] print_line_cursor#173 = print_line_cursor#0 [ print_char_cursor#146 print_line_cursor#173 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [132] print_char_cursor#211 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } ) always clobbers reg byte a +Statement [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } } ) always clobbers reg byte a reg byte y +Statement [137] print_line_cursor#159 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [139] print_char_cursor#212 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } ) always clobbers reg byte a +Statement [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } } ) always clobbers reg byte a reg byte y +Statement [144] print_line_cursor#160 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [146] print_char_cursor#213 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } ) always clobbers reg byte a +Statement [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y +Statement [151] print_line_cursor#161 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [153] print_char_cursor#214 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } ) always clobbers reg byte a +Statement [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y +Statement [158] print_line_cursor#162 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [160] print_char_cursor#215 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } ) always clobbers reg byte a +Statement [163] print_uchar::b#2 = printEntry::entry#10[8] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [165] print_line_cursor#163 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [167] print_char_cursor#216 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } ) always clobbers reg byte a +Statement [170] print_uchar::b#3 = printEntry::entry#10[9] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [172] print_line_cursor#164 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [174] print_char_cursor#217 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } ) always clobbers reg byte a +Statement [177] print_uchar::b#4 = printEntry::entry#10[$a] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [179] print_line_cursor#165 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [181] print_char_cursor#218 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } ) always clobbers reg byte a +Statement [184] print_uchar::b#5 = printEntry::entry#10[$b] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [186] print_line_cursor#166 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [188] print_char_cursor#219 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } ) always clobbers reg byte a +Statement [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y +Statement [193] print_line_cursor#167 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [195] print_char_cursor#220 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } ) always clobbers reg byte a +Statement [198] print_uchar::b#6 = printEntry::entry#10[$e] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [200] print_line_cursor#168 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [202] print_char_cursor#221 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } ) always clobbers reg byte a +Statement [205] print_uchar::b#7 = printEntry::entry#10[$f] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [207] print_line_cursor#169 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [209] print_char_cursor#222 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } ) always clobbers reg byte a +Statement [212] print_uchar::b#8 = printEntry::entry#10[$10] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [214] print_line_cursor#170 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [216] print_char_cursor#223 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a +Statement [219] print_uchar::b#9 = printEntry::entry#10[$11] [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [221] print_line_cursor#171 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#171 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [232] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:17::memset:116 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:116 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:116 [ memset::dst#2 ] { } ) always clobbers reg byte a +Statement [234] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:17::memset:116 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:116 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:116 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [237] *print_char_cursor#83 = print_char::ch#3 [ print_char_cursor#83 ] ( print_str:19::print_char:123 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31::print_char:123 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40::print_char:123 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52::print_char:123 [ print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:133::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:133::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:140::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:140::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:147::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:147::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:154::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:154::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:161::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:161::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:168::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:168::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:175::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:175::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:182::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:182::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:189::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:189::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:196::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:196::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:203::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:203::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:210::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:210::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:217::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:217::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_uchar:164::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:164::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:171::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:171::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:178::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:178::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:185::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:185::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:199::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:199::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:206::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:206::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:213::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:213::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:220::print_char:249 [ main::entry2#0 print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:220::print_char:249 [ print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:164::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:164::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:171::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:171::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:178::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:178::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:185::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:185::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:199::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:199::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:206::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:206::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:213::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:213::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:220::print_char:252 [ main::entry2#0 print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:220::print_char:252 [ print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:136::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:143::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:143::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:150::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:150::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:157::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:157::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:192::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:192::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] -Statement [248] print_uchar::$0 = print_uchar::b#10 >> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [247] print_uchar::$0 = print_uchar::b#10 >> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] -Statement [251] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a -Statement [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [250] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Statement [4] mul8u::return#2 = mul8u::res#2 [ mul8u::return#2 ] ( [ mul8u::return#2 ] { { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [5] main::fileEntry1_$0 = mul8u::return#2 [ main::fileEntry1_$0 ] ( [ main::fileEntry1_$0 ] { } ) always clobbers reg byte a Statement [6] main::entry1#0 = files + main::fileEntry1_$0 [ main::entry1#0 ] ( [ main::entry1#0 ] { } ) always clobbers reg byte a @@ -4824,84 +4823,83 @@ Statement [61] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( k Statement [62] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a Statement [68] mul8u::$1 = mul8u::a#3 & 1 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] ( mul8u:3 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::entry1#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Statement [70] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u:3 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::entry1#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a -Statement [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [77] *((byte**)initEntry::entry#10) = initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [76] initEntry::$1 = $1111 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$1 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$1 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [79] initEntry::$3 = $2222 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$3 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$3 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y Statement [82] initEntry::$5 = $3333 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$5 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$5 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a Statement [83] ((word*)initEntry::entry#10)[4] = initEntry::$5 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [85] initEntry::$26 = initEntry::n#10 << 1 [ initEntry::entry#10 initEntry::n#10 initEntry::$26 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$26 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$26 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [86] initEntry::$7 = (word*) 17476 + initEntry::$26 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [89] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [90] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [92] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [93] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [95] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [96] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [98] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [99] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [101] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y -Statement [104] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [105] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [107] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [108] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [110] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [111] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [113] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a -Statement [114] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y -Statement [121] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:134 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:134 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:141 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:141 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:148 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:148 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:155 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:155 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:162 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:162 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:169 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:169 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:176 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:176 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:183 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:183 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:190 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:190 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:197 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:197 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:204 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:204 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:211 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:211 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:218 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:218 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y -Statement [123] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:134 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:134 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:141 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:141 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:148 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:148 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:155 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:155 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:162 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:162 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:169 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:169 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:176 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:176 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:183 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:183 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:190 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:190 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:197 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:197 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:204 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:204 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:211 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:211 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:218 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:218 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y -Statement [128] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [129] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [131] print_line_cursor#173 = print_line_cursor#0 [ print_char_cursor#146 print_line_cursor#173 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:139 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:139 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:146 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:146 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:153 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:153 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:160 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:160 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:167 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:167 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:174 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:174 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:181 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:181 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:188 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:188 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:195 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:195 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:202 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:202 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:209 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:209 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:216 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:216 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:223 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:223 [ print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [133] print_char_cursor#211 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } ) always clobbers reg byte a -Statement [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } } ) always clobbers reg byte a reg byte y -Statement [138] print_line_cursor#159 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [140] print_char_cursor#212 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } ) always clobbers reg byte a -Statement [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } } ) always clobbers reg byte a reg byte y -Statement [145] print_line_cursor#160 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [147] print_char_cursor#213 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } ) always clobbers reg byte a -Statement [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y -Statement [152] print_line_cursor#161 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [154] print_char_cursor#214 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } ) always clobbers reg byte a -Statement [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y -Statement [159] print_line_cursor#162 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [161] print_char_cursor#215 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } ) always clobbers reg byte a -Statement [164] print_uchar::b#2 = printEntry::entry#10[8] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [166] print_line_cursor#163 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [168] print_char_cursor#216 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } ) always clobbers reg byte a -Statement [171] print_uchar::b#3 = printEntry::entry#10[9] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [173] print_line_cursor#164 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [175] print_char_cursor#217 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } ) always clobbers reg byte a -Statement [178] print_uchar::b#4 = printEntry::entry#10[$a] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [180] print_line_cursor#165 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [182] print_char_cursor#218 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } ) always clobbers reg byte a -Statement [185] print_uchar::b#5 = printEntry::entry#10[$b] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [187] print_line_cursor#166 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [189] print_char_cursor#219 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } ) always clobbers reg byte a -Statement [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y -Statement [194] print_line_cursor#167 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [196] print_char_cursor#220 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } ) always clobbers reg byte a -Statement [199] print_uchar::b#6 = printEntry::entry#10[$e] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [201] print_line_cursor#168 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [203] print_char_cursor#221 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } ) always clobbers reg byte a -Statement [206] print_uchar::b#7 = printEntry::entry#10[$f] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [208] print_line_cursor#169 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [210] print_char_cursor#222 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } ) always clobbers reg byte a -Statement [213] print_uchar::b#8 = printEntry::entry#10[$10] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [215] print_line_cursor#170 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [217] print_char_cursor#223 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a -Statement [220] print_uchar::b#9 = printEntry::entry#10[$11] [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y -Statement [222] print_line_cursor#171 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#171 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a -Statement [233] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:17::memset:117 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:117 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:117 [ memset::dst#2 ] { } ) always clobbers reg byte a -Statement [235] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:17::memset:117 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:117 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:117 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [238] *print_char_cursor#83 = print_char::ch#3 [ print_char_cursor#83 ] ( print_str:19::print_char:124 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31::print_char:124 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40::print_char:124 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52::print_char:124 [ print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:134::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:134::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:141::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:141::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:148::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:148::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:155::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:155::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:162::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:162::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:169::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:169::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:176::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:176::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:183::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:183::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:190::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:190::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:197::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:197::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:204::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:204::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:211::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:211::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:218::print_char:124 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:218::print_char:124 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_uchar:165::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:165::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:172::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:172::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:179::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:179::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:186::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:186::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:200::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:200::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:207::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:207::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:214::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:214::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:221::print_char:250 [ main::entry2#0 print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:221::print_char:250 [ print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:243::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:243::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245::print_char:250 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245::print_char:250 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:165::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:165::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:172::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:172::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:179::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:179::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:186::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:186::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:200::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:200::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:207::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:207::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:214::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:214::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:221::print_char:253 [ main::entry2#0 print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:221::print_char:253 [ print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:137::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:144::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:144::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:151::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:151::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:158::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:158::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:193::print_uchar:243::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:193::print_uchar:243::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245::print_char:253 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245::print_char:253 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte y -Statement [248] print_uchar::$0 = print_uchar::b#10 >> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a -Statement [251] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:165 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:165 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:172 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:172 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:179 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:179 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:186 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:186 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:200 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:200 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:207 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:207 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:214 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:214 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:221 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:221 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:137::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:144::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:144::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:151::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:151::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:158::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:158::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:193::print_uchar:243 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:193::print_uchar:243 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:137::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:137::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:144::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:144::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:151::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:151::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:158::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:158::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:193::print_uchar:245 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:193::print_uchar:245 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a -Statement [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:226 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:226 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [85] initEntry::$7 = $4444 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$7 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$7 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [88] initEntry::$9 = $55 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$9 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$9 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [89] initEntry::entry#10[8] = initEntry::$9 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [91] initEntry::$11 = $66 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$11 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$11 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [92] initEntry::entry#10[9] = initEntry::$11 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [94] initEntry::$13 = $77 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$13 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$13 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [95] initEntry::entry#10[$a] = initEntry::$13 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [97] initEntry::$15 = $88 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$15 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$15 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [98] initEntry::entry#10[$b] = initEntry::$15 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [100] initEntry::$17 = $9999 + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$17 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$17 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a reg byte y +Statement [103] initEntry::$19 = $aa + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$19 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$19 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [104] initEntry::entry#10[$e] = initEntry::$19 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [106] initEntry::$21 = $bb + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$21 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$21 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [107] initEntry::entry#10[$f] = initEntry::$21 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [109] initEntry::$23 = $cc + initEntry::n#10 [ initEntry::entry#10 initEntry::n#10 initEntry::$23 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 initEntry::$23 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [110] initEntry::entry#10[$10] = initEntry::$23 [ initEntry::entry#10 initEntry::n#10 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::n#10 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [112] initEntry::$25 = $dd + initEntry::n#10 [ initEntry::entry#10 initEntry::$25 ] ( initEntry:13 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 initEntry::entry#10 initEntry::$25 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte a +Statement [113] initEntry::entry#10[$11] = initEntry::$25 [ ] ( initEntry:13 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#0 = initEntry::entry#10 main::entry1#0 } } initEntry:15 [ main::entry1#0 main::entry2#0 ] { { initEntry::entry#1 = initEntry::entry#10 main::entry2#0 } } ) always clobbers reg byte y +Statement [120] if(0!=*print_str::str#18) goto print_str::@2 [ print_str::str#18 print_char_cursor#1 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#209 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 ] { } print_str:52 [ print_str::str#18 print_char_cursor#1 ] { { print_char_cursor#167 = print_char_cursor#210 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a reg byte y +Statement [122] print_char::ch#0 = *print_str::str#18 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] ( print_str:19 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40 [ main::entry2#0 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52 [ print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:133 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:133 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:140 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:140 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:147 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:147 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:154 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:154 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:161 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:161 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:168 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:168 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:175 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:175 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:182 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:182 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:189 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:189 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:196 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:196 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:203 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:203 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:210 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:210 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:217 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:217 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#1 print_char::ch#0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } ) always clobbers reg byte a reg byte y +Statement [127] print_line_cursor#0 = print_line_cursor#33 + $28 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [128] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 [ print_line_cursor#0 print_char_cursor#146 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_line_cursor#0 print_char_cursor#146 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_line_cursor#0 print_char_cursor#146 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [130] print_line_cursor#173 = print_line_cursor#0 [ print_char_cursor#146 print_line_cursor#173 ] ( print_ln:21 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:24 [ main::entry1#0 main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#155 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#227 } } print_ln:29 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#156 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#228 } } print_ln:42 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_char_cursor#1 = print_char_cursor#146 } } print_ln:45 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#157 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#230 } } print_ln:50 [ print_char_cursor#146 print_line_cursor#173 ] { { print_line_cursor#158 = print_line_cursor#65 } { print_char_cursor#146 = print_char_cursor#231 } } printEntry:26::print_ln:138 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:138 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:145 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:145 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:152 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:152 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:159 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:159 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:166 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:166 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:173 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:173 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:180 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:180 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:187 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:187 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:194 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:194 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:201 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:201 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:208 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:208 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:215 [ main::entry2#0 printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:215 [ printEntry::entry#10 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:26::print_ln:222 [ main::entry2#0 print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47::print_ln:222 [ print_char_cursor#146 print_line_cursor#173 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [132] print_char_cursor#211 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#211 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } } ) always clobbers reg byte a +Statement [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } } ) always clobbers reg byte a reg byte y +Statement [137] print_line_cursor#159 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#159 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#159 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [139] print_char_cursor#212 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#212 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } } ) always clobbers reg byte a +Statement [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } } ) always clobbers reg byte a reg byte y +Statement [144] print_line_cursor#160 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#160 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#160 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [146] print_char_cursor#213 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#213 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } } ) always clobbers reg byte a +Statement [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y +Statement [151] print_line_cursor#161 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#161 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#161 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [153] print_char_cursor#214 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#214 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } } ) always clobbers reg byte a +Statement [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y +Statement [158] print_line_cursor#162 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#162 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#162 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [160] print_char_cursor#215 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#215 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } } ) always clobbers reg byte a +Statement [163] print_uchar::b#2 = printEntry::entry#10[8] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [165] print_line_cursor#163 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#163 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#163 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [167] print_char_cursor#216 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#216 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } } ) always clobbers reg byte a +Statement [170] print_uchar::b#3 = printEntry::entry#10[9] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#3 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [172] print_line_cursor#164 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#164 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#164 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [174] print_char_cursor#217 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#217 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } } ) always clobbers reg byte a +Statement [177] print_uchar::b#4 = printEntry::entry#10[$a] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [179] print_line_cursor#165 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#165 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#165 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [181] print_char_cursor#218 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#218 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } } ) always clobbers reg byte a +Statement [184] print_uchar::b#5 = printEntry::entry#10[$b] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#5 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [186] print_line_cursor#166 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#166 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#166 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [188] print_char_cursor#219 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#219 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } } ) always clobbers reg byte a +Statement [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uint::w#4 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } } ) always clobbers reg byte a reg byte y +Statement [193] print_line_cursor#167 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#167 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#167 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [195] print_char_cursor#220 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#220 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } } ) always clobbers reg byte a +Statement [198] print_uchar::b#6 = printEntry::entry#10[$e] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#6 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [200] print_line_cursor#168 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#168 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#168 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [202] print_char_cursor#221 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#221 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } } ) always clobbers reg byte a +Statement [205] print_uchar::b#7 = printEntry::entry#10[$f] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#7 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [207] print_line_cursor#169 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#169 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#169 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [209] print_char_cursor#222 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#222 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } } ) always clobbers reg byte a +Statement [212] print_uchar::b#8 = printEntry::entry#10[$10] [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 printEntry::entry#10 print_uchar::b#8 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [214] print_line_cursor#170 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#170 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#170 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [216] print_char_cursor#223 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#223 printEntry::entry#10 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } } ) always clobbers reg byte a +Statement [219] print_uchar::b#9 = printEntry::entry#10[$11] [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] ( printEntry:26 [ main::entry2#0 print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } printEntry:47 [ print_line_cursor#0 print_char_cursor#1 print_uchar::b#9 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } } ) always clobbers reg byte a reg byte y +Statement [221] print_line_cursor#171 = print_line_cursor#0 [ print_char_cursor#10 print_line_cursor#171 ] ( printEntry:26 [ main::entry2#0 print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } printEntry:47 [ print_char_cursor#10 print_line_cursor#171 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_line_cursor#171 = print_line_cursor#65 } { print_char_cursor#10 = print_char_cursor#146 } } ) always clobbers reg byte a +Statement [232] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:17::memset:116 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:116 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:116 [ memset::dst#2 ] { } ) always clobbers reg byte a +Statement [234] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:17::memset:116 [ main::entry1#0 main::entry2#0 memset::dst#2 ] { } print_cls:38::memset:116 [ main::entry2#0 memset::dst#2 ] { } print_cls:59::memset:116 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [237] *print_char_cursor#83 = print_char::ch#3 [ print_char_cursor#83 ] ( print_str:19::print_char:123 [ main::entry1#0 main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:31::print_char:123 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#209 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:40::print_char:123 [ main::entry2#0 print_str::str#18 print_char_cursor#83 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } print_str:52::print_char:123 [ print_str::str#18 print_char_cursor#83 ] { { print_char_cursor#167 = print_char_cursor#210 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:133::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:133::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#211 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:140::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:140::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#212 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:147::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:147::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#213 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:154::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:154::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#214 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:161::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:161::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#215 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:168::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:168::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#216 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:175::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:175::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#217 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:182::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:182::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#218 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:189::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:189::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#219 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:196::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:196::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#220 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:203::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:203::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#221 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:210::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:210::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#222 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_str:217::print_char:123 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:47::print_str:217::print_char:123 [ print_line_cursor#0 printEntry::entry#10 print_str::str#18 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_char_cursor#167 = print_char_cursor#223 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#83 } } printEntry:26::print_uchar:164::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:164::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:171::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:171::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:178::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:178::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:185::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:185::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:199::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:199::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:206::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:206::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:213::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:213::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:220::print_char:249 [ main::entry2#0 print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:220::print_char:249 [ print_line_cursor#0 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:242::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:242::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244::print_char:249 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244::print_char:249 [ print_line_cursor#0 printEntry::entry#10 print_uchar::b#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:164::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:164::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:171::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:171::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:178::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:178::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:185::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:185::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:199::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:199::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:206::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:206::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:213::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:213::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:220::print_char:252 [ main::entry2#0 print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:220::print_char:252 [ print_line_cursor#0 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:136::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:143::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:143::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:150::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:150::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:157::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:157::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:192::print_uchar:242::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:192::print_uchar:242::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244::print_char:252 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244::print_char:252 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#83 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte y +Statement [247] print_uchar::$0 = print_uchar::b#10 >> 4 [ print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#148 print_uchar::b#10 print_uchar::$0 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#1 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [250] print_uchar::$2 = print_uchar::b#10 & $f [ print_char_cursor#10 print_uchar::$2 ] ( printEntry:26::print_uchar:164 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:164 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#2 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:171 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:171 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#3 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:178 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:178 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#4 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:185 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:185 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#5 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:199 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:199 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#6 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:206 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:206 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#7 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:213 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:213 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#8 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uchar:220 [ main::entry2#0 print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uchar:220 [ print_line_cursor#0 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uchar::b#10 = print_uchar::b#9 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:136::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:143::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:143::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:150::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:150::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:157::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:157::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:192::print_uchar:242 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:47::print_uint:192::print_uchar:242 [ print_line_cursor#0 printEntry::entry#10 print_uint::w#5 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#0 = print_uchar::b#10 } { print_char_cursor#1 = print_char_cursor#148 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#10 = print_char_cursor#83 } } printEntry:26::print_uint:136::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:136::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#7 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:143::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:143::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#5 = print_uint::w#8 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:150::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:150::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:157::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:157::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#10 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:26::print_uint:192::print_uchar:244 [ main::entry2#0 print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#0 = printEntry::entry#10 main::entry1#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } printEntry:47::print_uint:192::print_uchar:244 [ print_line_cursor#0 printEntry::entry#10 print_char_cursor#10 print_uchar::$2 ] { { printEntry::entry#1 = printEntry::entry#10 main::entry2#0 } { print_uint::w#4 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#10 } { print_char_cursor#10 = print_char_cursor#148 print_char_cursor#83 } { print_char::ch#2 = print_char::ch#3 } } ) always clobbers reg byte a +Statement [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:33::keyboard_matrix_read:225 [ main::entry2#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } keyboard_key_pressed:54::keyboard_matrix_read:225 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] : zp[2]:3 , Potential registers zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] : zp[2]:5 , @@ -4929,35 +4927,34 @@ Potential registers zp[1]:40 [ mul8u::$1 ] : zp[1]:40 , reg byte a , reg byte x Potential registers zp[2]:41 [ initEntry::$1 ] : zp[2]:41 , Potential registers zp[2]:43 [ initEntry::$3 ] : zp[2]:43 , Potential registers zp[2]:45 [ initEntry::$5 ] : zp[2]:45 , -Potential registers zp[1]:47 [ initEntry::$26 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:48 [ initEntry::$7 ] : zp[2]:48 , -Potential registers zp[1]:50 [ initEntry::$9 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:51 [ initEntry::$11 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:52 [ initEntry::$13 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:53 [ initEntry::$15 ] : zp[1]:53 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:54 [ initEntry::$17 ] : zp[2]:54 , -Potential registers zp[1]:56 [ initEntry::$19 ] : zp[1]:56 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:57 [ initEntry::$21 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:58 [ initEntry::$23 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:59 [ initEntry::$25 ] : zp[1]:59 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:60 [ print_line_cursor#0 ] : zp[2]:60 , -Potential registers zp[1]:62 [ keyboard_matrix_read::return#2 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:63 [ keyboard_key_pressed::$2 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:64 [ keyboard_key_pressed::return#0 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:65 [ print_uchar::$0 ] : zp[1]:65 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:66 [ print_uchar::$2 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:67 [ keyboard_matrix_read::return#0 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:47 [ initEntry::$7 ] : zp[2]:47 , +Potential registers zp[1]:49 [ initEntry::$9 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:50 [ initEntry::$11 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:51 [ initEntry::$13 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:52 [ initEntry::$15 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:53 [ initEntry::$17 ] : zp[2]:53 , +Potential registers zp[1]:55 [ initEntry::$19 ] : zp[1]:55 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:56 [ initEntry::$21 ] : zp[1]:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:57 [ initEntry::$23 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:58 [ initEntry::$25 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:59 [ print_line_cursor#0 ] : zp[2]:59 , +Potential registers zp[1]:61 [ keyboard_matrix_read::return#2 ] : zp[1]:61 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:62 [ keyboard_key_pressed::$2 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:63 [ keyboard_key_pressed::return#0 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:64 [ print_uchar::$0 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:65 [ print_uchar::$2 ] : zp[1]:65 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:66 [ keyboard_matrix_read::return#0 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES Uplift Scope [print_char] 19,010: zp[1]:18 [ print_char::ch#3 print_char::ch#0 print_char::ch#1 print_char::ch#2 ] -Uplift Scope [] 13,082.92: zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] 4,651: zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] 34.11: zp[2]:60 [ print_line_cursor#0 ] -Uplift Scope [print_uchar] 2,002: zp[1]:65 [ print_uchar::$0 ] 2,002: zp[1]:66 [ print_uchar::$2 ] 1,153: zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] +Uplift Scope [] 13,082.92: zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] 4,651: zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] 34.11: zp[2]:59 [ print_line_cursor#0 ] +Uplift Scope [print_uchar] 2,002: zp[1]:64 [ print_uchar::$0 ] 2,002: zp[1]:65 [ print_uchar::$2 ] 1,153: zp[1]:23 [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] Uplift Scope [memset] 3,336.67: zp[2]:16 [ memset::dst#2 memset::dst#1 ] Uplift Scope [print_str] 3,129.25: zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] Uplift Scope [mul8u] 346.86: zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] 245.29: zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] 202: zp[1]:40 [ mul8u::$1 ] 181.17: zp[1]:2 [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] 4: zp[2]:24 [ mul8u::return#2 ] 4: zp[2]:30 [ mul8u::return#3 ] -Uplift Scope [keyboard_matrix_read] 367.33: zp[1]:67 [ keyboard_matrix_read::return#0 ] 202: zp[1]:62 [ keyboard_matrix_read::return#2 ] -Uplift Scope [initEntry] 22: zp[2]:41 [ initEntry::$1 ] 22: zp[2]:43 [ initEntry::$3 ] 22: zp[2]:45 [ initEntry::$5 ] 22: zp[1]:47 [ initEntry::$26 ] 22: zp[2]:48 [ initEntry::$7 ] 22: zp[1]:50 [ initEntry::$9 ] 22: zp[1]:51 [ initEntry::$11 ] 22: zp[1]:52 [ initEntry::$13 ] 22: zp[1]:53 [ initEntry::$15 ] 22: zp[2]:54 [ initEntry::$17 ] 22: zp[1]:56 [ initEntry::$19 ] 22: zp[1]:57 [ initEntry::$21 ] 22: zp[1]:58 [ initEntry::$23 ] 22: zp[1]:59 [ initEntry::$25 ] 10.3: zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] 3.67: zp[1]:9 [ initEntry::n#10 ] -Uplift Scope [keyboard_key_pressed] 202: zp[1]:63 [ keyboard_key_pressed::$2 ] 30.75: zp[1]:64 [ keyboard_key_pressed::return#0 ] 22: zp[1]:36 [ keyboard_key_pressed::return#2 ] 22: zp[1]:38 [ keyboard_key_pressed::return#3 ] +Uplift Scope [keyboard_matrix_read] 367.33: zp[1]:66 [ keyboard_matrix_read::return#0 ] 202: zp[1]:61 [ keyboard_matrix_read::return#2 ] +Uplift Scope [keyboard_key_pressed] 202: zp[1]:62 [ keyboard_key_pressed::$2 ] 30.75: zp[1]:63 [ keyboard_key_pressed::return#0 ] 22: zp[1]:36 [ keyboard_key_pressed::return#2 ] 22: zp[1]:38 [ keyboard_key_pressed::return#3 ] +Uplift Scope [initEntry] 22: zp[2]:45 [ initEntry::$5 ] 22: zp[1]:49 [ initEntry::$9 ] 22: zp[1]:50 [ initEntry::$11 ] 22: zp[1]:51 [ initEntry::$13 ] 22: zp[1]:52 [ initEntry::$15 ] 22: zp[2]:53 [ initEntry::$17 ] 22: zp[1]:55 [ initEntry::$19 ] 22: zp[1]:56 [ initEntry::$21 ] 22: zp[1]:57 [ initEntry::$23 ] 22: zp[1]:58 [ initEntry::$25 ] 11: zp[2]:41 [ initEntry::$1 ] 11: zp[2]:43 [ initEntry::$3 ] 11: zp[2]:47 [ initEntry::$7 ] 10.36: zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] 3.76: zp[1]:9 [ initEntry::n#10 ] Uplift Scope [print_uint] 195.67: zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] Uplift Scope [main] 22: zp[1]:37 [ main::$20 ] 22: zp[1]:39 [ main::$22 ] 4: zp[2]:26 [ main::fileEntry1_$0 ] 4: zp[2]:32 [ main::fileEntry2_$0 ] 0.32: zp[2]:28 [ main::entry1#0 ] 0.17: zp[2]:34 [ main::entry2#0 ] Uplift Scope [printEntry] 9.05: zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] @@ -4969,39 +4966,37 @@ Uplift Scope [MOS6569_VICII] Uplift Scope [MOS6581_SID] Uplift Scope [keyboard_init] -Uplifting [print_char] best 5903 combination reg byte a [ print_char::ch#3 print_char::ch#0 print_char::ch#1 print_char::ch#2 ] -Uplifting [] best 5903 combination zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] zp[2]:60 [ print_line_cursor#0 ] -Uplifting [print_uchar] best 5877 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] -Uplifting [memset] best 5877 combination zp[2]:16 [ memset::dst#2 memset::dst#1 ] -Uplifting [print_str] best 5877 combination zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] -Uplifting [mul8u] best 5821 combination zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] zp[2]:24 [ mul8u::return#2 ] zp[2]:30 [ mul8u::return#3 ] -Uplifting [keyboard_matrix_read] best 5809 combination reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ] -Uplifting [initEntry] best 5791 combination zp[2]:41 [ initEntry::$1 ] zp[2]:43 [ initEntry::$3 ] zp[2]:45 [ initEntry::$5 ] reg byte a [ initEntry::$26 ] zp[2]:48 [ initEntry::$7 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] reg byte a [ initEntry::$13 ] zp[1]:53 [ initEntry::$15 ] zp[2]:54 [ initEntry::$17 ] zp[1]:56 [ initEntry::$19 ] zp[1]:57 [ initEntry::$21 ] zp[1]:58 [ initEntry::$23 ] zp[1]:59 [ initEntry::$25 ] zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] zp[1]:9 [ initEntry::n#10 ] -Limited combination testing to 100 combinations of 524288 possible. -Uplifting [keyboard_key_pressed] best 5602 combination reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#3 ] +Uplifting [print_char] best 5895 combination reg byte a [ print_char::ch#3 print_char::ch#0 print_char::ch#1 print_char::ch#2 ] +Uplifting [] best 5895 combination zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] zp[2]:59 [ print_line_cursor#0 ] +Uplifting [print_uchar] best 5869 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#10 print_uchar::b#6 print_uchar::b#7 print_uchar::b#8 print_uchar::b#9 print_uchar::b#2 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#0 print_uchar::b#1 ] +Uplifting [memset] best 5869 combination zp[2]:16 [ memset::dst#2 memset::dst#1 ] +Uplifting [print_str] best 5869 combination zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] +Uplifting [mul8u] best 5813 combination zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:5 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#0 ] zp[2]:24 [ mul8u::return#2 ] zp[2]:30 [ mul8u::return#3 ] +Uplifting [keyboard_matrix_read] best 5801 combination reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ] +Uplifting [keyboard_key_pressed] best 5612 combination reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#3 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [print_uint] best 5602 combination zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] -Uplifting [main] best 5522 combination reg byte a [ main::$20 ] reg byte a [ main::$22 ] zp[2]:26 [ main::fileEntry1_$0 ] zp[2]:32 [ main::fileEntry2_$0 ] zp[2]:28 [ main::entry1#0 ] zp[2]:34 [ main::entry2#0 ] -Uplifting [printEntry] best 5522 combination zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] -Uplifting [RADIX] best 5522 combination -Uplifting [print_ln] best 5522 combination -Uplifting [print_cls] best 5522 combination -Uplifting [MOS6526_CIA] best 5522 combination -Uplifting [MOS6569_VICII] best 5522 combination -Uplifting [MOS6581_SID] best 5522 combination -Uplifting [keyboard_init] best 5522 combination -Attempting to uplift remaining variables inzp[1]:53 [ initEntry::$15 ] -Uplifting [initEntry] best 5518 combination reg byte a [ initEntry::$15 ] -Attempting to uplift remaining variables inzp[1]:56 [ initEntry::$19 ] -Uplifting [initEntry] best 5514 combination reg byte a [ initEntry::$19 ] -Attempting to uplift remaining variables inzp[1]:57 [ initEntry::$21 ] -Uplifting [initEntry] best 5510 combination reg byte a [ initEntry::$21 ] -Attempting to uplift remaining variables inzp[1]:58 [ initEntry::$23 ] -Uplifting [initEntry] best 5506 combination reg byte a [ initEntry::$23 ] -Attempting to uplift remaining variables inzp[1]:59 [ initEntry::$25 ] -Uplifting [initEntry] best 5502 combination reg byte a [ initEntry::$25 ] +Uplifting [initEntry] best 5596 combination zp[2]:45 [ initEntry::$5 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] reg byte a [ initEntry::$13 ] reg byte a [ initEntry::$15 ] zp[2]:53 [ initEntry::$17 ] zp[1]:55 [ initEntry::$19 ] zp[1]:56 [ initEntry::$21 ] zp[1]:57 [ initEntry::$23 ] zp[1]:58 [ initEntry::$25 ] zp[2]:41 [ initEntry::$1 ] zp[2]:43 [ initEntry::$3 ] zp[2]:47 [ initEntry::$7 ] zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 ] zp[1]:9 [ initEntry::n#10 ] +Limited combination testing to 100 combinations of 131072 possible. +Uplifting [print_uint] best 5596 combination zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] +Uplifting [main] best 5516 combination reg byte a [ main::$20 ] reg byte a [ main::$22 ] zp[2]:26 [ main::fileEntry1_$0 ] zp[2]:32 [ main::fileEntry2_$0 ] zp[2]:28 [ main::entry1#0 ] zp[2]:34 [ main::entry2#0 ] +Uplifting [printEntry] best 5516 combination zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] +Uplifting [RADIX] best 5516 combination +Uplifting [print_ln] best 5516 combination +Uplifting [print_cls] best 5516 combination +Uplifting [MOS6526_CIA] best 5516 combination +Uplifting [MOS6569_VICII] best 5516 combination +Uplifting [MOS6581_SID] best 5516 combination +Uplifting [keyboard_init] best 5516 combination +Attempting to uplift remaining variables inzp[1]:55 [ initEntry::$19 ] +Uplifting [initEntry] best 5512 combination reg byte a [ initEntry::$19 ] +Attempting to uplift remaining variables inzp[1]:56 [ initEntry::$21 ] +Uplifting [initEntry] best 5508 combination reg byte a [ initEntry::$21 ] +Attempting to uplift remaining variables inzp[1]:57 [ initEntry::$23 ] +Uplifting [initEntry] best 5504 combination reg byte a [ initEntry::$23 ] +Attempting to uplift remaining variables inzp[1]:58 [ initEntry::$25 ] +Uplifting [initEntry] best 5500 combination reg byte a [ initEntry::$25 ] Attempting to uplift remaining variables inzp[1]:9 [ initEntry::n#10 ] -Uplifting [initEntry] best 5483 combination reg byte x [ initEntry::n#10 ] +Uplifting [initEntry] best 5481 combination reg byte x [ initEntry::n#10 ] Coalescing zero page register [ zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] ] with [ zp[2]:24 [ mul8u::return#2 ] ] - score: 1 Coalescing zero page register [ zp[2]:3 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 ] ] with [ zp[2]:30 [ mul8u::return#3 ] ] - score: 1 Coalescing zero page register [ zp[2]:14 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 ] ] with [ zp[2]:28 [ main::entry1#0 ] ] - score: 1 @@ -5012,7 +5007,7 @@ Coalescing zero page register [ zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 Coalescing zero page register [ zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 ] ] with [ zp[2]:10 [ print_str::str#18 print_str::str#21 print_str::str#0 ] ] Coalescing zero page register [ zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 ] ] with [ zp[2]:16 [ memset::dst#2 memset::dst#1 ] ] Coalescing zero page register [ zp[2]:41 [ initEntry::$1 ] ] with [ zp[2]:21 [ print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] ] -Coalescing zero page register [ zp[2]:60 [ print_line_cursor#0 ] ] with [ zp[2]:43 [ initEntry::$3 ] ] +Coalescing zero page register [ zp[2]:59 [ print_line_cursor#0 ] ] with [ zp[2]:43 [ initEntry::$3 ] ] Coalescing zero page register [ zp[2]:12 [ print_line_cursor#33 print_line_cursor#65 print_line_cursor#155 print_line_cursor#156 print_line_cursor#157 print_line_cursor#158 print_line_cursor#159 print_line_cursor#160 print_line_cursor#161 print_line_cursor#162 print_line_cursor#163 print_line_cursor#164 print_line_cursor#165 print_line_cursor#166 print_line_cursor#167 print_line_cursor#168 print_line_cursor#169 print_line_cursor#170 print_line_cursor#171 print_line_cursor#173 print_str::str#18 print_str::str#21 print_str::str#0 ] ] with [ zp[2]:7 [ initEntry::entry#10 initEntry::entry#1 initEntry::entry#0 mul8u::mb#2 mul8u::mb#1 ] ] Coalescing zero page register [ zp[2]:45 [ initEntry::$5 ] ] with [ zp[2]:19 [ print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] ] Allocated (was zp[2]:3) zp[2]:2 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u::return#3 main::fileEntry1_$0 main::fileEntry2_$0 main::entry2#0 ] @@ -5020,9 +5015,9 @@ Allocated (was zp[2]:12) zp[2]:4 [ print_line_cursor#33 print_line_cursor#65 pri Allocated (was zp[2]:14) zp[2]:6 [ printEntry::entry#10 printEntry::entry#0 printEntry::entry#1 main::entry1#0 ] Allocated (was zp[2]:41) zp[2]:8 [ initEntry::$1 print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] Allocated (was zp[2]:45) zp[2]:10 [ initEntry::$5 print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] -Allocated (was zp[2]:48) zp[2]:12 [ initEntry::$7 ] -Allocated (was zp[2]:54) zp[2]:14 [ initEntry::$17 ] -Allocated (was zp[2]:60) zp[2]:16 [ print_line_cursor#0 initEntry::$3 ] +Allocated (was zp[2]:47) zp[2]:12 [ initEntry::$7 ] +Allocated (was zp[2]:53) zp[2]:14 [ initEntry::$17 ] +Allocated (was zp[2]:59) zp[2]:16 [ print_line_cursor#0 initEntry::$3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -5165,7 +5160,7 @@ main: { // main::@9 __b9: // [17] call print_cls - // [116] phi from main::@9 to print_cls [phi:main::@9->print_cls] + // [115] phi from main::@9 to print_cls [phi:main::@9->print_cls] print_cls_from___b9: jsr print_cls // [18] phi from main::@9 to main::@10 [phi:main::@9->main::@10] @@ -5174,14 +5169,14 @@ main: { // main::@10 __b10: // [19] call print_str - // [119] phi from main::@10 to print_str [phi:main::@10->print_str] + // [118] phi from main::@10 to print_str [phi:main::@10->print_str] print_str_from___b10: - // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 lda #<print_screen sta.z print_char_cursor lda #>print_screen sta.z print_char_cursor+1 - // [119] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 lda #<str sta.z print_str.str lda #>str @@ -5193,10 +5188,10 @@ main: { // main::@11 __b11: // [21] call print_ln - // [126] phi from main::@11 to print_ln [phi:main::@11->print_ln] + // [125] phi from main::@11 to print_ln [phi:main::@11->print_ln] print_ln_from___b11: - // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 + // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 lda #<print_screen sta.z print_line_cursor_1 lda #>print_screen @@ -5216,19 +5211,19 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [24] call print_ln - // [126] phi from main::@12 to print_ln [phi:main::@12->print_ln] + // [125] phi from main::@12 to print_ln [phi:main::@12->print_ln] print_ln_from___b12: - // [126] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy jsr print_ln jmp __b13 // main::@13 __b13: // [25] printEntry::entry#0 = main::entry1#0 // [26] call printEntry - // [132] phi from main::@13 to printEntry [phi:main::@13->printEntry] + // [131] phi from main::@13 to printEntry [phi:main::@13->printEntry] printEntry_from___b13: - // [132] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy + // [131] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy jsr printEntry jmp __b14 // main::@14 @@ -5244,10 +5239,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [29] call print_ln - // [126] phi from main::@14 to print_ln [phi:main::@14->print_ln] + // [125] phi from main::@14 to print_ln [phi:main::@14->print_ln] print_ln_from___b14: - // [126] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy jsr print_ln jmp __b15 // main::@15 @@ -5258,10 +5253,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [31] call print_str - // [119] phi from main::@15 to print_str [phi:main::@15->print_str] + // [118] phi from main::@15 to print_str [phi:main::@15->print_str] print_str_from___b15: - // [119] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy - // [119] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy + // [118] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 lda #<str1 sta.z print_str.str lda #>str1 @@ -5274,7 +5269,7 @@ main: { // main::@1 __b1: // [33] call keyboard_key_pressed - // [225] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] + // [224] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] keyboard_key_pressed_from___b1: jsr keyboard_key_pressed // [34] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 @@ -5291,7 +5286,7 @@ main: { // main::@2 __b2: // [38] call print_cls - // [116] phi from main::@2 to print_cls [phi:main::@2->print_cls] + // [115] phi from main::@2 to print_cls [phi:main::@2->print_cls] print_cls_from___b2: jsr print_cls // [39] phi from main::@2 to main::@17 [phi:main::@2->main::@17] @@ -5300,14 +5295,14 @@ main: { // main::@17 __b17: // [40] call print_str - // [119] phi from main::@17 to print_str [phi:main::@17->print_str] + // [118] phi from main::@17 to print_str [phi:main::@17->print_str] print_str_from___b17: - // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 lda #<print_screen sta.z print_char_cursor lda #>print_screen sta.z print_char_cursor+1 - // [119] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 lda #<str2 sta.z print_str.str lda #>str2 @@ -5319,10 +5314,10 @@ main: { // main::@18 __b18: // [42] call print_ln - // [126] phi from main::@18 to print_ln [phi:main::@18->print_ln] + // [125] phi from main::@18 to print_ln [phi:main::@18->print_ln] print_ln_from___b18: - // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 + // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 lda #<print_screen sta.z print_line_cursor_1 lda #>print_screen @@ -5342,10 +5337,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [45] call print_ln - // [126] phi from main::@19 to print_ln [phi:main::@19->print_ln] + // [125] phi from main::@19 to print_ln [phi:main::@19->print_ln] print_ln_from___b19: - // [126] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy jsr print_ln jmp __b20 // main::@20 @@ -5356,9 +5351,9 @@ main: { lda.z entry2+1 sta.z printEntry.entry+1 // [47] call printEntry - // [132] phi from main::@20 to printEntry [phi:main::@20->printEntry] + // [131] phi from main::@20 to printEntry [phi:main::@20->printEntry] printEntry_from___b20: - // [132] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy + // [131] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy jsr printEntry jmp __b21 // main::@21 @@ -5374,10 +5369,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [50] call print_ln - // [126] phi from main::@21 to print_ln [phi:main::@21->print_ln] + // [125] phi from main::@21 to print_ln [phi:main::@21->print_ln] print_ln_from___b21: - // [126] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy jsr print_ln jmp __b22 // main::@22 @@ -5388,10 +5383,10 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [52] call print_str - // [119] phi from main::@22 to print_str [phi:main::@22->print_str] + // [118] phi from main::@22 to print_str [phi:main::@22->print_str] print_str_from___b22: - // [119] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy - // [119] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy + // [118] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 lda #<str1 sta.z print_str.str lda #>str1 @@ -5404,7 +5399,7 @@ main: { // main::@3 __b3: // [54] call keyboard_key_pressed - // [225] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] + // [224] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] keyboard_key_pressed_from___b3: jsr keyboard_key_pressed // [55] keyboard_key_pressed::return#3 = keyboard_key_pressed::return#0 @@ -5421,7 +5416,7 @@ main: { // main::@4 __b4: // [59] call print_cls - // [116] phi from main::@4 to print_cls [phi:main::@4->print_cls] + // [115] phi from main::@4 to print_cls [phi:main::@4->print_cls] print_cls_from___b4: jsr print_cls jmp __breturn @@ -5545,7 +5540,7 @@ initEntry: { jmp __b1 // initEntry::@1 __b1: - // [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx + // [76] initEntry::$1 = $1111 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$1111 @@ -5553,7 +5548,7 @@ initEntry: { lda #>$1111 adc #0 sta.z __1+1 - // [77] *((byte**)initEntry::entry#10) = initEntry::$1 -- _deref_qbuz1=pbuz2 + // [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 -- _deref_qbuz1=pbuz2 ldy #0 lda.z __1 sta (entry),y @@ -5568,7 +5563,7 @@ initEntry: { jmp __b2 // initEntry::@2 __b2: - // [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx + // [79] initEntry::$3 = $2222 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$2222 @@ -5576,7 +5571,7 @@ initEntry: { lda #>$2222 adc #0 sta.z __3+1 - // [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 + // [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 ldy #2 lda.z __3 sta (entry),y @@ -5614,24 +5609,22 @@ initEntry: { jmp __b4 // initEntry::@4 __b4: - // [85] initEntry::$26 = initEntry::n#10 << 1 -- vbuaa=vbuxx_rol_1 + // [85] initEntry::$7 = $4444 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa - asl - // [86] initEntry::$7 = (word*) 17476 + initEntry::$26 -- pwuz1=pwuc1_plus_vbuaa clc adc #<$4444 sta.z __7 lda #>$4444 adc #0 sta.z __7+1 - // [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 + // [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 ldy #6 lda.z __7 sta (entry),y iny lda.z __7+1 sta (entry),y - // [88] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] + // [87] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] entryTLastLink1_from___b4: jmp entryTLastLink1 // initEntry::entryTLastLink1 @@ -5639,14 +5632,14 @@ initEntry: { jmp __b5 // initEntry::@5 __b5: - // [89] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [88] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$55 - // [90] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa + // [89] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa ldy #8 sta (entry),y - // [91] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] + // [90] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] entrySLastLink1_from___b5: jmp entrySLastLink1 // initEntry::entrySLastLink1 @@ -5654,14 +5647,14 @@ initEntry: { jmp __b6 // initEntry::@6 __b6: - // [92] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [91] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$66 - // [93] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa + // [92] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa ldy #9 sta (entry),y - // [94] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] + // [93] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] entryBFlag1_from___b6: jmp entryBFlag1 // initEntry::entryBFlag1 @@ -5669,14 +5662,14 @@ initEntry: { jmp __b7 // initEntry::@7 __b7: - // [95] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [94] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$77 - // [96] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa + // [95] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$a sta (entry),y - // [97] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] + // [96] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] entryBError1_from___b7: jmp entryBError1 // initEntry::entryBError1 @@ -5684,14 +5677,14 @@ initEntry: { jmp __b8 // initEntry::@8 __b8: - // [98] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [97] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$88 - // [99] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa + // [98] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$b sta (entry),y - // [100] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] + // [99] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] entryUCross1_from___b8: jmp entryUCross1 // initEntry::entryUCross1 @@ -5699,7 +5692,7 @@ initEntry: { jmp __b9 // initEntry::@9 __b9: - // [101] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [100] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$9999 @@ -5707,14 +5700,14 @@ initEntry: { lda #>$9999 adc #0 sta.z __17+1 - // [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 + // [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 ldy #$c lda.z __17 sta (entry),y iny lda.z __17+1 sta (entry),y - // [103] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] + // [102] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] entryBAddrLo1_from___b9: jmp entryBAddrLo1 // initEntry::entryBAddrLo1 @@ -5722,14 +5715,14 @@ initEntry: { jmp __b10 // initEntry::@10 __b10: - // [104] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [103] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$aa - // [105] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa + // [104] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$e sta (entry),y - // [106] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] + // [105] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] entryBAddrHi1_from___b10: jmp entryBAddrHi1 // initEntry::entryBAddrHi1 @@ -5737,14 +5730,14 @@ initEntry: { jmp __b11 // initEntry::@11 __b11: - // [107] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [106] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$bb - // [108] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa + // [107] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$f sta (entry),y - // [109] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] + // [108] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] entryTHi1_from___b11: jmp entryTHi1 // initEntry::entryTHi1 @@ -5752,14 +5745,14 @@ initEntry: { jmp __b12 // initEntry::@12 __b12: - // [110] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [109] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$cc - // [111] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa + // [110] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$10 sta (entry),y - // [112] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] + // [111] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] entryTLo1_from___b12: jmp entryTLo1 // initEntry::entryTLo1 @@ -5767,30 +5760,30 @@ initEntry: { jmp __b13 // initEntry::@13 __b13: - // [113] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [112] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$dd - // [114] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa + // [113] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$11 sta (entry),y jmp __breturn // initEntry::@return __breturn: - // [115] return + // [114] return rts } // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [117] call memset - // [231] phi from print_cls to memset [phi:print_cls->memset] + // [116] call memset + // [230] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset jmp __breturn // print_cls::@return __breturn: - // [118] return + // [117] return rts } // print_str @@ -5798,15 +5791,15 @@ print_cls: { // print_str(byte* zp(4) str) print_str: { .label str = 4 - // [120] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] + // [119] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] __b1_from_print_str: __b1_from___b3: - // [120] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy - // [120] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy + // [119] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy + // [119] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy jmp __b1 // print_str::@1 __b1: - // [121] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 + // [120] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -5814,23 +5807,23 @@ print_str: { jmp __breturn // print_str::@return __breturn: - // [122] return + // [121] return rts // print_str::@2 __b2: - // [123] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 + // [122] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [124] call print_char - // [237] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] + // [123] call print_char + // [236] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: - // [237] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy - // [237] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy + // [236] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy + // [236] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy jsr print_char jmp __b3 // print_str::@3 __b3: - // [125] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 + // [124] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 @@ -5840,14 +5833,14 @@ print_str: { // print_ln // Print a newline print_ln: { - // [127] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] + // [126] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] __b1_from_print_ln: __b1_from___b2: - // [127] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy + // [126] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy jmp __b1 // print_ln::@1 __b1: - // [128] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [127] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z print_line_cursor_1 @@ -5855,7 +5848,7 @@ print_ln: { lda #0 adc.z print_line_cursor_1+1 sta.z print_line_cursor+1 - // [129] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 + // [128] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 lda.z print_line_cursor+1 cmp.z print_char_cursor+1 bcc __b2 @@ -5867,11 +5860,11 @@ print_ln: { jmp __breturn // print_ln::@return __breturn: - // [130] return + // [129] return rts // print_ln::@2 __b2: - // [131] print_line_cursor#173 = print_line_cursor#0 -- pbuz1=pbuz2 + // [130] print_line_cursor#173 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 @@ -5883,22 +5876,22 @@ print_ln: { // printEntry(byte* zp(6) entry) printEntry: { .label entry = 6 - // [133] print_char_cursor#211 = print_line_cursor#0 -- pbuz1=pbuz2 + // [132] print_char_cursor#211 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [134] call print_str - // [119] phi from printEntry to print_str [phi:printEntry->print_str] + // [133] call print_str + // [118] phi from printEntry to print_str [phi:printEntry->print_str] print_str_from_printEntry: - // [119] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 lda #<str sta.z print_str.str lda #>str sta.z print_str.str+1 jsr print_str - // [135] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] + // [134] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] entryBufDisk1_from_printEntry: jmp entryBufDisk1 // printEntry::entryBufDisk1 @@ -5906,51 +5899,51 @@ printEntry: { jmp __b1 // printEntry::@1 __b1: - // [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 + // [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 ldy #0 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [137] call print_uint - // [241] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] + // [136] call print_uint + // [240] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] print_uint_from___b1: - // [241] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy + // [240] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy jsr print_uint jmp __b14 // printEntry::@14 __b14: - // [138] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 + // [137] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [139] call print_ln - // [126] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] + // [138] call print_ln + // [125] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] print_ln_from___b14: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy jsr print_ln jmp __b15 // printEntry::@15 __b15: - // [140] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 + // [139] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [141] call print_str - // [119] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] + // [140] call print_str + // [118] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] print_str_from___b15: - // [119] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 lda #<str1 sta.z print_str.str lda #>str1 sta.z print_str.str+1 jsr print_str - // [142] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] + // [141] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] entryBufEdit1_from___b15: jmp entryBufEdit1 // printEntry::entryBufEdit1 @@ -5958,51 +5951,51 @@ printEntry: { jmp __b2 // printEntry::@2 __b2: - // [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 + // [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #2 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [144] call print_uint - // [241] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] + // [143] call print_uint + // [240] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] print_uint_from___b2: - // [241] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy + // [240] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy jsr print_uint jmp __b16 // printEntry::@16 __b16: - // [145] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 + // [144] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [146] call print_ln - // [126] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] + // [145] call print_ln + // [125] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] print_ln_from___b16: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy jsr print_ln jmp __b17 // printEntry::@17 __b17: - // [147] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 + // [146] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [148] call print_str - // [119] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] + // [147] call print_str + // [118] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] print_str_from___b17: - // [119] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 lda #<str2 sta.z print_str.str lda #>str2 sta.z print_str.str+1 jsr print_str - // [149] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] + // [148] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] entryTsLen1_from___b17: jmp entryTsLen1 // printEntry::entryTsLen1 @@ -6010,51 +6003,51 @@ printEntry: { jmp __b3 // printEntry::@3 __b3: - // [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 + // [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #4 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [151] call print_uint - // [241] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] + // [150] call print_uint + // [240] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] print_uint_from___b3: - // [241] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy + // [240] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy jsr print_uint jmp __b18 // printEntry::@18 __b18: - // [152] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 + // [151] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [153] call print_ln - // [126] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] + // [152] call print_ln + // [125] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] print_ln_from___b18: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy jsr print_ln jmp __b19 // printEntry::@19 __b19: - // [154] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 + // [153] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [155] call print_str - // [119] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] + // [154] call print_str + // [118] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] print_str_from___b19: - // [119] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 lda #<str3 sta.z print_str.str lda #>str3 sta.z print_str.str+1 jsr print_str - // [156] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] + // [155] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] entryTsOrder1_from___b19: jmp entryTsOrder1 // printEntry::entryTsOrder1 @@ -6062,51 +6055,51 @@ printEntry: { jmp __b4 // printEntry::@4 __b4: - // [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 + // [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #6 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [158] call print_uint - // [241] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] + // [157] call print_uint + // [240] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] print_uint_from___b4: - // [241] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy + // [240] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy jsr print_uint jmp __b20 // printEntry::@20 __b20: - // [159] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 + // [158] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [160] call print_ln - // [126] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] + // [159] call print_ln + // [125] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] print_ln_from___b20: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy jsr print_ln jmp __b21 // printEntry::@21 __b21: - // [161] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 + // [160] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [162] call print_str - // [119] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] + // [161] call print_str + // [118] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] print_str_from___b21: - // [119] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 lda #<str4 sta.z print_str.str lda #>str4 sta.z print_str.str+1 jsr print_str - // [163] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] + // [162] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] entryTLastLink1_from___b21: jmp entryTLastLink1 // printEntry::entryTLastLink1 @@ -6114,49 +6107,49 @@ printEntry: { jmp __b5 // printEntry::@5 __b5: - // [164] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 + // [163] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #8 lda (entry),y tax - // [165] call print_uchar - // [247] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] + // [164] call print_uchar + // [246] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] print_uchar_from___b5: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy jsr print_uchar jmp __b22 // printEntry::@22 __b22: - // [166] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 + // [165] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [167] call print_ln - // [126] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] + // [166] call print_ln + // [125] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] print_ln_from___b22: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy jsr print_ln jmp __b23 // printEntry::@23 __b23: - // [168] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 + // [167] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [169] call print_str - // [119] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] + // [168] call print_str + // [118] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] print_str_from___b23: - // [119] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 lda #<str5 sta.z print_str.str lda #>str5 sta.z print_str.str+1 jsr print_str - // [170] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] + // [169] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] entrySLastLink1_from___b23: jmp entrySLastLink1 // printEntry::entrySLastLink1 @@ -6164,49 +6157,49 @@ printEntry: { jmp __b6 // printEntry::@6 __b6: - // [171] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 + // [170] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #9 lda (entry),y tax - // [172] call print_uchar - // [247] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] + // [171] call print_uchar + // [246] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] print_uchar_from___b6: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy jsr print_uchar jmp __b24 // printEntry::@24 __b24: - // [173] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 + // [172] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [174] call print_ln - // [126] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] + // [173] call print_ln + // [125] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] print_ln_from___b24: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy jsr print_ln jmp __b25 // printEntry::@25 __b25: - // [175] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 + // [174] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [176] call print_str - // [119] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] + // [175] call print_str + // [118] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] print_str_from___b25: - // [119] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 lda #<str6 sta.z print_str.str lda #>str6 sta.z print_str.str+1 jsr print_str - // [177] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] + // [176] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] entryBFlag1_from___b25: jmp entryBFlag1 // printEntry::entryBFlag1 @@ -6214,49 +6207,49 @@ printEntry: { jmp __b7 // printEntry::@7 __b7: - // [178] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 + // [177] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$a lda (entry),y tax - // [179] call print_uchar - // [247] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] + // [178] call print_uchar + // [246] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] print_uchar_from___b7: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy jsr print_uchar jmp __b26 // printEntry::@26 __b26: - // [180] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 + // [179] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [181] call print_ln - // [126] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] + // [180] call print_ln + // [125] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] print_ln_from___b26: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy jsr print_ln jmp __b27 // printEntry::@27 __b27: - // [182] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 + // [181] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [183] call print_str - // [119] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] + // [182] call print_str + // [118] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] print_str_from___b27: - // [119] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 lda #<str7 sta.z print_str.str lda #>str7 sta.z print_str.str+1 jsr print_str - // [184] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] + // [183] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] entryBError1_from___b27: jmp entryBError1 // printEntry::entryBError1 @@ -6264,49 +6257,49 @@ printEntry: { jmp __b8 // printEntry::@8 __b8: - // [185] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 + // [184] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$b lda (entry),y tax - // [186] call print_uchar - // [247] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] + // [185] call print_uchar + // [246] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] print_uchar_from___b8: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy jsr print_uchar jmp __b28 // printEntry::@28 __b28: - // [187] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 + // [186] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [188] call print_ln - // [126] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] + // [187] call print_ln + // [125] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] print_ln_from___b28: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy jsr print_ln jmp __b29 // printEntry::@29 __b29: - // [189] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 + // [188] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [190] call print_str - // [119] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] + // [189] call print_str + // [118] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] print_str_from___b29: - // [119] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 lda #<str8 sta.z print_str.str lda #>str8 sta.z print_str.str+1 jsr print_str - // [191] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] + // [190] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] entryUCross1_from___b29: jmp entryUCross1 // printEntry::entryUCross1 @@ -6314,51 +6307,51 @@ printEntry: { jmp __b9 // printEntry::@9 __b9: - // [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 + // [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #$c lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [193] call print_uint - // [241] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] + // [192] call print_uint + // [240] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] print_uint_from___b9: - // [241] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy + // [240] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy jsr print_uint jmp __b30 // printEntry::@30 __b30: - // [194] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 + // [193] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [195] call print_ln - // [126] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] + // [194] call print_ln + // [125] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] print_ln_from___b30: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy jsr print_ln jmp __b31 // printEntry::@31 __b31: - // [196] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 + // [195] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [197] call print_str - // [119] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] + // [196] call print_str + // [118] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] print_str_from___b31: - // [119] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 lda #<str9 sta.z print_str.str lda #>str9 sta.z print_str.str+1 jsr print_str - // [198] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] + // [197] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] entryBAddrLo1_from___b31: jmp entryBAddrLo1 // printEntry::entryBAddrLo1 @@ -6366,49 +6359,49 @@ printEntry: { jmp __b10 // printEntry::@10 __b10: - // [199] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 + // [198] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$e lda (entry),y tax - // [200] call print_uchar - // [247] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] + // [199] call print_uchar + // [246] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] print_uchar_from___b10: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy jsr print_uchar jmp __b32 // printEntry::@32 __b32: - // [201] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 + // [200] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [202] call print_ln - // [126] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] + // [201] call print_ln + // [125] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] print_ln_from___b32: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy jsr print_ln jmp __b33 // printEntry::@33 __b33: - // [203] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 + // [202] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [204] call print_str - // [119] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] + // [203] call print_str + // [118] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] print_str_from___b33: - // [119] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 lda #<str10 sta.z print_str.str lda #>str10 sta.z print_str.str+1 jsr print_str - // [205] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] + // [204] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] entryBAddrHi1_from___b33: jmp entryBAddrHi1 // printEntry::entryBAddrHi1 @@ -6416,49 +6409,49 @@ printEntry: { jmp __b11 // printEntry::@11 __b11: - // [206] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 + // [205] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$f lda (entry),y tax - // [207] call print_uchar - // [247] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] + // [206] call print_uchar + // [246] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] print_uchar_from___b11: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy jsr print_uchar jmp __b34 // printEntry::@34 __b34: - // [208] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 + // [207] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [209] call print_ln - // [126] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] + // [208] call print_ln + // [125] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] print_ln_from___b34: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy jsr print_ln jmp __b35 // printEntry::@35 __b35: - // [210] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 + // [209] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [211] call print_str - // [119] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] + // [210] call print_str + // [118] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] print_str_from___b35: - // [119] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 lda #<str11 sta.z print_str.str lda #>str11 sta.z print_str.str+1 jsr print_str - // [212] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] + // [211] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] entryTHi1_from___b35: jmp entryTHi1 // printEntry::entryTHi1 @@ -6466,49 +6459,49 @@ printEntry: { jmp __b12 // printEntry::@12 __b12: - // [213] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 + // [212] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$10 lda (entry),y tax - // [214] call print_uchar - // [247] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] + // [213] call print_uchar + // [246] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] print_uchar_from___b12: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy jsr print_uchar jmp __b36 // printEntry::@36 __b36: - // [215] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 + // [214] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [216] call print_ln - // [126] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] + // [215] call print_ln + // [125] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] print_ln_from___b36: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy jsr print_ln jmp __b37 // printEntry::@37 __b37: - // [217] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 + // [216] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [218] call print_str - // [119] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] + // [217] call print_str + // [118] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] print_str_from___b37: - // [119] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 lda #<str12 sta.z print_str.str lda #>str12 sta.z print_str.str+1 jsr print_str - // [219] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] + // [218] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] entryTLo1_from___b37: jmp entryTLo1 // printEntry::entryTLo1 @@ -6516,34 +6509,34 @@ printEntry: { jmp __b13 // printEntry::@13 __b13: - // [220] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 + // [219] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$11 lda (entry),y tax - // [221] call print_uchar - // [247] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] + // [220] call print_uchar + // [246] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] print_uchar_from___b13: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy jsr print_uchar jmp __b38 // printEntry::@38 __b38: - // [222] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 + // [221] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 - // [223] call print_ln - // [126] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] + // [222] call print_ln + // [125] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] print_ln_from___b38: - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy jsr print_ln jmp __breturn // printEntry::@return __breturn: - // [224] return + // [223] return rts .segment Data str: .text "bufdisk " @@ -6582,19 +6575,19 @@ printEntry: { keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 - // [226] call keyboard_matrix_read + // [225] call keyboard_matrix_read jsr keyboard_matrix_read - // [227] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 + // [226] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 jmp __b1 // keyboard_key_pressed::@1 __b1: - // [228] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 - // [229] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 + // [227] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 + // [228] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 and keyboard_matrix_col_bitmask+colidx jmp __breturn // keyboard_key_pressed::@return __breturn: - // [230] return + // [229] return rts } // memset @@ -6605,9 +6598,9 @@ memset: { .label str = print_screen .label end = str+num .label dst = $a - // [232] phi from memset to memset::@1 [phi:memset->memset::@1] + // [231] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [232] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [231] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #<str sta.z dst lda #>str @@ -6615,7 +6608,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [233] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 + // [232] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 @@ -6625,32 +6618,32 @@ memset: { jmp __breturn // memset::@return __breturn: - // [234] return + // [233] return rts // memset::@2 __b2: - // [235] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 + // [234] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 lda #c ldy #0 sta (dst),y - // [236] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [235] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [232] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] + // [231] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] __b1_from___b2: - // [232] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy + // [231] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // print_char // Print a single char // print_char(byte register(A) ch) print_char: { - // [238] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa + // [237] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - // [239] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 + // [238] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 @@ -6658,7 +6651,7 @@ print_char: { jmp __breturn // print_char::@return __breturn: - // [240] return + // [239] return rts } // print_uint @@ -6666,69 +6659,69 @@ print_char: { // print_uint(word zp(8) w) print_uint: { .label w = 8 - // [242] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 + // [241] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 ldx.z w+1 - // [243] call print_uchar - // [247] phi from print_uint to print_uchar [phi:print_uint->print_uchar] + // [242] call print_uchar + // [246] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy jsr print_uchar jmp __b1 // print_uint::@1 __b1: - // [244] print_uchar::b#1 = < print_uint::w#5 -- vbuxx=_lo_vwuz1 + // [243] print_uchar::b#1 = < print_uint::w#5 -- vbuxx=_lo_vwuz1 ldx.z w - // [245] call print_uchar - // [247] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] + // [244] call print_uchar + // [246] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: - // [247] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy + // [246] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy jsr print_uchar jmp __breturn // print_uint::@return __breturn: - // [246] return + // [245] return rts } // print_uchar // Print a char as HEX // print_uchar(byte register(X) b) print_uchar: { - // [248] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 + // [247] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - // [249] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa + // [248] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [250] call print_char + // [249] call print_char // Table of hexadecimal digits - // [237] phi from print_uchar to print_char [phi:print_uchar->print_char] + // [236] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: - // [237] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy - // [237] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy + // [236] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy + // [236] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy jsr print_char jmp __b1 // print_uchar::@1 __b1: - // [251] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 + // [250] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 - // [252] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx + // [251] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [253] call print_char - // [237] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] + // [252] call print_char + // [236] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: - // [237] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy - // [237] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy + // [236] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy + // [236] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char jmp __breturn // print_uchar::@return __breturn: - // [254] return + // [253] return rts } // keyboard_matrix_read @@ -6738,16 +6731,16 @@ print_uchar: { // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. keyboard_matrix_read: { - // [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 + // [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx sta CIA1 - // [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff jmp __breturn // keyboard_matrix_read::@return __breturn: - // [257] return + // [256] return rts } // File Data @@ -7147,7 +7140,7 @@ constant byte RADIX::OCTAL = 8 constant const byte SIZEOF_ENTRY = $12 constant byte* files[(word)MAX_FILES*SIZEOF_ENTRY] = { fill( (word)MAX_FILES*SIZEOF_ENTRY, 0) } void initEntry(byte* initEntry::entry , byte initEntry::n) -byte*~ initEntry::$1 zp[2]:8 22.0 +word~ initEntry::$1 zp[2]:8 11.0 byte~ initEntry::$11 reg byte a 22.0 byte~ initEntry::$13 reg byte a 22.0 byte~ initEntry::$15 reg byte a 22.0 @@ -7156,15 +7149,14 @@ byte~ initEntry::$19 reg byte a 22.0 byte~ initEntry::$21 reg byte a 22.0 byte~ initEntry::$23 reg byte a 22.0 byte~ initEntry::$25 reg byte a 22.0 -byte~ initEntry::$26 reg byte a 22.0 -byte*~ initEntry::$3 zp[2]:16 22.0 +word~ initEntry::$3 zp[2]:16 11.0 word~ initEntry::$5 zp[2]:10 22.0 -word*~ initEntry::$7 zp[2]:12 22.0 +word~ initEntry::$7 zp[2]:12 11.0 byte~ initEntry::$9 reg byte a 22.0 byte* initEntry::entry byte* initEntry::entry#0 entry zp[2]:4 4.0 byte* initEntry::entry#1 entry zp[2]:4 4.0 -byte* initEntry::entry#10 entry zp[2]:4 2.3 +byte* initEntry::entry#10 entry zp[2]:4 2.3589743589743586 byte* initEntry::entryBAddrHi1_entry byte* initEntry::entryBAddrHi1_return byte* initEntry::entryBAddrLo1_entry @@ -7192,7 +7184,7 @@ word** initEntry::entryTsOrder1_return byte* initEntry::entryUCross1_entry word* initEntry::entryUCross1_return byte initEntry::n -byte initEntry::n#10 reg byte x 3.6666666666666656 +byte initEntry::n#10 reg byte x 3.7631578947368434 void keyboard_init() byte keyboard_key_pressed(byte keyboard_key_pressed::key) byte~ keyboard_key_pressed::$2 reg byte a 202.0 @@ -7407,7 +7399,6 @@ reg byte a [ main::$22 ] reg byte a [ mul8u::$1 ] zp[2]:8 [ initEntry::$1 print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] zp[2]:10 [ initEntry::$5 print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] -reg byte a [ initEntry::$26 ] zp[2]:12 [ initEntry::$7 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] @@ -7428,7 +7419,7 @@ reg byte a [ keyboard_matrix_read::return#0 ] FINAL ASSEMBLER -Score: 3915 +Score: 3913 // File Comments // Implementing a semi-struct without the struct keyword by using pointer math and inline functions @@ -7559,19 +7550,19 @@ main: { // main::@9 // print_cls() // [17] call print_cls - // [116] phi from main::@9 to print_cls [phi:main::@9->print_cls] + // [115] phi from main::@9 to print_cls [phi:main::@9->print_cls] jsr print_cls // [18] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // print_str("** entry 1 **") // [19] call print_str - // [119] phi from main::@10 to print_str [phi:main::@10->print_str] - // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 + // [118] phi from main::@10 to print_str [phi:main::@10->print_str] + // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@10->print_str#0] -- pbuz1=pbuc1 lda #<print_screen sta.z print_char_cursor lda #>print_screen sta.z print_char_cursor+1 - // [119] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_str::str#21 = main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1 lda #<str sta.z print_str.str lda #>str @@ -7581,9 +7572,9 @@ main: { // main::@11 // print_ln() // [21] call print_ln - // [126] phi from main::@11 to print_ln [phi:main::@11->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 + // [125] phi from main::@11 to print_ln [phi:main::@11->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@11->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@11->print_ln#1] -- pbuz1=pbuc1 lda #<print_screen sta.z print_line_cursor_1 lda #>print_screen @@ -7602,16 +7593,16 @@ main: { sta.z print_char_cursor+1 // print_ln() // [24] call print_ln - // [126] phi from main::@12 to print_ln [phi:main::@12->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy + // [125] phi from main::@12 to print_ln [phi:main::@12->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#227 [phi:main::@12->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#155 [phi:main::@12->print_ln#1] -- register_copy jsr print_ln // main::@13 // printEntry(entry1) // [25] printEntry::entry#0 = main::entry1#0 // [26] call printEntry - // [132] phi from main::@13 to printEntry [phi:main::@13->printEntry] - // [132] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy + // [131] phi from main::@13 to printEntry [phi:main::@13->printEntry] + // [131] phi printEntry::entry#10 = printEntry::entry#0 [phi:main::@13->printEntry#0] -- register_copy jsr printEntry // main::@14 // [27] print_line_cursor#156 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7626,9 +7617,9 @@ main: { sta.z print_char_cursor+1 // print_ln() // [29] call print_ln - // [126] phi from main::@14 to print_ln [phi:main::@14->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy + // [125] phi from main::@14 to print_ln [phi:main::@14->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#228 [phi:main::@14->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#156 [phi:main::@14->print_ln#1] -- register_copy jsr print_ln // main::@15 // [30] print_char_cursor#209 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7638,9 +7629,9 @@ main: { sta.z print_char_cursor+1 // print_str("- press space -") // [31] call print_str - // [119] phi from main::@15 to print_str [phi:main::@15->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy - // [119] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 + // [118] phi from main::@15 to print_str [phi:main::@15->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#209 [phi:main::@15->print_str#0] -- register_copy + // [118] phi print_str::str#21 = main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1 lda #<str1 sta.z print_str.str lda #>str1 @@ -7651,7 +7642,7 @@ main: { __b1: // keyboard_key_pressed(KEY_SPACE) // [33] call keyboard_key_pressed - // [225] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] + // [224] phi from main::@1 to keyboard_key_pressed [phi:main::@1->keyboard_key_pressed] jsr keyboard_key_pressed // keyboard_key_pressed(KEY_SPACE) // [34] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 @@ -7665,19 +7656,19 @@ main: { // main::@2 // print_cls() // [38] call print_cls - // [116] phi from main::@2 to print_cls [phi:main::@2->print_cls] + // [115] phi from main::@2 to print_cls [phi:main::@2->print_cls] jsr print_cls // [39] phi from main::@2 to main::@17 [phi:main::@2->main::@17] // main::@17 // print_str("** entry 2 **") // [40] call print_str - // [119] phi from main::@17 to print_str [phi:main::@17->print_str] - // [119] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 + // [118] phi from main::@17 to print_str [phi:main::@17->print_str] + // [118] phi print_char_cursor#167 = print_screen#0 [phi:main::@17->print_str#0] -- pbuz1=pbuc1 lda #<print_screen sta.z print_char_cursor lda #>print_screen sta.z print_char_cursor+1 - // [119] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 + // [118] phi print_str::str#21 = main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1 lda #<str2 sta.z print_str.str lda #>str2 @@ -7687,9 +7678,9 @@ main: { // main::@18 // print_ln() // [42] call print_ln - // [126] phi from main::@18 to print_ln [phi:main::@18->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 + // [125] phi from main::@18 to print_ln [phi:main::@18->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#1 [phi:main::@18->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_screen#0 [phi:main::@18->print_ln#1] -- pbuz1=pbuc1 lda #<print_screen sta.z print_line_cursor_1 lda #>print_screen @@ -7708,9 +7699,9 @@ main: { sta.z print_char_cursor+1 // print_ln() // [45] call print_ln - // [126] phi from main::@19 to print_ln [phi:main::@19->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy + // [125] phi from main::@19 to print_ln [phi:main::@19->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#230 [phi:main::@19->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#157 [phi:main::@19->print_ln#1] -- register_copy jsr print_ln // main::@20 // printEntry(entry2) @@ -7720,8 +7711,8 @@ main: { lda.z entry2+1 sta.z printEntry.entry+1 // [47] call printEntry - // [132] phi from main::@20 to printEntry [phi:main::@20->printEntry] - // [132] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy + // [131] phi from main::@20 to printEntry [phi:main::@20->printEntry] + // [131] phi printEntry::entry#10 = printEntry::entry#1 [phi:main::@20->printEntry#0] -- register_copy jsr printEntry // main::@21 // [48] print_line_cursor#158 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7736,9 +7727,9 @@ main: { sta.z print_char_cursor+1 // print_ln() // [50] call print_ln - // [126] phi from main::@21 to print_ln [phi:main::@21->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy + // [125] phi from main::@21 to print_ln [phi:main::@21->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#231 [phi:main::@21->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#158 [phi:main::@21->print_ln#1] -- register_copy jsr print_ln // main::@22 // [51] print_char_cursor#210 = print_line_cursor#0 -- pbuz1=pbuz2 @@ -7748,9 +7739,9 @@ main: { sta.z print_char_cursor+1 // print_str("- press space -") // [52] call print_str - // [119] phi from main::@22 to print_str [phi:main::@22->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy - // [119] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 + // [118] phi from main::@22 to print_str [phi:main::@22->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#210 [phi:main::@22->print_str#0] -- register_copy + // [118] phi print_str::str#21 = main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1 lda #<str1 sta.z print_str.str lda #>str1 @@ -7761,7 +7752,7 @@ main: { __b3: // keyboard_key_pressed(KEY_SPACE) // [54] call keyboard_key_pressed - // [225] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] + // [224] phi from main::@3 to keyboard_key_pressed [phi:main::@3->keyboard_key_pressed] jsr keyboard_key_pressed // keyboard_key_pressed(KEY_SPACE) // [55] keyboard_key_pressed::return#3 = keyboard_key_pressed::return#0 @@ -7775,7 +7766,7 @@ main: { // main::@4 // print_cls() // [59] call print_cls - // [116] phi from main::@4 to print_cls [phi:main::@4->print_cls] + // [115] phi from main::@4 to print_cls [phi:main::@4->print_cls] jsr print_cls // main::@return // } @@ -7889,8 +7880,8 @@ initEntry: { // [75] phi from initEntry to initEntry::entryBufDisk1 [phi:initEntry->initEntry::entryBufDisk1] // initEntry::entryBufDisk1 // initEntry::@1 - // (byte*)0x1111+n - // [76] initEntry::$1 = (byte*) 4369 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx + // 0x1111+n + // [76] initEntry::$1 = $1111 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$1111 @@ -7898,8 +7889,8 @@ initEntry: { lda #>$1111 adc #0 sta.z __1+1 - // *entryBufDisk(entry) = (byte*)0x1111+n - // [77] *((byte**)initEntry::entry#10) = initEntry::$1 -- _deref_qbuz1=pbuz2 + // *entryBufDisk(entry) = (byte*)(0x1111+n) + // [77] *((byte**)initEntry::entry#10) = (byte*)initEntry::$1 -- _deref_qbuz1=pbuz2 ldy #0 lda.z __1 sta (entry),y @@ -7909,8 +7900,8 @@ initEntry: { // [78] phi from initEntry::@1 to initEntry::entryBufEdit1 [phi:initEntry::@1->initEntry::entryBufEdit1] // initEntry::entryBufEdit1 // initEntry::@2 - // (byte*)0x2222+n - // [79] initEntry::$3 = (byte*) 8738 + initEntry::n#10 -- pbuz1=pbuc1_plus_vbuxx + // 0x2222+n + // [79] initEntry::$3 = $2222 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$2222 @@ -7918,8 +7909,8 @@ initEntry: { lda #>$2222 adc #0 sta.z __3+1 - // *entryBufEdit(entry) = (byte*)0x2222+n - // [80] ((byte**)initEntry::entry#10)[2] = initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 + // *entryBufEdit(entry) = (byte*)(0x2222+n) + // [80] ((byte**)initEntry::entry#10)[2] = (byte*)initEntry::$3 -- qbuz1_derefidx_vbuc1=pbuz2 ldy #2 lda.z __3 sta (entry),y @@ -7949,78 +7940,76 @@ initEntry: { // [84] phi from initEntry::@3 to initEntry::entryTsOrder1 [phi:initEntry::@3->initEntry::entryTsOrder1] // initEntry::entryTsOrder1 // initEntry::@4 - // (word*)0x4444+n - // [85] initEntry::$26 = initEntry::n#10 << 1 -- vbuaa=vbuxx_rol_1 + // 0x4444+n + // [85] initEntry::$7 = $4444 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa - asl - // [86] initEntry::$7 = (word*) 17476 + initEntry::$26 -- pwuz1=pwuc1_plus_vbuaa clc adc #<$4444 sta.z __7 lda #>$4444 adc #0 sta.z __7+1 - // *entryTsOrder(entry) = (word*)0x4444+n - // [87] ((word**)initEntry::entry#10)[6] = initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 + // *entryTsOrder(entry) = (word*)(0x4444+n) + // [86] ((word**)initEntry::entry#10)[6] = (word*)initEntry::$7 -- qwuz1_derefidx_vbuc1=pwuz2 ldy #6 lda.z __7 sta (entry),y iny lda.z __7+1 sta (entry),y - // [88] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] + // [87] phi from initEntry::@4 to initEntry::entryTLastLink1 [phi:initEntry::@4->initEntry::entryTLastLink1] // initEntry::entryTLastLink1 // initEntry::@5 // 0x55+n - // [89] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [88] initEntry::$9 = $55 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$55 // *entryTLastLink(entry) = 0x55+n - // [90] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa + // [89] initEntry::entry#10[8] = initEntry::$9 -- pbuz1_derefidx_vbuc1=vbuaa ldy #8 sta (entry),y - // [91] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] + // [90] phi from initEntry::@5 to initEntry::entrySLastLink1 [phi:initEntry::@5->initEntry::entrySLastLink1] // initEntry::entrySLastLink1 // initEntry::@6 // 0x66+n - // [92] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [91] initEntry::$11 = $66 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$66 // *entrySLastLink(entry) = 0x66+n - // [93] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa + // [92] initEntry::entry#10[9] = initEntry::$11 -- pbuz1_derefidx_vbuc1=vbuaa ldy #9 sta (entry),y - // [94] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] + // [93] phi from initEntry::@6 to initEntry::entryBFlag1 [phi:initEntry::@6->initEntry::entryBFlag1] // initEntry::entryBFlag1 // initEntry::@7 // 0x77+n - // [95] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [94] initEntry::$13 = $77 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$77 // *entryBFlag(entry) = 0x77+n - // [96] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa + // [95] initEntry::entry#10[$a] = initEntry::$13 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$a sta (entry),y - // [97] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] + // [96] phi from initEntry::@7 to initEntry::entryBError1 [phi:initEntry::@7->initEntry::entryBError1] // initEntry::entryBError1 // initEntry::@8 // 0x88+n - // [98] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [97] initEntry::$15 = $88 + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$88 // *entryBError(entry) = 0x88+n - // [99] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa + // [98] initEntry::entry#10[$b] = initEntry::$15 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$b sta (entry),y - // [100] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] + // [99] phi from initEntry::@8 to initEntry::entryUCross1 [phi:initEntry::@8->initEntry::entryUCross1] // initEntry::entryUCross1 // initEntry::@9 // 0x9999+n - // [101] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx + // [100] initEntry::$17 = $9999 + initEntry::n#10 -- vwuz1=vwuc1_plus_vbuxx txa clc adc #<$9999 @@ -8029,76 +8018,76 @@ initEntry: { adc #0 sta.z __17+1 // *entryUCross(entry) = 0x9999+n - // [102] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 + // [101] ((word*)initEntry::entry#10)[$c] = initEntry::$17 -- pwuz1_derefidx_vbuc1=vwuz2 ldy #$c lda.z __17 sta (entry),y iny lda.z __17+1 sta (entry),y - // [103] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] + // [102] phi from initEntry::@9 to initEntry::entryBAddrLo1 [phi:initEntry::@9->initEntry::entryBAddrLo1] // initEntry::entryBAddrLo1 // initEntry::@10 // 0xaa+n - // [104] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [103] initEntry::$19 = $aa + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$aa // *entryBAddrLo(entry) = 0xaa+n - // [105] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa + // [104] initEntry::entry#10[$e] = initEntry::$19 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$e sta (entry),y - // [106] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] + // [105] phi from initEntry::@10 to initEntry::entryBAddrHi1 [phi:initEntry::@10->initEntry::entryBAddrHi1] // initEntry::entryBAddrHi1 // initEntry::@11 // 0xbb+n - // [107] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [106] initEntry::$21 = $bb + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$bb // *entryBAddrHi(entry) = 0xbb+n - // [108] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa + // [107] initEntry::entry#10[$f] = initEntry::$21 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$f sta (entry),y - // [109] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] + // [108] phi from initEntry::@11 to initEntry::entryTHi1 [phi:initEntry::@11->initEntry::entryTHi1] // initEntry::entryTHi1 // initEntry::@12 // 0xcc+n - // [110] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [109] initEntry::$23 = $cc + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$cc // *entryTHi(entry) = 0xcc+n - // [111] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa + // [110] initEntry::entry#10[$10] = initEntry::$23 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$10 sta (entry),y - // [112] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] + // [111] phi from initEntry::@12 to initEntry::entryTLo1 [phi:initEntry::@12->initEntry::entryTLo1] // initEntry::entryTLo1 // initEntry::@13 // 0xdd+n - // [113] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx + // [112] initEntry::$25 = $dd + initEntry::n#10 -- vbuaa=vbuc1_plus_vbuxx txa clc adc #$dd // *entryTLo(entry) = 0xdd+n - // [114] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa + // [113] initEntry::entry#10[$11] = initEntry::$25 -- pbuz1_derefidx_vbuc1=vbuaa ldy #$11 sta (entry),y // initEntry::@return // } - // [115] return + // [114] return rts } // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [117] call memset - // [231] phi from print_cls to memset [phi:print_cls->memset] + // [116] call memset + // [230] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return // } - // [118] return + // [117] return rts } // print_str @@ -8106,35 +8095,35 @@ print_cls: { // print_str(byte* zp(4) str) print_str: { .label str = 4 - // [120] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] - // [120] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy - // [120] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy + // [119] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] + // [119] phi print_char_cursor#1 = print_char_cursor#167 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy + // [119] phi print_str::str#18 = print_str::str#21 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy // print_str::@1 __b1: // while(*str) - // [121] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 + // [120] if(0!=*print_str::str#18) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // print_str::@return // } - // [122] return + // [121] return rts // print_str::@2 __b2: // print_char(*(str++)) - // [123] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 + // [122] print_char::ch#0 = *print_str::str#18 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [124] call print_char - // [237] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] - // [237] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy - // [237] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy + // [123] call print_char + // [236] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] + // [236] phi print_char_cursor#83 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy + // [236] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy jsr print_char // print_str::@3 // print_char(*(str++)); - // [125] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 + // [124] print_str::str#0 = ++ print_str::str#18 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 @@ -8144,12 +8133,12 @@ print_str: { // print_ln // Print a newline print_ln: { - // [127] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] - // [127] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy + // [126] phi from print_ln print_ln::@2 to print_ln::@1 [phi:print_ln/print_ln::@2->print_ln::@1] + // [126] phi print_line_cursor#33 = print_line_cursor#65 [phi:print_ln/print_ln::@2->print_ln::@1#0] -- register_copy // print_ln::@1 __b1: // print_line_cursor + $28 - // [128] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [127] print_line_cursor#0 = print_line_cursor#33 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z print_line_cursor_1 @@ -8158,7 +8147,7 @@ print_ln: { adc.z print_line_cursor_1+1 sta.z print_line_cursor+1 // while (print_line_cursor<print_char_cursor) - // [129] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 + // [128] if(print_line_cursor#0<print_char_cursor#146) goto print_ln::@2 -- pbuz1_lt_pbuz2_then_la1 cmp.z print_char_cursor+1 bcc __b2 bne !+ @@ -8168,11 +8157,11 @@ print_ln: { !: // print_ln::@return // } - // [130] return + // [129] return rts // print_ln::@2 __b2: - // [131] print_line_cursor#173 = print_line_cursor#0 -- pbuz1=pbuz2 + // [130] print_line_cursor#173 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 @@ -8184,25 +8173,25 @@ print_ln: { // printEntry(byte* zp(6) entry) printEntry: { .label entry = 6 - // [133] print_char_cursor#211 = print_line_cursor#0 -- pbuz1=pbuz2 + // [132] print_char_cursor#211 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("bufdisk ") - // [134] call print_str - // [119] phi from printEntry to print_str [phi:printEntry->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 + // [133] call print_str + // [118] phi from printEntry to print_str [phi:printEntry->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#211 [phi:printEntry->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1 lda #<str sta.z print_str.str lda #>str sta.z print_str.str+1 jsr print_str - // [135] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] + // [134] phi from printEntry to printEntry::entryBufDisk1 [phi:printEntry->printEntry::entryBufDisk1] // printEntry::entryBufDisk1 // printEntry::@1 - // [136] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 + // [135] print_uint::w#7 = (word)*((byte**)printEntry::entry#10) -- vwuz1=_deref_pwuz2 ldy #0 lda (entry),y sta.z print_uint.w @@ -8210,42 +8199,42 @@ printEntry: { lda (entry),y sta.z print_uint.w+1 // print_uint((word)*entryBufDisk(entry)) - // [137] call print_uint - // [241] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] - // [241] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy + // [136] call print_uint + // [240] phi from printEntry::@1 to print_uint [phi:printEntry::@1->print_uint] + // [240] phi print_uint::w#5 = print_uint::w#7 [phi:printEntry::@1->print_uint#0] -- register_copy jsr print_uint // printEntry::@14 - // [138] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 + // [137] print_line_cursor#159 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [139] call print_ln - // [126] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy + // [138] call print_ln + // [125] phi from printEntry::@14 to print_ln [phi:printEntry::@14->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@14->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#159 [phi:printEntry::@14->print_ln#1] -- register_copy jsr print_ln // printEntry::@15 - // [140] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 + // [139] print_char_cursor#212 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("bufedit ") - // [141] call print_str - // [119] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 + // [140] call print_str + // [118] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#212 [phi:printEntry::@15->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1 lda #<str1 sta.z print_str.str lda #>str1 sta.z print_str.str+1 jsr print_str - // [142] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] + // [141] phi from printEntry::@15 to printEntry::entryBufEdit1 [phi:printEntry::@15->printEntry::entryBufEdit1] // printEntry::entryBufEdit1 // printEntry::@2 - // [143] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 + // [142] print_uint::w#8 = (word)((byte**)printEntry::entry#10)[2] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #2 lda (entry),y sta.z print_uint.w @@ -8253,85 +8242,85 @@ printEntry: { lda (entry),y sta.z print_uint.w+1 // print_uint((word)*entryBufEdit(entry)) - // [144] call print_uint - // [241] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] - // [241] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy + // [143] call print_uint + // [240] phi from printEntry::@2 to print_uint [phi:printEntry::@2->print_uint] + // [240] phi print_uint::w#5 = print_uint::w#8 [phi:printEntry::@2->print_uint#0] -- register_copy jsr print_uint // printEntry::@16 - // [145] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 + // [144] print_line_cursor#160 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [146] call print_ln - // [126] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy + // [145] call print_ln + // [125] phi from printEntry::@16 to print_ln [phi:printEntry::@16->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@16->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#160 [phi:printEntry::@16->print_ln#1] -- register_copy jsr print_ln // printEntry::@17 - // [147] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 + // [146] print_char_cursor#213 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tslen ") - // [148] call print_str - // [119] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 + // [147] call print_str + // [118] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#213 [phi:printEntry::@17->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1 lda #<str2 sta.z print_str.str lda #>str2 sta.z print_str.str+1 jsr print_str - // [149] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] + // [148] phi from printEntry::@17 to printEntry::entryTsLen1 [phi:printEntry::@17->printEntry::entryTsLen1] // printEntry::entryTsLen1 // printEntry::@3 // print_uint(*entryTsLen(entry)) - // [150] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 + // [149] print_uint::w#2 = ((word*)printEntry::entry#10)[4] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #4 lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [151] call print_uint - // [241] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] - // [241] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy + // [150] call print_uint + // [240] phi from printEntry::@3 to print_uint [phi:printEntry::@3->print_uint] + // [240] phi print_uint::w#5 = print_uint::w#2 [phi:printEntry::@3->print_uint#0] -- register_copy jsr print_uint // printEntry::@18 - // [152] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 + // [151] print_line_cursor#161 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [153] call print_ln - // [126] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy + // [152] call print_ln + // [125] phi from printEntry::@18 to print_ln [phi:printEntry::@18->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@18->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#161 [phi:printEntry::@18->print_ln#1] -- register_copy jsr print_ln // printEntry::@19 - // [154] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 + // [153] print_char_cursor#214 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tsorder ") - // [155] call print_str - // [119] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 + // [154] call print_str + // [118] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#214 [phi:printEntry::@19->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1 lda #<str3 sta.z print_str.str lda #>str3 sta.z print_str.str+1 jsr print_str - // [156] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] + // [155] phi from printEntry::@19 to printEntry::entryTsOrder1 [phi:printEntry::@19->printEntry::entryTsOrder1] // printEntry::entryTsOrder1 // printEntry::@4 - // [157] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 + // [156] print_uint::w#10 = (word)((word**)printEntry::entry#10)[6] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #6 lda (entry),y sta.z print_uint.w @@ -8339,396 +8328,396 @@ printEntry: { lda (entry),y sta.z print_uint.w+1 // print_uint((word)*entryTsOrder(entry)) - // [158] call print_uint - // [241] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] - // [241] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy + // [157] call print_uint + // [240] phi from printEntry::@4 to print_uint [phi:printEntry::@4->print_uint] + // [240] phi print_uint::w#5 = print_uint::w#10 [phi:printEntry::@4->print_uint#0] -- register_copy jsr print_uint // printEntry::@20 - // [159] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 + // [158] print_line_cursor#162 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [160] call print_ln - // [126] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy + // [159] call print_ln + // [125] phi from printEntry::@20 to print_ln [phi:printEntry::@20->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@20->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#162 [phi:printEntry::@20->print_ln#1] -- register_copy jsr print_ln // printEntry::@21 - // [161] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 + // [160] print_char_cursor#215 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tlastlink ") - // [162] call print_str - // [119] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 + // [161] call print_str + // [118] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#215 [phi:printEntry::@21->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1 lda #<str4 sta.z print_str.str lda #>str4 sta.z print_str.str+1 jsr print_str - // [163] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] + // [162] phi from printEntry::@21 to printEntry::entryTLastLink1 [phi:printEntry::@21->printEntry::entryTLastLink1] // printEntry::entryTLastLink1 // printEntry::@5 // print_uchar(*entryTLastLink(entry)) - // [164] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 + // [163] print_uchar::b#2 = printEntry::entry#10[8] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #8 lda (entry),y tax - // [165] call print_uchar - // [247] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy + // [164] call print_uchar + // [246] phi from printEntry::@5 to print_uchar [phi:printEntry::@5->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@5->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#2 [phi:printEntry::@5->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@22 - // [166] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 + // [165] print_line_cursor#163 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [167] call print_ln - // [126] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy + // [166] call print_ln + // [125] phi from printEntry::@22 to print_ln [phi:printEntry::@22->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@22->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#163 [phi:printEntry::@22->print_ln#1] -- register_copy jsr print_ln // printEntry::@23 - // [168] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 + // [167] print_char_cursor#216 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("slastlink ") - // [169] call print_str - // [119] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 + // [168] call print_str + // [118] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#216 [phi:printEntry::@23->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1 lda #<str5 sta.z print_str.str lda #>str5 sta.z print_str.str+1 jsr print_str - // [170] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] + // [169] phi from printEntry::@23 to printEntry::entrySLastLink1 [phi:printEntry::@23->printEntry::entrySLastLink1] // printEntry::entrySLastLink1 // printEntry::@6 // print_uchar(*entrySLastLink(entry)) - // [171] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 + // [170] print_uchar::b#3 = printEntry::entry#10[9] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #9 lda (entry),y tax - // [172] call print_uchar - // [247] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy + // [171] call print_uchar + // [246] phi from printEntry::@6 to print_uchar [phi:printEntry::@6->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@6->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#3 [phi:printEntry::@6->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@24 - // [173] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 + // [172] print_line_cursor#164 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [174] call print_ln - // [126] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy + // [173] call print_ln + // [125] phi from printEntry::@24 to print_ln [phi:printEntry::@24->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@24->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#164 [phi:printEntry::@24->print_ln#1] -- register_copy jsr print_ln // printEntry::@25 - // [175] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 + // [174] print_char_cursor#217 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("bflag ") - // [176] call print_str - // [119] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 + // [175] call print_str + // [118] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#217 [phi:printEntry::@25->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1 lda #<str6 sta.z print_str.str lda #>str6 sta.z print_str.str+1 jsr print_str - // [177] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] + // [176] phi from printEntry::@25 to printEntry::entryBFlag1 [phi:printEntry::@25->printEntry::entryBFlag1] // printEntry::entryBFlag1 // printEntry::@7 // print_uchar(*entryBFlag(entry)) - // [178] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 + // [177] print_uchar::b#4 = printEntry::entry#10[$a] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$a lda (entry),y tax - // [179] call print_uchar - // [247] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy + // [178] call print_uchar + // [246] phi from printEntry::@7 to print_uchar [phi:printEntry::@7->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@7->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#4 [phi:printEntry::@7->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@26 - // [180] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 + // [179] print_line_cursor#165 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [181] call print_ln - // [126] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy + // [180] call print_ln + // [125] phi from printEntry::@26 to print_ln [phi:printEntry::@26->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@26->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#165 [phi:printEntry::@26->print_ln#1] -- register_copy jsr print_ln // printEntry::@27 - // [182] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 + // [181] print_char_cursor#218 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("berror ") - // [183] call print_str - // [119] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 + // [182] call print_str + // [118] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#218 [phi:printEntry::@27->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1 lda #<str7 sta.z print_str.str lda #>str7 sta.z print_str.str+1 jsr print_str - // [184] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] + // [183] phi from printEntry::@27 to printEntry::entryBError1 [phi:printEntry::@27->printEntry::entryBError1] // printEntry::entryBError1 // printEntry::@8 // print_uchar(*entryBError(entry)) - // [185] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 + // [184] print_uchar::b#5 = printEntry::entry#10[$b] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$b lda (entry),y tax - // [186] call print_uchar - // [247] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy + // [185] call print_uchar + // [246] phi from printEntry::@8 to print_uchar [phi:printEntry::@8->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@8->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#5 [phi:printEntry::@8->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@28 - // [187] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 + // [186] print_line_cursor#166 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [188] call print_ln - // [126] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy + // [187] call print_ln + // [125] phi from printEntry::@28 to print_ln [phi:printEntry::@28->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@28->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#166 [phi:printEntry::@28->print_ln#1] -- register_copy jsr print_ln // printEntry::@29 - // [189] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 + // [188] print_char_cursor#219 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("ucross ") - // [190] call print_str - // [119] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 + // [189] call print_str + // [118] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#219 [phi:printEntry::@29->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1 lda #<str8 sta.z print_str.str lda #>str8 sta.z print_str.str+1 jsr print_str - // [191] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] + // [190] phi from printEntry::@29 to printEntry::entryUCross1 [phi:printEntry::@29->printEntry::entryUCross1] // printEntry::entryUCross1 // printEntry::@9 // print_uint(*entryUCross(entry)) - // [192] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 + // [191] print_uint::w#4 = ((word*)printEntry::entry#10)[$c] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #$c lda (entry),y sta.z print_uint.w iny lda (entry),y sta.z print_uint.w+1 - // [193] call print_uint - // [241] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] - // [241] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy + // [192] call print_uint + // [240] phi from printEntry::@9 to print_uint [phi:printEntry::@9->print_uint] + // [240] phi print_uint::w#5 = print_uint::w#4 [phi:printEntry::@9->print_uint#0] -- register_copy jsr print_uint // printEntry::@30 - // [194] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 + // [193] print_line_cursor#167 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [195] call print_ln - // [126] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy + // [194] call print_ln + // [125] phi from printEntry::@30 to print_ln [phi:printEntry::@30->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@30->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#167 [phi:printEntry::@30->print_ln#1] -- register_copy jsr print_ln // printEntry::@31 - // [196] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 + // [195] print_char_cursor#220 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("baddrlo ") - // [197] call print_str - // [119] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 + // [196] call print_str + // [118] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#220 [phi:printEntry::@31->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1 lda #<str9 sta.z print_str.str lda #>str9 sta.z print_str.str+1 jsr print_str - // [198] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] + // [197] phi from printEntry::@31 to printEntry::entryBAddrLo1 [phi:printEntry::@31->printEntry::entryBAddrLo1] // printEntry::entryBAddrLo1 // printEntry::@10 // print_uchar(*entryBAddrLo(entry)) - // [199] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 + // [198] print_uchar::b#6 = printEntry::entry#10[$e] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$e lda (entry),y tax - // [200] call print_uchar - // [247] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy + // [199] call print_uchar + // [246] phi from printEntry::@10 to print_uchar [phi:printEntry::@10->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@10->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#6 [phi:printEntry::@10->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@32 - // [201] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 + // [200] print_line_cursor#168 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [202] call print_ln - // [126] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy + // [201] call print_ln + // [125] phi from printEntry::@32 to print_ln [phi:printEntry::@32->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@32->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#168 [phi:printEntry::@32->print_ln#1] -- register_copy jsr print_ln // printEntry::@33 - // [203] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 + // [202] print_char_cursor#221 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("baddrhi ") - // [204] call print_str - // [119] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 + // [203] call print_str + // [118] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#221 [phi:printEntry::@33->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1 lda #<str10 sta.z print_str.str lda #>str10 sta.z print_str.str+1 jsr print_str - // [205] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] + // [204] phi from printEntry::@33 to printEntry::entryBAddrHi1 [phi:printEntry::@33->printEntry::entryBAddrHi1] // printEntry::entryBAddrHi1 // printEntry::@11 // print_uchar(*entryBAddrHi(entry)) - // [206] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 + // [205] print_uchar::b#7 = printEntry::entry#10[$f] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$f lda (entry),y tax - // [207] call print_uchar - // [247] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy + // [206] call print_uchar + // [246] phi from printEntry::@11 to print_uchar [phi:printEntry::@11->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@11->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#7 [phi:printEntry::@11->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@34 - // [208] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 + // [207] print_line_cursor#169 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [209] call print_ln - // [126] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy + // [208] call print_ln + // [125] phi from printEntry::@34 to print_ln [phi:printEntry::@34->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@34->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#169 [phi:printEntry::@34->print_ln#1] -- register_copy jsr print_ln // printEntry::@35 - // [210] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 + // [209] print_char_cursor#222 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("thi ") - // [211] call print_str - // [119] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 + // [210] call print_str + // [118] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#222 [phi:printEntry::@35->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1 lda #<str11 sta.z print_str.str lda #>str11 sta.z print_str.str+1 jsr print_str - // [212] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] + // [211] phi from printEntry::@35 to printEntry::entryTHi1 [phi:printEntry::@35->printEntry::entryTHi1] // printEntry::entryTHi1 // printEntry::@12 // print_uchar(*entryTHi(entry)) - // [213] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 + // [212] print_uchar::b#8 = printEntry::entry#10[$10] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$10 lda (entry),y tax - // [214] call print_uchar - // [247] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy + // [213] call print_uchar + // [246] phi from printEntry::@12 to print_uchar [phi:printEntry::@12->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@12->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#8 [phi:printEntry::@12->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@36 - // [215] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 + // [214] print_line_cursor#170 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [216] call print_ln - // [126] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy + // [215] call print_ln + // [125] phi from printEntry::@36 to print_ln [phi:printEntry::@36->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@36->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#170 [phi:printEntry::@36->print_ln#1] -- register_copy jsr print_ln // printEntry::@37 - // [217] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 + // [216] print_char_cursor#223 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("tlo ") - // [218] call print_str - // [119] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] - // [119] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy - // [119] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 + // [217] call print_str + // [118] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str] + // [118] phi print_char_cursor#167 = print_char_cursor#223 [phi:printEntry::@37->print_str#0] -- register_copy + // [118] phi print_str::str#21 = printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1 lda #<str12 sta.z print_str.str lda #>str12 sta.z print_str.str+1 jsr print_str - // [219] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] + // [218] phi from printEntry::@37 to printEntry::entryTLo1 [phi:printEntry::@37->printEntry::entryTLo1] // printEntry::entryTLo1 // printEntry::@13 // print_uchar(*entryTLo(entry)) - // [220] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 + // [219] print_uchar::b#9 = printEntry::entry#10[$11] -- vbuxx=pbuz1_derefidx_vbuc1 ldy #$11 lda (entry),y tax - // [221] call print_uchar - // [247] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy + // [220] call print_uchar + // [246] phi from printEntry::@13 to print_uchar [phi:printEntry::@13->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:printEntry::@13->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#9 [phi:printEntry::@13->print_uchar#1] -- register_copy jsr print_uchar // printEntry::@38 - // [222] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 + // [221] print_line_cursor#171 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_line_cursor_1 lda.z print_line_cursor+1 sta.z print_line_cursor_1+1 // print_ln() - // [223] call print_ln - // [126] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] - // [126] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy - // [126] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy + // [222] call print_ln + // [125] phi from printEntry::@38 to print_ln [phi:printEntry::@38->print_ln] + // [125] phi print_char_cursor#146 = print_char_cursor#10 [phi:printEntry::@38->print_ln#0] -- register_copy + // [125] phi print_line_cursor#65 = print_line_cursor#171 [phi:printEntry::@38->print_ln#1] -- register_copy jsr print_ln // printEntry::@return // } - // [224] return + // [223] return rts .segment Data str: .text "bufdisk " @@ -8768,17 +8757,17 @@ keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 // keyboard_matrix_read(rowidx) - // [226] call keyboard_matrix_read + // [225] call keyboard_matrix_read jsr keyboard_matrix_read - // [227] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 + // [226] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 // keyboard_key_pressed::@1 - // [228] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 + // [227] keyboard_key_pressed::$2 = keyboard_matrix_read::return#2 // keyboard_matrix_read(rowidx) & keyboard_matrix_col_bitmask[colidx] - // [229] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 + // [228] keyboard_key_pressed::return#0 = keyboard_key_pressed::$2 & *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) -- vbuaa=vbuaa_band__deref_pbuc1 and keyboard_matrix_col_bitmask+colidx // keyboard_key_pressed::@return // } - // [230] return + // [229] return rts } // memset @@ -8789,8 +8778,8 @@ memset: { .label str = print_screen .label end = str+num .label dst = $a - // [232] phi from memset to memset::@1 [phi:memset->memset::@1] - // [232] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [231] phi from memset to memset::@1 [phi:memset->memset::@1] + // [231] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #<str sta.z dst lda #>str @@ -8798,7 +8787,7 @@ memset: { // memset::@1 __b1: // for(char* dst = str; dst!=end; dst++) - // [233] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 + // [232] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 @@ -8807,23 +8796,23 @@ memset: { bne __b2 // memset::@return // } - // [234] return + // [233] return rts // memset::@2 __b2: // *dst = c - // [235] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 + // [234] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1 lda #c ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [236] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 + // [235] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [232] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] - // [232] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy + // [231] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1] + // [231] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // print_char @@ -8831,18 +8820,18 @@ memset: { // print_char(byte register(A) ch) print_char: { // *(print_char_cursor++) = ch - // [238] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa + // [237] *print_char_cursor#83 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y // *(print_char_cursor++) = ch; - // [239] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 + // [238] print_char_cursor#10 = ++ print_char_cursor#83 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 !: // print_char::@return // } - // [240] return + // [239] return rts } // print_uint @@ -8851,25 +8840,25 @@ print_char: { print_uint: { .label w = 8 // print_uchar(>w) - // [242] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 + // [241] print_uchar::b#0 = > print_uint::w#5 -- vbuxx=_hi_vwuz1 ldx.z w+1 - // [243] call print_uchar - // [247] phi from print_uint to print_uchar [phi:print_uint->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy + // [242] call print_uchar + // [246] phi from print_uint to print_uchar [phi:print_uint->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy jsr print_uchar // print_uint::@1 // print_uchar(<w) - // [244] print_uchar::b#1 = < print_uint::w#5 -- vbuxx=_lo_vwuz1 + // [243] print_uchar::b#1 = < print_uint::w#5 -- vbuxx=_lo_vwuz1 ldx.z w - // [245] call print_uchar - // [247] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] - // [247] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy - // [247] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy + // [244] call print_uchar + // [246] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] + // [246] phi print_char_cursor#148 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy + // [246] phi print_uchar::b#10 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy jsr print_uchar // print_uint::@return // } - // [246] return + // [245] return rts } // print_uchar @@ -8877,38 +8866,38 @@ print_uint: { // print_uchar(byte register(X) b) print_uchar: { // b>>4 - // [248] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 + // [247] print_uchar::$0 = print_uchar::b#10 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // print_char(print_hextab[b>>4]) - // [249] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa + // [248] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [250] call print_char + // [249] call print_char // Table of hexadecimal digits - // [237] phi from print_uchar to print_char [phi:print_uchar->print_char] - // [237] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy - // [237] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy + // [236] phi from print_uchar to print_char [phi:print_uchar->print_char] + // [236] phi print_char_cursor#83 = print_char_cursor#148 [phi:print_uchar->print_char#0] -- register_copy + // [236] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar->print_char#1] -- register_copy jsr print_char // print_uchar::@1 // b&$f - // [251] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 + // [250] print_uchar::$2 = print_uchar::b#10 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 // print_char(print_hextab[b&$f]) - // [252] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx + // [251] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [253] call print_char - // [237] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] - // [237] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy - // [237] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy + // [252] call print_char + // [236] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] + // [236] phi print_char_cursor#83 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy + // [236] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char // print_uchar::@return // } - // [254] return + // [253] return rts } // keyboard_matrix_read @@ -8919,16 +8908,16 @@ print_uchar: { // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] - // [255] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 + // [254] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx sta CIA1 // ~CIA1->PORT_B - // [256] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [255] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff // keyboard_matrix_read::@return // } - // [257] return + // [256] return rts } // File Data diff --git a/src/test/ref/semi-struct-2.sym b/src/test/ref/semi-struct-2.sym index 4336b6d14..bc9a56edf 100644 --- a/src/test/ref/semi-struct-2.sym +++ b/src/test/ref/semi-struct-2.sym @@ -11,7 +11,7 @@ constant byte RADIX::OCTAL = 8 constant const byte SIZEOF_ENTRY = $12 constant byte* files[(word)MAX_FILES*SIZEOF_ENTRY] = { fill( (word)MAX_FILES*SIZEOF_ENTRY, 0) } void initEntry(byte* initEntry::entry , byte initEntry::n) -byte*~ initEntry::$1 zp[2]:8 22.0 +word~ initEntry::$1 zp[2]:8 11.0 byte~ initEntry::$11 reg byte a 22.0 byte~ initEntry::$13 reg byte a 22.0 byte~ initEntry::$15 reg byte a 22.0 @@ -20,15 +20,14 @@ byte~ initEntry::$19 reg byte a 22.0 byte~ initEntry::$21 reg byte a 22.0 byte~ initEntry::$23 reg byte a 22.0 byte~ initEntry::$25 reg byte a 22.0 -byte~ initEntry::$26 reg byte a 22.0 -byte*~ initEntry::$3 zp[2]:16 22.0 +word~ initEntry::$3 zp[2]:16 11.0 word~ initEntry::$5 zp[2]:10 22.0 -word*~ initEntry::$7 zp[2]:12 22.0 +word~ initEntry::$7 zp[2]:12 11.0 byte~ initEntry::$9 reg byte a 22.0 byte* initEntry::entry byte* initEntry::entry#0 entry zp[2]:4 4.0 byte* initEntry::entry#1 entry zp[2]:4 4.0 -byte* initEntry::entry#10 entry zp[2]:4 2.3 +byte* initEntry::entry#10 entry zp[2]:4 2.3589743589743586 byte* initEntry::entryBAddrHi1_entry byte* initEntry::entryBAddrHi1_return byte* initEntry::entryBAddrLo1_entry @@ -56,7 +55,7 @@ word** initEntry::entryTsOrder1_return byte* initEntry::entryUCross1_entry word* initEntry::entryUCross1_return byte initEntry::n -byte initEntry::n#10 reg byte x 3.6666666666666656 +byte initEntry::n#10 reg byte x 3.7631578947368434 void keyboard_init() byte keyboard_key_pressed(byte keyboard_key_pressed::key) byte~ keyboard_key_pressed::$2 reg byte a 202.0 @@ -271,7 +270,6 @@ reg byte a [ main::$22 ] reg byte a [ mul8u::$1 ] zp[2]:8 [ initEntry::$1 print_uint::w#5 print_uint::w#7 print_uint::w#8 print_uint::w#2 print_uint::w#10 print_uint::w#4 ] zp[2]:10 [ initEntry::$5 print_char_cursor#83 print_char_cursor#146 print_char_cursor#1 print_char_cursor#167 print_char_cursor#209 print_char_cursor#210 print_char_cursor#211 print_char_cursor#212 print_char_cursor#213 print_char_cursor#214 print_char_cursor#215 print_char_cursor#216 print_char_cursor#217 print_char_cursor#218 print_char_cursor#219 print_char_cursor#220 print_char_cursor#221 print_char_cursor#222 print_char_cursor#223 print_char_cursor#10 print_char_cursor#227 print_char_cursor#228 print_char_cursor#230 print_char_cursor#231 print_char_cursor#148 memset::dst#2 memset::dst#1 ] -reg byte a [ initEntry::$26 ] zp[2]:12 [ initEntry::$7 ] reg byte a [ initEntry::$9 ] reg byte a [ initEntry::$11 ] diff --git a/src/test/ref/sizeof-arrays.asm b/src/test/ref/sizeof-arrays.asm index e590e29eb..46b0ec109 100644 --- a/src/test/ref/sizeof-arrays.asm +++ b/src/test/ref/sizeof-arrays.asm @@ -13,22 +13,22 @@ .segment Code main: { .const sz = 7 - // SCREEN[idx++] = '0'+sizeof(ba)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(ba)/sizeof(byte)) lda #'0'+3*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN - // SCREEN[idx++] = '0'+sizeof(wa)/sizeof(word) + // SCREEN[idx++] = '0'+(char)(sizeof(wa)/sizeof(word)) lda #'0'+3*SIZEOF_WORD/SIZEOF_WORD sta SCREEN+1 - // SCREEN[idx++] = '0'+sizeof(bb)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(bb)/sizeof(byte)) lda #'0'+(sz+2)*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN+2 - // SCREEN[idx++] = '0'+sizeof(wb)/sizeof(word) + // SCREEN[idx++] = '0'+(char)(sizeof(wb)/sizeof(word)) lda #'0'+4*SIZEOF_WORD/SIZEOF_WORD sta SCREEN+3 - // SCREEN[idx++] = '0'+sizeof(sa)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(sa)/sizeof(byte)) lda #'0'+8*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN+4 - // SCREEN[idx++] = '0'+sizeof(sb)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(sb)/sizeof(byte)) lda #'0'+4*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN+5 // } diff --git a/src/test/ref/sizeof-arrays.log b/src/test/ref/sizeof-arrays.log index 96e34467b..d77815728 100644 --- a/src/test/ref/sizeof-arrays.log +++ b/src/test/ref/sizeof-arrays.log @@ -6,32 +6,38 @@ main: scope:[main] from __start main::idx#0 = 0 main::$0 = sizeof main::ba main::$1 = main::$0 / SIZEOF_BYTE - main::$2 = '0' + main::$1 + main::$18 = (byte)main::$1 + main::$2 = '0' + main::$18 SCREEN[main::idx#0] = main::$2 main::idx#1 = ++ main::idx#0 main::$3 = sizeof main::wa main::$4 = main::$3 / SIZEOF_WORD - main::$5 = '0' + main::$4 + main::$19 = (byte)main::$4 + main::$5 = '0' + main::$19 SCREEN[main::idx#1] = main::$5 main::idx#2 = ++ main::idx#1 main::$6 = sizeof main::bb main::$7 = main::$6 / SIZEOF_BYTE - main::$8 = '0' + main::$7 + main::$20 = (byte)main::$7 + main::$8 = '0' + main::$20 SCREEN[main::idx#2] = main::$8 main::idx#3 = ++ main::idx#2 main::$9 = sizeof main::wb main::$10 = main::$9 / SIZEOF_WORD - main::$11 = '0' + main::$10 + main::$21 = (byte)main::$10 + main::$11 = '0' + main::$21 SCREEN[main::idx#3] = main::$11 main::idx#4 = ++ main::idx#3 main::$12 = sizeof main::sa main::$13 = main::$12 / SIZEOF_BYTE - main::$14 = '0' + main::$13 + main::$22 = (byte)main::$13 + main::$14 = '0' + main::$22 SCREEN[main::idx#4] = main::$14 main::idx#5 = ++ main::idx#4 main::$15 = sizeof main::sb main::$16 = main::$15 / SIZEOF_BYTE - main::$17 = '0' + main::$16 + main::$23 = (byte)main::$16 + main::$17 = '0' + main::$23 SCREEN[main::idx#5] = main::$17 main::idx#6 = ++ main::idx#5 to:main::@return @@ -55,24 +61,30 @@ constant byte SIZEOF_BYTE = 1 constant byte SIZEOF_WORD = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$10 +word~ main::$0 +word~ main::$1 +word~ main::$10 byte~ main::$11 -byte~ main::$12 -byte~ main::$13 +word~ main::$12 +word~ main::$13 byte~ main::$14 -byte~ main::$15 -byte~ main::$16 +word~ main::$15 +word~ main::$16 byte~ main::$17 +byte~ main::$18 +byte~ main::$19 byte~ main::$2 -byte~ main::$3 -byte~ main::$4 +byte~ main::$20 +byte~ main::$21 +byte~ main::$22 +byte~ main::$23 +word~ main::$3 +word~ main::$4 byte~ main::$5 -byte~ main::$6 -byte~ main::$7 +word~ main::$6 +word~ main::$7 byte~ main::$8 -byte~ main::$9 +word~ main::$9 constant byte* main::ba[3] = { fill( 3, 0) } constant byte* main::bb[main::sz+2] = { fill( main::sz+2, 0) } byte main::idx @@ -97,11 +109,11 @@ Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [1] main::$0 = sizeof main::ba -Constant right-side identified [6] main::$3 = sizeof main::wa -Constant right-side identified [11] main::$6 = sizeof main::bb -Constant right-side identified [16] main::$9 = sizeof main::wb -Constant right-side identified [21] main::$12 = sizeof main::sa -Constant right-side identified [26] main::$15 = sizeof main::sb +Constant right-side identified [7] main::$3 = sizeof main::wa +Constant right-side identified [13] main::$6 = sizeof main::bb +Constant right-side identified [19] main::$9 = sizeof main::wb +Constant right-side identified [25] main::$12 = sizeof main::sa +Constant right-side identified [31] main::$15 = sizeof main::sb Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#0 = 0 Constant main::$0 = sizeof main::ba @@ -111,9 +123,9 @@ Constant main::$9 = sizeof main::wb Constant main::$12 = sizeof main::sa Constant main::$15 = sizeof main::sb Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero SCREEN in [4] SCREEN[main::idx#0] = main::$2 +Simplifying expression containing zero SCREEN in [5] SCREEN[main::idx#0] = main::$2 Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable main::idx#6 and assignment [23] main::idx#6 = ++ main::idx#5 +Eliminating unused variable main::idx#6 and assignment [29] main::idx#6 = ++ main::idx#5 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -128,12 +140,12 @@ Resolving string sizeof() sizeof main::sa Resolving array sizeof() sizeof main::sb Successful SSA optimization PassNSizeOfSimplification Constant right-side identified [0] main::$1 = main::$0 / SIZEOF_BYTE -Constant right-side identified [3] main::idx#1 = ++ main::idx#0 -Constant right-side identified [4] main::$4 = main::$3 / SIZEOF_WORD -Constant right-side identified [8] main::$7 = main::$6 / SIZEOF_BYTE -Constant right-side identified [12] main::$10 = main::$9 / SIZEOF_WORD -Constant right-side identified [16] main::$13 = main::$12 / SIZEOF_BYTE -Constant right-side identified [20] main::$16 = main::$15 / SIZEOF_BYTE +Constant right-side identified [4] main::idx#1 = ++ main::idx#0 +Constant right-side identified [5] main::$4 = main::$3 / SIZEOF_WORD +Constant right-side identified [10] main::$7 = main::$6 / SIZEOF_BYTE +Constant right-side identified [15] main::$10 = main::$9 / SIZEOF_WORD +Constant right-side identified [20] main::$13 = main::$12 / SIZEOF_BYTE +Constant right-side identified [25] main::$16 = main::$15 / SIZEOF_BYTE Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$1 = main::$0/SIZEOF_BYTE Constant main::idx#1 = ++main::idx#0 @@ -143,6 +155,13 @@ Constant main::$10 = main::$9/SIZEOF_WORD Constant main::$13 = main::$12/SIZEOF_BYTE Constant main::$16 = main::$15/SIZEOF_BYTE Successful SSA optimization Pass2ConstantIdentification +Constant main::$18 = (byte)main::$1 +Constant main::$19 = (byte)main::$4 +Constant main::$20 = (byte)main::$7 +Constant main::$21 = (byte)main::$10 +Constant main::$22 = (byte)main::$13 +Constant main::$23 = (byte)main::$16 +Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant main::ba Eliminating unused constant main::wa Eliminating unused constant main::bb @@ -168,21 +187,21 @@ Finalized unsigned number type (byte) 4 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant right-side identified [0] main::$2 = '0' + main::$1 -Constant right-side identified [2] main::$5 = '0' + main::$4 +Constant right-side identified [0] main::$2 = '0' + main::$18 +Constant right-side identified [2] main::$5 = '0' + main::$19 Constant right-side identified [4] main::idx#2 = ++ main::idx#1 -Constant right-side identified [5] main::$8 = '0' + main::$7 -Constant right-side identified [8] main::$11 = '0' + main::$10 -Constant right-side identified [11] main::$14 = '0' + main::$13 -Constant right-side identified [14] main::$17 = '0' + main::$16 +Constant right-side identified [5] main::$8 = '0' + main::$20 +Constant right-side identified [8] main::$11 = '0' + main::$21 +Constant right-side identified [11] main::$14 = '0' + main::$22 +Constant right-side identified [14] main::$17 = '0' + main::$23 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$2 = '0'+main::$1 -Constant main::$5 = '0'+main::$4 +Constant main::$2 = '0'+main::$18 +Constant main::$5 = '0'+main::$19 Constant main::idx#2 = ++main::idx#1 -Constant main::$8 = '0'+main::$7 -Constant main::$11 = '0'+main::$10 -Constant main::$14 = '0'+main::$13 -Constant main::$17 = '0'+main::$16 +Constant main::$8 = '0'+main::$20 +Constant main::$11 = '0'+main::$21 +Constant main::$14 = '0'+main::$22 +Constant main::$17 = '0'+main::$23 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [3] main::idx#3 = ++ main::idx#2 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -204,28 +223,34 @@ Inlining constant with different constant siblings main::idx#4 Inlining constant with different constant siblings main::idx#5 Constant inlined main::$12 = 8*SIZEOF_BYTE Constant inlined main::$13 = 8*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$14 = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$14 = '0'+(byte)8*SIZEOF_BYTE/SIZEOF_BYTE Constant inlined main::$15 = 4*SIZEOF_BYTE Constant inlined main::$10 = 4*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$11 = '0'+4*SIZEOF_WORD/SIZEOF_WORD +Constant inlined main::$11 = '0'+(byte)4*SIZEOF_WORD/SIZEOF_WORD +Constant inlined main::$16 = 4*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$17 = '0'+(byte)4*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$18 = (byte)3*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$19 = (byte)3*SIZEOF_WORD/SIZEOF_WORD +Constant inlined main::$23 = (byte)4*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$20 = (byte)main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$21 = (byte)4*SIZEOF_WORD/SIZEOF_WORD +Constant inlined main::$22 = (byte)8*SIZEOF_BYTE/SIZEOF_BYTE Constant inlined main::idx#0 = 0 Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 Constant inlined main::$1 = 3*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$16 = 4*SIZEOF_BYTE/SIZEOF_BYTE Constant inlined main::idx#3 = ++++++0 -Constant inlined main::$2 = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$17 = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$2 = '0'+(byte)3*SIZEOF_BYTE/SIZEOF_BYTE Constant inlined main::idx#4 = ++++++++0 Constant inlined main::idx#5 = ++++++++++0 Constant inlined main::$0 = 3*SIZEOF_BYTE -Constant inlined main::$5 = '0'+3*SIZEOF_WORD/SIZEOF_WORD +Constant inlined main::$5 = '0'+(byte)3*SIZEOF_WORD/SIZEOF_WORD Constant inlined main::$6 = main::sz+2*SIZEOF_BYTE Constant inlined main::$3 = 3*SIZEOF_WORD Constant inlined main::$4 = 3*SIZEOF_WORD/SIZEOF_WORD Constant inlined main::$9 = 4*SIZEOF_WORD Constant inlined main::$7 = main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$8 = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$8 = '0'+(byte)main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++0) @@ -244,6 +269,13 @@ Simplifying constant integer increment ++2 Simplifying constant integer increment ++3 Simplifying constant integer increment ++4 Successful SSA optimization Pass2ConstantSimplification +Simplifying constant integer cast 3*SIZEOF_BYTE/SIZEOF_BYTE +Simplifying constant integer cast 3*SIZEOF_WORD/SIZEOF_WORD +Simplifying constant integer cast main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE +Simplifying constant integer cast 4*SIZEOF_WORD/SIZEOF_WORD +Simplifying constant integer cast 8*SIZEOF_BYTE/SIZEOF_BYTE +Simplifying constant integer cast 4*SIZEOF_BYTE/SIZEOF_BYTE +Successful SSA optimization PassNCastSimplification CALL GRAPH Created 0 initial phi equivalence classes @@ -370,27 +402,27 @@ Score: 42 // main main: { .const sz = 7 - // SCREEN[idx++] = '0'+sizeof(ba)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(ba)/sizeof(byte)) // [0] *SCREEN = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 lda #'0'+3*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN - // SCREEN[idx++] = '0'+sizeof(wa)/sizeof(word) + // SCREEN[idx++] = '0'+(char)(sizeof(wa)/sizeof(word)) // [1] *(SCREEN+1) = '0'+3*SIZEOF_WORD/SIZEOF_WORD -- _deref_pbuc1=vbuc2 lda #'0'+3*SIZEOF_WORD/SIZEOF_WORD sta SCREEN+1 - // SCREEN[idx++] = '0'+sizeof(bb)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(bb)/sizeof(byte)) // [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 lda #'0'+(sz+2)*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN+2 - // SCREEN[idx++] = '0'+sizeof(wb)/sizeof(word) + // SCREEN[idx++] = '0'+(char)(sizeof(wb)/sizeof(word)) // [3] *(SCREEN+3) = '0'+4*SIZEOF_WORD/SIZEOF_WORD -- _deref_pbuc1=vbuc2 lda #'0'+4*SIZEOF_WORD/SIZEOF_WORD sta SCREEN+3 - // SCREEN[idx++] = '0'+sizeof(sa)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(sa)/sizeof(byte)) // [4] *(SCREEN+4) = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 lda #'0'+8*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN+4 - // SCREEN[idx++] = '0'+sizeof(sb)/sizeof(byte) + // SCREEN[idx++] = '0'+(char)(sizeof(sb)/sizeof(byte)) // [5] *(SCREEN+5) = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 lda #'0'+4*SIZEOF_BYTE/SIZEOF_BYTE sta SCREEN+5 diff --git a/src/test/ref/sizeof-expr.asm b/src/test/ref/sizeof-expr.asm index 2221cd2dc..8dd639bda 100644 --- a/src/test/ref/sizeof-expr.asm +++ b/src/test/ref/sizeof-expr.asm @@ -14,26 +14,26 @@ .label SCREEN = $400 .segment Code main: { - // SCREEN[idx++] = '0'+sizeof(0) + // SCREEN[idx++] = '0'+(char)sizeof(0) lda #'0'+SIZEOF_NUMBER sta SCREEN - // SCREEN[idx++] = '0'+sizeof(idx) + // SCREEN[idx++] = '0'+(char)sizeof(idx) lda #'0'+SIZEOF_BYTE sta SCREEN+1 - // SCREEN[idx++] = '0'+sizeof(b) + // SCREEN[idx++] = '0'+(char)sizeof(b) sta SCREEN+2 - // SCREEN[idx++] = '0'+sizeof(b*2) + // SCREEN[idx++] = '0'+(char)sizeof(b*2) lda #'0'+SIZEOF_NUMBER sta SCREEN+3 - // SCREEN[idx++] = '0'+sizeof($43ff) + // SCREEN[idx++] = '0'+(char)sizeof($43ff) sta SCREEN+5 - // SCREEN[idx++] = '0'+sizeof(w) + // SCREEN[idx++] = '0'+(char)sizeof(w) lda #'0'+SIZEOF_WORD sta SCREEN+6 - // SCREEN[idx++] = '0'+sizeof(bp) + // SCREEN[idx++] = '0'+(char)sizeof(bp) lda #'0'+SIZEOF_POINTER sta SCREEN+8 - // SCREEN[idx++] = '0'+sizeof(wp) + // SCREEN[idx++] = '0'+(char)sizeof(wp) sta SCREEN+9 // } rts diff --git a/src/test/ref/sizeof-expr.log b/src/test/ref/sizeof-expr.log index 12eceb35b..5788d7627 100644 --- a/src/test/ref/sizeof-expr.log +++ b/src/test/ref/sizeof-expr.log @@ -11,37 +11,45 @@ void main() main: scope:[main] from __start main::idx#0 = 0 main::$0 = sizeof 0 - main::$1 = '0' + main::$0 + main::$17 = (byte)main::$0 + main::$1 = '0' + main::$17 SCREEN[main::idx#0] = main::$1 main::idx#1 = ++ main::idx#0 main::$2 = SIZEOF_BYTE - main::$3 = '0' + main::$2 + main::$18 = (byte)main::$2 + main::$3 = '0' + main::$18 SCREEN[main::idx#1] = main::$3 main::idx#2 = ++ main::idx#1 main::$4 = SIZEOF_BYTE - main::$5 = '0' + main::$4 + main::$19 = (byte)main::$4 + main::$5 = '0' + main::$19 SCREEN[main::idx#2] = main::$5 main::idx#3 = ++ main::idx#2 main::$7 = SIZEOF_NUMBER - main::$8 = '0' + main::$7 + main::$20 = (byte)main::$7 + main::$8 = '0' + main::$20 SCREEN[main::idx#3] = main::$8 main::idx#4 = ++ main::idx#3 main::idx#5 = ++ main::idx#4 main::$9 = sizeof $43ff - main::$10 = '0' + main::$9 + main::$21 = (byte)main::$9 + main::$10 = '0' + main::$21 SCREEN[main::idx#5] = main::$10 main::idx#6 = ++ main::idx#5 main::$11 = SIZEOF_WORD - main::$12 = '0' + main::$11 + main::$22 = (byte)main::$11 + main::$12 = '0' + main::$22 SCREEN[main::idx#6] = main::$12 main::idx#7 = ++ main::idx#6 main::idx#8 = ++ main::idx#7 main::$13 = SIZEOF_POINTER - main::$14 = '0' + main::$13 + main::$23 = (byte)main::$13 + main::$14 = '0' + main::$23 SCREEN[main::idx#8] = main::$14 main::idx#9 = ++ main::idx#8 main::$15 = SIZEOF_POINTER - main::$16 = '0' + main::$15 + main::$24 = (byte)main::$15 + main::$16 = '0' + main::$24 SCREEN[main::idx#9] = main::$16 main::idx#10 = ++ main::idx#9 to:main::@return @@ -67,22 +75,30 @@ constant byte SIZEOF_POINTER = 2 constant byte SIZEOF_WORD = 2 void __start() void main() -byte~ main::$0 +word~ main::$0 byte~ main::$1 byte~ main::$10 -byte~ main::$11 +word~ main::$11 byte~ main::$12 -byte~ main::$13 +word~ main::$13 byte~ main::$14 -byte~ main::$15 +word~ main::$15 byte~ main::$16 -byte~ main::$2 +byte~ main::$17 +byte~ main::$18 +byte~ main::$19 +word~ main::$2 +byte~ main::$20 +byte~ main::$21 +byte~ main::$22 +byte~ main::$23 +byte~ main::$24 byte~ main::$3 -byte~ main::$4 +word~ main::$4 byte~ main::$5 -byte~ main::$7 +word~ main::$7 byte~ main::$8 -byte~ main::$9 +word~ main::$9 byte main::idx byte main::idx#0 byte main::idx#1 @@ -99,7 +115,7 @@ byte main::idx#9 Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification Constant right-side identified [1] main::$0 = sizeof 0 -Constant right-side identified [18] main::$9 = sizeof $43ff +Constant right-side identified [22] main::$9 = sizeof $43ff Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#0 = 0 Constant main::$0 = sizeof 0 @@ -111,7 +127,16 @@ Constant main::$11 = SIZEOF_WORD Constant main::$13 = SIZEOF_POINTER Constant main::$15 = SIZEOF_POINTER Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero SCREEN in [3] SCREEN[main::idx#0] = main::$1 +Constant main::$17 = (byte)main::$0 +Constant main::$18 = (byte)main::$2 +Constant main::$19 = (byte)main::$4 +Constant main::$20 = (byte)main::$7 +Constant main::$21 = (byte)main::$9 +Constant main::$22 = (byte)main::$11 +Constant main::$23 = (byte)main::$13 +Constant main::$24 = (byte)main::$15 +Successful SSA optimization Pass2ConstantIdentification +Simplifying expression containing zero SCREEN in [4] SCREEN[main::idx#0] = main::$1 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable main::idx#10 and assignment [25] main::idx#10 = ++ main::idx#9 Successful SSA optimization PassNEliminateUnusedVars @@ -123,25 +148,25 @@ Successful SSA optimization PassNEliminateEmptyStart Resolving sizeof() sizeof 0 Resolving sizeof() sizeof $43ff Successful SSA optimization PassNSizeOfSimplification -Constant right-side identified [0] main::$1 = '0' + main::$0 +Constant right-side identified [0] main::$1 = '0' + main::$17 Constant right-side identified [2] main::idx#1 = ++ main::idx#0 -Constant right-side identified [3] main::$3 = '0' + main::$2 -Constant right-side identified [6] main::$5 = '0' + main::$4 -Constant right-side identified [9] main::$8 = '0' + main::$7 -Constant right-side identified [13] main::$10 = '0' + main::$9 -Constant right-side identified [16] main::$12 = '0' + main::$11 -Constant right-side identified [20] main::$14 = '0' + main::$13 -Constant right-side identified [23] main::$16 = '0' + main::$15 +Constant right-side identified [3] main::$3 = '0' + main::$18 +Constant right-side identified [6] main::$5 = '0' + main::$19 +Constant right-side identified [9] main::$8 = '0' + main::$20 +Constant right-side identified [13] main::$10 = '0' + main::$21 +Constant right-side identified [16] main::$12 = '0' + main::$22 +Constant right-side identified [20] main::$14 = '0' + main::$23 +Constant right-side identified [23] main::$16 = '0' + main::$24 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$1 = '0'+main::$0 +Constant main::$1 = '0'+main::$17 Constant main::idx#1 = ++main::idx#0 -Constant main::$3 = '0'+main::$2 -Constant main::$5 = '0'+main::$4 -Constant main::$8 = '0'+main::$7 -Constant main::$10 = '0'+main::$9 -Constant main::$12 = '0'+main::$11 -Constant main::$14 = '0'+main::$13 -Constant main::$16 = '0'+main::$15 +Constant main::$3 = '0'+main::$18 +Constant main::$5 = '0'+main::$19 +Constant main::$8 = '0'+main::$20 +Constant main::$10 = '0'+main::$21 +Constant main::$12 = '0'+main::$22 +Constant main::$14 = '0'+main::$23 +Constant main::$16 = '0'+main::$24 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [2] main::idx#2 = ++ main::idx#1 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -185,32 +210,40 @@ Inlining constant with different constant siblings main::idx#6 Inlining constant with different constant siblings main::idx#7 Inlining constant with different constant siblings main::idx#8 Inlining constant with different constant siblings main::idx#9 -Constant inlined main::$12 = '0'+SIZEOF_WORD +Constant inlined main::$12 = '0'+(byte)SIZEOF_WORD Constant inlined main::$13 = SIZEOF_POINTER -Constant inlined main::$14 = '0'+SIZEOF_POINTER +Constant inlined main::$14 = '0'+(byte)SIZEOF_POINTER Constant inlined main::$15 = SIZEOF_POINTER -Constant inlined main::$10 = '0'+SIZEOF_NUMBER +Constant inlined main::$10 = '0'+(byte)SIZEOF_NUMBER Constant inlined main::$11 = SIZEOF_WORD -Constant inlined main::$16 = '0'+SIZEOF_POINTER +Constant inlined main::$16 = '0'+(byte)SIZEOF_POINTER +Constant inlined main::$17 = (byte)SIZEOF_NUMBER +Constant inlined main::$18 = (byte)SIZEOF_BYTE +Constant inlined main::$19 = (byte)SIZEOF_BYTE +Constant inlined main::$23 = (byte)SIZEOF_POINTER +Constant inlined main::$24 = (byte)SIZEOF_POINTER +Constant inlined main::$20 = (byte)SIZEOF_NUMBER +Constant inlined main::$21 = (byte)SIZEOF_NUMBER +Constant inlined main::$22 = (byte)SIZEOF_WORD Constant inlined main::idx#0 = 0 Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 -Constant inlined main::$1 = '0'+SIZEOF_NUMBER +Constant inlined main::$1 = '0'+(byte)SIZEOF_NUMBER Constant inlined main::idx#3 = ++++++0 Constant inlined main::$2 = SIZEOF_BYTE Constant inlined main::idx#4 = ++++++++0 Constant inlined main::idx#5 = ++++++++++0 Constant inlined main::$0 = SIZEOF_NUMBER Constant inlined main::idx#6 = ++++++++++++0 -Constant inlined main::$5 = '0'+SIZEOF_BYTE +Constant inlined main::$5 = '0'+(byte)SIZEOF_BYTE Constant inlined main::idx#7 = ++++++++++++++0 Constant inlined main::idx#8 = ++++++++++++++++0 -Constant inlined main::$3 = '0'+SIZEOF_BYTE +Constant inlined main::$3 = '0'+(byte)SIZEOF_BYTE Constant inlined main::idx#9 = ++++++++++++++++++0 Constant inlined main::$4 = SIZEOF_BYTE Constant inlined main::$9 = SIZEOF_NUMBER Constant inlined main::$7 = SIZEOF_NUMBER -Constant inlined main::$8 = '0'+SIZEOF_NUMBER +Constant inlined main::$8 = '0'+(byte)SIZEOF_NUMBER Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++0) @@ -238,6 +271,15 @@ Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Successful SSA optimization Pass2ConstantSimplification +Simplifying constant integer cast SIZEOF_NUMBER +Simplifying constant integer cast SIZEOF_BYTE +Simplifying constant integer cast SIZEOF_BYTE +Simplifying constant integer cast SIZEOF_NUMBER +Simplifying constant integer cast SIZEOF_NUMBER +Simplifying constant integer cast SIZEOF_WORD +Simplifying constant integer cast SIZEOF_POINTER +Simplifying constant integer cast SIZEOF_POINTER +Successful SSA optimization PassNCastSimplification CALL GRAPH Created 0 initial phi equivalence classes @@ -381,33 +423,33 @@ Score: 48 .segment Code // main main: { - // SCREEN[idx++] = '0'+sizeof(0) + // SCREEN[idx++] = '0'+(char)sizeof(0) // [0] *SCREEN = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_NUMBER sta SCREEN - // SCREEN[idx++] = '0'+sizeof(idx) + // SCREEN[idx++] = '0'+(char)sizeof(idx) // [1] *(SCREEN+1) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_BYTE sta SCREEN+1 - // SCREEN[idx++] = '0'+sizeof(b) + // SCREEN[idx++] = '0'+(char)sizeof(b) // [2] *(SCREEN+2) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 sta SCREEN+2 - // SCREEN[idx++] = '0'+sizeof(b*2) + // SCREEN[idx++] = '0'+(char)sizeof(b*2) // [3] *(SCREEN+3) = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_NUMBER sta SCREEN+3 - // SCREEN[idx++] = '0'+sizeof($43ff) + // SCREEN[idx++] = '0'+(char)sizeof($43ff) // [4] *(SCREEN+5) = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 sta SCREEN+5 - // SCREEN[idx++] = '0'+sizeof(w) + // SCREEN[idx++] = '0'+(char)sizeof(w) // [5] *(SCREEN+6) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_WORD sta SCREEN+6 - // SCREEN[idx++] = '0'+sizeof(bp) + // SCREEN[idx++] = '0'+(char)sizeof(bp) // [6] *(SCREEN+8) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_POINTER sta SCREEN+8 - // SCREEN[idx++] = '0'+sizeof(wp) + // SCREEN[idx++] = '0'+(char)sizeof(wp) // [7] *(SCREEN+9) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 sta SCREEN+9 // main::@return diff --git a/src/test/ref/sizeof-in-const-pointer.log b/src/test/ref/sizeof-in-const-pointer.log index 2d936ad0c..bb1fa48d2 100644 --- a/src/test/ref/sizeof-in-const-pointer.log +++ b/src/test/ref/sizeof-in-const-pointer.log @@ -25,16 +25,15 @@ constant byte SIZEOF_BYTE = 1 void __start() void main() +Adding number conversion cast (unumber) SIZEOF_BYTE*$64 in Adding number conversion cast (unumber) $64 in Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $400 in -Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant integer cast $400 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast SIZEOF_BYTE*(unumber)$64 Simplifying constant integer cast $64 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $400 Finalized unsigned number type (byte) $64 Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions @@ -113,7 +112,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*)$400+SIZEOF_BYTE*$64 +constant byte* const SCREEN = (byte*) 1024+SIZEOF_BYTE*$64 constant byte SIZEOF_BYTE = 1 void main() diff --git a/src/test/ref/sizeof-in-const-pointer.sym b/src/test/ref/sizeof-in-const-pointer.sym index 3cce51e96..80ae1cb14 100644 --- a/src/test/ref/sizeof-in-const-pointer.sym +++ b/src/test/ref/sizeof-in-const-pointer.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*)$400+SIZEOF_BYTE*$64 +constant byte* const SCREEN = (byte*) 1024+SIZEOF_BYTE*$64 constant byte SIZEOF_BYTE = 1 void main() diff --git a/src/test/ref/sizeof-problem.asm b/src/test/ref/sizeof-problem.asm new file mode 100644 index 000000000..93ead59e9 --- /dev/null +++ b/src/test/ref/sizeof-problem.asm @@ -0,0 +1,24 @@ + // Commodore 64 PRG executable file +.file [name="sizeof-problem.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0801] +.segmentdef Code [start=$80d] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(main) + .const SIZEOF_BYTE = 1 +.segment Code +main: { + .const i = $130*SIZEOF_BYTE + .const j = 3*SIZEOF_BYTE + // ARR1[i-1] = 0 + lda #0 + sta ARR1+i-1 + // ARR2[j-1] = 0 + sta ARR2+j-1 + // } + rts +} +.segment Data + ARR1: .fill $130, 0 + ARR2: .byte 1, 2, 3 diff --git a/src/test/ref/sizeof-problem.cfg b/src/test/ref/sizeof-problem.cfg new file mode 100644 index 000000000..c28e75556 --- /dev/null +++ b/src/test/ref/sizeof-problem.cfg @@ -0,0 +1,9 @@ + +void main() +main: scope:[main] from + [0] *(ARR1+main::i#0-1) = 0 + [1] *(ARR2+main::j#0-1) = 0 + to:main::@return +main::@return: scope:[main] from main + [2] return + to:@return diff --git a/src/test/ref/sizeof-problem.log b/src/test/ref/sizeof-problem.log new file mode 100644 index 000000000..3f6dc0f57 --- /dev/null +++ b/src/test/ref/sizeof-problem.log @@ -0,0 +1,242 @@ + +CONTROL FLOW GRAPH SSA + +void main() +main: scope:[main] from __start + main::$0 = sizeof ARR1 + main::i#0 = main::$0 + main::$1 = main::i#0 - 1 + ARR1[main::$1] = 0 + main::$2 = sizeof ARR2 + main::j#0 = (byte)main::$2 + main::$3 = main::j#0 - 1 + ARR2[main::$3] = 0 + to:main::@return +main::@return: scope:[main] from main + return + to:@return + +void __start() +__start: scope:[__start] from + call main + to:__start::@1 +__start::@1: scope:[__start] from __start + to:__start::@return +__start::@return: scope:[__start] from __start::@1 + return + to:@return + +SYMBOL TABLE SSA +constant byte* ARR1[$130] = { fill( $130, 0) } +constant byte* ARR2[] = { 1, 2, 3 } +void __start() +void main() +word~ main::$0 +number~ main::$1 +word~ main::$2 +number~ main::$3 +word main::i +word main::i#0 +byte main::j +byte main::j#0 + +Adding number conversion cast (unumber) 1 in main::$1 = main::i#0 - 1 +Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#0 - (unumber)1 +Adding number conversion cast (unumber) 0 in ARR1[main::$1] = 0 +Adding number conversion cast (unumber) 1 in main::$3 = main::j#0 - 1 +Adding number conversion cast (unumber) main::$3 in main::$3 = main::j#0 - (unumber)1 +Adding number conversion cast (unumber) 0 in ARR2[main::$3] = 0 +Successful SSA optimization PassNAddNumberTypeConversions +Inlining cast ARR1[main::$1] = (unumber)0 +Inlining cast ARR2[main::$3] = (unumber)0 +Successful SSA optimization Pass2InlineCast +Simplifying constant integer cast 1 +Simplifying constant integer cast 0 +Simplifying constant integer cast 1 +Simplifying constant integer cast 0 +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 0 +Successful SSA optimization PassNFinalizeNumberTypeConversions +Inferred type updated to word in main::$1 = main::i#0 - 1 +Inferred type updated to byte in main::$3 = main::j#0 - 1 +Alias main::i#0 = main::$0 +Successful SSA optimization Pass2AliasElimination +Constant right-side identified [0] main::i#0 = sizeof ARR1 +Constant right-side identified [3] main::$2 = sizeof ARR2 +Successful SSA optimization Pass2ConstantRValueConsolidation +Constant main::i#0 = sizeof ARR1 +Constant main::$2 = sizeof ARR2 +Successful SSA optimization Pass2ConstantIdentification +Constant main::j#0 = (byte)main::$2 +Successful SSA optimization Pass2ConstantIdentification +De-inlining pointer[w] to *(pointer+w) [2] ARR1[main::$1] = 0 +Successful SSA optimization Pass2DeInlineWordDerefIdx +Removing unused procedure __start +Removing unused procedure block __start +Removing unused procedure block __start::@1 +Removing unused procedure block __start::@return +Successful SSA optimization PassNEliminateEmptyStart +Resolving array sizeof() sizeof ARR1 +Resolving array sizeof() sizeof ARR2 +Successful SSA optimization PassNSizeOfSimplification +Constant right-side identified [0] main::$1 = main::i#0 - 1 +Constant right-side identified [3] main::$3 = main::j#0 - 1 +Successful SSA optimization Pass2ConstantRValueConsolidation +Constant main::$1 = main::i#0-1 +Constant main::$3 = main::j#0-1 +Successful SSA optimization Pass2ConstantIdentification +Adding number conversion cast (unumber) $130 in +Adding number conversion cast (unumber) 3 in +Successful SSA optimization PassNAddNumberTypeConversions +Simplifying constant integer cast $130 +Simplifying constant integer cast 3 +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (word) $130 +Finalized unsigned number type (byte) 3 +Successful SSA optimization PassNFinalizeNumberTypeConversions +Constant right-side identified [0] main::$4 = ARR1 + main::$1 +Successful SSA optimization Pass2ConstantRValueConsolidation +Constant main::$4 = ARR1+main::$1 +Successful SSA optimization Pass2ConstantIdentification +Constant inlined main::$3 = main::j#0-1 +Constant inlined main::$4 = ARR1+main::i#0-1 +Constant inlined main::$1 = main::i#0-1 +Constant inlined main::$2 = 3*SIZEOF_BYTE +Successful SSA optimization Pass2ConstantInlining +Consolidated array index constant in *(ARR2+main::j#0-1) +Successful SSA optimization Pass2ConstantAdditionElimination +Simplifying constant integer cast 3*SIZEOF_BYTE +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (word) $130 +Finalized unsigned number type (word) $130 +Successful SSA optimization PassNFinalizeNumberTypeConversions +CALL GRAPH + +Created 0 initial phi equivalence classes +Coalesced down to 0 phi equivalence classes + +FINAL CONTROL FLOW GRAPH + +void main() +main: scope:[main] from + [0] *(ARR1+main::i#0-1) = 0 + [1] *(ARR2+main::j#0-1) = 0 + to:main::@return +main::@return: scope:[main] from main + [2] return + to:@return + + +VARIABLE REGISTER WEIGHTS +void main() +word main::i +byte main::j + +Initial phi equivalence classes +Complete equivalence classes +REGISTER UPLIFT POTENTIAL REGISTERS +Statement [0] *(ARR1+main::i#0-1) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(ARR2+main::j#0-1) = 0 [ ] ( [ ] { } ) always clobbers reg byte a + +REGISTER UPLIFT SCOPES +Uplift Scope [main] +Uplift Scope [] + +Uplifting [main] best 21 combination +Uplifting [] best 21 combination + +ASSEMBLER BEFORE OPTIMIZATION + // File Comments + // Upstart + // Commodore 64 PRG executable file +.file [name="sizeof-problem.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0801] +.segmentdef Code [start=$80d] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(main) + // Global Constants & labels + .const SIZEOF_BYTE = 1 +.segment Code + // main +main: { + .const i = $130*SIZEOF_BYTE + .const j = 3*SIZEOF_BYTE + // [0] *(ARR1+main::i#0-1) = 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta ARR1+i-1 + // [1] *(ARR2+main::j#0-1) = 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta ARR2+j-1 + jmp __breturn + // main::@return + __breturn: + // [2] return + rts +} + // File Data +.segment Data + ARR1: .fill $130, 0 + ARR2: .byte 1, 2, 3 + +ASSEMBLER OPTIMIZATIONS +Removing instruction jmp __breturn +Succesful ASM optimization Pass5NextJumpElimination +Removing instruction lda #0 +Succesful ASM optimization Pass5UnnecesaryLoadElimination +Removing instruction __breturn: +Succesful ASM optimization Pass5UnusedLabelElimination + +FINAL SYMBOL TABLE +constant byte* ARR1[$130] = { fill( $130, 0) } +constant byte* ARR2[] = { 1, 2, 3 } +constant byte SIZEOF_BYTE = 1 +void main() +word main::i +constant word main::i#0 i = $130*SIZEOF_BYTE +byte main::j +constant byte main::j#0 j = 3*SIZEOF_BYTE + + + +FINAL ASSEMBLER +Score: 16 + + // File Comments + // Upstart + // Commodore 64 PRG executable file +.file [name="sizeof-problem.prg", type="prg", segments="Program"] +.segmentdef Program [segments="Basic, Code, Data"] +.segmentdef Basic [start=$0801] +.segmentdef Code [start=$80d] +.segmentdef Data [startAfter="Code"] +.segment Basic +:BasicUpstart(main) + // Global Constants & labels + .const SIZEOF_BYTE = 1 +.segment Code + // main +main: { + .const i = $130*SIZEOF_BYTE + .const j = 3*SIZEOF_BYTE + // ARR1[i-1] = 0 + // [0] *(ARR1+main::i#0-1) = 0 -- _deref_pbuc1=vbuc2 + lda #0 + sta ARR1+i-1 + // ARR2[j-1] = 0 + // [1] *(ARR2+main::j#0-1) = 0 -- _deref_pbuc1=vbuc2 + sta ARR2+j-1 + // main::@return + // } + // [2] return + rts +} + // File Data +.segment Data + ARR1: .fill $130, 0 + ARR2: .byte 1, 2, 3 + diff --git a/src/test/ref/sizeof-problem.sym b/src/test/ref/sizeof-problem.sym new file mode 100644 index 000000000..ec6eed6c4 --- /dev/null +++ b/src/test/ref/sizeof-problem.sym @@ -0,0 +1,9 @@ +constant byte* ARR1[$130] = { fill( $130, 0) } +constant byte* ARR2[] = { 1, 2, 3 } +constant byte SIZEOF_BYTE = 1 +void main() +word main::i +constant word main::i#0 i = $130*SIZEOF_BYTE +byte main::j +constant byte main::j#0 j = 3*SIZEOF_BYTE + diff --git a/src/test/ref/sizeof-struct.asm b/src/test/ref/sizeof-struct.asm index a08bc08d5..f6d062eff 100644 --- a/src/test/ref/sizeof-struct.asm +++ b/src/test/ref/sizeof-struct.asm @@ -15,29 +15,29 @@ main: { // Struct Arrays .const NUM_POINTS = 4 .const NUM_CIRCLES = NUM_POINTS-1 - // SCREEN[idx++] = '0'+sizeof(struct Point) + // SCREEN[idx++] = '0'+(char)sizeof(struct Point) // Struct Types lda #'0'+SIZEOF_STRUCT_POINT sta SCREEN - // SCREEN[idx++] = '0'+sizeof(struct Circle) + // SCREEN[idx++] = '0'+(char)sizeof(struct Circle) lda #'0'+SIZEOF_STRUCT_CIRCLE sta SCREEN+1 - // SCREEN[idx++] = '0'+sizeof(p) + // SCREEN[idx++] = '0'+(char)sizeof(p) lda #'0'+SIZEOF_STRUCT_POINT sta SCREEN+3 - // SCREEN[idx++] = '0'+sizeof(c) + // SCREEN[idx++] = '0'+(char)sizeof(c) lda #'0'+SIZEOF_STRUCT_CIRCLE sta SCREEN+4 - // SCREEN[idx++] = '0'+sizeof(points) + // SCREEN[idx++] = '0'+(char)sizeof(points) lda #'0'+NUM_POINTS*SIZEOF_STRUCT_POINT sta SCREEN+6 - // SCREEN[idx++] = '0'+sizeof(points)/sizeof(struct Point) + // SCREEN[idx++] = '0'+(char)(sizeof(points)/sizeof(struct Point)) lda #'0'+NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT sta SCREEN+7 - // SCREEN[idx++] = '0'+sizeof(circles) + // SCREEN[idx++] = '0'+(char)(sizeof(circles)) lda #'0'+NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE sta SCREEN+8 - // SCREEN[idx++] = '0'+sizeof(circles)/sizeof(struct Circle) + // SCREEN[idx++] = '0'+(char)(sizeof(circles)/sizeof(struct Circle)) lda #'0'+NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE sta SCREEN+9 // } diff --git a/src/test/ref/sizeof-struct.log b/src/test/ref/sizeof-struct.log index 44112ba9c..092867097 100644 --- a/src/test/ref/sizeof-struct.log +++ b/src/test/ref/sizeof-struct.log @@ -6,36 +6,42 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::idx#0 = 0 - SCREEN[main::idx#0] = '0'+SIZEOF_STRUCT_POINT + SCREEN[main::idx#0] = '0'+(byte)SIZEOF_STRUCT_POINT main::idx#1 = ++ main::idx#0 - SCREEN[main::idx#1] = '0'+SIZEOF_STRUCT_CIRCLE + SCREEN[main::idx#1] = '0'+(byte)SIZEOF_STRUCT_CIRCLE main::idx#2 = ++ main::idx#1 main::idx#3 = ++ main::idx#2 main::$0 = SIZEOF_STRUCT_POINT - main::$1 = '0' + main::$0 + main::$14 = (byte)main::$0 + main::$1 = '0' + main::$14 SCREEN[main::idx#3] = main::$1 main::idx#4 = ++ main::idx#3 main::$2 = SIZEOF_STRUCT_CIRCLE - main::$3 = '0' + main::$2 + main::$15 = (byte)main::$2 + main::$3 = '0' + main::$15 SCREEN[main::idx#4] = main::$3 main::idx#5 = ++ main::idx#4 main::idx#6 = ++ main::idx#5 main::$4 = sizeof main::points - main::$5 = '0' + main::$4 + main::$16 = (byte)main::$4 + main::$5 = '0' + main::$16 SCREEN[main::idx#6] = main::$5 main::idx#7 = ++ main::idx#6 main::$6 = sizeof main::points main::$7 = main::$6 / SIZEOF_STRUCT_POINT - main::$8 = '0' + main::$7 + main::$17 = (byte)main::$7 + main::$8 = '0' + main::$17 SCREEN[main::idx#7] = main::$8 main::idx#8 = ++ main::idx#7 main::$9 = sizeof main::circles - main::$10 = '0' + main::$9 + main::$18 = (byte)main::$9 + main::$10 = '0' + main::$18 SCREEN[main::idx#8] = main::$10 main::idx#9 = ++ main::idx#8 main::$11 = sizeof main::circles main::$12 = main::$11 / SIZEOF_STRUCT_CIRCLE - main::$13 = '0' + main::$12 + main::$19 = (byte)main::$12 + main::$13 = '0' + main::$19 SCREEN[main::idx#9] = main::$13 main::idx#10 = ++ main::idx#9 to:main::@return @@ -59,20 +65,26 @@ constant byte SIZEOF_STRUCT_CIRCLE = 3 constant byte SIZEOF_STRUCT_POINT = 2 void __start() void main() -byte~ main::$0 +word~ main::$0 byte~ main::$1 byte~ main::$10 -byte~ main::$11 -byte~ main::$12 +word~ main::$11 +word~ main::$12 byte~ main::$13 -byte~ main::$2 +byte~ main::$14 +byte~ main::$15 +byte~ main::$16 +byte~ main::$17 +byte~ main::$18 +byte~ main::$19 +word~ main::$2 byte~ main::$3 -byte~ main::$4 +word~ main::$4 byte~ main::$5 -byte~ main::$6 -byte~ main::$7 +word~ main::$6 +word~ main::$7 byte~ main::$8 -byte~ main::$9 +word~ main::$9 constant const byte main::NUM_CIRCLES = (byte)main::NUM_POINTS-1 constant const byte main::NUM_POINTS = 4 struct Point main::c_center @@ -95,13 +107,15 @@ Adding number conversion cast (unumber) 1 in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 1 +Simplifying constant integer cast SIZEOF_STRUCT_POINT +Simplifying constant integer cast SIZEOF_STRUCT_CIRCLE Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant right-side identified [15] main::$4 = sizeof main::points -Constant right-side identified [19] main::$6 = sizeof main::points -Constant right-side identified [24] main::$9 = sizeof main::circles -Constant right-side identified [28] main::$11 = sizeof main::circles +Constant right-side identified [17] main::$4 = sizeof main::points +Constant right-side identified [22] main::$6 = sizeof main::points +Constant right-side identified [28] main::$9 = sizeof main::circles +Constant right-side identified [33] main::$11 = sizeof main::circles Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#0 = 0 Constant main::$0 = SIZEOF_STRUCT_POINT @@ -111,9 +125,14 @@ Constant main::$6 = sizeof main::points Constant main::$9 = sizeof main::circles Constant main::$11 = sizeof main::circles Successful SSA optimization Pass2ConstantIdentification +Constant main::$14 = (byte)main::$0 +Constant main::$15 = (byte)main::$2 +Constant main::$16 = (byte)main::$4 +Constant main::$18 = (byte)main::$9 +Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [1] SCREEN[main::idx#0] = '0'+SIZEOF_STRUCT_POINT Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable main::idx#10 and assignment [25] main::idx#10 = ++ main::idx#9 +Eliminating unused variable main::idx#10 and assignment [27] main::idx#10 = ++ main::idx#9 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -128,31 +147,34 @@ Resolving array sizeof() sizeof main::circles Resolving array sizeof() sizeof main::circles Successful SSA optimization PassNSizeOfSimplification Constant right-side identified [1] main::idx#1 = ++ main::idx#0 -Constant right-side identified [5] main::$1 = '0' + main::$0 -Constant right-side identified [8] main::$3 = '0' + main::$2 -Constant right-side identified [12] main::$5 = '0' + main::$4 +Constant right-side identified [5] main::$1 = '0' + main::$14 +Constant right-side identified [8] main::$3 = '0' + main::$15 +Constant right-side identified [12] main::$5 = '0' + main::$16 Constant right-side identified [15] main::$7 = main::$6 / SIZEOF_STRUCT_POINT -Constant right-side identified [19] main::$10 = '0' + main::$9 -Constant right-side identified [22] main::$12 = main::$11 / SIZEOF_STRUCT_CIRCLE +Constant right-side identified [20] main::$10 = '0' + main::$18 +Constant right-side identified [23] main::$12 = main::$11 / SIZEOF_STRUCT_CIRCLE Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#1 = ++main::idx#0 -Constant main::$1 = '0'+main::$0 -Constant main::$3 = '0'+main::$2 -Constant main::$5 = '0'+main::$4 +Constant main::$1 = '0'+main::$14 +Constant main::$3 = '0'+main::$15 +Constant main::$5 = '0'+main::$16 Constant main::$7 = main::$6/SIZEOF_STRUCT_POINT -Constant main::$10 = '0'+main::$9 +Constant main::$10 = '0'+main::$18 Constant main::$12 = main::$11/SIZEOF_STRUCT_CIRCLE Successful SSA optimization Pass2ConstantIdentification +Constant main::$17 = (byte)main::$7 +Constant main::$19 = (byte)main::$12 +Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant main::points Eliminating unused constant main::circles Successful SSA optimization PassNEliminateUnusedVars Constant right-side identified [2] main::idx#2 = ++ main::idx#1 -Constant right-side identified [11] main::$8 = '0' + main::$7 -Constant right-side identified [16] main::$13 = '0' + main::$12 +Constant right-side identified [11] main::$8 = '0' + main::$17 +Constant right-side identified [16] main::$13 = '0' + main::$19 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#2 = ++main::idx#1 -Constant main::$8 = '0'+main::$7 -Constant main::$13 = '0'+main::$12 +Constant main::$8 = '0'+main::$17 +Constant main::$13 = '0'+main::$19 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [2] main::idx#3 = ++ main::idx#2 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -193,29 +215,35 @@ Inlining constant with different constant siblings main::idx#7 Inlining constant with different constant siblings main::idx#8 Inlining constant with different constant siblings main::idx#9 Constant inlined main::$12 = main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE -Constant inlined main::$13 = '0'+main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE -Constant inlined main::$10 = '0'+main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$13 = '0'+(byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE +Constant inlined main::$14 = (byte)SIZEOF_STRUCT_POINT +Constant inlined main::$15 = (byte)SIZEOF_STRUCT_CIRCLE +Constant inlined main::$10 = '0'+(byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE Constant inlined main::$11 = main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$16 = (byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT +Constant inlined main::$17 = (byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT +Constant inlined main::$18 = (byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$19 = (byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE Constant inlined main::idx#0 = 0 Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 -Constant inlined main::$1 = '0'+SIZEOF_STRUCT_POINT +Constant inlined main::$1 = '0'+(byte)SIZEOF_STRUCT_POINT Constant inlined main::idx#3 = ++++++0 Constant inlined main::$2 = SIZEOF_STRUCT_CIRCLE Constant inlined main::idx#4 = ++++++++0 Constant inlined main::idx#5 = ++++++++++0 Constant inlined main::$0 = SIZEOF_STRUCT_POINT Constant inlined main::idx#6 = ++++++++++++0 -Constant inlined main::$5 = '0'+main::NUM_POINTS*SIZEOF_STRUCT_POINT +Constant inlined main::$5 = '0'+(byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT Constant inlined main::idx#7 = ++++++++++++++0 Constant inlined main::$6 = main::NUM_POINTS*SIZEOF_STRUCT_POINT Constant inlined main::idx#8 = ++++++++++++++++0 -Constant inlined main::$3 = '0'+SIZEOF_STRUCT_CIRCLE +Constant inlined main::$3 = '0'+(byte)SIZEOF_STRUCT_CIRCLE Constant inlined main::idx#9 = ++++++++++++++++++0 Constant inlined main::$4 = main::NUM_POINTS*SIZEOF_STRUCT_POINT Constant inlined main::$9 = main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE Constant inlined main::$7 = main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT -Constant inlined main::$8 = '0'+main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT +Constant inlined main::$8 = '0'+(byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++++0) @@ -243,6 +271,13 @@ Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Successful SSA optimization Pass2ConstantSimplification +Simplifying constant integer cast SIZEOF_STRUCT_POINT +Simplifying constant integer cast SIZEOF_STRUCT_CIRCLE +Simplifying constant integer cast main::NUM_POINTS*SIZEOF_STRUCT_POINT +Simplifying constant integer cast main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT +Simplifying constant integer cast main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE +Simplifying constant integer cast main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE +Successful SSA optimization PassNCastSimplification CALL GRAPH Created 0 initial phi equivalence classes @@ -391,36 +426,36 @@ main: { // Struct Arrays .const NUM_POINTS = 4 .const NUM_CIRCLES = NUM_POINTS-1 - // SCREEN[idx++] = '0'+sizeof(struct Point) + // SCREEN[idx++] = '0'+(char)sizeof(struct Point) // [0] *SCREEN = '0'+SIZEOF_STRUCT_POINT -- _deref_pbuc1=vbuc2 // Struct Types lda #'0'+SIZEOF_STRUCT_POINT sta SCREEN - // SCREEN[idx++] = '0'+sizeof(struct Circle) + // SCREEN[idx++] = '0'+(char)sizeof(struct Circle) // [1] *(SCREEN+1) = '0'+SIZEOF_STRUCT_CIRCLE -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_STRUCT_CIRCLE sta SCREEN+1 - // SCREEN[idx++] = '0'+sizeof(p) + // SCREEN[idx++] = '0'+(char)sizeof(p) // [2] *(SCREEN+3) = '0'+SIZEOF_STRUCT_POINT -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_STRUCT_POINT sta SCREEN+3 - // SCREEN[idx++] = '0'+sizeof(c) + // SCREEN[idx++] = '0'+(char)sizeof(c) // [3] *(SCREEN+4) = '0'+SIZEOF_STRUCT_CIRCLE -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_STRUCT_CIRCLE sta SCREEN+4 - // SCREEN[idx++] = '0'+sizeof(points) + // SCREEN[idx++] = '0'+(char)sizeof(points) // [4] *(SCREEN+6) = '0'+main::NUM_POINTS*SIZEOF_STRUCT_POINT -- _deref_pbuc1=vbuc2 lda #'0'+NUM_POINTS*SIZEOF_STRUCT_POINT sta SCREEN+6 - // SCREEN[idx++] = '0'+sizeof(points)/sizeof(struct Point) + // SCREEN[idx++] = '0'+(char)(sizeof(points)/sizeof(struct Point)) // [5] *(SCREEN+7) = '0'+main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT -- _deref_pbuc1=vbuc2 lda #'0'+NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT sta SCREEN+7 - // SCREEN[idx++] = '0'+sizeof(circles) + // SCREEN[idx++] = '0'+(char)(sizeof(circles)) // [6] *(SCREEN+8) = '0'+main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE -- _deref_pbuc1=vbuc2 lda #'0'+NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE sta SCREEN+8 - // SCREEN[idx++] = '0'+sizeof(circles)/sizeof(struct Circle) + // SCREEN[idx++] = '0'+(char)(sizeof(circles)/sizeof(struct Circle)) // [7] *(SCREEN+9) = '0'+main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE -- _deref_pbuc1=vbuc2 lda #'0'+NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE sta SCREEN+9 diff --git a/src/test/ref/sqr-delta.log b/src/test/ref/sqr-delta.log index d3f86b7a6..6513fdb25 100644 --- a/src/test/ref/sqr-delta.log +++ b/src/test/ref/sqr-delta.log @@ -68,7 +68,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant dword* SCREEN = (dword*)$400 +constant dword* SCREEN = (byte*)$400 constant byte SIZEOF_DWORD = 4 void __start() dword ifunc(dword ifunc::a) @@ -112,7 +112,7 @@ Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZE Successful SSA optimization PassNAddNumberTypeConversions Inlining cast ifunc::a#0 = (unumber)8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (dword*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 8 Simplifying constant integer cast 0 @@ -471,7 +471,7 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant dword* SCREEN = (dword*) 1024 +constant dword* SCREEN = (byte*) 1024 dword ifunc(dword ifunc::a) dword ifunc::a constant dword ifunc::a#0 a = 8 diff --git a/src/test/ref/sqr-delta.sym b/src/test/ref/sqr-delta.sym index 300ca5721..fba5fb044 100644 --- a/src/test/ref/sqr-delta.sym +++ b/src/test/ref/sqr-delta.sym @@ -1,4 +1,4 @@ -constant dword* SCREEN = (dword*) 1024 +constant dword* SCREEN = (byte*) 1024 dword ifunc(dword ifunc::a) dword ifunc::a constant dword ifunc::a#0 a = 8 diff --git a/src/test/ref/stmt-empty-1.log b/src/test/ref/stmt-empty-1.log index 21465098c..12f10dd63 100644 --- a/src/test/ref/stmt-empty-1.log +++ b/src/test/ref/stmt-empty-1.log @@ -1,9 +1,8 @@ -Inlined call call __init CONTROL FLOW GRAPH SSA void main() -main: scope:[main] from __start::@1 +main: scope:[main] from __start main::b#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@2 @@ -26,20 +25,16 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - to:__start::__init1 -__start::__init1: scope:[__start] from __start - to:__start::@1 -__start::@1: scope:[__start] from __start::__init1 call main - to:__start::@2 -__start::@2: scope:[__start] from __start::@1 + to:__start::@1 +__start::@1: scope:[__start] from __start to:__start::@return -__start::@return: scope:[__start] from __start::@2 +__start::@return: scope:[__start] from __start::@1 return to:@return SYMBOL TABLE SSA -constant const byte* SCREEN = (const byte*)$400 +constant byte* const SCREEN = (byte*)$400 void __start() void main() byte~ main::$0 @@ -50,12 +45,12 @@ byte main::b#1 byte main::b#2 byte main::b#3 byte main::b#4 -constant const byte* str[] = "Hello!" +constant byte* str[] = "Hello!" Adding number conversion cast (unumber) 0 in main::$1 = str[main::b#2] != 0 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (const byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -72,9 +67,7 @@ Simplifying expression containing zero SCREEN in [6] SCREEN[0] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start -Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 -Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::b#0 @@ -209,13 +202,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte* SCREEN = (const byte*) 1024 +constant byte* const SCREEN = (byte*) 1024 void main() byte~ main::$0 reg byte x 4.0 byte main::b byte main::b#1 reg byte x 22.0 byte main::b#2 reg byte x 17.5 -constant const byte* str[] = "Hello!" +constant byte* str[] = "Hello!" reg byte x [ main::b#2 main::b#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/stmt-empty-1.sym b/src/test/ref/stmt-empty-1.sym index a74fe4fc5..fca333cb3 100644 --- a/src/test/ref/stmt-empty-1.sym +++ b/src/test/ref/stmt-empty-1.sym @@ -1,10 +1,10 @@ -constant const byte* SCREEN = (const byte*) 1024 +constant byte* const SCREEN = (byte*) 1024 void main() byte~ main::$0 reg byte x 4.0 byte main::b byte main::b#1 reg byte x 22.0 byte main::b#2 reg byte x 17.5 -constant const byte* str[] = "Hello!" +constant byte* str[] = "Hello!" reg byte x [ main::b#2 main::b#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/stmt-empty.asm b/src/test/ref/stmt-empty.asm index 88972a6b6..3f87e8dc7 100644 --- a/src/test/ref/stmt-empty.asm +++ b/src/test/ref/stmt-empty.asm @@ -16,7 +16,7 @@ main: { sta.z screen+1 // Fill screen with '*'. Body is an empty statement. __b1: - // for( char * screen = 0x0400; screen<0x400+1000; (*screen++)='*') + // for( char * screen = (char*)0x0400; screen<0x400+1000; (*screen++)='*') lda.z screen+1 cmp #>$400+$3e8 bcc __b2 @@ -32,7 +32,7 @@ main: { lda #'*' ldy #0 sta (screen),y - // for( char * screen = 0x0400; screen<0x400+1000; (*screen++)='*') + // for( char * screen = (char*)0x0400; screen<0x400+1000; (*screen++)='*') inc.z screen bne !+ inc.z screen+1 diff --git a/src/test/ref/stmt-empty.log b/src/test/ref/stmt-empty.log index 1031dff2f..565d54647 100644 --- a/src/test/ref/stmt-empty.log +++ b/src/test/ref/stmt-empty.log @@ -218,7 +218,7 @@ main: { // Fill screen with '*'. Body is an empty statement. // main::@1 __b1: - // for( char * screen = 0x0400; screen<0x400+1000; (*screen++)='*') + // for( char * screen = (char*)0x0400; screen<0x400+1000; (*screen++)='*') // [2] if(main::screen#2<$400+$3e8) goto main::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z screen+1 cmp #>$400+$3e8 @@ -239,7 +239,7 @@ main: { lda #'*' ldy #0 sta (screen),y - // for( char * screen = 0x0400; screen<0x400+1000; (*screen++)='*') + // for( char * screen = (char*)0x0400; screen<0x400+1000; (*screen++)='*') // [5] main::screen#1 = ++ main::screen#2 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ diff --git a/src/test/ref/struct-43.log b/src/test/ref/struct-43.log index d618633f7..240bb2435 100644 --- a/src/test/ref/struct-43.log +++ b/src/test/ref/struct-43.log @@ -33,7 +33,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA constant byte OFFSET_STRUCT_POINT_ID = 5 constant byte OFFSET_STRUCT_POINT_POS = 1 -constant word* const SCREEN = (word*)$400 +constant word* const SCREEN = (byte*)$400 constant byte SIZEOF_WORD = 2 void __start() void main() @@ -55,7 +55,7 @@ Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZE Adding number conversion cast (unumber) 2 in main::$4 = 2 * SIZEOF_WORD Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)2 * SIZEOF_WORD Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -207,7 +207,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE constant byte OFFSET_STRUCT_POINT_ID = 5 constant byte OFFSET_STRUCT_POINT_POS = 1 -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 constant byte SIZEOF_WORD = 2 void main() struct Point point1 loadstore mem[7] = { x: 4, pos: { 1, 2 }, id: 3 } diff --git a/src/test/ref/struct-43.sym b/src/test/ref/struct-43.sym index 301802df5..72e589677 100644 --- a/src/test/ref/struct-43.sym +++ b/src/test/ref/struct-43.sym @@ -1,6 +1,6 @@ constant byte OFFSET_STRUCT_POINT_ID = 5 constant byte OFFSET_STRUCT_POINT_POS = 1 -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 constant byte SIZEOF_WORD = 2 void main() struct Point point1 loadstore mem[7] = { x: 4, pos: { 1, 2 }, id: 3 } diff --git a/src/test/ref/struct-ptr-20.log b/src/test/ref/struct-ptr-20.log index 4c2da0082..5d606120d 100644 --- a/src/test/ref/struct-ptr-20.log +++ b/src/test/ref/struct-ptr-20.log @@ -6,7 +6,7 @@ main: scope:[main] from __start main::idx#0 = 0 main::$0 = sizeof settings main::$1 = main::$0 / SIZEOF_STRUCT_SETTING - main::len#0 = main::$1 + main::len#0 = (byte)main::$1 main::setting#0 = settings to:main::@1 main::@1: scope:[main] from main main::@3 @@ -65,8 +65,8 @@ constant byte* const SCREEN = (byte*)$400 constant byte SIZEOF_STRUCT_SETTING = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 +word~ main::$0 +word~ main::$1 byte*~ main::$10 bool~ main::$11 const struct Setting*~ main::$2 @@ -109,7 +109,6 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [14] main::$4 = 0 == *main::$7 from [13] main::$11 = 0 != *main::$7 Inversing boolean not [15] main::$5 = 0 != *main::$7 from [14] main::$4 = 0 == *main::$7 Successful SSA optimization Pass2UnaryNotSimplification -Alias main::len#0 = main::$1 Alias main::setting#2 = main::setting#3 main::setting#5 Alias main::idx#2 = main::idx#3 main::idx#4 Alias main::len#1 = main::len#3 main::len#4 @@ -119,8 +118,8 @@ Alias main::len#1 = main::len#2 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::len#1 main::len#0 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$3 [8] if(main::setting#2<main::$2) goto main::@2 -Simple Condition main::$5 [12] if(0!=*main::$7) goto main::@3 +Simple Condition main::$3 [9] if(main::setting#2<main::$2) goto main::@2 +Simple Condition main::$5 [13] if(0!=*main::$7) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [1] main::$0 = sizeof settings Successful SSA optimization Pass2ConstantRValueConsolidation @@ -128,14 +127,14 @@ Constant main::idx#0 = 0 Constant main::$0 = sizeof settings Constant main::setting#0 = settings Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [12] if(0!=*main::$7) goto main::@3 -- main::$9[OFFSET_STRUCT_SETTING_OFF] -Converting *(pointer+n) to pointer[n] [17] SCREEN[main::idx#2] = *main::$8 -- main::$10[OFFSET_STRUCT_SETTING_ID] +Converting *(pointer+n) to pointer[n] [13] if(0!=*main::$7) goto main::@3 -- main::$9[OFFSET_STRUCT_SETTING_OFF] +Converting *(pointer+n) to pointer[n] [18] SCREEN[main::idx#2] = *main::$8 -- main::$10[OFFSET_STRUCT_SETTING_ID] Successful SSA optimization Pass2InlineDerefIdx -Simplifying expression containing zero main::$9 in [10] main::$7 = main::$9 + OFFSET_STRUCT_SETTING_OFF -Simplifying expression containing zero main::$9 in [12] if(0!=main::$9[OFFSET_STRUCT_SETTING_OFF]) goto main::@3 +Simplifying expression containing zero main::$9 in [11] main::$7 = main::$9 + OFFSET_STRUCT_SETTING_OFF +Simplifying expression containing zero main::$9 in [13] if(0!=main::$9[OFFSET_STRUCT_SETTING_OFF]) goto main::@3 Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable main::$7 and assignment [6] main::$7 = main::$9 -Eliminating unused variable main::$8 and assignment [11] main::$8 = main::$10 + OFFSET_STRUCT_SETTING_ID +Eliminating unused variable main::$7 and assignment [7] main::$7 = main::$9 +Eliminating unused variable main::$8 and assignment [12] main::$8 = main::$10 + OFFSET_STRUCT_SETTING_ID Eliminating unused constant OFFSET_STRUCT_SETTING_OFF Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start @@ -145,9 +144,11 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Resolving array sizeof() sizeof settings Successful SSA optimization PassNSizeOfSimplification -Constant right-side identified [0] main::len#0 = main::$0 / SIZEOF_STRUCT_SETTING +Constant right-side identified [0] main::$1 = main::$0 / SIZEOF_STRUCT_SETTING Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::len#0 = main::$0/SIZEOF_STRUCT_SETTING +Constant main::$1 = main::$0/SIZEOF_STRUCT_SETTING +Successful SSA optimization Pass2ConstantIdentification +Constant main::len#0 = (byte)main::$1 Successful SSA optimization Pass2ConstantIdentification Adding number conversion cast (unumber) 3 in Successful SSA optimization PassNAddNumberTypeConversions @@ -170,10 +171,13 @@ Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::setting#0 Constant inlined main::$6 = main::len#0*SIZEOF_STRUCT_SETTING Constant inlined main::idx#0 = 0 +Constant inlined main::$1 = 3*SIZEOF_STRUCT_SETTING/SIZEOF_STRUCT_SETTING Constant inlined main::setting#0 = settings Constant inlined main::$2 = settings+main::len#0*SIZEOF_STRUCT_SETTING Constant inlined main::$0 = 3*SIZEOF_STRUCT_SETTING Successful SSA optimization Pass2ConstantInlining +Simplifying constant integer cast 3*SIZEOF_STRUCT_SETTING/SIZEOF_STRUCT_SETTING +Successful SSA optimization PassNCastSimplification Added new block during phi lifting main::@5(between main::@2 and main::@3) Adding NOP phi() at start of main CALL GRAPH diff --git a/src/test/ref/struct-ptr-21.log b/src/test/ref/struct-ptr-21.log index 3bd136be9..12869a1e0 100644 --- a/src/test/ref/struct-ptr-21.log +++ b/src/test/ref/struct-ptr-21.log @@ -39,7 +39,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA constant byte OFFSET_STRUCT_SETTING_BUF = 1 constant byte OFFSET_STRUCT_SETTING_LEN = 0 -constant word* const SCREEN = (word*)$400 +constant word* const SCREEN = (byte*)$400 constant byte SIZEOF_STRUCT_SETTING = 3 constant byte SIZEOF_WORD = 2 void __start() @@ -64,7 +64,7 @@ Adding number conversion cast (unumber) 0 in Adding number conversion cast (unumber) 0*SIZEOF_STRUCT_SETTING in Adding number conversion cast (unumber) 0 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast (unumber)0*SIZEOF_WORD Simplifying constant integer cast 0 Simplifying constant integer cast (unumber)0*SIZEOF_STRUCT_SETTING @@ -252,7 +252,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE constant byte OFFSET_STRUCT_SETTING_BUF = 1 -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 void main() byte~ main::$1 reg byte a 33.0 byte main::i diff --git a/src/test/ref/struct-ptr-21.sym b/src/test/ref/struct-ptr-21.sym index 9a71fe415..cd9cd3393 100644 --- a/src/test/ref/struct-ptr-21.sym +++ b/src/test/ref/struct-ptr-21.sym @@ -1,5 +1,5 @@ constant byte OFFSET_STRUCT_SETTING_BUF = 1 -constant word* const SCREEN = (word*) 1024 +constant word* const SCREEN = (byte*) 1024 void main() byte~ main::$1 reg byte a 33.0 byte main::i diff --git a/src/test/ref/test-comments-global.asm b/src/test/ref/test-comments-global.asm index e345ae026..8dbd1f7cb 100644 --- a/src/test/ref/test-comments-global.asm +++ b/src/test/ref/test-comments-global.asm @@ -11,7 +11,7 @@ .label screen = 2 .segment Code __start: { - // __ma char * screen = 0x0400 + // __ma char * screen = (char*)0x0400 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/test-comments-global.log b/src/test/ref/test-comments-global.log index 4ed2ec99b..35a7a4745 100644 --- a/src/test/ref/test-comments-global.log +++ b/src/test/ref/test-comments-global.log @@ -207,7 +207,7 @@ Score: 60 // __start __start: { // __start::__init1 - // __ma char * screen = 0x0400 + // __ma char * screen = (char*)0x0400 // [1] screen = (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen diff --git a/src/test/ref/test-keyboard.asm b/src/test/ref/test-keyboard.asm index a8af46a53..c1e88fca5 100644 --- a/src/test/ref/test-keyboard.asm +++ b/src/test/ref/test-keyboard.asm @@ -77,7 +77,7 @@ main: { sta.z sc+1 // Clear screen __b1: - // for(byte* sc = $400; sc<$400+1000;sc++) + // for(byte* sc = (char*)$400; sc<$400+1000;sc++) lda.z sc+1 cmp #>$400+$3e8 bcs !__b2+ @@ -205,7 +205,7 @@ main: { lda #' ' ldy #0 sta (sc),y - // for(byte* sc = $400; sc<$400+1000;sc++) + // for(byte* sc = (char*)$400; sc<$400+1000;sc++) inc.z sc bne !+ inc.z sc+1 diff --git a/src/test/ref/test-keyboard.log b/src/test/ref/test-keyboard.log index 7dbbecbd9..ee41490b2 100644 --- a/src/test/ref/test-keyboard.log +++ b/src/test/ref/test-keyboard.log @@ -1761,7 +1761,7 @@ main: { // Clear screen // main::@1 __b1: - // for(byte* sc = $400; sc<$400+1000;sc++) + // for(byte* sc = (char*)$400; sc<$400+1000;sc++) // [2] if(main::sc#2<$400+$3e8) goto main::@2 -- pbuz1_lt_vwuc1_then_la1 lda.z sc+1 cmp #>$400+$3e8 @@ -1968,7 +1968,7 @@ main: { lda #' ' ldy #0 sta (sc),y - // for(byte* sc = $400; sc<$400+1000;sc++) + // for(byte* sc = (char*)$400; sc<$400+1000;sc++) // [44] main::sc#1 = ++ main::sc#2 -- pbuz1=_inc_pbuz1 inc.z sc bne !+ diff --git a/src/test/ref/type-inference.log b/src/test/ref/type-inference.log index d01e9d9c5..5bc16f849 100644 --- a/src/test/ref/type-inference.log +++ b/src/test/ref/type-inference.log @@ -39,12 +39,12 @@ byte main::b byte main::b#0 byte main::b#1 byte main::b#2 -constant word* const main::screen = (word*)$400 +constant word* const main::screen = (byte*)$400 Adding number conversion cast (unumber) -$30 in main::$0 = -$30 + main::b#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)-$30 + main::b#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (byte*) 1024 Simplifying constant integer cast -$30 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) -$30 @@ -220,7 +220,7 @@ byte~ main::$2 reg byte x 22.0 byte main::b byte main::b#1 reg byte y 16.5 byte main::b#2 reg byte y 11.0 -constant word* const main::screen = (word*) 1024 +constant word* const main::screen = (byte*) 1024 reg byte y [ main::b#2 main::b#1 ] zp[1]:2 [ main::$0 ] diff --git a/src/test/ref/type-inference.sym b/src/test/ref/type-inference.sym index a3cf5d35e..41cf8d4d2 100644 --- a/src/test/ref/type-inference.sym +++ b/src/test/ref/type-inference.sym @@ -4,7 +4,7 @@ byte~ main::$2 reg byte x 22.0 byte main::b byte main::b#1 reg byte y 16.5 byte main::b#2 reg byte y 11.0 -constant word* const main::screen = (word*) 1024 +constant word* const main::screen = (byte*) 1024 reg byte y [ main::b#2 main::b#1 ] zp[1]:2 [ main::$0 ] diff --git a/src/test/ref/typedef-2.asm b/src/test/ref/typedef-2.asm index 6fb5f63d0..6c5ee1ca7 100644 --- a/src/test/ref/typedef-2.asm +++ b/src/test/ref/typedef-2.asm @@ -10,7 +10,7 @@ .label ptr = 2 .segment Code __start: { - // char* ptr = 0x1000 + // char* ptr = (char*)0x1000 lda #<$1000 sta.z ptr lda #>$1000 diff --git a/src/test/ref/typedef-2.log b/src/test/ref/typedef-2.log index 6af27f407..64cc77bcb 100644 --- a/src/test/ref/typedef-2.log +++ b/src/test/ref/typedef-2.log @@ -226,7 +226,7 @@ Score: 34 // __start __start: { // __start::__init1 - // char* ptr = 0x1000 + // char* ptr = (char*)0x1000 // [1] ptr = (byte*) 4096 -- pbuz1=pbuc1 lda #<$1000 sta.z ptr diff --git a/src/test/ref/varmodel-ma_mem-2.asm b/src/test/ref/varmodel-ma_mem-2.asm index b02d730e4..5728e630d 100644 --- a/src/test/ref/varmodel-ma_mem-2.asm +++ b/src/test/ref/varmodel-ma_mem-2.asm @@ -10,7 +10,7 @@ .segment Code main: { .label screen = 2 - // char* screen = 0x0400 + // char* screen = (char*)0x0400 // A local pointer lda #<$400 sta.z screen diff --git a/src/test/ref/varmodel-ma_mem-2.log b/src/test/ref/varmodel-ma_mem-2.log index 4d0009c5b..8435e09df 100644 --- a/src/test/ref/varmodel-ma_mem-2.log +++ b/src/test/ref/varmodel-ma_mem-2.log @@ -194,7 +194,7 @@ Score: 392 // main main: { .label screen = 2 - // char* screen = 0x0400 + // char* screen = (char*)0x0400 // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 // A local pointer lda #<$400 diff --git a/src/test/ref/varmodel-ma_mem-3.asm b/src/test/ref/varmodel-ma_mem-3.asm index d4cb836c6..50cadef23 100644 --- a/src/test/ref/varmodel-ma_mem-3.asm +++ b/src/test/ref/varmodel-ma_mem-3.asm @@ -17,7 +17,7 @@ main: { rts } model_ma_mem: { - // char* screen = 0x0400 + // char* screen = (char*)0x0400 // A local pointer lda #<$400 sta screen diff --git a/src/test/ref/varmodel-ma_mem-3.log b/src/test/ref/varmodel-ma_mem-3.log index e7fde8080..ec01b024a 100644 --- a/src/test/ref/varmodel-ma_mem-3.log +++ b/src/test/ref/varmodel-ma_mem-3.log @@ -427,7 +427,7 @@ main: { } // model_ma_mem model_ma_mem: { - // char* screen = 0x0400 + // char* screen = (char*)0x0400 // [5] model_ma_mem::screen = (byte*) 1024 -- pbum1=pbuc1 // A local pointer lda #<$400 diff --git a/src/test/ref/varmodel-ma_mem.asm b/src/test/ref/varmodel-ma_mem.asm index ac311e23a..c7258f0cc 100644 --- a/src/test/ref/varmodel-ma_mem.asm +++ b/src/test/ref/varmodel-ma_mem.asm @@ -9,7 +9,7 @@ :BasicUpstart(main) .segment Code main: { - // char* screen = 0x0400 + // char* screen = (char*)0x0400 // A local pointer lda #<$400 sta screen diff --git a/src/test/ref/varmodel-ma_mem.log b/src/test/ref/varmodel-ma_mem.log index 8e909d7e0..9d48fa4c6 100644 --- a/src/test/ref/varmodel-ma_mem.log +++ b/src/test/ref/varmodel-ma_mem.log @@ -197,7 +197,7 @@ Score: 554 .segment Code // main main: { - // char* screen = 0x0400 + // char* screen = (char*)0x0400 // [0] main::screen = (byte*) 1024 -- pbum1=pbuc1 // A local pointer lda #<$400 diff --git a/src/test/ref/word-array-0.log b/src/test/ref/word-array-0.log index 0b03f657f..2a8b661d4 100644 --- a/src/test/ref/word-array-0.log +++ b/src/test/ref/word-array-0.log @@ -47,6 +47,7 @@ word main::w2 word main::w2#0 constant word* main::words[3] = (word*)$400 +Adding number conversion cast (unumber) 6*$28 in Adding number conversion cast (unumber) 1 in main::$4 = 1 * SIZEOF_WORD Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)1 * SIZEOF_WORD Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 @@ -56,6 +57,7 @@ Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)2 * SIZE Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$2 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 Successful SSA optimization PassNAddNumberTypeConversions +Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (word*) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -95,11 +97,12 @@ Consolidated array index constant in *(main::words+2*SIZEOF_WORD) Consolidated array index constant in *(main::SCREEN+2) Consolidated array index constant in *(main::SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $400 Finalized unsigned number type (byte) 6 Finalized unsigned number type (byte) $28 Finalized unsigned number type (byte) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions +Simplifying constant integer cast 6*$28 +Successful SSA optimization PassNCastSimplification CALL GRAPH Created 0 initial phi equivalence classes @@ -243,7 +246,7 @@ byte~ main::$0 reg byte a 4.0 byte~ main::$1 reg byte a 4.0 byte~ main::$2 reg byte a 4.0 byte~ main::$3 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*)$400+6*$28 +constant byte* const main::SCREEN = (byte*) 1024+6*$28 word main::w1 word main::w1#0 w1 zp[2]:2 2.0 word main::w2 diff --git a/src/test/ref/word-array-0.sym b/src/test/ref/word-array-0.sym index 3e532c25b..d1acad885 100644 --- a/src/test/ref/word-array-0.sym +++ b/src/test/ref/word-array-0.sym @@ -4,7 +4,7 @@ byte~ main::$0 reg byte a 4.0 byte~ main::$1 reg byte a 4.0 byte~ main::$2 reg byte a 4.0 byte~ main::$3 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*)$400+6*$28 +constant byte* const main::SCREEN = (byte*) 1024+6*$28 word main::w1 word main::w1#0 w1 zp[2]:2 2.0 word main::w2 diff --git a/src/test/ref/word-pointer-iteration-0.log b/src/test/ref/word-pointer-iteration-0.log index c16119f1c..443f87e60 100644 --- a/src/test/ref/word-pointer-iteration-0.log +++ b/src/test/ref/word-pointer-iteration-0.log @@ -51,6 +51,7 @@ word* main::wp#1 word* main::wp#2 word* main::wp#3 +Adding number conversion cast (unumber) $28*6 in Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$1 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$2 @@ -58,6 +59,7 @@ Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 Adding number conversion cast (unumber) 4 in main::SCREEN[4] = main::$4 Adding number conversion cast (unumber) 5 in main::SCREEN[5] = main::$5 Successful SSA optimization PassNAddNumberTypeConversions +Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (word*) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -109,10 +111,11 @@ Consolidated array index constant in *(main::SCREEN+3) Consolidated array index constant in *(main::SCREEN+4) Consolidated array index constant in *(main::SCREEN+5) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $400 Finalized unsigned number type (byte) $28 Finalized unsigned number type (byte) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions +Simplifying constant integer cast $28*6 +Successful SSA optimization PassNCastSimplification CALL GRAPH Created 0 initial phi equivalence classes @@ -255,7 +258,7 @@ byte~ main::$2 reg byte a 4.0 byte~ main::$3 reg byte a 4.0 byte~ main::$4 reg byte a 4.0 byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*)$400+$28*6 +constant byte* const main::SCREEN = (byte*) 1024+$28*6 word* main::wp reg byte a [ main::$0 ] diff --git a/src/test/ref/word-pointer-iteration-0.sym b/src/test/ref/word-pointer-iteration-0.sym index 315985f44..dfdbe65bb 100644 --- a/src/test/ref/word-pointer-iteration-0.sym +++ b/src/test/ref/word-pointer-iteration-0.sym @@ -6,7 +6,7 @@ byte~ main::$2 reg byte a 4.0 byte~ main::$3 reg byte a 4.0 byte~ main::$4 reg byte a 4.0 byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*)$400+$28*6 +constant byte* const main::SCREEN = (byte*) 1024+$28*6 word* main::wp reg byte a [ main::$0 ] diff --git a/src/test/ref/word-pointer-math-0.log b/src/test/ref/word-pointer-math-0.log index 125c86f1f..7b8db1fc7 100644 --- a/src/test/ref/word-pointer-math-0.log +++ b/src/test/ref/word-pointer-math-0.log @@ -51,6 +51,7 @@ word main::w2 word main::w2#0 constant word* main::words = (word*)$400 +Adding number conversion cast (unumber) 6*$28 in Adding number conversion cast (unumber) 1 in main::$6 = 1 * SIZEOF_WORD Adding number conversion cast (unumber) main::$6 in main::$6 = (unumber)1 * SIZEOF_WORD Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$1 @@ -60,6 +61,7 @@ Adding number conversion cast (unumber) main::$7 in main::$7 = (unumber)2 * SIZE Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$4 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$5 Successful SSA optimization PassNAddNumberTypeConversions +Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (word*) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -105,10 +107,11 @@ Consolidated array index constant in *(main::words+2*SIZEOF_WORD) Consolidated array index constant in *(main::SCREEN+2) Consolidated array index constant in *(main::SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $400 Finalized unsigned number type (byte) 6 Finalized unsigned number type (byte) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions +Simplifying constant integer cast 6*$28 +Successful SSA optimization PassNCastSimplification CALL GRAPH Created 0 initial phi equivalence classes @@ -252,7 +255,7 @@ byte~ main::$1 reg byte a 4.0 byte~ main::$2 reg byte a 4.0 byte~ main::$4 reg byte a 4.0 byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*)$400+6*$28 +constant byte* const main::SCREEN = (byte*) 1024+6*$28 word main::w1 word main::w1#0 w1 zp[2]:2 2.0 word main::w2 diff --git a/src/test/ref/word-pointer-math-0.sym b/src/test/ref/word-pointer-math-0.sym index 2e65383fa..ba02bc58e 100644 --- a/src/test/ref/word-pointer-math-0.sym +++ b/src/test/ref/word-pointer-math-0.sym @@ -4,7 +4,7 @@ byte~ main::$1 reg byte a 4.0 byte~ main::$2 reg byte a 4.0 byte~ main::$4 reg byte a 4.0 byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*)$400+6*$28 +constant byte* const main::SCREEN = (byte*) 1024+6*$28 word main::w1 word main::w1#0 w1 zp[2]:2 2.0 word main::w2 diff --git a/src/test/ref/zpparammin.log b/src/test/ref/zpparammin.log index 682476b13..5a57e5064 100644 --- a/src/test/ref/zpparammin.log +++ b/src/test/ref/zpparammin.log @@ -141,6 +141,7 @@ byte sum2::return#2 byte sum2::return#3 byte sum2::return#4 +Adding number conversion cast (unumber) $28 in Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 + (unumber)1 Adding number conversion cast (unumber) 2 in main::$1 = main::i#2 + 2 @@ -151,11 +152,14 @@ Adding number conversion cast (unumber) 2 in main::$4 = main::i#3 + 2 Adding number conversion cast (unumber) main::$4 in main::$4 = main::i#3 + (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (byte*) 1024 +Simplifying constant integer cast $28 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) $28 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 2 Finalized unsigned number type (byte) 1 @@ -204,9 +208,6 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $28 -Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@3 and main::@1) Adding NOP phi() at start of main CALL GRAPH @@ -542,7 +543,7 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*)$400+$28 +constant byte* SCREEN2 = (byte*) 1024+$28 void main() byte~ main::$2 reg byte a 22.0 byte~ main::$5 reg byte a 22.0 diff --git a/src/test/ref/zpparammin.sym b/src/test/ref/zpparammin.sym index 150268681..1a59407ba 100644 --- a/src/test/ref/zpparammin.sym +++ b/src/test/ref/zpparammin.sym @@ -1,5 +1,5 @@ constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*)$400+$28 +constant byte* SCREEN2 = (byte*) 1024+$28 void main() byte~ main::$2 reg byte a 22.0 byte~ main::$5 reg byte a 22.0