1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-02-19 08:31:01 +00:00

Variable printing now in C syntax. #121

This commit is contained in:
jespergravgaard 2021-04-30 17:26:46 +02:00
parent 8fd8bb1832
commit 78209db593
1757 changed files with 21940 additions and 21971 deletions

View File

@ -12,7 +12,7 @@ public class OperatorCastStruct extends OperatorCast {
private final SymbolTypeStruct structType;
public OperatorCastStruct(int precedence, SymbolTypeStruct structType) {
super("((" + structType.getTypeName()+ "))", "_struct_", precedence, structType);
super("((" + structType.getStructTypeName()+ "))", "_struct_", precedence, structType);
this.structType = structType;
}

View File

@ -65,7 +65,7 @@ public class OperatorTypeId extends OperatorUnary {
} else if(type instanceof SymbolTypePointer) {
return "POINTER_" + getTypeIdConstantName(((SymbolTypePointer) type).getElementType());
} else {
return type.getTypeName().toUpperCase(Locale.ENGLISH).replace(" ", "_");
return type.getTypeBaseName().toUpperCase(Locale.ENGLISH).replace(" ", "_");
}
}

View File

@ -598,11 +598,7 @@ public class Variable implements Symbol {
public String typeString() {
final StringBuilder print = new StringBuilder();
print
.append(isKindConstant() ? "const " : "")
.append(isNoModify() ? "nomodify " : "")
.append(isVolatile() ? "volatile " : "")
.append(isToNoModify() ? "to_nomodify " : "")
.append(isToVolatile() ? "to_volatile " : "")
.append(isKindConstant() ? "constant " : "")
.append(getType().getTypeName())
.append(isKindIntermediate() ? "~" : "")
;

View File

@ -98,7 +98,15 @@ public interface SymbolType extends Serializable {
*
* @return The type name
*/
String getTypeName();
default String getTypeName() {
return (isVolatile()?"volatile ":"") + (isNomodify()?"const ":"") + getTypeBaseName();
}
/**
* Get the type base name (without const/volatile)
* @return type base name
*/
String getTypeBaseName();
/**
* Get the size of the type (in bytes).

View File

@ -22,7 +22,7 @@ public class SymbolTypeBlockScope implements SymbolType {
}
@Override
public String getTypeName() {
public String getTypeBaseName() {
return "BLOCK";
}

View File

@ -39,18 +39,8 @@ public class SymbolTypeEnum implements SymbolType {
}
@Override
public String getTypeName() {
String name = "";
// TODO #121 Add
/*
if(isVolatile)
name += "volatile ";
if(isNomodify)
name += "const ";
*/
name += "enum " + this.enumName;
return name;
public String getTypeBaseName() {
return "enum " + this.enumName;
}
@Override

View File

@ -27,7 +27,7 @@ public class SymbolTypeIntegerAuto implements SymbolTypeInteger {
}
@Override
public String getTypeName() {
public String getTypeBaseName() {
return typeName;
}

View File

@ -95,17 +95,8 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger {
}
@Override
public String getTypeName() {
String name = "";
// TODO #121 Add
/*
if(isVolatile)
name += "volatile ";
if(isNomodify)
name += "const ";
*/
name += typeBaseName;
return name;
public String getTypeBaseName() {
return typeBaseName;
}
public long getMinValue() {

View File

@ -30,17 +30,8 @@ public class SymbolTypeNamed implements SymbolType {
return isNomodify;
}
public String getTypeName() {
String name = "";
// TODO #121 Add
/*
if(isVolatile)
name += "volatile ";
if(isNomodify)
name += "const ";
*/
name += typeBaseName;
return name;
public String getTypeBaseName() {
return typeBaseName;
}
@Override

View File

@ -59,16 +59,18 @@ public class SymbolTypePointer implements SymbolType {
@Override
public String getTypeName() {
String name = elementType.getTypeName() + "*";
// TODO #121 Add
/*
if(isVolatile)
name += " volatile";
if(isNomodify)
name += " const";
*/
return name;
}
@Override
public String getTypeBaseName() {
return elementType.getTypeName() + "*";
}
@Override
public int getSizeBytes() {
return SIZE_POINTER_BYTES;

View File

@ -36,7 +36,7 @@ public class SymbolTypeProcedure implements SymbolType {
}
@Override
public String getTypeName() {
public String getTypeBaseName() {
return returnType.getTypeName() + "()";
}

View File

@ -22,7 +22,7 @@ public class SymbolTypeProgram implements SymbolType {
}
@Override
public String getTypeName() {
public String getTypeBaseName() {
return "PROGRAM";
}

View File

@ -51,17 +51,8 @@ public class SymbolTypeStruct implements SymbolType {
}
@Override
public String getTypeName() {
String name = "";
// TODO #121 Add
/*
if(isVolatile)
name += "volatile ";
if(isNomodify)
name += "const ";
*/
name += "struct " + this.structName;
return name;
public String getTypeBaseName() {
return "struct " + this.structName;
}
public String getStructTypeName() {

View File

@ -22,7 +22,7 @@ public class SymbolTypeTypeDefScope implements SymbolType {
}
@Override
public String getTypeName() {
public String getTypeBaseName() {
return "TYPEDEF";
}

View File

@ -254,7 +254,7 @@ public class Pass4CodeGeneration {
Registers.Register allocation = param.getAllocation();
if(i++ > 0) signature.append(", ");
signature.append(param.getType().getTypeName()).append(" ");
signature.append(param.getType().getTypeBaseName()).append(" ");
if(allocation instanceof Registers.RegisterZpMem) {
Registers.RegisterZpMem registerZp = (Registers.RegisterZpMem) allocation;
signature.append("zp(").append(AsmFormat.getAsmNumber(registerZp.getZp())).append(")");

View File

@ -58,7 +58,7 @@ public class SizeOfConstants {
if(type instanceof SymbolTypePointer) {
return "SIZEOF_POINTER";
} else {
return "SIZEOF_" + type.getTypeName().toUpperCase(Locale.ENGLISH).replace(" ", "_");
return "SIZEOF_" + type.getTypeBaseName().toUpperCase(Locale.ENGLISH).replace(" ", "_");
}
}
@ -91,6 +91,6 @@ public class SizeOfConstants {
* @return The name of the constant
*/
private static String getStructMemberOffsetConstantName(StructDefinition structDefinition, String memberName) {
return "OFFSET_" + structDefinition.getType().getTypeName().toUpperCase(Locale.ENGLISH).replace(" ", "_") + "_" + memberName.toUpperCase();
return "OFFSET_" + structDefinition.getType().getTypeBaseName().toUpperCase(Locale.ENGLISH).replace(" ", "_") + "_" + memberName.toUpperCase();
}
}

View File

@ -1986,7 +1986,7 @@ ror_var: {
}
.segment Code
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($c) s)
// cputs(const byte* zp($c) s)
cputs: {
.label s = $c
__b1:

View File

@ -941,7 +941,7 @@ ror_var::@6: scope:[ror_var] from ror_var::@5
[461] ror_var::i#1 = ++ ror_var::i#2
to:ror_var::@1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from printf_number_buffer::@4 rol_fixed rol_fixed::@10 rol_fixed::@12 rol_fixed::@14 rol_fixed::@16 rol_fixed::@18 rol_fixed::@2 rol_fixed::@20 rol_fixed::@22 rol_fixed::@24 rol_fixed::@26 rol_fixed::@28 rol_fixed::@30 rol_fixed::@32 rol_fixed::@34 rol_fixed::@36 rol_fixed::@38 rol_fixed::@4 rol_fixed::@40 rol_fixed::@42 rol_fixed::@44 rol_fixed::@46 rol_fixed::@48 rol_fixed::@50 rol_fixed::@52 rol_fixed::@54 rol_fixed::@56 rol_fixed::@58 rol_fixed::@6 rol_fixed::@60 rol_fixed::@62 rol_fixed::@64 rol_fixed::@66 rol_fixed::@68 rol_fixed::@70 rol_fixed::@72 rol_fixed::@74 rol_fixed::@76 rol_fixed::@78 rol_fixed::@8 rol_fixed::@80 rol_fixed::@82 rol_fixed::@84 rol_var rol_var::@3 rol_var::@5 ror_fixed ror_fixed::@10 ror_fixed::@12 ror_fixed::@14 ror_fixed::@16 ror_fixed::@18 ror_fixed::@2 ror_fixed::@20 ror_fixed::@22 ror_fixed::@24 ror_fixed::@26 ror_fixed::@28 ror_fixed::@30 ror_fixed::@32 ror_fixed::@34 ror_fixed::@36 ror_fixed::@38 ror_fixed::@4 ror_fixed::@40 ror_fixed::@42 ror_fixed::@44 ror_fixed::@46 ror_fixed::@48 ror_fixed::@50 ror_fixed::@52 ror_fixed::@54 ror_fixed::@56 ror_fixed::@58 ror_fixed::@6 ror_fixed::@60 ror_fixed::@62 ror_fixed::@64 ror_fixed::@66 ror_fixed::@68 ror_fixed::@70 ror_fixed::@72 ror_fixed::@74 ror_fixed::@76 ror_fixed::@78 ror_fixed::@8 ror_fixed::@80 ror_fixed::@82 ror_fixed::@84 ror_var ror_var::@3 ror_var::@5
[462] cputs::s#95 = phi( printf_number_buffer::@4/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, rol_fixed/rol_fixed::s, rol_fixed::@10/s1, rol_fixed::@12/s2, rol_fixed::@14/s1, rol_fixed::@16/s2, rol_fixed::@18/s1, rol_fixed::@2/s1, rol_fixed::@20/s2, rol_fixed::@22/s1, rol_fixed::@24/s2, rol_fixed::@26/s1, rol_fixed::@28/s2, rol_fixed::@30/s1, rol_fixed::@32/s2, rol_fixed::@34/s1, rol_fixed::@36/s2, rol_fixed::@38/s1, rol_fixed::@4/s2, rol_fixed::@40/s2, rol_fixed::@42/s1, rol_fixed::@44/s2, rol_fixed::@46/s1, rol_fixed::@48/s2, rol_fixed::@50/s1, rol_fixed::@52/s2, rol_fixed::@54/s1, rol_fixed::@56/s2, rol_fixed::@58/s1, rol_fixed::@6/s1, rol_fixed::@60/s2, rol_fixed::@62/s1, rol_fixed::@64/s2, rol_fixed::@66/s1, rol_fixed::@68/s2, rol_fixed::@70/s1, rol_fixed::@72/s2, rol_fixed::@74/s1, rol_fixed::@76/s2, rol_fixed::@78/s1, rol_fixed::@8/s2, rol_fixed::@80/s2, rol_fixed::@82/s1, rol_fixed::@84/s2, rol_var/rol_var::s, rol_var::@3/s1, rol_var::@5/s2, ror_fixed/ror_fixed::s, ror_fixed::@10/s1, ror_fixed::@12/s2, ror_fixed::@14/s1, ror_fixed::@16/s2, ror_fixed::@18/s1, ror_fixed::@2/s1, ror_fixed::@20/s2, ror_fixed::@22/s1, ror_fixed::@24/s2, ror_fixed::@26/s1, ror_fixed::@28/s2, ror_fixed::@30/s1, ror_fixed::@32/s2, ror_fixed::@34/s1, ror_fixed::@36/s2, ror_fixed::@38/s1, ror_fixed::@4/s2, ror_fixed::@40/s2, ror_fixed::@42/s1, ror_fixed::@44/s2, ror_fixed::@46/s1, ror_fixed::@48/s2, ror_fixed::@50/s1, ror_fixed::@52/s2, ror_fixed::@54/s1, ror_fixed::@56/s2, ror_fixed::@58/s1, ror_fixed::@6/s1, ror_fixed::@60/s2, ror_fixed::@62/s1, ror_fixed::@64/s2, ror_fixed::@66/s1, ror_fixed::@68/s2, ror_fixed::@70/s1, ror_fixed::@72/s2, ror_fixed::@74/s1, ror_fixed::@76/s2, ror_fixed::@78/s1, ror_fixed::@8/s2, ror_fixed::@80/s2, ror_fixed::@82/s1, ror_fixed::@84/s2, ror_var/ror_var::s, ror_var::@3/s1, ror_var::@5/s2 )
to:cputs::@1

View File

@ -1040,7 +1040,7 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@7 cscroll::@8
return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from printf_number_buffer::@5 rol_fixed rol_fixed::@10 rol_fixed::@12 rol_fixed::@14 rol_fixed::@16 rol_fixed::@18 rol_fixed::@2 rol_fixed::@20 rol_fixed::@22 rol_fixed::@24 rol_fixed::@26 rol_fixed::@28 rol_fixed::@30 rol_fixed::@32 rol_fixed::@34 rol_fixed::@36 rol_fixed::@38 rol_fixed::@4 rol_fixed::@40 rol_fixed::@42 rol_fixed::@44 rol_fixed::@46 rol_fixed::@48 rol_fixed::@50 rol_fixed::@52 rol_fixed::@54 rol_fixed::@56 rol_fixed::@58 rol_fixed::@6 rol_fixed::@60 rol_fixed::@62 rol_fixed::@64 rol_fixed::@66 rol_fixed::@68 rol_fixed::@70 rol_fixed::@72 rol_fixed::@74 rol_fixed::@76 rol_fixed::@78 rol_fixed::@8 rol_fixed::@80 rol_fixed::@82 rol_fixed::@84 rol_var rol_var::@4 rol_var::@6 ror_fixed ror_fixed::@10 ror_fixed::@12 ror_fixed::@14 ror_fixed::@16 ror_fixed::@18 ror_fixed::@2 ror_fixed::@20 ror_fixed::@22 ror_fixed::@24 ror_fixed::@26 ror_fixed::@28 ror_fixed::@30 ror_fixed::@32 ror_fixed::@34 ror_fixed::@36 ror_fixed::@38 ror_fixed::@4 ror_fixed::@40 ror_fixed::@42 ror_fixed::@44 ror_fixed::@46 ror_fixed::@48 ror_fixed::@50 ror_fixed::@52 ror_fixed::@54 ror_fixed::@56 ror_fixed::@58 ror_fixed::@6 ror_fixed::@60 ror_fixed::@62 ror_fixed::@64 ror_fixed::@66 ror_fixed::@68 ror_fixed::@70 ror_fixed::@72 ror_fixed::@74 ror_fixed::@76 ror_fixed::@78 ror_fixed::@8 ror_fixed::@80 ror_fixed::@82 ror_fixed::@84 ror_var ror_var::@4 ror_var::@6
cputs::s#95 = phi( printf_number_buffer::@5/cputs::s#1, rol_fixed/cputs::s#2, rol_fixed::@10/cputs::s#7, rol_fixed::@12/cputs::s#8, rol_fixed::@14/cputs::s#9, rol_fixed::@16/cputs::s#10, rol_fixed::@18/cputs::s#11, rol_fixed::@2/cputs::s#3, rol_fixed::@20/cputs::s#12, rol_fixed::@22/cputs::s#13, rol_fixed::@24/cputs::s#14, rol_fixed::@26/cputs::s#15, rol_fixed::@28/cputs::s#16, rol_fixed::@30/cputs::s#17, rol_fixed::@32/cputs::s#18, rol_fixed::@34/cputs::s#19, rol_fixed::@36/cputs::s#20, rol_fixed::@38/cputs::s#21, rol_fixed::@4/cputs::s#4, rol_fixed::@40/cputs::s#22, rol_fixed::@42/cputs::s#23, rol_fixed::@44/cputs::s#24, rol_fixed::@46/cputs::s#25, rol_fixed::@48/cputs::s#26, rol_fixed::@50/cputs::s#27, rol_fixed::@52/cputs::s#28, rol_fixed::@54/cputs::s#29, rol_fixed::@56/cputs::s#30, rol_fixed::@58/cputs::s#31, rol_fixed::@6/cputs::s#5, rol_fixed::@60/cputs::s#32, rol_fixed::@62/cputs::s#33, rol_fixed::@64/cputs::s#34, rol_fixed::@66/cputs::s#35, rol_fixed::@68/cputs::s#36, rol_fixed::@70/cputs::s#37, rol_fixed::@72/cputs::s#38, rol_fixed::@74/cputs::s#39, rol_fixed::@76/cputs::s#40, rol_fixed::@78/cputs::s#41, rol_fixed::@8/cputs::s#6, rol_fixed::@80/cputs::s#42, rol_fixed::@82/cputs::s#43, rol_fixed::@84/cputs::s#44, rol_var/cputs::s#88, rol_var::@4/cputs::s#89, rol_var::@6/cputs::s#90, ror_fixed/cputs::s#45, ror_fixed::@10/cputs::s#50, ror_fixed::@12/cputs::s#51, ror_fixed::@14/cputs::s#52, ror_fixed::@16/cputs::s#53, ror_fixed::@18/cputs::s#54, ror_fixed::@2/cputs::s#46, ror_fixed::@20/cputs::s#55, ror_fixed::@22/cputs::s#56, ror_fixed::@24/cputs::s#57, ror_fixed::@26/cputs::s#58, ror_fixed::@28/cputs::s#59, ror_fixed::@30/cputs::s#60, ror_fixed::@32/cputs::s#61, ror_fixed::@34/cputs::s#62, ror_fixed::@36/cputs::s#63, ror_fixed::@38/cputs::s#64, ror_fixed::@4/cputs::s#47, ror_fixed::@40/cputs::s#65, ror_fixed::@42/cputs::s#66, ror_fixed::@44/cputs::s#67, ror_fixed::@46/cputs::s#68, ror_fixed::@48/cputs::s#69, ror_fixed::@50/cputs::s#70, ror_fixed::@52/cputs::s#71, ror_fixed::@54/cputs::s#72, ror_fixed::@56/cputs::s#73, ror_fixed::@58/cputs::s#74, ror_fixed::@6/cputs::s#48, ror_fixed::@60/cputs::s#75, ror_fixed::@62/cputs::s#76, ror_fixed::@64/cputs::s#77, ror_fixed::@66/cputs::s#78, ror_fixed::@68/cputs::s#79, ror_fixed::@70/cputs::s#80, ror_fixed::@72/cputs::s#81, ror_fixed::@74/cputs::s#82, ror_fixed::@76/cputs::s#83, ror_fixed::@78/cputs::s#84, ror_fixed::@8/cputs::s#49, ror_fixed::@80/cputs::s#85, ror_fixed::@82/cputs::s#86, ror_fixed::@84/cputs::s#87, ror_var/cputs::s#91, ror_var::@4/cputs::s#92, ror_var::@6/cputs::s#93 )
cputs::c#0 = 0
@ -3248,37 +3248,37 @@ __start::@return: scope:[__start] from __start::@3
to:@return
SYMBOL TABLE SSA
const byte BINARY = 2
const nomodify byte* COLORRAM = (byte*)$d800
const nomodify byte* CONIO_SCREEN_COLORS = COLORRAM
const nomodify byte* CONIO_SCREEN_TEXT = DEFAULT_SCREEN
const nomodify byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE
const byte DECIMAL = $a
const nomodify byte* DEFAULT_SCREEN = (byte*)$400
const byte* DIGITS[] = "0123456789abcdef"z
const byte HEXADECIMAL = $10
const nomodify byte LIGHT_BLUE = $e
const byte OCTAL = 8
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
const byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 }
const dword* RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
const dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
const word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
const byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
const dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
const word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
const byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 }
const dword* RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 }
const byte SIZEOF_DWORD = 4
const byte SIZEOF_WORD = 2
constant byte BINARY = 2
constant byte* const COLORRAM = (byte*)$d800
constant byte* const CONIO_SCREEN_COLORS = COLORRAM
constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN
constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE
constant byte DECIMAL = $a
constant byte* const DEFAULT_SCREEN = (byte*)$400
constant byte* DIGITS[] = "0123456789abcdef"z
constant byte HEXADECIMAL = $10
constant const byte LIGHT_BLUE = $e
constant byte OCTAL = 8
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
constant byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 }
constant dword* RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
constant dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
constant byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 }
constant dword* RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 }
constant byte SIZEOF_DWORD = 4
constant byte SIZEOF_WORD = 2
void __start()
void clrscr()
bool~ clrscr::$0
@ -3315,7 +3315,7 @@ byte* clrscr::line_text#6
void conio_c64_init()
bool~ conio_c64_init::$0
bool~ conio_c64_init::$1
const nomodify byte* conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6
constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6
byte conio_c64_init::line
byte conio_c64_init::line#0
byte conio_c64_init::line#1
@ -3337,112 +3337,112 @@ byte cputc::c#2
byte cputc::c#3
byte cputc::c#4
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte~ cputs::$0
bool~ cputs::$2
byte cputs::c
byte cputs::c#0
byte cputs::c#1
byte cputs::c#2
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0
to_nomodify byte* cputs::s#1
to_nomodify byte* cputs::s#10
to_nomodify byte* cputs::s#11
to_nomodify byte* cputs::s#12
to_nomodify byte* cputs::s#13
to_nomodify byte* cputs::s#14
to_nomodify byte* cputs::s#15
to_nomodify byte* cputs::s#16
to_nomodify byte* cputs::s#17
to_nomodify byte* cputs::s#18
to_nomodify byte* cputs::s#19
to_nomodify byte* cputs::s#2
to_nomodify byte* cputs::s#20
to_nomodify byte* cputs::s#21
to_nomodify byte* cputs::s#22
to_nomodify byte* cputs::s#23
to_nomodify byte* cputs::s#24
to_nomodify byte* cputs::s#25
to_nomodify byte* cputs::s#26
to_nomodify byte* cputs::s#27
to_nomodify byte* cputs::s#28
to_nomodify byte* cputs::s#29
to_nomodify byte* cputs::s#3
to_nomodify byte* cputs::s#30
to_nomodify byte* cputs::s#31
to_nomodify byte* cputs::s#32
to_nomodify byte* cputs::s#33
to_nomodify byte* cputs::s#34
to_nomodify byte* cputs::s#35
to_nomodify byte* cputs::s#36
to_nomodify byte* cputs::s#37
to_nomodify byte* cputs::s#38
to_nomodify byte* cputs::s#39
to_nomodify byte* cputs::s#4
to_nomodify byte* cputs::s#40
to_nomodify byte* cputs::s#41
to_nomodify byte* cputs::s#42
to_nomodify byte* cputs::s#43
to_nomodify byte* cputs::s#44
to_nomodify byte* cputs::s#45
to_nomodify byte* cputs::s#46
to_nomodify byte* cputs::s#47
to_nomodify byte* cputs::s#48
to_nomodify byte* cputs::s#49
to_nomodify byte* cputs::s#5
to_nomodify byte* cputs::s#50
to_nomodify byte* cputs::s#51
to_nomodify byte* cputs::s#52
to_nomodify byte* cputs::s#53
to_nomodify byte* cputs::s#54
to_nomodify byte* cputs::s#55
to_nomodify byte* cputs::s#56
to_nomodify byte* cputs::s#57
to_nomodify byte* cputs::s#58
to_nomodify byte* cputs::s#59
to_nomodify byte* cputs::s#6
to_nomodify byte* cputs::s#60
to_nomodify byte* cputs::s#61
to_nomodify byte* cputs::s#62
to_nomodify byte* cputs::s#63
to_nomodify byte* cputs::s#64
to_nomodify byte* cputs::s#65
to_nomodify byte* cputs::s#66
to_nomodify byte* cputs::s#67
to_nomodify byte* cputs::s#68
to_nomodify byte* cputs::s#69
to_nomodify byte* cputs::s#7
to_nomodify byte* cputs::s#70
to_nomodify byte* cputs::s#71
to_nomodify byte* cputs::s#72
to_nomodify byte* cputs::s#73
to_nomodify byte* cputs::s#74
to_nomodify byte* cputs::s#75
to_nomodify byte* cputs::s#76
to_nomodify byte* cputs::s#77
to_nomodify byte* cputs::s#78
to_nomodify byte* cputs::s#79
to_nomodify byte* cputs::s#8
to_nomodify byte* cputs::s#80
to_nomodify byte* cputs::s#81
to_nomodify byte* cputs::s#82
to_nomodify byte* cputs::s#83
to_nomodify byte* cputs::s#84
to_nomodify byte* cputs::s#85
to_nomodify byte* cputs::s#86
to_nomodify byte* cputs::s#87
to_nomodify byte* cputs::s#88
to_nomodify byte* cputs::s#89
to_nomodify byte* cputs::s#9
to_nomodify byte* cputs::s#90
to_nomodify byte* cputs::s#91
to_nomodify byte* cputs::s#92
to_nomodify byte* cputs::s#93
to_nomodify byte* cputs::s#94
to_nomodify byte* cputs::s#95
to_nomodify byte* cputs::s#96
to_nomodify byte* cputs::s#97
const byte* cputs::s
const byte* cputs::s#0
const byte* cputs::s#1
const byte* cputs::s#10
const byte* cputs::s#11
const byte* cputs::s#12
const byte* cputs::s#13
const byte* cputs::s#14
const byte* cputs::s#15
const byte* cputs::s#16
const byte* cputs::s#17
const byte* cputs::s#18
const byte* cputs::s#19
const byte* cputs::s#2
const byte* cputs::s#20
const byte* cputs::s#21
const byte* cputs::s#22
const byte* cputs::s#23
const byte* cputs::s#24
const byte* cputs::s#25
const byte* cputs::s#26
const byte* cputs::s#27
const byte* cputs::s#28
const byte* cputs::s#29
const byte* cputs::s#3
const byte* cputs::s#30
const byte* cputs::s#31
const byte* cputs::s#32
const byte* cputs::s#33
const byte* cputs::s#34
const byte* cputs::s#35
const byte* cputs::s#36
const byte* cputs::s#37
const byte* cputs::s#38
const byte* cputs::s#39
const byte* cputs::s#4
const byte* cputs::s#40
const byte* cputs::s#41
const byte* cputs::s#42
const byte* cputs::s#43
const byte* cputs::s#44
const byte* cputs::s#45
const byte* cputs::s#46
const byte* cputs::s#47
const byte* cputs::s#48
const byte* cputs::s#49
const byte* cputs::s#5
const byte* cputs::s#50
const byte* cputs::s#51
const byte* cputs::s#52
const byte* cputs::s#53
const byte* cputs::s#54
const byte* cputs::s#55
const byte* cputs::s#56
const byte* cputs::s#57
const byte* cputs::s#58
const byte* cputs::s#59
const byte* cputs::s#6
const byte* cputs::s#60
const byte* cputs::s#61
const byte* cputs::s#62
const byte* cputs::s#63
const byte* cputs::s#64
const byte* cputs::s#65
const byte* cputs::s#66
const byte* cputs::s#67
const byte* cputs::s#68
const byte* cputs::s#69
const byte* cputs::s#7
const byte* cputs::s#70
const byte* cputs::s#71
const byte* cputs::s#72
const byte* cputs::s#73
const byte* cputs::s#74
const byte* cputs::s#75
const byte* cputs::s#76
const byte* cputs::s#77
const byte* cputs::s#78
const byte* cputs::s#79
const byte* cputs::s#8
const byte* cputs::s#80
const byte* cputs::s#81
const byte* cputs::s#82
const byte* cputs::s#83
const byte* cputs::s#84
const byte* cputs::s#85
const byte* cputs::s#86
const byte* cputs::s#87
const byte* cputs::s#88
const byte* cputs::s#89
const byte* cputs::s#9
const byte* cputs::s#90
const byte* cputs::s#91
const byte* cputs::s#92
const byte* cputs::s#93
const byte* cputs::s#94
const byte* cputs::s#95
const byte* cputs::s#96
const byte* cputs::s#97
void cscroll()
bool~ cscroll::$0
bool~ cscroll::$1
@ -3476,8 +3476,8 @@ byte gotoxy::y#5
byte gotoxy::y#6
byte kbhit()
byte~ kbhit::$0
const nomodify byte* kbhit::CIA1_PORT_A = (byte*)$dc00
const nomodify byte* kbhit::CIA1_PORT_B = (byte*)$dc01
constant byte* const kbhit::CIA1_PORT_A = (byte*)$dc00
constant byte* const kbhit::CIA1_PORT_B = (byte*)$dc01
byte kbhit::return
byte kbhit::return#0
byte kbhit::return#1
@ -3535,7 +3535,7 @@ byte main::i#6
byte main::i#7
byte main::i#8
byte main::i#9
const dword* main::vals[] = { $deadbeef, $facefeed }
constant dword* main::vals[] = { $deadbeef, $facefeed }
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
byte*~ memcpy::$0
bool~ memcpy::$1
@ -4607,71 +4607,71 @@ dword~ rol_fixed::$41
dword~ rol_fixed::$5
dword~ rol_fixed::$7
dword~ rol_fixed::$9
const byte* rol_fixed::s[$b] = "rol fixed
constant byte* rol_fixed::s[$b] = "rol fixed
"
const byte* rol_fixed::s1[3] = ": "
const byte* rol_fixed::s10[2] = "
constant byte* rol_fixed::s1[3] = ": "
constant byte* rol_fixed::s10[2] = "
"
const byte* rol_fixed::s11[3] = ": "
const byte* rol_fixed::s12[2] = "
constant byte* rol_fixed::s11[3] = ": "
constant byte* rol_fixed::s12[2] = "
"
const byte* rol_fixed::s13[3] = ": "
const byte* rol_fixed::s14[2] = "
constant byte* rol_fixed::s13[3] = ": "
constant byte* rol_fixed::s14[2] = "
"
const byte* rol_fixed::s15[3] = ": "
const byte* rol_fixed::s16[2] = "
constant byte* rol_fixed::s15[3] = ": "
constant byte* rol_fixed::s16[2] = "
"
const byte* rol_fixed::s17[3] = ": "
const byte* rol_fixed::s18[2] = "
constant byte* rol_fixed::s17[3] = ": "
constant byte* rol_fixed::s18[2] = "
"
const byte* rol_fixed::s19[3] = ": "
const byte* rol_fixed::s2[2] = "
constant byte* rol_fixed::s19[3] = ": "
constant byte* rol_fixed::s2[2] = "
"
const byte* rol_fixed::s20[2] = "
constant byte* rol_fixed::s20[2] = "
"
const byte* rol_fixed::s21[3] = ": "
const byte* rol_fixed::s22[2] = "
constant byte* rol_fixed::s21[3] = ": "
constant byte* rol_fixed::s22[2] = "
"
const byte* rol_fixed::s23[3] = ": "
const byte* rol_fixed::s24[2] = "
constant byte* rol_fixed::s23[3] = ": "
constant byte* rol_fixed::s24[2] = "
"
const byte* rol_fixed::s25[3] = ": "
const byte* rol_fixed::s26[2] = "
constant byte* rol_fixed::s25[3] = ": "
constant byte* rol_fixed::s26[2] = "
"
const byte* rol_fixed::s27[3] = ": "
const byte* rol_fixed::s28[2] = "
constant byte* rol_fixed::s27[3] = ": "
constant byte* rol_fixed::s28[2] = "
"
const byte* rol_fixed::s29[3] = ": "
const byte* rol_fixed::s3[3] = ": "
const byte* rol_fixed::s30[2] = "
constant byte* rol_fixed::s29[3] = ": "
constant byte* rol_fixed::s3[3] = ": "
constant byte* rol_fixed::s30[2] = "
"
const byte* rol_fixed::s31[3] = ": "
const byte* rol_fixed::s32[2] = "
constant byte* rol_fixed::s31[3] = ": "
constant byte* rol_fixed::s32[2] = "
"
const byte* rol_fixed::s33[3] = ": "
const byte* rol_fixed::s34[2] = "
constant byte* rol_fixed::s33[3] = ": "
constant byte* rol_fixed::s34[2] = "
"
const byte* rol_fixed::s35[3] = ": "
const byte* rol_fixed::s36[2] = "
constant byte* rol_fixed::s35[3] = ": "
constant byte* rol_fixed::s36[2] = "
"
const byte* rol_fixed::s37[3] = ": "
const byte* rol_fixed::s38[2] = "
constant byte* rol_fixed::s37[3] = ": "
constant byte* rol_fixed::s38[2] = "
"
const byte* rol_fixed::s39[3] = ": "
const byte* rol_fixed::s4[2] = "
constant byte* rol_fixed::s39[3] = ": "
constant byte* rol_fixed::s4[2] = "
"
const byte* rol_fixed::s40[2] = "
constant byte* rol_fixed::s40[2] = "
"
const byte* rol_fixed::s41[3] = ": "
const byte* rol_fixed::s42[2] = "
constant byte* rol_fixed::s41[3] = ": "
constant byte* rol_fixed::s42[2] = "
"
const byte* rol_fixed::s5[3] = ": "
const byte* rol_fixed::s6[2] = "
constant byte* rol_fixed::s5[3] = ": "
constant byte* rol_fixed::s6[2] = "
"
const byte* rol_fixed::s7[3] = ": "
const byte* rol_fixed::s8[2] = "
constant byte* rol_fixed::s7[3] = ": "
constant byte* rol_fixed::s8[2] = "
"
const byte* rol_fixed::s9[3] = ": "
constant byte* rol_fixed::s9[3] = ": "
dword rol_fixed::val
dword rol_fixed::val#0
dword rol_fixed::val#1
@ -4769,10 +4769,10 @@ byte rol_var::i#4
byte rol_var::i#5
byte rol_var::i#6
byte rol_var::i#7
const byte* rol_var::s[9] = "rol var
constant byte* rol_var::s[9] = "rol var
"
const byte* rol_var::s1[3] = ": "
const byte* rol_var::s2[2] = "
constant byte* rol_var::s1[3] = ": "
constant byte* rol_var::s2[2] = "
"
dword rol_var::val
dword rol_var::val#0
@ -4784,7 +4784,7 @@ dword rol_var::val#5
dword rol_var::val#6
dword rol_var::val#7
dword rol_var::val#8
const byte* rols[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $c, $f, $10, $11, $14, $17, $18, $19, $1c, $1f, $20 }
constant byte* rols[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $c, $f, $10, $11, $14, $17, $18, $19, $1c, $1f, $20 }
void ror_fixed(dword ror_fixed::val)
dword~ ror_fixed::$1
dword~ ror_fixed::$11
@ -4807,71 +4807,71 @@ dword~ ror_fixed::$41
dword~ ror_fixed::$5
dword~ ror_fixed::$7
dword~ ror_fixed::$9
const byte* ror_fixed::s[$b] = "ror fixed
constant byte* ror_fixed::s[$b] = "ror fixed
"
const byte* ror_fixed::s1[3] = ": "
const byte* ror_fixed::s10[2] = "
constant byte* ror_fixed::s1[3] = ": "
constant byte* ror_fixed::s10[2] = "
"
const byte* ror_fixed::s11[3] = ": "
const byte* ror_fixed::s12[2] = "
constant byte* ror_fixed::s11[3] = ": "
constant byte* ror_fixed::s12[2] = "
"
const byte* ror_fixed::s13[3] = ": "
const byte* ror_fixed::s14[2] = "
constant byte* ror_fixed::s13[3] = ": "
constant byte* ror_fixed::s14[2] = "
"
const byte* ror_fixed::s15[3] = ": "
const byte* ror_fixed::s16[2] = "
constant byte* ror_fixed::s15[3] = ": "
constant byte* ror_fixed::s16[2] = "
"
const byte* ror_fixed::s17[3] = ": "
const byte* ror_fixed::s18[2] = "
constant byte* ror_fixed::s17[3] = ": "
constant byte* ror_fixed::s18[2] = "
"
const byte* ror_fixed::s19[3] = ": "
const byte* ror_fixed::s2[2] = "
constant byte* ror_fixed::s19[3] = ": "
constant byte* ror_fixed::s2[2] = "
"
const byte* ror_fixed::s20[2] = "
constant byte* ror_fixed::s20[2] = "
"
const byte* ror_fixed::s21[3] = ": "
const byte* ror_fixed::s22[2] = "
constant byte* ror_fixed::s21[3] = ": "
constant byte* ror_fixed::s22[2] = "
"
const byte* ror_fixed::s23[3] = ": "
const byte* ror_fixed::s24[2] = "
constant byte* ror_fixed::s23[3] = ": "
constant byte* ror_fixed::s24[2] = "
"
const byte* ror_fixed::s25[3] = ": "
const byte* ror_fixed::s26[2] = "
constant byte* ror_fixed::s25[3] = ": "
constant byte* ror_fixed::s26[2] = "
"
const byte* ror_fixed::s27[3] = ": "
const byte* ror_fixed::s28[2] = "
constant byte* ror_fixed::s27[3] = ": "
constant byte* ror_fixed::s28[2] = "
"
const byte* ror_fixed::s29[3] = ": "
const byte* ror_fixed::s3[3] = ": "
const byte* ror_fixed::s30[2] = "
constant byte* ror_fixed::s29[3] = ": "
constant byte* ror_fixed::s3[3] = ": "
constant byte* ror_fixed::s30[2] = "
"
const byte* ror_fixed::s31[3] = ": "
const byte* ror_fixed::s32[2] = "
constant byte* ror_fixed::s31[3] = ": "
constant byte* ror_fixed::s32[2] = "
"
const byte* ror_fixed::s33[3] = ": "
const byte* ror_fixed::s34[2] = "
constant byte* ror_fixed::s33[3] = ": "
constant byte* ror_fixed::s34[2] = "
"
const byte* ror_fixed::s35[3] = ": "
const byte* ror_fixed::s36[2] = "
constant byte* ror_fixed::s35[3] = ": "
constant byte* ror_fixed::s36[2] = "
"
const byte* ror_fixed::s37[3] = ": "
const byte* ror_fixed::s38[2] = "
constant byte* ror_fixed::s37[3] = ": "
constant byte* ror_fixed::s38[2] = "
"
const byte* ror_fixed::s39[3] = ": "
const byte* ror_fixed::s4[2] = "
constant byte* ror_fixed::s39[3] = ": "
constant byte* ror_fixed::s4[2] = "
"
const byte* ror_fixed::s40[2] = "
constant byte* ror_fixed::s40[2] = "
"
const byte* ror_fixed::s41[3] = ": "
const byte* ror_fixed::s42[2] = "
constant byte* ror_fixed::s41[3] = ": "
constant byte* ror_fixed::s42[2] = "
"
const byte* ror_fixed::s5[3] = ": "
const byte* ror_fixed::s6[2] = "
constant byte* ror_fixed::s5[3] = ": "
constant byte* ror_fixed::s6[2] = "
"
const byte* ror_fixed::s7[3] = ": "
const byte* ror_fixed::s8[2] = "
constant byte* ror_fixed::s7[3] = ": "
constant byte* ror_fixed::s8[2] = "
"
const byte* ror_fixed::s9[3] = ": "
constant byte* ror_fixed::s9[3] = ": "
dword ror_fixed::val
dword ror_fixed::val#0
dword ror_fixed::val#1
@ -4969,10 +4969,10 @@ byte ror_var::i#4
byte ror_var::i#5
byte ror_var::i#6
byte ror_var::i#7
const byte* ror_var::s[9] = "ror var
constant byte* ror_var::s[9] = "ror var
"
const byte* ror_var::s1[3] = ": "
const byte* ror_var::s2[2] = "
constant byte* ror_var::s1[3] = ": "
constant byte* ror_var::s2[2] = "
"
dword ror_var::val
dword ror_var::val#0
@ -10858,7 +10858,7 @@ ror_var::@6: scope:[ror_var] from ror_var::@5
[461] ror_var::i#1 = ++ ror_var::i#2
to:ror_var::@1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from printf_number_buffer::@4 rol_fixed rol_fixed::@10 rol_fixed::@12 rol_fixed::@14 rol_fixed::@16 rol_fixed::@18 rol_fixed::@2 rol_fixed::@20 rol_fixed::@22 rol_fixed::@24 rol_fixed::@26 rol_fixed::@28 rol_fixed::@30 rol_fixed::@32 rol_fixed::@34 rol_fixed::@36 rol_fixed::@38 rol_fixed::@4 rol_fixed::@40 rol_fixed::@42 rol_fixed::@44 rol_fixed::@46 rol_fixed::@48 rol_fixed::@50 rol_fixed::@52 rol_fixed::@54 rol_fixed::@56 rol_fixed::@58 rol_fixed::@6 rol_fixed::@60 rol_fixed::@62 rol_fixed::@64 rol_fixed::@66 rol_fixed::@68 rol_fixed::@70 rol_fixed::@72 rol_fixed::@74 rol_fixed::@76 rol_fixed::@78 rol_fixed::@8 rol_fixed::@80 rol_fixed::@82 rol_fixed::@84 rol_var rol_var::@3 rol_var::@5 ror_fixed ror_fixed::@10 ror_fixed::@12 ror_fixed::@14 ror_fixed::@16 ror_fixed::@18 ror_fixed::@2 ror_fixed::@20 ror_fixed::@22 ror_fixed::@24 ror_fixed::@26 ror_fixed::@28 ror_fixed::@30 ror_fixed::@32 ror_fixed::@34 ror_fixed::@36 ror_fixed::@38 ror_fixed::@4 ror_fixed::@40 ror_fixed::@42 ror_fixed::@44 ror_fixed::@46 ror_fixed::@48 ror_fixed::@50 ror_fixed::@52 ror_fixed::@54 ror_fixed::@56 ror_fixed::@58 ror_fixed::@6 ror_fixed::@60 ror_fixed::@62 ror_fixed::@64 ror_fixed::@66 ror_fixed::@68 ror_fixed::@70 ror_fixed::@72 ror_fixed::@74 ror_fixed::@76 ror_fixed::@78 ror_fixed::@8 ror_fixed::@80 ror_fixed::@82 ror_fixed::@84 ror_var ror_var::@3 ror_var::@5
[462] cputs::s#95 = phi( printf_number_buffer::@4/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS, rol_fixed/rol_fixed::s, rol_fixed::@10/s1, rol_fixed::@12/s2, rol_fixed::@14/s1, rol_fixed::@16/s2, rol_fixed::@18/s1, rol_fixed::@2/s1, rol_fixed::@20/s2, rol_fixed::@22/s1, rol_fixed::@24/s2, rol_fixed::@26/s1, rol_fixed::@28/s2, rol_fixed::@30/s1, rol_fixed::@32/s2, rol_fixed::@34/s1, rol_fixed::@36/s2, rol_fixed::@38/s1, rol_fixed::@4/s2, rol_fixed::@40/s2, rol_fixed::@42/s1, rol_fixed::@44/s2, rol_fixed::@46/s1, rol_fixed::@48/s2, rol_fixed::@50/s1, rol_fixed::@52/s2, rol_fixed::@54/s1, rol_fixed::@56/s2, rol_fixed::@58/s1, rol_fixed::@6/s1, rol_fixed::@60/s2, rol_fixed::@62/s1, rol_fixed::@64/s2, rol_fixed::@66/s1, rol_fixed::@68/s2, rol_fixed::@70/s1, rol_fixed::@72/s2, rol_fixed::@74/s1, rol_fixed::@76/s2, rol_fixed::@78/s1, rol_fixed::@8/s2, rol_fixed::@80/s2, rol_fixed::@82/s1, rol_fixed::@84/s2, rol_var/rol_var::s, rol_var::@3/s1, rol_var::@5/s2, ror_fixed/ror_fixed::s, ror_fixed::@10/s1, ror_fixed::@12/s2, ror_fixed::@14/s1, ror_fixed::@16/s2, ror_fixed::@18/s1, ror_fixed::@2/s1, ror_fixed::@20/s2, ror_fixed::@22/s1, ror_fixed::@24/s2, ror_fixed::@26/s1, ror_fixed::@28/s2, ror_fixed::@30/s1, ror_fixed::@32/s2, ror_fixed::@34/s1, ror_fixed::@36/s2, ror_fixed::@38/s1, ror_fixed::@4/s2, ror_fixed::@40/s2, ror_fixed::@42/s1, ror_fixed::@44/s2, ror_fixed::@46/s1, ror_fixed::@48/s2, ror_fixed::@50/s1, ror_fixed::@52/s2, ror_fixed::@54/s1, ror_fixed::@56/s2, ror_fixed::@58/s1, ror_fixed::@6/s1, ror_fixed::@60/s2, ror_fixed::@62/s1, ror_fixed::@64/s2, ror_fixed::@66/s1, ror_fixed::@68/s2, ror_fixed::@70/s1, ror_fixed::@72/s2, ror_fixed::@74/s1, ror_fixed::@76/s2, ror_fixed::@78/s1, ror_fixed::@8/s2, ror_fixed::@80/s2, ror_fixed::@82/s1, ror_fixed::@84/s2, ror_var/ror_var::s, ror_var::@3/s1, ror_var::@5/s2 )
to:cputs::@1
@ -11374,13 +11374,13 @@ byte cputc::c#1 2.00000000002E11
byte cputc::c#2 2.0000002E7
byte cputc::c#3 1.1000050000025E12
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 1.00000000001E11
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 5.00000000005E10
to_nomodify byte* cputs::s#94 1.50050000002E11
to_nomodify byte* cputs::s#95 1.00000001E8
const byte* cputs::s
const byte* cputs::s#0 5.00000000005E10
const byte* cputs::s#94 1.50050000002E11
const byte* cputs::s#95 1.00000001E8
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte*~ gotoxy::$5 202.0
@ -16213,7 +16213,7 @@ ror_var: {
.segment Code
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($c) s)
// cputs(const byte* zp($c) s)
cputs: {
.label s = $c
// [463] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]
@ -18540,20 +18540,20 @@ Removing instruction __b6:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* COLORRAM = (byte*) 55296
const nomodify byte* DEFAULT_SCREEN = (byte*) 1024
const byte* DIGITS[] = "0123456789abcdef"z
const nomodify byte LIGHT_BLUE = $e
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
const dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
const byte SIZEOF_BYTE = 1
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant byte* const COLORRAM = (byte*) 55296
constant byte* const DEFAULT_SCREEN = (byte*) 1024
constant byte* DIGITS[] = "0123456789abcdef"z
constant const byte LIGHT_BLUE = $e
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
constant dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
constant byte SIZEOF_BYTE = 1
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void __start()
void clrscr()
byte clrscr::c
@ -18569,7 +18569,7 @@ byte* clrscr::line_text
byte* clrscr::line_text#1 line_text zp[2]:12 66667.33333333333
byte* clrscr::line_text#5 line_text zp[2]:12 171429.0
void conio_c64_init()
const nomodify byte* conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_c64_init::line
byte conio_c64_init::line#0 reg byte x 11.0
byte conio_c64_init::line#2 reg byte x 22.0
@ -18584,13 +18584,13 @@ byte cputc::c#1 reg byte a 2.00000000002E11
byte cputc::c#2 reg byte a 2.0000002E7
byte cputc::c#3 reg byte a 1.1000050000025E12
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.00000000001E11
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:12 5.00000000005E10
to_nomodify byte* cputs::s#94 s zp[2]:12 1.50050000002E11
to_nomodify byte* cputs::s#95 s zp[2]:12 1.00000001E8
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:12 5.00000000005E10
const byte* cputs::s#94 s zp[2]:12 1.50050000002E11
const byte* cputs::s#95 s zp[2]:12 1.00000001E8
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte*~ gotoxy::$5 zp[2]:34 202.0
@ -18601,13 +18601,13 @@ word~ gotoxy::$9 zp[2]:30 202.0
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:30 101.0
byte gotoxy::x
const byte gotoxy::x#2 x = 0
constant byte gotoxy::x#2 x = 0
byte gotoxy::y
byte gotoxy::y#2 reg byte x 71.0
byte gotoxy::y#4 reg byte x 67.33333333333333
byte kbhit()
const nomodify byte* kbhit::CIA1_PORT_A = (byte*) 56320
const nomodify byte* kbhit::CIA1_PORT_B = (byte*) 56321
constant byte* const kbhit::CIA1_PORT_A = (byte*) 56320
constant byte* const kbhit::CIA1_PORT_B = (byte*) 56321
byte kbhit::return
byte kbhit::return#0 reg byte a 2334.1666666666665
byte kbhit::return#10 reg byte a 2002.0
@ -18624,7 +18624,7 @@ byte~ main::$6 reg byte a 2002.0
byte main::i
byte main::i#1 i zp[1]:2 202.0
byte main::i#12 i zp[1]:2 7.973684210526316
const dword* main::vals[] = { $deadbeef, $facefeed }
constant dword* main::vals[] = { $deadbeef, $facefeed }
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
void* memcpy::destination
void* memcpy::destination#2 destination zp[2]:45
@ -18771,7 +18771,7 @@ dword printf_ulong::uvalue#7 uvalue zp[4]:6 400.4
dword printf_ulong::uvalue#8 uvalue zp[4]:6 400.4
dword printf_ulong::uvalue#9 uvalue zp[4]:6 400.4
void rol_fixed(dword rol_fixed::val)
const byte* rol_fixed::s[$b] = "rol fixed
constant byte* rol_fixed::s[$b] = "rol fixed
"
dword rol_fixed::val
dword rol_fixed::val#0 val zp[4]:26 129.58282208588952
@ -18779,13 +18779,13 @@ void rol_var(dword rol_var::val)
byte rol_var::i
byte rol_var::i#1 i zp[1]:3 200002.0
byte rol_var::i#2 i zp[1]:3 45455.0
const byte* rol_var::s[9] = "rol var
constant byte* rol_var::s[9] = "rol var
"
dword rol_var::val
dword rol_var::val#0 val zp[4]:26 6673.466666666667
const byte* rols[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $c, $f, $10, $11, $14, $17, $18, $19, $1c, $1f, $20 }
constant byte* rols[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $c, $f, $10, $11, $14, $17, $18, $19, $1c, $1f, $20 }
void ror_fixed(dword ror_fixed::val)
const byte* ror_fixed::s[$b] = "ror fixed
constant byte* ror_fixed::s[$b] = "ror fixed
"
dword ror_fixed::val
dword ror_fixed::val#0 val zp[4]:26 129.58282208588952
@ -18793,12 +18793,12 @@ void ror_var(dword ror_var::val)
byte ror_var::i
byte ror_var::i#1 i zp[1]:3 200002.0
byte ror_var::i#2 i zp[1]:3 45455.0
const byte* ror_var::s[9] = "ror var
constant byte* ror_var::s[9] = "ror var
"
dword ror_var::val
dword ror_var::val#0 val zp[4]:26 6673.466666666667
const byte* s1[3] = ": "
const byte* s2[2] = "
constant byte* s1[3] = ": "
constant byte* s2[2] = "
"
word strlen(byte* strlen::str)
word strlen::len
@ -22055,7 +22055,7 @@ ror_var: {
.segment Code
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($c) s)
// cputs(const byte* zp($c) s)
cputs: {
.label s = $c
// [463] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]

View File

@ -1,17 +1,17 @@
const nomodify byte* COLORRAM = (byte*) 55296
const nomodify byte* DEFAULT_SCREEN = (byte*) 1024
const byte* DIGITS[] = "0123456789abcdef"z
const nomodify byte LIGHT_BLUE = $e
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
const dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
const byte SIZEOF_BYTE = 1
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant byte* const COLORRAM = (byte*) 55296
constant byte* const DEFAULT_SCREEN = (byte*) 1024
constant byte* DIGITS[] = "0123456789abcdef"z
constant const byte LIGHT_BLUE = $e
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
constant dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
constant byte SIZEOF_BYTE = 1
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void __start()
void clrscr()
byte clrscr::c
@ -27,7 +27,7 @@ byte* clrscr::line_text
byte* clrscr::line_text#1 line_text zp[2]:12 66667.33333333333
byte* clrscr::line_text#5 line_text zp[2]:12 171429.0
void conio_c64_init()
const nomodify byte* conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_c64_init::line
byte conio_c64_init::line#0 reg byte x 11.0
byte conio_c64_init::line#2 reg byte x 22.0
@ -42,13 +42,13 @@ byte cputc::c#1 reg byte a 2.00000000002E11
byte cputc::c#2 reg byte a 2.0000002E7
byte cputc::c#3 reg byte a 1.1000050000025E12
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.00000000001E11
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:12 5.00000000005E10
to_nomodify byte* cputs::s#94 s zp[2]:12 1.50050000002E11
to_nomodify byte* cputs::s#95 s zp[2]:12 1.00000001E8
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:12 5.00000000005E10
const byte* cputs::s#94 s zp[2]:12 1.50050000002E11
const byte* cputs::s#95 s zp[2]:12 1.00000001E8
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte*~ gotoxy::$5 zp[2]:34 202.0
@ -59,13 +59,13 @@ word~ gotoxy::$9 zp[2]:30 202.0
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:30 101.0
byte gotoxy::x
const byte gotoxy::x#2 x = 0
constant byte gotoxy::x#2 x = 0
byte gotoxy::y
byte gotoxy::y#2 reg byte x 71.0
byte gotoxy::y#4 reg byte x 67.33333333333333
byte kbhit()
const nomodify byte* kbhit::CIA1_PORT_A = (byte*) 56320
const nomodify byte* kbhit::CIA1_PORT_B = (byte*) 56321
constant byte* const kbhit::CIA1_PORT_A = (byte*) 56320
constant byte* const kbhit::CIA1_PORT_B = (byte*) 56321
byte kbhit::return
byte kbhit::return#0 reg byte a 2334.1666666666665
byte kbhit::return#10 reg byte a 2002.0
@ -82,7 +82,7 @@ byte~ main::$6 reg byte a 2002.0
byte main::i
byte main::i#1 i zp[1]:2 202.0
byte main::i#12 i zp[1]:2 7.973684210526316
const dword* main::vals[] = { $deadbeef, $facefeed }
constant dword* main::vals[] = { $deadbeef, $facefeed }
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
void* memcpy::destination
void* memcpy::destination#2 destination zp[2]:45
@ -229,7 +229,7 @@ dword printf_ulong::uvalue#7 uvalue zp[4]:6 400.4
dword printf_ulong::uvalue#8 uvalue zp[4]:6 400.4
dword printf_ulong::uvalue#9 uvalue zp[4]:6 400.4
void rol_fixed(dword rol_fixed::val)
const byte* rol_fixed::s[$b] = "rol fixed
constant byte* rol_fixed::s[$b] = "rol fixed
"
dword rol_fixed::val
dword rol_fixed::val#0 val zp[4]:26 129.58282208588952
@ -237,13 +237,13 @@ void rol_var(dword rol_var::val)
byte rol_var::i
byte rol_var::i#1 i zp[1]:3 200002.0
byte rol_var::i#2 i zp[1]:3 45455.0
const byte* rol_var::s[9] = "rol var
constant byte* rol_var::s[9] = "rol var
"
dword rol_var::val
dword rol_var::val#0 val zp[4]:26 6673.466666666667
const byte* rols[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $c, $f, $10, $11, $14, $17, $18, $19, $1c, $1f, $20 }
constant byte* rols[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $c, $f, $10, $11, $14, $17, $18, $19, $1c, $1f, $20 }
void ror_fixed(dword ror_fixed::val)
const byte* ror_fixed::s[$b] = "ror fixed
constant byte* ror_fixed::s[$b] = "ror fixed
"
dword ror_fixed::val
dword ror_fixed::val#0 val zp[4]:26 129.58282208588952
@ -251,12 +251,12 @@ void ror_var(dword ror_var::val)
byte ror_var::i
byte ror_var::i#1 i zp[1]:3 200002.0
byte ror_var::i#2 i zp[1]:3 45455.0
const byte* ror_var::s[9] = "ror var
constant byte* ror_var::s[9] = "ror var
"
dword ror_var::val
dword ror_var::val#0 val zp[4]:26 6673.466666666667
const byte* s1[3] = ": "
const byte* s2[2] = "
constant byte* s1[3] = ": "
constant byte* s2[2] = "
"
word strlen(byte* strlen::str)
word strlen::len

View File

@ -33,7 +33,7 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
byte i loadstore !zp[-1]:2
void main()
@ -204,7 +204,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
byte i loadstore !zp[-1]:2 zp[1]:2 84.49999999999999
void main()

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
byte i loadstore !zp[-1]:2 zp[1]:2 84.49999999999999
void main()

View File

@ -28,7 +28,7 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
void main()
bool~ main::$0
@ -148,7 +148,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void main()
byte main::i loadstore !zp[-1]:2 zp[1]:2 14.25

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void main()
byte main::i loadstore !zp[-1]:2 zp[1]:2 14.25

View File

@ -33,7 +33,7 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
byte i loadstore !mem[-1]:8192
void main()
@ -204,7 +204,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
byte i loadstore !mem[-1]:8192 mem[1]:8192 84.49999999999999
void main()

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
byte i loadstore !mem[-1]:8192 mem[1]:8192 84.49999999999999
void main()

View File

@ -28,7 +28,7 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
void main()
bool~ main::$0
@ -148,7 +148,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void main()
byte main::i loadstore !mem[-1]:8192 mem[1]:8192 14.25

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void main()
byte main::i loadstore !mem[-1]:8192 mem[1]:8192 14.25

View File

@ -37,14 +37,14 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const word* SCREEN = (word*)$400
const byte SIZEOF_WORD = 2
constant word* SCREEN = (word*)$400
constant byte SIZEOF_WORD = 2
void __start()
void main()
bool~ main::$0
byte~ main::$1
byte~ main::$2
const nomodify word main::ch = $102
constant const word main::ch = $102
byte main::i loadstore !zp[-1]:2
Adding number conversion cast (unumber) 8 in main::$0 = main::i < 8
@ -202,11 +202,11 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const word* SCREEN = (word*) 1024
constant word* SCREEN = (word*) 1024
void main()
byte~ main::$1 reg byte a 22.0
byte~ main::$2 reg byte a 22.0
const nomodify word main::ch = $102
constant const word main::ch = $102
byte main::i loadstore !zp[-1]:2 zp[1]:2 9.875
zp[1]:2 [ main::i ]

View File

@ -1,8 +1,8 @@
const word* SCREEN = (word*) 1024
constant word* SCREEN = (word*) 1024
void main()
byte~ main::$1 reg byte a 22.0
byte~ main::$2 reg byte a 22.0
const nomodify word main::ch = $102
constant const word main::ch = $102
byte main::i loadstore !zp[-1]:2 zp[1]:2 9.875
zp[1]:2 [ main::i ]

View File

@ -46,7 +46,7 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
volatile byte idx loadstore !zp[-1]:3
void main()
@ -255,7 +255,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
volatile byte idx loadstore !zp[-1]:3 zp[1]:3 0.2222222222222222
void main()

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
volatile byte idx loadstore !zp[-1]:3 zp[1]:3 0.2222222222222222
void main()

View File

@ -46,7 +46,7 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
volatile byte idx loadstore !mem[-1]:12288
void main()
@ -255,7 +255,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
volatile byte idx loadstore !mem[-1]:12288 mem[1]:12288 0.2222222222222222
void main()

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void __start()
volatile byte idx loadstore !mem[-1]:12288 mem[1]:12288 0.2222222222222222
void main()

View File

@ -20,8 +20,8 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const byte* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify byte* SCREEN = (byte*)$400
constant byte* DATA[$3e8] = { fill( $3e8, 0) }
constant byte* const SCREEN = (byte*)$400
void __start()
void main()
@ -118,8 +118,8 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify byte* SCREEN = (byte*) 1024
constant byte* DATA[$3e8] = { fill( $3e8, 0) }
constant byte* const SCREEN = (byte*) 1024
void main()

View File

@ -1,4 +1,4 @@
const byte* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify byte* SCREEN = (byte*) 1024
constant byte* DATA[$3e8] = { fill( $3e8, 0) }
constant byte* const SCREEN = (byte*) 1024
void main()

View File

@ -21,9 +21,9 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const signed word* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify signed word* SCREEN = (signed word*)$400
const byte SIZEOF_SIGNED_WORD = 2
constant signed word* DATA[$3e8] = { fill( $3e8, 0) }
constant signed word* const SCREEN = (signed word*)$400
constant byte SIZEOF_SIGNED_WORD = 2
void __start()
void main()
number~ main::$0
@ -131,8 +131,8 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const signed word* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify signed word* SCREEN = (signed word*) 1024
constant signed word* DATA[$3e8] = { fill( $3e8, 0) }
constant signed word* const SCREEN = (signed word*) 1024
void main()

View File

@ -1,4 +1,4 @@
const signed word* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify signed word* SCREEN = (signed word*) 1024
constant signed word* DATA[$3e8] = { fill( $3e8, 0) }
constant signed word* const SCREEN = (signed word*) 1024
void main()

View File

@ -33,9 +33,9 @@ void __start()
void main()
number~ main::$0
bool~ main::$1
const byte* main::SCREEN = (byte*)$400
constant byte* main::SCREEN = (byte*)$400
volatile byte main::b loadstore
const byte* main::bp = &main::b
constant byte* main::bp = &main::b
byte main::c
byte main::c#0
@ -172,9 +172,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
void main()
const byte* main::SCREEN = (byte*) 1024
constant byte* main::SCREEN = (byte*) 1024
volatile byte main::b loadstore zp[1]:2 9.200000000000001
const byte* main::bp = &main::b
constant byte* main::bp = &main::b
byte main::c
byte main::c#0 reg byte a 22.0

View File

@ -1,7 +1,7 @@
void main()
const byte* main::SCREEN = (byte*) 1024
constant byte* main::SCREEN = (byte*) 1024
volatile byte main::b loadstore zp[1]:2 9.200000000000001
const byte* main::bp = &main::b
constant byte* main::bp = &main::b
byte main::c
byte main::c#0 reg byte a 22.0

View File

@ -55,7 +55,7 @@ __start::@return: scope:[__start] from __start::@1
SYMBOL TABLE SSA
void __start()
void main()
const byte* main::SCREEN = (byte*)$400
constant byte* main::SCREEN = (byte*)$400
volatile byte main::b1 loadstore
volatile byte main::b2 loadstore
volatile byte main::b3 loadstore
@ -353,7 +353,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
void main()
const byte* main::SCREEN = (byte*) 1024
constant byte* main::SCREEN = (byte*) 1024
volatile byte main::b1 loadstore zp[1]:4 0.36363636363636365
volatile byte main::b2 loadstore zp[1]:5 0.36363636363636365
volatile byte main::b3 loadstore zp[1]:6 0.36363636363636365

View File

@ -1,5 +1,5 @@
void main()
const byte* main::SCREEN = (byte*) 1024
constant byte* main::SCREEN = (byte*) 1024
volatile byte main::b1 loadstore zp[1]:4 0.36363636363636365
volatile byte main::b2 loadstore zp[1]:5 0.36363636363636365
volatile byte main::b3 loadstore zp[1]:6 0.36363636363636365

View File

@ -80,8 +80,8 @@ __start::@return: scope:[__start] from __start::@2
SYMBOL TABLE SSA
void __start()
void main()
const nomodify byte* main::SCREEN1 = (byte*)$400
const nomodify byte* main::SCREEN2 = main::SCREEN1+$28
constant byte* const main::SCREEN1 = (byte*)$400
constant byte* const main::SCREEN2 = main::SCREEN1+$28
byte main::idx
byte main::idx#0
byte main::idx#1
@ -92,7 +92,7 @@ byte main::idx#5
byte main::idx#6
byte main::idx#7
byte main::idx#8
const byte* main::ptr = &val
constant byte* main::ptr = &val
void setp(byte* setp::p , byte setp::v)
byte* setp::p
byte* setp::p#0
@ -501,17 +501,17 @@ Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
void __start()
void main()
const nomodify byte* main::SCREEN1 = (byte*) 1024
const nomodify byte* main::SCREEN2 = main::SCREEN1+$28
constant byte* const main::SCREEN1 = (byte*) 1024
constant byte* const main::SCREEN2 = main::SCREEN1+$28
byte main::idx
const byte* main::ptr = &val
constant byte* main::ptr = &val
void setp(byte* setp::p , byte setp::v)
byte* setp::p
byte setp::v
const byte setp::v#0 v = 5
constant byte setp::v#0 v = 5
void setv(byte setv::v)
byte setv::v
const byte setv::v#0 v = 4
constant byte setv::v#0 v = 4
volatile byte val loadstore zp[1]:2 14.692307692307692
zp[1]:2 [ val ]

View File

@ -1,16 +1,16 @@
void __start()
void main()
const nomodify byte* main::SCREEN1 = (byte*) 1024
const nomodify byte* main::SCREEN2 = main::SCREEN1+$28
constant byte* const main::SCREEN1 = (byte*) 1024
constant byte* const main::SCREEN2 = main::SCREEN1+$28
byte main::idx
const byte* main::ptr = &val
constant byte* main::ptr = &val
void setp(byte* setp::p , byte setp::v)
byte* setp::p
byte setp::v
const byte setp::v#0 v = 5
constant byte setp::v#0 v = 5
void setv(byte setv::v)
byte setv::v
const byte setv::v#0 v = 4
constant byte setv::v#0 v = 4
volatile byte val loadstore zp[1]:2 14.692307692307692
zp[1]:2 [ val ]

View File

@ -77,9 +77,9 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const nomodify signed word* SCREEN = (signed word*)$400
const byte SIZEOF_SIGNED_WORD = 2
const signed word* VALS[] = { 1, 2, 3, 4 }
constant signed word* const SCREEN = (signed word*)$400
constant byte SIZEOF_SIGNED_WORD = 2
constant signed word* VALS[] = { 1, 2, 3, 4 }
void __start()
byte idx
byte idx#0
@ -442,9 +442,9 @@ Removing instruction jmp __b1
Succesful ASM optimization Pass5NextJumpElimination
FINAL SYMBOL TABLE
const nomodify signed word* SCREEN = (signed word*) 1024
const byte SIZEOF_SIGNED_WORD = 2
const signed word* VALS[] = { 1, 2, 3, 4 }
constant signed word* const SCREEN = (signed word*) 1024
constant byte SIZEOF_SIGNED_WORD = 2
constant signed word* VALS[] = { 1, 2, 3, 4 }
byte idx
byte idx#13 idx zp[1]:3 71.66666666666666
byte idx#14 idx zp[1]:3 10.363636363636363

View File

@ -1,6 +1,6 @@
const nomodify signed word* SCREEN = (signed word*) 1024
const byte SIZEOF_SIGNED_WORD = 2
const signed word* VALS[] = { 1, 2, 3, 4 }
constant signed word* const SCREEN = (signed word*) 1024
constant byte SIZEOF_SIGNED_WORD = 2
constant signed word* VALS[] = { 1, 2, 3, 4 }
byte idx
byte idx#13 idx zp[1]:3 71.66666666666666
byte idx#14 idx zp[1]:3 10.363636363636363

View File

@ -20,12 +20,12 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const byte* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify byte* SCREEN = (byte*)$400
constant byte* DATA[$3e8] = { fill( $3e8, 0) }
constant byte* const SCREEN = (byte*)$400
void __start()
void main()
const nomodify word var1 = $800
const nomodify word var2 = $900
constant const word var1 = $800
constant const word var2 = $900
Adding number conversion cast (unumber) 0 in SCREEN[0] = DATA[0]
Adding number conversion cast (unumber) 0 in SCREEN[0] = DATA[(unumber)0]
@ -121,11 +121,11 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify byte* SCREEN = (byte*) 1024
constant byte* DATA[$3e8] = { fill( $3e8, 0) }
constant byte* const SCREEN = (byte*) 1024
void main()
const nomodify word var1 = $800
const nomodify word var2 = $900
constant const word var1 = $800
constant const word var2 = $900

View File

@ -1,6 +1,6 @@
const byte* DATA[$3e8] = { fill( $3e8, 0) }
const nomodify byte* SCREEN = (byte*) 1024
constant byte* DATA[$3e8] = { fill( $3e8, 0) }
constant byte* const SCREEN = (byte*) 1024
void main()
const nomodify word var1 = $800
const nomodify word var2 = $900
constant const word var1 = $800
constant const word var2 = $900

View File

@ -721,7 +721,7 @@ clrscr: {
rts
}
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($8a) s)
// cputs(const byte* zp($8a) s)
cputs: {
.label s = $8a
__b1:

View File

@ -265,7 +265,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@1
[139] return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@13 main::@18 main::@19 main::@21 main::@23 main::@25 main::@27 main::@29 main::@3 main::@31 main::@33 main::@35 main::@37 main::@39 main::@41 main::@43 main::@45 main::@47 main::@49 main::@51 main::@54 main::@56 main::@6 main::@8 printf_number_buffer::@2
[140] cputs::s#27 = phi( main::@13/main::s4, main::@18/main::s5, main::@19/main::s, main::@21/main::s1, main::@23/main::s1, main::@25/main::s6, main::@27/main::s7, main::@3/main::s2, main::@29/main::s8, main::@31/main::s7, main::@33/main::s10, main::@35/main::s11, main::@37/main::s5, main::@39/main::s6, main::@41/main::s7, main::@43/main::s8, main::@45/main::s7, main::@47/main::s8, main::@49/main::s7, main::@51/main::s10, main::@54/main::s11, main::@56/main::s5, main::@6/main::s4, main::@8/main::s5, printf_number_buffer::@2/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
to:cputs::@1

View File

@ -651,7 +651,7 @@ putchar::@return: scope:[putchar] from putchar::@2
return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@13 main::@18 main::@19 main::@21 main::@24 main::@27 main::@29 main::@3 main::@31 main::@33 main::@35 main::@37 main::@39 main::@42 main::@44 main::@46 main::@48 main::@50 main::@52 main::@54 main::@57 main::@59 main::@6 main::@8 printf_number_buffer::@5
cputs::s#27 = phi( main::@13/cputs::s#15, main::@18/cputs::s#16, main::@19/cputs::s#2, main::@21/cputs::s#3, main::@24/cputs::s#5, main::@27/cputs::s#8, main::@29/cputs::s#9, main::@3/cputs::s#4, main::@31/cputs::s#10, main::@33/cputs::s#11, main::@35/cputs::s#12, main::@37/cputs::s#13, main::@39/cputs::s#14, main::@42/cputs::s#17, main::@44/cputs::s#18, main::@46/cputs::s#19, main::@48/cputs::s#20, main::@50/cputs::s#21, main::@52/cputs::s#22, main::@54/cputs::s#23, main::@57/cputs::s#24, main::@59/cputs::s#25, main::@6/cputs::s#6, main::@8/cputs::s#7, printf_number_buffer::@5/cputs::s#1 )
cputs::c#0 = 0
@ -1810,33 +1810,33 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte BINARY = 2
const word* COLCRS = (word*)$55
const nomodify byte* CRSINH = (byte*)$2f0
const byte DECIMAL = $a
const byte* DIGITS[] = "0123456789abcdef"atz
const byte HEXADECIMAL = $10
const byte OCTAL = 8
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
const nomodify byte** OLDADR = (byte**)$5e
const nomodify byte* OLDCHR = (byte*)$5d
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
const dword* RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
const word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
const dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
const word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
const dword* RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 }
const byte* ROWCRS = (byte*)$54
const nomodify byte** SAVMSC = (byte**)$58
const byte SIZEOF_DWORD = 4
const byte SIZEOF_WORD = 2
constant byte BINARY = 2
constant word* COLCRS = (word*)$55
constant byte* const CRSINH = (byte*)$2f0
constant byte DECIMAL = $a
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte HEXADECIMAL = $10
constant byte OCTAL = 8
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
constant byte** const OLDADR = (byte**)$5e
constant byte* const OLDCHR = (byte*)$5d
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
constant dword* RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
constant dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 }
constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
constant dword* RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 }
constant byte* ROWCRS = (byte*)$54
constant byte** const SAVMSC = (byte**)$58
constant byte SIZEOF_DWORD = 4
constant byte SIZEOF_WORD = 2
void __start()
void clrscr()
byte conio_display_cursor loadstore
@ -1858,44 +1858,44 @@ byte cputc::convertToScreenCode1_return#3
byte* cputc::convertToScreenCode1_v
byte* cputc::convertToScreenCode1_v#0
byte* cputc::convertToScreenCode1_v#1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte~ cputs::$0
bool~ cputs::$2
byte cputs::c
byte cputs::c#0
byte cputs::c#1
byte cputs::c#2
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0
to_nomodify byte* cputs::s#1
to_nomodify byte* cputs::s#10
to_nomodify byte* cputs::s#11
to_nomodify byte* cputs::s#12
to_nomodify byte* cputs::s#13
to_nomodify byte* cputs::s#14
to_nomodify byte* cputs::s#15
to_nomodify byte* cputs::s#16
to_nomodify byte* cputs::s#17
to_nomodify byte* cputs::s#18
to_nomodify byte* cputs::s#19
to_nomodify byte* cputs::s#2
to_nomodify byte* cputs::s#20
to_nomodify byte* cputs::s#21
to_nomodify byte* cputs::s#22
to_nomodify byte* cputs::s#23
to_nomodify byte* cputs::s#24
to_nomodify byte* cputs::s#25
to_nomodify byte* cputs::s#26
to_nomodify byte* cputs::s#27
to_nomodify byte* cputs::s#28
to_nomodify byte* cputs::s#29
to_nomodify byte* cputs::s#3
to_nomodify byte* cputs::s#4
to_nomodify byte* cputs::s#5
to_nomodify byte* cputs::s#6
to_nomodify byte* cputs::s#7
to_nomodify byte* cputs::s#8
to_nomodify byte* cputs::s#9
const byte* cputs::s
const byte* cputs::s#0
const byte* cputs::s#1
const byte* cputs::s#10
const byte* cputs::s#11
const byte* cputs::s#12
const byte* cputs::s#13
const byte* cputs::s#14
const byte* cputs::s#15
const byte* cputs::s#16
const byte* cputs::s#17
const byte* cputs::s#18
const byte* cputs::s#19
const byte* cputs::s#2
const byte* cputs::s#20
const byte* cputs::s#21
const byte* cputs::s#22
const byte* cputs::s#23
const byte* cputs::s#24
const byte* cputs::s#25
const byte* cputs::s#26
const byte* cputs::s#27
const byte* cputs::s#28
const byte* cputs::s#29
const byte* cputs::s#3
const byte* cputs::s#4
const byte* cputs::s#5
const byte* cputs::s#6
const byte* cputs::s#7
const byte* cputs::s#8
const byte* cputs::s#9
byte* cursorLocation()
number~ cursorLocation::$0
byte*~ cursorLocation::$1
@ -1909,7 +1909,7 @@ byte* cursorLocation::return#3
byte* cursorLocation::return#4
byte* cursorLocation::return#5
byte* cursorLocation::return#6
const word* entries[] = { $78f, $7a4, $7c7, $591, $687, $601, $7c0, $621, $751, $730, $6b8, $791, $71f, $659, $6bf, $714, $6b2, $76c, $793, $78b, $79f, $6dc, $796, $64b, $7bb, $78a, $7cc, $7d0, $608, $6f4, $697, $6e0, $72c, $716, $69b, $719, $7ac, $76b, $629, $60b, $362, $618, $7c4, $641, $7b2, $6ca, $5e3, $683, $73b, $78d, $5eb, $740, $7b1, $744, $709, $7d7, $74a, $708, $6d5, $733, $6af, $5d7, $771, $2fb, $688, $742, $7c3, $5d4, $739, $7c9, $6c9, $752, $67a, $712, $681, $6e8, $79e, $757, $718, $74c, $7cb, $6e3, $6f7, $729, $7b0, $737, $6d4, $6bd, $763, $6db, $11e, $7b8, $7b9, $677, $710, $7c2, $6f3, $745, $7a1, $760, $700, $713, $750, $6fe, $72f, $7c1, $723, $732, $785, $6c7, $663, $71d, $71c, $7b5, $5fb, $6ea, $3b, $736, $78c, $773, $6c2, $3a5, $573, $6d9, $6d7, $169, $5fa, $6f6, $43f, $635, $789, $703, $717, $6c4, $6e5, $755, $6ba, $20e, $6ad, $6fd, $764, $779, $67e, $711, $686, $79b, $72b, $633, $6de, $7be, $7d9, $6dd, $29e, $7bf, $5f4, $756, $704, $7a0, $236, $782, $75a, $74e, $707, $6c3, $6bc, $70d, $7d3, $63c, $61e, $73d, $777, $741, $6cb, $6d0, $65b, $6c1, $6d1, $735, $62e, $75c, $75b, $795, $6e4, $695, $6ff, $72d, $6a1, $6ce, $6f5, $79c, $754, $7c5, $66b, $74f, $772, $6be, $7a6, $5de, $787, $79a }
constant word* entries[] = { $78f, $7a4, $7c7, $591, $687, $601, $7c0, $621, $751, $730, $6b8, $791, $71f, $659, $6bf, $714, $6b2, $76c, $793, $78b, $79f, $6dc, $796, $64b, $7bb, $78a, $7cc, $7d0, $608, $6f4, $697, $6e0, $72c, $716, $69b, $719, $7ac, $76b, $629, $60b, $362, $618, $7c4, $641, $7b2, $6ca, $5e3, $683, $73b, $78d, $5eb, $740, $7b1, $744, $709, $7d7, $74a, $708, $6d5, $733, $6af, $5d7, $771, $2fb, $688, $742, $7c3, $5d4, $739, $7c9, $6c9, $752, $67a, $712, $681, $6e8, $79e, $757, $718, $74c, $7cb, $6e3, $6f7, $729, $7b0, $737, $6d4, $6bd, $763, $6db, $11e, $7b8, $7b9, $677, $710, $7c2, $6f3, $745, $7a1, $760, $700, $713, $750, $6fe, $72f, $7c1, $723, $732, $785, $6c7, $663, $71d, $71c, $7b5, $5fb, $6ea, $3b, $736, $78c, $773, $6c2, $3a5, $573, $6d9, $6d7, $169, $5fa, $6f6, $43f, $635, $789, $703, $717, $6c4, $6e5, $755, $6ba, $20e, $6ad, $6fd, $764, $779, $67e, $711, $686, $79b, $72b, $633, $6de, $7be, $7d9, $6dd, $29e, $7bf, $5f4, $756, $704, $7a0, $236, $782, $75a, $74e, $707, $6c3, $6bc, $70d, $7d3, $63c, $61e, $73d, $777, $741, $6cb, $6d0, $65b, $6c1, $6d1, $735, $62e, $75c, $75b, $795, $6e4, $695, $6ff, $72d, $6a1, $6ce, $6f5, $79c, $754, $7c5, $66b, $74f, $772, $6be, $7a6, $5de, $787, $79a }
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte gotoxy::x
byte gotoxy::x#0
@ -2160,39 +2160,39 @@ word main::num_entries#60
word main::num_entries#7
word main::num_entries#8
word main::num_entries#9
const byte* main::s[$19] = "looking a+b=2020 within "at
const byte* main::s1[$a] = " entries
constant byte* main::s[$19] = "looking a+b=2020 within "at
constant byte* main::s1[$a] = " entries
"at
const byte* main::s10[7] = "=2020
constant byte* main::s10[7] = "=2020
"at
const byte* main::s11[$c] = "multiplied "at
const byte* main::s12[2] = "
constant byte* main::s11[$c] = "multiplied "at
constant byte* main::s12[2] = "
"at
const byte* main::s13[2] = "."at
const byte* main::s14[2] = "
constant byte* main::s13[2] = "."at
constant byte* main::s14[2] = "
"at
const byte* main::s15[$e] = "match found ["at
const byte* main::s16[2] = "]"at
const byte* main::s17[3] = "+["at
const byte* main::s18[2] = "]"at
const byte* main::s19[3] = "+["at
const byte* main::s2[$1c] = "
constant byte* main::s15[$e] = "match found ["at
constant byte* main::s16[2] = "]"at
constant byte* main::s17[3] = "+["at
constant byte* main::s18[2] = "]"at
constant byte* main::s19[3] = "+["at
constant byte* main::s2[$1c] = "
looking a+b+c=2020 within "at
const byte* main::s20[2] = "]"at
const byte* main::s21[7] = "=2020
constant byte* main::s20[2] = "]"at
constant byte* main::s21[7] = "=2020
"at
const byte* main::s22[$c] = "multiplied "at
const byte* main::s23[2] = "
constant byte* main::s22[$c] = "multiplied "at
constant byte* main::s23[2] = "
"at
const byte* main::s3[$a] = " entries
constant byte* main::s3[$a] = " entries
"at
const byte* main::s4[2] = "."at
const byte* main::s5[2] = "
constant byte* main::s4[2] = "."at
constant byte* main::s5[2] = "
"at
const byte* main::s6[$e] = "match found ["at
const byte* main::s7[2] = "]"at
const byte* main::s8[3] = "+["at
const byte* main::s9[2] = "]"at
constant byte* main::s6[$e] = "match found ["at
constant byte* main::s7[2] = "]"at
constant byte* main::s8[3] = "+["at
constant byte* main::s9[2] = "]"at
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
byte*~ memcpy::$0
bool~ memcpy::$1
@ -2725,7 +2725,7 @@ byte* putchar::loc
byte* putchar::loc#0
byte putchar::newChar
byte putchar::newChar#0
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
@ -5277,7 +5277,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@1
[139] return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@13 main::@18 main::@19 main::@21 main::@23 main::@25 main::@27 main::@29 main::@3 main::@31 main::@33 main::@35 main::@37 main::@39 main::@41 main::@43 main::@45 main::@47 main::@49 main::@51 main::@54 main::@56 main::@6 main::@8 printf_number_buffer::@2
[140] cputs::s#27 = phi( main::@13/main::s4, main::@18/main::s5, main::@19/main::s, main::@21/main::s1, main::@23/main::s1, main::@25/main::s6, main::@27/main::s7, main::@3/main::s2, main::@29/main::s8, main::@31/main::s7, main::@33/main::s10, main::@35/main::s11, main::@37/main::s5, main::@39/main::s6, main::@41/main::s7, main::@43/main::s8, main::@45/main::s7, main::@47/main::s8, main::@49/main::s7, main::@51/main::s10, main::@54/main::s11, main::@56/main::s5, main::@6/main::s4, main::@8/main::s5, printf_number_buffer::@2/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
to:cputs::@1
@ -5693,13 +5693,13 @@ volatile byte cputc::c loadstore 7.750002500125E10
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 1.833333333336667E11
byte* cputc::convertToScreenCode1_v
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 1.0000000001E10
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 5.0000000005E9
to_nomodify byte* cputs::s#26 1.5000500002E10
to_nomodify byte* cputs::s#27 1000001.0
const byte* cputs::s
const byte* cputs::s#0 5.0000000005E9
const byte* cputs::s#26 1.5000500002E10
const byte* cputs::s#27 1000001.0
byte* cursorLocation()
word~ cursorLocation::$0 2.00000000000002E14
byte*~ cursorLocation::$1 2.00000000000002E14
@ -7920,7 +7920,7 @@ clrscr: {
}
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($8a) s)
// cputs(const byte* zp($8a) s)
cputs: {
.label s = $8a
// [141] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]
@ -9415,36 +9415,36 @@ Fixing long branch [480] bne __b7 to beq
Fixing long branch [485] bne __b7 to beq
FINAL SYMBOL TABLE
const word* COLCRS = (word*) 85
const nomodify byte* CRSINH = (byte*) 752
const byte* DIGITS[] = "0123456789abcdef"atz
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const nomodify byte** OLDADR = (byte**) 94
const nomodify byte* OLDCHR = (byte*) 93
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
const byte* ROWCRS = (byte*) 84
const nomodify byte** SAVMSC = (byte**) 88
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
const byte SIZEOF_WORD = 2
constant word* COLCRS = (word*) 85
constant byte* const CRSINH = (byte*) 752
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte** const OLDADR = (byte**) 94
constant byte* const OLDCHR = (byte*) 93
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
constant byte* ROWCRS = (byte*) 84
constant byte** const SAVMSC = (byte**) 88
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant byte SIZEOF_WORD = 2
void clrscr()
void cputc(volatile byte cputc::c)
volatile byte cputc::c loadstore zp[1]:161 7.750002500125E10
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 reg byte x 1.833333333336667E11
byte* cputc::convertToScreenCode1_v
const byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(to_nomodify byte* cputs::s)
constant byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.0000000001E10
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:138 5.0000000005E9
to_nomodify byte* cputs::s#26 s zp[2]:138 1.5000500002E10
to_nomodify byte* cputs::s#27 s zp[2]:138 1000001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:138 5.0000000005E9
const byte* cputs::s#26 s zp[2]:138 1.5000500002E10
const byte* cputs::s#27 s zp[2]:138 1000001.0
byte* cursorLocation()
word~ cursorLocation::$0 zp[2]:166 2.00000000000002E14
byte*~ cursorLocation::$1 zp[2]:166 2.00000000000002E14
@ -9455,12 +9455,12 @@ byte* cursorLocation::return
byte* cursorLocation::return#0 return zp[2]:166 2.000000000002E12
byte* cursorLocation::return#1 return zp[2]:166 2.775000000000075E13
byte* cursorLocation::return#3 return zp[2]:166 2.0000000000002E13
const word* entries[] = { $78f, $7a4, $7c7, $591, $687, $601, $7c0, $621, $751, $730, $6b8, $791, $71f, $659, $6bf, $714, $6b2, $76c, $793, $78b, $79f, $6dc, $796, $64b, $7bb, $78a, $7cc, $7d0, $608, $6f4, $697, $6e0, $72c, $716, $69b, $719, $7ac, $76b, $629, $60b, $362, $618, $7c4, $641, $7b2, $6ca, $5e3, $683, $73b, $78d, $5eb, $740, $7b1, $744, $709, $7d7, $74a, $708, $6d5, $733, $6af, $5d7, $771, $2fb, $688, $742, $7c3, $5d4, $739, $7c9, $6c9, $752, $67a, $712, $681, $6e8, $79e, $757, $718, $74c, $7cb, $6e3, $6f7, $729, $7b0, $737, $6d4, $6bd, $763, $6db, $11e, $7b8, $7b9, $677, $710, $7c2, $6f3, $745, $7a1, $760, $700, $713, $750, $6fe, $72f, $7c1, $723, $732, $785, $6c7, $663, $71d, $71c, $7b5, $5fb, $6ea, $3b, $736, $78c, $773, $6c2, $3a5, $573, $6d9, $6d7, $169, $5fa, $6f6, $43f, $635, $789, $703, $717, $6c4, $6e5, $755, $6ba, $20e, $6ad, $6fd, $764, $779, $67e, $711, $686, $79b, $72b, $633, $6de, $7be, $7d9, $6dd, $29e, $7bf, $5f4, $756, $704, $7a0, $236, $782, $75a, $74e, $707, $6c3, $6bc, $70d, $7d3, $63c, $61e, $73d, $777, $741, $6cb, $6d0, $65b, $6c1, $6d1, $735, $62e, $75c, $75b, $795, $6e4, $695, $6ff, $72d, $6a1, $6ce, $6f5, $79c, $754, $7c5, $66b, $74f, $772, $6be, $7a6, $5de, $787, $79a }
constant word* entries[] = { $78f, $7a4, $7c7, $591, $687, $601, $7c0, $621, $751, $730, $6b8, $791, $71f, $659, $6bf, $714, $6b2, $76c, $793, $78b, $79f, $6dc, $796, $64b, $7bb, $78a, $7cc, $7d0, $608, $6f4, $697, $6e0, $72c, $716, $69b, $719, $7ac, $76b, $629, $60b, $362, $618, $7c4, $641, $7b2, $6ca, $5e3, $683, $73b, $78d, $5eb, $740, $7b1, $744, $709, $7d7, $74a, $708, $6d5, $733, $6af, $5d7, $771, $2fb, $688, $742, $7c3, $5d4, $739, $7c9, $6c9, $752, $67a, $712, $681, $6e8, $79e, $757, $718, $74c, $7cb, $6e3, $6f7, $729, $7b0, $737, $6d4, $6bd, $763, $6db, $11e, $7b8, $7b9, $677, $710, $7c2, $6f3, $745, $7a1, $760, $700, $713, $750, $6fe, $72f, $7c1, $723, $732, $785, $6c7, $663, $71d, $71c, $7b5, $5fb, $6ea, $3b, $736, $78c, $773, $6c2, $3a5, $573, $6d9, $6d7, $169, $5fa, $6f6, $43f, $635, $789, $703, $717, $6c4, $6e5, $755, $6ba, $20e, $6ad, $6fd, $764, $779, $67e, $711, $686, $79b, $72b, $633, $6de, $7be, $7d9, $6dd, $29e, $7bf, $5f4, $756, $704, $7a0, $236, $782, $75a, $74e, $707, $6c3, $6bc, $70d, $7d3, $63c, $61e, $73d, $777, $741, $6cb, $6d0, $65b, $6c1, $6d1, $735, $62e, $75c, $75b, $795, $6e4, $695, $6ff, $72d, $6a1, $6ce, $6f5, $79c, $754, $7c5, $66b, $74f, $772, $6be, $7a6, $5de, $787, $79a }
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte gotoxy::x
const byte gotoxy::x#1 x = 0
constant byte gotoxy::x#1 x = 0
byte gotoxy::y
const byte gotoxy::y#1 y = 0
constant byte gotoxy::y#1 y = 0
void main()
word~ main::$21 zp[2]:151 667.3333333333334
word~ main::$22 zp[2]:155 2002.0
@ -9510,21 +9510,21 @@ dword main::mul1#0 mul1 zp[4]:144 2002.0
dword main::mul2
dword main::mul2#0 mul2 zp[4]:144 1001.0
word main::num_entries
const word main::num_entries#0 num_entries = $c8*SIZEOF_WORD/SIZEOF_WORD
const byte* main::s[$19] = "looking a+b=2020 within "at
const byte* main::s1[$a] = " entries
constant word main::num_entries#0 num_entries = $c8*SIZEOF_WORD/SIZEOF_WORD
constant byte* main::s[$19] = "looking a+b=2020 within "at
constant byte* main::s1[$a] = " entries
"at
const byte* main::s10[7] = "=2020
constant byte* main::s10[7] = "=2020
"at
const byte* main::s11[$c] = "multiplied "at
const byte* main::s2[$1c] = "
constant byte* main::s11[$c] = "multiplied "at
constant byte* main::s2[$1c] = "
looking a+b+c=2020 within "at
const byte* main::s4[2] = "."at
const byte* main::s5[2] = "
constant byte* main::s4[2] = "."at
constant byte* main::s5[2] = "
"at
const byte* main::s6[$e] = "match found ["at
const byte* main::s7[2] = "]"at
const byte* main::s8[3] = "+["at
constant byte* main::s6[$e] = "match found ["at
constant byte* main::s7[2] = "]"at
constant byte* main::s8[3] = "+["at
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
void* memcpy::destination
void* memcpy::destination#0 destination zp[2]:153 3.333333333336667E11
@ -9533,7 +9533,7 @@ byte* memcpy::dst#1 dst zp[2]:153 1.0E18
byte* memcpy::dst#2 dst zp[2]:153 1.00000333333333325E18
byte* memcpy::dst#4 dst zp[2]:153 2.0000000000002E13
word memcpy::num
const word memcpy::num#0 num = (word)$28*$17
constant word memcpy::num#0 num = (word)$28*$17
void* memcpy::return
void* memcpy::source
byte* memcpy::source#0 source zp[2]:151 3.333333333336667E11
@ -9643,7 +9643,7 @@ byte* putchar::loc
byte* putchar::loc#0 loc zp[2]:166 1.000000000001E12
byte putchar::newChar
byte putchar::newChar#0 reg byte a 1.5000000000015E12
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
@ -10798,7 +10798,7 @@ clrscr: {
}
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($8a) s)
// cputs(const byte* zp($8a) s)
cputs: {
.label s = $8a
// [141] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]

View File

@ -1,33 +1,33 @@
const word* COLCRS = (word*) 85
const nomodify byte* CRSINH = (byte*) 752
const byte* DIGITS[] = "0123456789abcdef"atz
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const nomodify byte** OLDADR = (byte**) 94
const nomodify byte* OLDCHR = (byte*) 93
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
const byte* ROWCRS = (byte*) 84
const nomodify byte** SAVMSC = (byte**) 88
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
const byte SIZEOF_WORD = 2
constant word* COLCRS = (word*) 85
constant byte* const CRSINH = (byte*) 752
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte** const OLDADR = (byte**) 94
constant byte* const OLDCHR = (byte*) 93
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a }
constant byte* ROWCRS = (byte*) 84
constant byte** const SAVMSC = (byte**) 88
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant byte SIZEOF_WORD = 2
void clrscr()
void cputc(volatile byte cputc::c)
volatile byte cputc::c loadstore zp[1]:161 7.750002500125E10
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 reg byte x 1.833333333336667E11
byte* cputc::convertToScreenCode1_v
const byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(to_nomodify byte* cputs::s)
constant byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.0000000001E10
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:138 5.0000000005E9
to_nomodify byte* cputs::s#26 s zp[2]:138 1.5000500002E10
to_nomodify byte* cputs::s#27 s zp[2]:138 1000001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:138 5.0000000005E9
const byte* cputs::s#26 s zp[2]:138 1.5000500002E10
const byte* cputs::s#27 s zp[2]:138 1000001.0
byte* cursorLocation()
word~ cursorLocation::$0 zp[2]:166 2.00000000000002E14
byte*~ cursorLocation::$1 zp[2]:166 2.00000000000002E14
@ -38,12 +38,12 @@ byte* cursorLocation::return
byte* cursorLocation::return#0 return zp[2]:166 2.000000000002E12
byte* cursorLocation::return#1 return zp[2]:166 2.775000000000075E13
byte* cursorLocation::return#3 return zp[2]:166 2.0000000000002E13
const word* entries[] = { $78f, $7a4, $7c7, $591, $687, $601, $7c0, $621, $751, $730, $6b8, $791, $71f, $659, $6bf, $714, $6b2, $76c, $793, $78b, $79f, $6dc, $796, $64b, $7bb, $78a, $7cc, $7d0, $608, $6f4, $697, $6e0, $72c, $716, $69b, $719, $7ac, $76b, $629, $60b, $362, $618, $7c4, $641, $7b2, $6ca, $5e3, $683, $73b, $78d, $5eb, $740, $7b1, $744, $709, $7d7, $74a, $708, $6d5, $733, $6af, $5d7, $771, $2fb, $688, $742, $7c3, $5d4, $739, $7c9, $6c9, $752, $67a, $712, $681, $6e8, $79e, $757, $718, $74c, $7cb, $6e3, $6f7, $729, $7b0, $737, $6d4, $6bd, $763, $6db, $11e, $7b8, $7b9, $677, $710, $7c2, $6f3, $745, $7a1, $760, $700, $713, $750, $6fe, $72f, $7c1, $723, $732, $785, $6c7, $663, $71d, $71c, $7b5, $5fb, $6ea, $3b, $736, $78c, $773, $6c2, $3a5, $573, $6d9, $6d7, $169, $5fa, $6f6, $43f, $635, $789, $703, $717, $6c4, $6e5, $755, $6ba, $20e, $6ad, $6fd, $764, $779, $67e, $711, $686, $79b, $72b, $633, $6de, $7be, $7d9, $6dd, $29e, $7bf, $5f4, $756, $704, $7a0, $236, $782, $75a, $74e, $707, $6c3, $6bc, $70d, $7d3, $63c, $61e, $73d, $777, $741, $6cb, $6d0, $65b, $6c1, $6d1, $735, $62e, $75c, $75b, $795, $6e4, $695, $6ff, $72d, $6a1, $6ce, $6f5, $79c, $754, $7c5, $66b, $74f, $772, $6be, $7a6, $5de, $787, $79a }
constant word* entries[] = { $78f, $7a4, $7c7, $591, $687, $601, $7c0, $621, $751, $730, $6b8, $791, $71f, $659, $6bf, $714, $6b2, $76c, $793, $78b, $79f, $6dc, $796, $64b, $7bb, $78a, $7cc, $7d0, $608, $6f4, $697, $6e0, $72c, $716, $69b, $719, $7ac, $76b, $629, $60b, $362, $618, $7c4, $641, $7b2, $6ca, $5e3, $683, $73b, $78d, $5eb, $740, $7b1, $744, $709, $7d7, $74a, $708, $6d5, $733, $6af, $5d7, $771, $2fb, $688, $742, $7c3, $5d4, $739, $7c9, $6c9, $752, $67a, $712, $681, $6e8, $79e, $757, $718, $74c, $7cb, $6e3, $6f7, $729, $7b0, $737, $6d4, $6bd, $763, $6db, $11e, $7b8, $7b9, $677, $710, $7c2, $6f3, $745, $7a1, $760, $700, $713, $750, $6fe, $72f, $7c1, $723, $732, $785, $6c7, $663, $71d, $71c, $7b5, $5fb, $6ea, $3b, $736, $78c, $773, $6c2, $3a5, $573, $6d9, $6d7, $169, $5fa, $6f6, $43f, $635, $789, $703, $717, $6c4, $6e5, $755, $6ba, $20e, $6ad, $6fd, $764, $779, $67e, $711, $686, $79b, $72b, $633, $6de, $7be, $7d9, $6dd, $29e, $7bf, $5f4, $756, $704, $7a0, $236, $782, $75a, $74e, $707, $6c3, $6bc, $70d, $7d3, $63c, $61e, $73d, $777, $741, $6cb, $6d0, $65b, $6c1, $6d1, $735, $62e, $75c, $75b, $795, $6e4, $695, $6ff, $72d, $6a1, $6ce, $6f5, $79c, $754, $7c5, $66b, $74f, $772, $6be, $7a6, $5de, $787, $79a }
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte gotoxy::x
const byte gotoxy::x#1 x = 0
constant byte gotoxy::x#1 x = 0
byte gotoxy::y
const byte gotoxy::y#1 y = 0
constant byte gotoxy::y#1 y = 0
void main()
word~ main::$21 zp[2]:151 667.3333333333334
word~ main::$22 zp[2]:155 2002.0
@ -93,21 +93,21 @@ dword main::mul1#0 mul1 zp[4]:144 2002.0
dword main::mul2
dword main::mul2#0 mul2 zp[4]:144 1001.0
word main::num_entries
const word main::num_entries#0 num_entries = $c8*SIZEOF_WORD/SIZEOF_WORD
const byte* main::s[$19] = "looking a+b=2020 within "at
const byte* main::s1[$a] = " entries
constant word main::num_entries#0 num_entries = $c8*SIZEOF_WORD/SIZEOF_WORD
constant byte* main::s[$19] = "looking a+b=2020 within "at
constant byte* main::s1[$a] = " entries
"at
const byte* main::s10[7] = "=2020
constant byte* main::s10[7] = "=2020
"at
const byte* main::s11[$c] = "multiplied "at
const byte* main::s2[$1c] = "
constant byte* main::s11[$c] = "multiplied "at
constant byte* main::s2[$1c] = "
looking a+b+c=2020 within "at
const byte* main::s4[2] = "."at
const byte* main::s5[2] = "
constant byte* main::s4[2] = "."at
constant byte* main::s5[2] = "
"at
const byte* main::s6[$e] = "match found ["at
const byte* main::s7[2] = "]"at
const byte* main::s8[3] = "+["at
constant byte* main::s6[$e] = "match found ["at
constant byte* main::s7[2] = "]"at
constant byte* main::s8[3] = "+["at
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
void* memcpy::destination
void* memcpy::destination#0 destination zp[2]:153 3.333333333336667E11
@ -116,7 +116,7 @@ byte* memcpy::dst#1 dst zp[2]:153 1.0E18
byte* memcpy::dst#2 dst zp[2]:153 1.00000333333333325E18
byte* memcpy::dst#4 dst zp[2]:153 2.0000000000002E13
word memcpy::num
const word memcpy::num#0 num = (word)$28*$17
constant word memcpy::num#0 num = (word)$28*$17
void* memcpy::return
void* memcpy::source
byte* memcpy::source#0 source zp[2]:151 3.333333333336667E11
@ -226,7 +226,7 @@ byte* putchar::loc
byte* putchar::loc#0 loc zp[2]:166 1.000000000001E12
byte putchar::newChar
byte putchar::newChar#0 reg byte a 1.5000000000015E12
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f

View File

@ -485,7 +485,7 @@ clrscr: {
jmp __b3
}
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($d) s)
// cputs(const byte* zp($d) s)
cputs: {
.label s = $d
__b1:

View File

@ -248,7 +248,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3
[116] clrscr::c#1 = ++ clrscr::c#2
to:clrscr::@3
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@24 main::@26 main::@28 main::@29 main::@3 main::@31 main::@33 main::@35 printf_number_buffer::@2
[117] cputs::s#11 = phi( main::@24/main::s1, main::@26/main::s2, main::@28/main::s3, main::@29/main::s4, main::@3/main::s, main::@31/main::s1, main::@33/main::s2, main::@35/main::s3, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 )
to:cputs::@1

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -283,7 +283,7 @@ test_slope: {
jmp __b1
}
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($83) s)
// cputs(const byte* zp($83) s)
cputs: {
.label s = $83
__b1:

View File

@ -166,7 +166,7 @@ test_slope::@4: scope:[test_slope] from test_slope::@3 test_slope::@6
[82] test_slope::y#1 = test_slope::y#2 + test_slope::y_inc#12
to:test_slope::@1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@11 main::@13 main::@15 main::@17 main::@19 main::@21 main::@23 main::@25 main::@3 main::@5 main::@7 main::@9 printf_number_buffer::@2
[83] cputs::s#15 = phi( main::@11/main::s4, main::@13/main::s1, main::@15/main::s6, main::@17/main::s1, main::@19/main::s8, main::@21/main::s1, main::@23/main::s10, main::@25/main::s1, main::@3/main::s, main::@5/main::s1, main::@7/main::s2, main::@9/main::s1, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 )
to:cputs::@1

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -290,7 +290,7 @@ clrscr: {
rts
}
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($8c) s)
// cputs(const byte* zp($8c) s)
cputs: {
.label s = $8c
__b1:

View File

@ -143,7 +143,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@1
[57] return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@10 main::@11 main::@29 main::@3 main::@31 printf_number_buffer::@2
[58] cputs::s#8 = phi( main::@10/main::s4, main::@11/main::s3, main::@3/main::s, main::@29/main::s1, main::@31/main::s2, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 )
to:cputs::@1

View File

@ -454,7 +454,7 @@ putchar::@return: scope:[putchar] from putchar::@2
return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@11 main::@12 main::@3 main::@32 main::@34 printf_number_buffer::@5
cputs::s#8 = phi( main::@11/cputs::s#6, main::@12/cputs::s#5, main::@3/cputs::s#2, main::@32/cputs::s#3, main::@34/cputs::s#4, printf_number_buffer::@5/cputs::s#1 )
cputs::c#0 = 0
@ -1249,28 +1249,28 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte BINARY = 2
const word* COLCRS = (word*)$55
const nomodify byte* CRSINH = (byte*)$2f0
const byte DECIMAL = $a
const byte* DIGITS[] = "0123456789abcdef"atz
const byte HEXADECIMAL = $10
const byte OCTAL = 8
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
const nomodify byte** OLDADR = (byte**)$5e
const nomodify byte* OLDCHR = (byte*)$5d
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
const word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
const byte* ROWCRS = (byte*)$54
const nomodify byte** SAVMSC = (byte**)$58
const byte SIZEOF_WORD = 2
constant byte BINARY = 2
constant word* COLCRS = (word*)$55
constant byte* const CRSINH = (byte*)$2f0
constant byte DECIMAL = $a
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte HEXADECIMAL = $10
constant byte OCTAL = 8
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
constant byte** const OLDADR = (byte**)$5e
constant byte* const OLDCHR = (byte*)$5d
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
constant byte* ROWCRS = (byte*)$54
constant byte** const SAVMSC = (byte**)$58
constant byte SIZEOF_WORD = 2
void __start()
void clrscr()
byte conio_display_cursor loadstore
@ -1292,25 +1292,25 @@ byte cputc::convertToScreenCode1_return#3
byte* cputc::convertToScreenCode1_v
byte* cputc::convertToScreenCode1_v#0
byte* cputc::convertToScreenCode1_v#1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte~ cputs::$0
bool~ cputs::$2
byte cputs::c
byte cputs::c#0
byte cputs::c#1
byte cputs::c#2
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0
to_nomodify byte* cputs::s#1
to_nomodify byte* cputs::s#10
to_nomodify byte* cputs::s#2
to_nomodify byte* cputs::s#3
to_nomodify byte* cputs::s#4
to_nomodify byte* cputs::s#5
to_nomodify byte* cputs::s#6
to_nomodify byte* cputs::s#7
to_nomodify byte* cputs::s#8
to_nomodify byte* cputs::s#9
const byte* cputs::s
const byte* cputs::s#0
const byte* cputs::s#1
const byte* cputs::s#10
const byte* cputs::s#2
const byte* cputs::s#3
const byte* cputs::s#4
const byte* cputs::s#5
const byte* cputs::s#6
const byte* cputs::s#7
const byte* cputs::s#8
const byte* cputs::s#9
byte* cursorLocation()
number~ cursorLocation::$0
byte*~ cursorLocation::$1
@ -1432,13 +1432,13 @@ byte* main::required_tag#6
byte* main::required_tag#7
byte* main::required_tag#8
byte* main::required_tag#9
const byte* main::s[8] = "
constant byte* main::s[8] = "
Valid "at
const byte* main::s1[8] = " Total "at
const byte* main::s2[2] = "
constant byte* main::s1[8] = " Total "at
constant byte* main::s2[2] = "
"at
const byte* main::s3[2] = "+"at
const byte* main::s4[2] = "."at
constant byte* main::s3[2] = "+"at
constant byte* main::s4[2] = "."at
byte main::tag_idx
byte main::tag_idx#0
byte main::tag_idx#1
@ -1451,7 +1451,7 @@ byte main::tag_idx#6
byte main::tag_idx#7
byte main::tag_idx#8
byte main::tag_idx#9
const byte* main::tags_found[7] = { fill( 7, 0) }
constant byte* main::tags_found[7] = { fill( 7, 0) }
word main::total
word main::total#0
word main::total#1
@ -1609,7 +1609,7 @@ byte*~ newline::$9
byte* newline::start
byte* newline::start#0
byte* newline::start#1
const byte* passports = "ecl:grn
constant byte* passports = "ecl:grn
cid:315 iyr:2012 hgt:192cm eyr:2023 pid:873355140 byr:1925 hcl:#cb2c03
byr:2027 hcl:ec0cfd ecl:blu cid:120
@ -2969,14 +2969,14 @@ byte* putchar::loc
byte* putchar::loc#0
byte putchar::newChar
byte putchar::newChar#0
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
.byte mask | ht.get(idx)
}
}}
const byte* required_tags[] = "byriyreyrhgthcleclpid"at
constant byte* required_tags[] = "byriyreyrhgthcleclpid"at
void setcursor()
byte*~ setcursor::$0
bool~ setcursor::$1
@ -4604,7 +4604,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@1
[57] return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@10 main::@11 main::@29 main::@3 main::@31 printf_number_buffer::@2
[58] cputs::s#8 = phi( main::@10/main::s4, main::@11/main::s3, main::@3/main::s, main::@29/main::s1, main::@31/main::s2, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 )
to:cputs::@1
@ -4909,13 +4909,13 @@ volatile byte cputc::c loadstore 775026.25
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 1833333.6666666665
byte* cputc::convertToScreenCode1_v
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 100001.0
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 50000.5
to_nomodify byte* cputs::s#7 150502.0
to_nomodify byte* cputs::s#8 1001.0
const byte* cputs::s
const byte* cputs::s#0 50000.5
const byte* cputs::s#7 150502.0
const byte* cputs::s#8 1001.0
byte* cursorLocation()
word~ cursorLocation::$0 2.000000002E9
byte*~ cursorLocation::$1 2.000000002E9
@ -5591,13 +5591,13 @@ ASSEMBLER BEFORE OPTIMIZATION
// File Comments
// https://adventofcode.com/2020/day/3
// Upstart
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="2020-04.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="2020-04.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
.segmentdef Data [startAfter="Code"]
// Global Constants & labels
.const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
@ -6066,7 +6066,7 @@ clrscr: {
}
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($8c) s)
// cputs(const byte* zp($8c) s)
cputs: {
.label s = $8c
// [59] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]
@ -7101,34 +7101,34 @@ Fixing long branch [163] beq __b1 to bne
Fixing long branch [168] beq __b1 to bne
FINAL SYMBOL TABLE
const word* COLCRS = (word*) 85
const nomodify byte* CRSINH = (byte*) 752
const byte* DIGITS[] = "0123456789abcdef"atz
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const nomodify byte** OLDADR = (byte**) 94
const nomodify byte* OLDCHR = (byte*) 93
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte* ROWCRS = (byte*) 84
const nomodify byte** SAVMSC = (byte**) 88
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant word* COLCRS = (word*) 85
constant byte* const CRSINH = (byte*) 752
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte** const OLDADR = (byte**) 94
constant byte* const OLDCHR = (byte*) 93
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte* ROWCRS = (byte*) 84
constant byte** const SAVMSC = (byte**) 88
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void clrscr()
void cputc(volatile byte cputc::c)
volatile byte cputc::c loadstore zp[1]:144 775026.25
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 reg byte x 1833333.6666666665
byte* cputc::convertToScreenCode1_v
const byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(to_nomodify byte* cputs::s)
constant byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 100001.0
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:140 50000.5
to_nomodify byte* cputs::s#7 s zp[2]:140 150502.0
to_nomodify byte* cputs::s#8 s zp[2]:140 1001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:140 50000.5
const byte* cputs::s#7 s zp[2]:140 150502.0
const byte* cputs::s#8 s zp[2]:140 1001.0
byte* cursorLocation()
word~ cursorLocation::$0 zp[2]:147 2.000000002E9
byte*~ cursorLocation::$1 zp[2]:147 2.000000002E9
@ -7141,9 +7141,9 @@ byte* cursorLocation::return#1 return zp[2]:147 2.7750000075E8
byte* cursorLocation::return#3 return zp[2]:147 2.00000002E8
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte gotoxy::x
const byte gotoxy::x#1 x = 0
constant byte gotoxy::x#1 x = 0
byte gotoxy::y
const byte gotoxy::y#1 y = 0
constant byte gotoxy::y#1 y = 0
void main()
byte main::i
byte main::i#1 reg byte x 202.0
@ -7170,17 +7170,17 @@ byte* main::pass#5 pass zp[2]:128 2002.0
byte* main::required_tag
byte* main::required_tag#1 required_tag zp[2]:135 1001.0
byte* main::required_tag#6 required_tag zp[2]:135 1333.6666666666665
const byte* main::s[8] = "
constant byte* main::s[8] = "
Valid "at
const byte* main::s1[8] = " Total "at
const byte* main::s2[2] = "
constant byte* main::s1[8] = " Total "at
constant byte* main::s2[2] = "
"at
const byte* main::s3[2] = "+"at
const byte* main::s4[2] = "."at
constant byte* main::s3[2] = "+"at
constant byte* main::s4[2] = "."at
byte main::tag_idx
byte main::tag_idx#1 tag_idx zp[1]:134 2002.0
byte main::tag_idx#2 tag_idx zp[1]:134 310.4
const byte* main::tags_found[7] = { fill( 7, 0) }
constant byte* main::tags_found[7] = { fill( 7, 0) }
word main::total
word main::total#1 total zp[2]:132 22.0
word main::total#10 total zp[2]:132 46.0
@ -7196,7 +7196,7 @@ byte* memcpy::dst#1 dst zp[2]:147 1.00000000001E11
byte* memcpy::dst#2 dst zp[2]:147 1.0003333333466667E11
byte* memcpy::dst#4 dst zp[2]:147 2.00000002E8
word memcpy::num
const word memcpy::num#0 num = (word)$28*$17
constant word memcpy::num#0 num = (word)$28*$17
void* memcpy::return
void* memcpy::source
byte* memcpy::source#0 source zp[2]:142 3333333.6666666665
@ -7225,7 +7225,7 @@ void* memset::str#8 str zp[2]:145 2.0000002E7
void newline()
byte* newline::start
byte* newline::start#0 start zp[2]:145 7500000.75
const byte* passports = "ecl:grn
constant byte* passports = "ecl:grn
cid:315 iyr:2012 hgt:192cm eyr:2023 pid:873355140 byr:1925 hcl:#cb2c03
byr:2027 hcl:ec0cfd ecl:blu cid:120
@ -8331,7 +8331,7 @@ struct printf_buffer_number printf_buffer loadstore mem[12] = {}
void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix)
struct printf_buffer_number printf_number_buffer::buffer
byte* printf_number_buffer::buffer_digits
const byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
byte printf_number_buffer::buffer_sign
byte printf_number_buffer::buffer_sign#0 reg byte a 71.0
struct printf_format_number printf_number_buffer::format
@ -8361,14 +8361,14 @@ byte* putchar::loc
byte* putchar::loc#0 loc zp[2]:147 1.0000001E7
byte putchar::newChar
byte putchar::newChar#0 reg byte a 1.50000015E7
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
.byte mask | ht.get(idx)
}
}}
const byte* required_tags[] = "byriyreyrhgthcleclpid"at
constant byte* required_tags[] = "byriyreyrhgthcleclpid"at
void setcursor()
byte setcursor::c
byte setcursor::c#0 reg byte x 7.500000075E7
@ -8449,13 +8449,13 @@ Score: 786279
// File Comments
// https://adventofcode.com/2020/day/3
// Upstart
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="2020-04.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="2020-04.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
.segmentdef Data [startAfter="Code"]
// Global Constants & labels
.const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
@ -8880,7 +8880,7 @@ clrscr: {
}
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($8c) s)
// cputs(const byte* zp($8c) s)
cputs: {
.label s = $8c
// [59] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]

View File

@ -1,31 +1,31 @@
const word* COLCRS = (word*) 85
const nomodify byte* CRSINH = (byte*) 752
const byte* DIGITS[] = "0123456789abcdef"atz
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const nomodify byte** OLDADR = (byte**) 94
const nomodify byte* OLDCHR = (byte*) 93
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte* ROWCRS = (byte*) 84
const nomodify byte** SAVMSC = (byte**) 88
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant word* COLCRS = (word*) 85
constant byte* const CRSINH = (byte*) 752
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte** const OLDADR = (byte**) 94
constant byte* const OLDCHR = (byte*) 93
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte* ROWCRS = (byte*) 84
constant byte** const SAVMSC = (byte**) 88
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void clrscr()
void cputc(volatile byte cputc::c)
volatile byte cputc::c loadstore zp[1]:144 775026.25
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 reg byte x 1833333.6666666665
byte* cputc::convertToScreenCode1_v
const byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(to_nomodify byte* cputs::s)
constant byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 100001.0
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:140 50000.5
to_nomodify byte* cputs::s#7 s zp[2]:140 150502.0
to_nomodify byte* cputs::s#8 s zp[2]:140 1001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:140 50000.5
const byte* cputs::s#7 s zp[2]:140 150502.0
const byte* cputs::s#8 s zp[2]:140 1001.0
byte* cursorLocation()
word~ cursorLocation::$0 zp[2]:147 2.000000002E9
byte*~ cursorLocation::$1 zp[2]:147 2.000000002E9
@ -38,9 +38,9 @@ byte* cursorLocation::return#1 return zp[2]:147 2.7750000075E8
byte* cursorLocation::return#3 return zp[2]:147 2.00000002E8
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte gotoxy::x
const byte gotoxy::x#1 x = 0
constant byte gotoxy::x#1 x = 0
byte gotoxy::y
const byte gotoxy::y#1 y = 0
constant byte gotoxy::y#1 y = 0
void main()
byte main::i
byte main::i#1 reg byte x 202.0
@ -67,17 +67,17 @@ byte* main::pass#5 pass zp[2]:128 2002.0
byte* main::required_tag
byte* main::required_tag#1 required_tag zp[2]:135 1001.0
byte* main::required_tag#6 required_tag zp[2]:135 1333.6666666666665
const byte* main::s[8] = "
constant byte* main::s[8] = "
Valid "at
const byte* main::s1[8] = " Total "at
const byte* main::s2[2] = "
constant byte* main::s1[8] = " Total "at
constant byte* main::s2[2] = "
"at
const byte* main::s3[2] = "+"at
const byte* main::s4[2] = "."at
constant byte* main::s3[2] = "+"at
constant byte* main::s4[2] = "."at
byte main::tag_idx
byte main::tag_idx#1 tag_idx zp[1]:134 2002.0
byte main::tag_idx#2 tag_idx zp[1]:134 310.4
const byte* main::tags_found[7] = { fill( 7, 0) }
constant byte* main::tags_found[7] = { fill( 7, 0) }
word main::total
word main::total#1 total zp[2]:132 22.0
word main::total#10 total zp[2]:132 46.0
@ -93,7 +93,7 @@ byte* memcpy::dst#1 dst zp[2]:147 1.00000000001E11
byte* memcpy::dst#2 dst zp[2]:147 1.0003333333466667E11
byte* memcpy::dst#4 dst zp[2]:147 2.00000002E8
word memcpy::num
const word memcpy::num#0 num = (word)$28*$17
constant word memcpy::num#0 num = (word)$28*$17
void* memcpy::return
void* memcpy::source
byte* memcpy::source#0 source zp[2]:142 3333333.6666666665
@ -122,7 +122,7 @@ void* memset::str#8 str zp[2]:145 2.0000002E7
void newline()
byte* newline::start
byte* newline::start#0 start zp[2]:145 7500000.75
const byte* passports = "ecl:grn
constant byte* passports = "ecl:grn
cid:315 iyr:2012 hgt:192cm eyr:2023 pid:873355140 byr:1925 hcl:#cb2c03
byr:2027 hcl:ec0cfd ecl:blu cid:120
@ -1228,7 +1228,7 @@ struct printf_buffer_number printf_buffer loadstore mem[12] = {}
void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix)
struct printf_buffer_number printf_number_buffer::buffer
byte* printf_number_buffer::buffer_digits
const byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
byte printf_number_buffer::buffer_sign
byte printf_number_buffer::buffer_sign#0 reg byte a 71.0
struct printf_format_number printf_number_buffer::format
@ -1258,14 +1258,14 @@ byte* putchar::loc
byte* putchar::loc#0 loc zp[2]:147 1.0000001E7
byte putchar::newChar
byte putchar::newChar#0 reg byte a 1.50000015E7
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
.byte mask | ht.get(idx)
}
}}
const byte* required_tags[] = "byriyreyrhgthcleclpid"at
constant byte* required_tags[] = "byriyreyrhgthcleclpid"at
void setcursor()
byte setcursor::c
byte setcursor::c#0 reg byte x 7.500000075E7

View File

@ -33,9 +33,9 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const byte SIZEOF_POINTER = 2
constant byte SIZEOF_POINTER = 2
void __start()
const byte** levelRowOff[$1f] = { (byte*)1, (byte*)2, (byte*)3 }
constant byte** levelRowOff[$1f] = { (byte*)1, (byte*)2, (byte*)3 }
void main()
byte~ main::$0
byte~ main::$1
@ -214,8 +214,8 @@ Removing instruction __b1_from___b2:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte SIZEOF_POINTER = 2
const byte** levelRowOff[$1f] = { (byte*) 1, (byte*) 2, (byte*) 3 }
constant byte SIZEOF_POINTER = 2
constant byte** levelRowOff[$1f] = { (byte*) 1, (byte*) 2, (byte*) 3 }
void main()
byte~ main::$3 reg byte a 22.0
byte main::c

View File

@ -1,5 +1,5 @@
const byte SIZEOF_POINTER = 2
const byte** levelRowOff[$1f] = { (byte*) 1, (byte*) 2, (byte*) 3 }
constant byte SIZEOF_POINTER = 2
constant byte** levelRowOff[$1f] = { (byte*) 1, (byte*) 2, (byte*) 3 }
void main()
byte~ main::$3 reg byte a 22.0
byte main::c

View File

@ -51,9 +51,9 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const byte SIZEOF_WORD = 2
constant byte SIZEOF_WORD = 2
void __start()
const word* arr16[$80] = { fill( $80, 0) }
constant word* arr16[$80] = { fill( $80, 0) }
word getValue(word getValue::index)
number~ getValue::$0
number~ getValue::$1
@ -72,7 +72,7 @@ void main()
word~ main::$0
bool~ main::$1
byte~ main::$2
const word* main::SCREEN = (word*)$400
constant word* main::SCREEN = (word*)$400
byte main::idx
byte main::idx#0
byte main::idx#1
@ -388,7 +388,7 @@ Removing instruction jmp __b1
Succesful ASM optimization Pass5NextJumpElimination
FINAL SYMBOL TABLE
const word* arr16[$80] = { fill( $80, 0) }
constant word* arr16[$80] = { fill( $80, 0) }
word getValue(word getValue::index)
byte~ getValue::$0 reg byte a 202.0
byte~ getValue::$1 reg byte a 202.0
@ -402,7 +402,7 @@ word getValue::return#1 return zp[2]:4 37.33333333333333
void main()
word~ main::$0 zp[2]:4 11.0
byte~ main::$2 reg byte a 22.0
const word* main::SCREEN = (word*) 1024
constant word* main::SCREEN = (word*) 1024
byte main::idx
byte main::idx#1 reg byte x 16.5
byte main::idx#2 reg byte x 6.285714285714286

View File

@ -1,4 +1,4 @@
const word* arr16[$80] = { fill( $80, 0) }
constant word* arr16[$80] = { fill( $80, 0) }
word getValue(word getValue::index)
byte~ getValue::$0 reg byte a 202.0
byte~ getValue::$1 reg byte a 202.0
@ -12,7 +12,7 @@ word getValue::return#1 return zp[2]:4 37.33333333333333
void main()
word~ main::$0 zp[2]:4 11.0
byte~ main::$2 reg byte a 22.0
const word* main::SCREEN = (word*) 1024
constant word* main::SCREEN = (word*) 1024
byte main::idx
byte main::idx#1 reg byte x 16.5
byte main::idx#2 reg byte x 6.285714285714286

View File

@ -27,12 +27,12 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte SZ = $f
constant const byte SZ = $f
void __start()
const byte* items[SZ] = { fill( SZ, 0) }
constant byte* items[SZ] = { fill( SZ, 0) }
void main()
bool~ main::$0
const byte* main::cur_item = items
constant byte* main::cur_item = items
byte main::sub
byte main::sub#0
byte main::sub#1
@ -170,8 +170,8 @@ Removing instruction jmp __b1
Succesful ASM optimization Pass5NextJumpElimination
FINAL SYMBOL TABLE
const nomodify byte SZ = $f
const byte* items[SZ] = { fill( SZ, 0) }
constant const byte SZ = $f
constant byte* items[SZ] = { fill( SZ, 0) }
void main()
byte main::sub
byte main::sub#1 reg byte x 16.5

View File

@ -1,5 +1,5 @@
const nomodify byte SZ = $f
const byte* items[SZ] = { fill( SZ, 0) }
constant const byte SZ = $f
constant byte* items[SZ] = { fill( SZ, 0) }
void main()
byte main::sub
byte main::sub#1 reg byte x 16.5

View File

@ -45,10 +45,10 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte ITEM_COUNT = 3
const nomodify byte ITEM_SIZE = 5
constant const byte ITEM_COUNT = 3
constant const byte ITEM_SIZE = 5
void __start()
const byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
constant byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
void main()
number~ main::$0
number~ main::$1
@ -337,9 +337,9 @@ Removing instruction jmp __b2
Succesful ASM optimization Pass5NextJumpElimination
FINAL SYMBOL TABLE
const nomodify byte ITEM_COUNT = 3
const nomodify byte ITEM_SIZE = 5
const byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
constant const byte ITEM_COUNT = 3
constant const byte ITEM_SIZE = 5
constant byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
void main()
byte~ main::$0 reg byte a 202.0
byte~ main::$1 reg byte a 202.0

View File

@ -1,6 +1,6 @@
const nomodify byte ITEM_COUNT = 3
const nomodify byte ITEM_SIZE = 5
const byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
constant const byte ITEM_COUNT = 3
constant const byte ITEM_SIZE = 5
constant byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
void main()
byte~ main::$0 reg byte a 202.0
byte~ main::$1 reg byte a 202.0

View File

@ -25,8 +25,8 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte* SCREEN = (byte*)$400
const byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
constant byte* SCREEN = (byte*)$400
constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
}}
void __start()
void main()
@ -124,8 +124,8 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte* SCREEN = (byte*) 1024
const byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
constant byte* SCREEN = (byte*) 1024
constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
}}
void main()

View File

@ -1,5 +1,5 @@
const byte* SCREEN = (byte*) 1024
const byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
constant byte* SCREEN = (byte*) 1024
constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
}}
void main()

View File

@ -25,8 +25,8 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte* SCREEN = (byte*)$400
const byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
constant byte* SCREEN = (byte*)$400
constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
}}
void __start()
void main()
@ -127,8 +127,8 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte* SCREEN = (byte*) 1024
const byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
constant byte* SCREEN = (byte*) 1024
constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
}}
void main()

View File

@ -1,5 +1,5 @@
const byte* SCREEN = (byte*) 1024
const byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
constant byte* SCREEN = (byte*) 1024
constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256)
}}
void main()

View File

@ -43,7 +43,7 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte* SCREEN = (byte*)$400
constant byte* const SCREEN = (byte*)$400
void __start()
void main()
bool~ main::$0
@ -58,8 +58,8 @@ byte main::i1#0
byte main::i1#1
byte main::i1#2
byte main::i1#3
const byte* msg1[$10] = "camelot"
const byte* msg2[$10] = { 'c', 'm', 'l' }
constant byte* msg1[$10] = "camelot"
constant byte* msg2[$10] = { 'c', 'm', 'l' }
Adding number conversion cast (unumber) 0 in main::$0 = 0 != msg1[main::i#2]
Adding number conversion cast (unumber) 0 in main::$1 = 0 != msg2[main::i1#2]
@ -262,7 +262,7 @@ Removing instruction __b1_from___b2:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void main()
byte main::i
byte main::i#1 reg byte x 22.0
@ -270,8 +270,8 @@ byte main::i#2 reg byte x 18.333333333333332
byte main::i1
byte main::i1#1 reg byte x 22.0
byte main::i1#2 reg byte x 18.333333333333332
const byte* msg1[$10] = "camelot"
const byte* msg2[$10] = { 'c', 'm', 'l' }
constant byte* msg1[$10] = "camelot"
constant byte* msg2[$10] = { 'c', 'm', 'l' }
reg byte x [ main::i#2 main::i#1 ]
reg byte x [ main::i1#2 main::i1#1 ]

View File

@ -1,4 +1,4 @@
const nomodify byte* SCREEN = (byte*) 1024
constant byte* const SCREEN = (byte*) 1024
void main()
byte main::i
byte main::i#1 reg byte x 22.0
@ -6,8 +6,8 @@ byte main::i#2 reg byte x 18.333333333333332
byte main::i1
byte main::i1#1 reg byte x 22.0
byte main::i1#2 reg byte x 18.333333333333332
const byte* msg1[$10] = "camelot"
const byte* msg2[$10] = { 'c', 'm', 'l' }
constant byte* msg1[$10] = "camelot"
constant byte* msg2[$10] = { 'c', 'm', 'l' }
reg byte x [ main::i#2 main::i#1 ]
reg byte x [ main::i1#2 main::i1#1 ]

View File

@ -30,11 +30,11 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte* SCREEN = (byte*)$400
constant byte* SCREEN = (byte*)$400
void __start()
const byte* b[3] = { fill( 3, 0) }
const byte* c[] = { 'c', 'm', 'l' }
const byte* d[] = "cml"z
constant byte* b[3] = { fill( 3, 0) }
constant byte* c[] = { 'c', 'm', 'l' }
constant byte* d[] = "cml"z
void main()
byte*~ main::$0
byte*~ main::$1
@ -172,10 +172,10 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte* SCREEN = (byte*) 1024
const byte* b[3] = { fill( 3, 0) }
const byte* c[] = { 'c', 'm', 'l' }
const byte* d[] = "cml"z
constant byte* SCREEN = (byte*) 1024
constant byte* b[3] = { fill( 3, 0) }
constant byte* c[] = { 'c', 'm', 'l' }
constant byte* d[] = "cml"z
void main()

View File

@ -1,6 +1,6 @@
const byte* SCREEN = (byte*) 1024
const byte* b[3] = { fill( 3, 0) }
const byte* c[] = { 'c', 'm', 'l' }
const byte* d[] = "cml"z
constant byte* SCREEN = (byte*) 1024
constant byte* b[3] = { fill( 3, 0) }
constant byte* c[] = { 'c', 'm', 'l' }
constant byte* d[] = "cml"z
void main()

View File

@ -39,9 +39,9 @@ void bne(byte bne::jsr)
byte bne::jsr
byte bne::jsr#0
byte bne::jsr#1
const nomodify byte* lda = (byte*)$400
constant byte* const lda = (byte*)$400
void main()
const byte main::jmp = 1
constant byte main::jmp = 1
Adding number conversion cast (unumber) 1 in lda[1] = bne::jsr#1
Successful SSA optimization PassNAddNumberTypeConversions
@ -182,9 +182,9 @@ Succesful ASM optimization Pass5DoubleJumpElimination
FINAL SYMBOL TABLE
void bne(byte bne::jsr)
byte bne::jsr
const nomodify byte* lda = (byte*) 1024
constant byte* const lda = (byte*) 1024
void main()
const byte main::jmp = 1
constant byte main::jmp = 1

View File

@ -1,6 +1,6 @@
void bne(byte bne::jsr)
byte bne::jsr
const nomodify byte* lda = (byte*) 1024
constant byte* const lda = (byte*) 1024
void main()
const byte main::jmp = 1
constant byte main::jmp = 1

View File

@ -29,7 +29,7 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte* BG_COLOR = (byte*)$d020
constant byte* const BG_COLOR = (byte*)$d020
void __start()
void init()
void main()
@ -139,7 +139,7 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* BG_COLOR = (byte*) 53280
constant byte* const BG_COLOR = (byte*) 53280
void init()
void main()

View File

@ -1,4 +1,4 @@
const nomodify byte* BG_COLOR = (byte*) 53280
constant byte* const BG_COLOR = (byte*) 53280
void init()
void main()

View File

@ -38,7 +38,7 @@ byte main::a#0
byte main::a#1
byte main::a#2
byte main::a#3
const byte* main::screen = (byte*)$400
constant byte* main::screen = (byte*)$400
Adding number conversion cast (unumber) 0 in main::screen[0] = main::a#1
Adding number conversion cast (unumber) $28 in main::screen[$28] = main::a#1
@ -202,7 +202,7 @@ FINAL SYMBOL TABLE
void main()
byte main::a
byte main::a#2 reg byte a 4.0
const byte* main::screen = (byte*) 1024
constant byte* main::screen = (byte*) 1024
reg byte a [ main::a#2 ]

View File

@ -1,6 +1,6 @@
void main()
byte main::a
byte main::a#2 reg byte a 4.0
const byte* main::screen = (byte*) 1024
constant byte* main::screen = (byte*) 1024
reg byte a [ main::a#2 ]

View File

@ -162,11 +162,11 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte GREEN = 5
const byte RED = 2
constant byte GREEN = 5
constant byte RED = 2
void __start()
byte*~ __start::__init1_$0
const byte* cols = (byte*)$d800
constant byte* cols = (byte*)$d800
void main()
byte main::a
byte main::a#0
@ -214,8 +214,8 @@ byte main::i#6
byte main::i#7
byte main::i#8
byte main::i#9
const byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 }
const byte* screen1 = (byte*)$400
constant byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 }
constant byte* screen1 = (byte*)$400
byte* screen2
byte* screen2#0
byte* screen2#1
@ -978,16 +978,16 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte GREEN = 5
const byte RED = 2
const byte* cols = (byte*) 55296
constant byte GREEN = 5
constant byte RED = 2
constant byte* cols = (byte*) 55296
void main()
byte main::a
byte main::i
const byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 }
const byte* screen1 = (byte*) 1024
constant byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 }
constant byte* screen1 = (byte*) 1024
byte* screen2
const byte* screen2#0 screen2 = screen1+$28
constant byte* screen2#0 screen2 = screen1+$28
void test(byte test::i , byte test::a)
byte test::a
byte test::a#11 a zp[1]:2 7.333333333333333

View File

@ -1,13 +1,13 @@
const byte GREEN = 5
const byte RED = 2
const byte* cols = (byte*) 55296
constant byte GREEN = 5
constant byte RED = 2
constant byte* cols = (byte*) 55296
void main()
byte main::a
byte main::i
const byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 }
const byte* screen1 = (byte*) 1024
constant byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 }
constant byte* screen1 = (byte*) 1024
byte* screen2
const byte* screen2#0 screen2 = screen1+$28
constant byte* screen2#0 screen2 = screen1+$28
void test(byte test::i , byte test::a)
byte test::a
byte test::a#11 a zp[1]:2 7.333333333333333

View File

@ -56,7 +56,7 @@ main: {
}
.segment Code
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($b6) s)
// cputs(const byte* zp($b6) s)
cputs: {
.label s = $b6
__b1:

View File

@ -17,7 +17,7 @@ main::@1: scope:[main] from main::@1 main::@3
[7] phi()
to:main::@1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main md5::@10 md5::@16 md5::@20 md5::@37 md5::@39 md5::@50 md5::@52 printf_number_buffer::@4
[8] cputs::s#11 = phi( main/main::s, md5::@10/md5::s1, md5::@16/md5::s4, md5::@20/md5::s, md5::@37/md5::s2, md5::@39/md5::s3, md5::@50/md5::s5, md5::@52/md5::s6, printf_number_buffer::@4/printf_number_buffer::buffer_digits#0 )
to:cputs::@1
@ -780,7 +780,7 @@ move16Left::@return: scope:[move16Left] from move16Left
[373] return
to:@return
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
rotateLeft: scope:[rotateLeft] from leftRotate::@1 leftRotate::@10 leftRotate::@11
kickasm( uses rotateLeft::p uses rotateLeft::r) {{ ldx #r
!s:

View File

@ -547,7 +547,7 @@ putchar::@return: scope:[putchar] from putchar::@2
return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main md5::@10 md5::@16 md5::@21 md5::@39 md5::@41 md5::@53 md5::@55 printf_number_buffer::@5
cputs::s#11 = phi( main/cputs::s#2, md5::@10/cputs::s#4, md5::@16/cputs::s#7, md5::@21/cputs::s#3, md5::@39/cputs::s#5, md5::@41/cputs::s#6, md5::@53/cputs::s#8, md5::@55/cputs::s#9, printf_number_buffer::@5/cputs::s#1 )
cputs::c#0 = 0
@ -1225,7 +1225,7 @@ move16Left::@return: scope:[move16Left] from move16Left
return
to:@return
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
rotateLeft: scope:[rotateLeft] from leftRotate::@1 leftRotate::@12 leftRotate::@15
kickasm( uses rotateLeft::p uses rotateLeft::r) {{ ldx #r
!s:
@ -2625,29 +2625,29 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte BINARY = 2
const word* COLCRS = (word*)$55
const nomodify byte* CRSINH = (byte*)$2f0
const byte DECIMAL = $a
const byte* DIGITS[] = "0123456789abcdef"atz
const byte* HEAP_TOP = (byte*)$a000
const byte HEXADECIMAL = $10
const byte OCTAL = 8
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
const nomodify byte** OLDADR = (byte**)$5e
const nomodify byte* OLDCHR = (byte*)$5d
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 }
const byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
const byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
const byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 }
const byte* ROWCRS = (byte*)$54
const nomodify byte** SAVMSC = (byte**)$58
const byte SIZEOF_DWORD = 4
constant byte BINARY = 2
constant word* COLCRS = (word*)$55
constant byte* const CRSINH = (byte*)$2f0
constant byte DECIMAL = $a
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte* HEAP_TOP = (byte*)$a000
constant byte HEXADECIMAL = $10
constant byte OCTAL = 8
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
constant byte** const OLDADR = (byte**)$5e
constant byte* const OLDCHR = (byte*)$5d
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 }
constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a }
constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
constant byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 }
constant byte* ROWCRS = (byte*)$54
constant byte** const SAVMSC = (byte**)$58
constant byte SIZEOF_DWORD = 4
void __start()
void* calloc(word calloc::nitems , word calloc::size)
word~ calloc::$0
@ -2690,28 +2690,28 @@ byte* cputc::convertToScreenCode1_v
byte* cputc::convertToScreenCode1_v#0
byte* cputc::convertToScreenCode1_v#1
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte~ cputs::$0
bool~ cputs::$2
byte cputs::c
byte cputs::c#0
byte cputs::c#1
byte cputs::c#2
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0
to_nomodify byte* cputs::s#1
to_nomodify byte* cputs::s#10
to_nomodify byte* cputs::s#11
to_nomodify byte* cputs::s#12
to_nomodify byte* cputs::s#13
to_nomodify byte* cputs::s#2
to_nomodify byte* cputs::s#3
to_nomodify byte* cputs::s#4
to_nomodify byte* cputs::s#5
to_nomodify byte* cputs::s#6
to_nomodify byte* cputs::s#7
to_nomodify byte* cputs::s#8
to_nomodify byte* cputs::s#9
const byte* cputs::s
const byte* cputs::s#0
const byte* cputs::s#1
const byte* cputs::s#10
const byte* cputs::s#11
const byte* cputs::s#12
const byte* cputs::s#13
const byte* cputs::s#2
const byte* cputs::s#3
const byte* cputs::s#4
const byte* cputs::s#5
const byte* cputs::s#6
const byte* cputs::s#7
const byte* cputs::s#8
const byte* cputs::s#9
byte* cursorLocation()
number~ cursorLocation::$0
byte*~ cursorLocation::$1
@ -3180,8 +3180,8 @@ dword leftRotate::return#3
dword leftRotate::return#4
void main()
word~ main::$1
const byte* main::message = "The quick brown fox jumps over the lazy dog"at
const byte* main::s[$11] = "Calculating MD5
constant byte* main::message = "The quick brown fox jumps over the lazy dog"at
constant byte* main::s[$11] = "Calculating MD5
"at
void* malloc(word malloc::size)
byte*~ malloc::$0
@ -3613,7 +3613,7 @@ byte* md5::initial_msg
byte* md5::initial_msg#0
byte* md5::initial_msg#1
byte* md5::initial_msg#2
const dword* md5::k[] = { $d76aa478, $e8c7b756, $242070db, $c1bdceee, $f57c0faf, $4787c62a, $a8304613, $fd469501, $698098d8, $8b44f7af, $ffff5bb1, $895cd7be, $6b901122, $fd987193, $a679438e, $49b40821, $f61e2562, $c040b340, $265e5a51, $e9b6c7aa, $d62f105d, $2441453, $d8a1e681, $e7d3fbc8, $21e1cde6, $c33707d6, $f4d50d87, $455a14ed, $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a, $fffa3942, $8771f681, $6d9d6122, $fde5380c, $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70, $289b7ec6, $eaa127fa, $d4ef3085, $4881d05, $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665, $f4292244, $432aff97, $ab9423a7, $fc93a039, $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1, $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1, $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 }
constant dword* md5::k[] = { $d76aa478, $e8c7b756, $242070db, $c1bdceee, $f57c0faf, $4787c62a, $a8304613, $fd469501, $698098d8, $8b44f7af, $ffff5bb1, $895cd7be, $6b901122, $fd987193, $a679438e, $49b40821, $f61e2562, $c040b340, $265e5a51, $e9b6c7aa, $d62f105d, $2441453, $d8a1e681, $e7d3fbc8, $21e1cde6, $c33707d6, $f4d50d87, $455a14ed, $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a, $fffa3942, $8771f681, $6d9d6122, $fde5380c, $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70, $289b7ec6, $eaa127fa, $d4ef3085, $4881d05, $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665, $f4292244, $432aff97, $ab9423a7, $fc93a039, $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1, $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1, $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 }
dword md5::lr
dword md5::lr#0
byte* md5::msg
@ -3800,14 +3800,14 @@ signed word md5::offset#6
signed word md5::offset#7
signed word md5::offset#8
signed word md5::offset#9
const byte* md5::r[] = { 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15 }
const byte* md5::s[3] = ": "at
const byte* md5::s1[4] = "f: "at
const byte* md5::s2[3] = "g:"at
const byte* md5::s3[7] = " w[g]:"at
const byte* md5::s4[3] = "L "at
const byte* md5::s5[4] = "r: "at
const byte* md5::s6[2] = "
constant byte* md5::r[] = { 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15 }
constant byte* md5::s[3] = ": "at
constant byte* md5::s1[4] = "f: "at
constant byte* md5::s2[3] = "g:"at
constant byte* md5::s3[7] = " w[g]:"at
constant byte* md5::s4[3] = "L "at
constant byte* md5::s5[4] = "r: "at
constant byte* md5::s6[2] = "
"at
dword md5::temp
dword md5::temp#0
@ -4364,15 +4364,15 @@ byte* putchar::loc
byte* putchar::loc#0
byte putchar::newChar
byte putchar::newChar#0
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
.byte mask | ht.get(idx)
}
}}
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
nomodify volatile byte* rotateLeft::p loadstore
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
byte* volatile const rotateLeft::p loadstore
volatile byte rotateLeft::r loadstore
void setcursor()
byte*~ setcursor::$0
@ -6421,7 +6421,7 @@ main::@1: scope:[main] from main::@1 main::@3
[7] phi()
to:main::@1
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main md5::@10 md5::@16 md5::@20 md5::@37 md5::@39 md5::@50 md5::@52 printf_number_buffer::@4
[8] cputs::s#11 = phi( main/main::s, md5::@10/md5::s1, md5::@16/md5::s4, md5::@20/md5::s, md5::@37/md5::s2, md5::@39/md5::s3, md5::@50/md5::s5, md5::@52/md5::s6, printf_number_buffer::@4/printf_number_buffer::buffer_digits#0 )
to:cputs::@1
@ -7184,7 +7184,7 @@ move16Left::@return: scope:[move16Left] from move16Left
[373] return
to:@return
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
rotateLeft: scope:[rotateLeft] from leftRotate::@1 leftRotate::@10 leftRotate::@11
kickasm( uses rotateLeft::p uses rotateLeft::r) {{ ldx #r
!s:
@ -7490,13 +7490,13 @@ byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 1.833333333336667E11
byte* cputc::convertToScreenCode1_v
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 1.00000001E8
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 5.00000005E7
to_nomodify byte* cputs::s#10 1.55000002E8
to_nomodify byte* cputs::s#11 1.0000001E7
const byte* cputs::s
const byte* cputs::s#0 5.00000005E7
const byte* cputs::s#10 1.55000002E8
const byte* cputs::s#11 1.0000001E7
byte* cursorLocation()
word~ cursorLocation::$0 2.00000000000002E14
byte*~ cursorLocation::$1 2.00000000000002E14
@ -7764,8 +7764,8 @@ byte* putchar::loc
byte* putchar::loc#0 1.000000000001E12
byte putchar::newChar
byte putchar::newChar#0 1.5000000000015E12
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
nomodify volatile byte* rotateLeft::p loadstore 5000.5
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
byte* volatile const rotateLeft::p loadstore 5000.5
volatile byte rotateLeft::r loadstore 10001.0
void setcursor()
byte setcursor::c
@ -9029,13 +9029,13 @@ ASSEMBLER BEFORE OPTIMIZATION
// File Comments
// 8 bit converted md5 calculator
// Upstart
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="atarixl-md5.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="atarixl-md5.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
.segmentdef Data [startAfter="Code"]
// Global Constants & labels
.const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
@ -9109,7 +9109,7 @@ main: {
.segment Code
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($b6) s)
// cputs(const byte* zp($b6) s)
cputs: {
.label s = $b6
// [9] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]
@ -12153,21 +12153,21 @@ Fixing long branch [460] beq __b8 to bne
Fixing long branch [464] beq __b9 to bne
FINAL SYMBOL TABLE
const word* COLCRS = (word*) 85
const nomodify byte* CRSINH = (byte*) 752
const byte* DIGITS[] = "0123456789abcdef"atz
const byte* HEAP_TOP = (byte*) 40960
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const nomodify byte** OLDADR = (byte**) 94
const nomodify byte* OLDCHR = (byte*) 93
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
const byte* ROWCRS = (byte*) 84
const nomodify byte** SAVMSC = (byte**) 88
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant word* COLCRS = (word*) 85
constant byte* const CRSINH = (byte*) 752
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte* HEAP_TOP = (byte*) 40960
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte** const OLDADR = (byte**) 94
constant byte* const OLDCHR = (byte*) 93
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
constant byte* ROWCRS = (byte*) 84
constant byte** const SAVMSC = (byte**) 88
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void* calloc(word calloc::nitems , word calloc::size)
void* calloc::mem
word calloc::nitems
@ -12181,15 +12181,15 @@ volatile byte cputc::c loadstore zp[1]:177 2.3853923693384613E10
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 reg byte x 1.833333333336667E11
byte* cputc::convertToScreenCode1_v
const byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
constant byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.00000001E8
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:182 5.00000005E7
to_nomodify byte* cputs::s#10 s zp[2]:182 1.55000002E8
to_nomodify byte* cputs::s#11 s zp[2]:182 1.0000001E7
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:182 5.00000005E7
const byte* cputs::s#10 s zp[2]:182 1.55000002E8
const byte* cputs::s#11 s zp[2]:182 1.0000001E7
byte* cursorLocation()
word~ cursorLocation::$0 zp[2]:216 2.00000000000002E14
byte*~ cursorLocation::$1 zp[2]:216 2.00000000000002E14
@ -12218,17 +12218,17 @@ byte~ leftRotate::$5 reg byte x 10001.0
byte~ leftRotate::$9 reg byte x 10001.0
volatile dword leftRotate::a loadstore zp[4]:195 10010.0
byte* leftRotate::p
const byte* leftRotate::p#1 p = (byte*)&leftRotate::a
constant byte* leftRotate::p#1 p = (byte*)&leftRotate::a
byte leftRotate::r
byte leftRotate::r#0 r zp[1]:199 7100.800000000001
dword* leftRotate::result
const dword* leftRotate::result#0 result = (dword*)leftRotate::p#1
constant dword* leftRotate::result#0 result = (dword*)leftRotate::p#1
dword leftRotate::return
dword leftRotate::return#0 return zp[4]:200 3667.333333333333
dword leftRotate::return#2 return zp[4]:200 2002.0
void main()
const byte* main::message = "The quick brown fox jumps over the lazy dog"at
const byte* main::s[$11] = "Calculating MD5
constant byte* main::message = "The quick brown fox jumps over the lazy dog"at
constant byte* main::s[$11] = "Calculating MD5
"at
void* malloc(word malloc::size)
byte* malloc::mem
@ -12295,7 +12295,7 @@ byte md5::i#10 i zp[1]:148 100.94117647058822
word md5::initial_len
word md5::initial_len#0 initial_len zp[2]:128 3.0666666666666664
byte* md5::initial_msg
const dword* md5::k[] = { $d76aa478, $e8c7b756, $242070db, $c1bdceee, $f57c0faf, $4787c62a, $a8304613, $fd469501, $698098d8, $8b44f7af, $ffff5bb1, $895cd7be, $6b901122, $fd987193, $a679438e, $49b40821, $f61e2562, $c040b340, $265e5a51, $e9b6c7aa, $d62f105d, $2441453, $d8a1e681, $e7d3fbc8, $21e1cde6, $c33707d6, $f4d50d87, $455a14ed, $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a, $fffa3942, $8771f681, $6d9d6122, $fde5380c, $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70, $289b7ec6, $eaa127fa, $d4ef3085, $4881d05, $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665, $f4292244, $432aff97, $ab9423a7, $fc93a039, $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1, $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1, $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 }
constant dword* md5::k[] = { $d76aa478, $e8c7b756, $242070db, $c1bdceee, $f57c0faf, $4787c62a, $a8304613, $fd469501, $698098d8, $8b44f7af, $ffff5bb1, $895cd7be, $6b901122, $fd987193, $a679438e, $49b40821, $f61e2562, $c040b340, $265e5a51, $e9b6c7aa, $d62f105d, $2441453, $d8a1e681, $e7d3fbc8, $21e1cde6, $c33707d6, $f4d50d87, $455a14ed, $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a, $fffa3942, $8771f681, $6d9d6122, $fde5380c, $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70, $289b7ec6, $eaa127fa, $d4ef3085, $4881d05, $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665, $f4292244, $432aff97, $ab9423a7, $fc93a039, $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1, $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1, $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 }
dword md5::lr
dword md5::lr#0 lr zp[4]:200 2002.0
byte* md5::msg
@ -12305,14 +12305,14 @@ word md5::new_len#0 new_len zp[2]:178 0.8874172185430463
signed word md5::offset
signed word md5::offset#1 offset zp[2]:130 202.0
signed word md5::offset#2 offset zp[2]:130 2.9925925925925925
const byte* md5::r[] = { 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15 }
const byte* md5::s[3] = ": "at
const byte* md5::s1[4] = "f: "at
const byte* md5::s2[3] = "g:"at
const byte* md5::s3[7] = " w[g]:"at
const byte* md5::s4[3] = "L "at
const byte* md5::s5[4] = "r: "at
const byte* md5::s6[2] = "
constant byte* md5::r[] = { 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15 }
constant byte* md5::s[3] = ": "at
constant byte* md5::s1[4] = "f: "at
constant byte* md5::s2[3] = "g:"at
constant byte* md5::s3[7] = " w[g]:"at
constant byte* md5::s4[3] = "L "at
constant byte* md5::s5[4] = "r: "at
constant byte* md5::s6[2] = "
"at
dword md5::temp
dword md5::temp#0 temp zp[4]:161 66.7479674796748
@ -12415,20 +12415,20 @@ byte* newline::start
byte* newline::start#0 start zp[2]:172 6.000000000006001E11
void print32(volatile dword print32::l)
byte* print32::dp
const byte* print32::dp#1 dp = (byte*)&print32::l
constant byte* print32::dp#1 dp = (byte*)&print32::l
volatile dword print32::l loadstore zp[4]:190 100100.0
struct printf_buffer_number printf_buffer loadstore mem[12] = {}
void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix)
word~ printf_number_buffer::$19 zp[2]:128 1000001.0
struct printf_buffer_number printf_number_buffer::buffer
byte* printf_number_buffer::buffer_digits
const byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
byte printf_number_buffer::buffer_sign
byte printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:212 155000.2
struct printf_format_number printf_number_buffer::format
byte printf_number_buffer::format_justify_left
byte printf_number_buffer::format_min_length
const byte printf_number_buffer::format_min_length#0 format_min_length = 2
constant byte printf_number_buffer::format_min_length#0 format_min_length = 2
byte printf_number_buffer::format_radix
byte printf_number_buffer::format_sign_always
byte printf_number_buffer::format_upper_case
@ -12475,15 +12475,15 @@ byte* putchar::loc
byte* putchar::loc#0 loc zp[2]:216 1.000000000001E12
byte putchar::newChar
byte putchar::newChar#0 reg byte a 1.5000000000015E12
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
.byte mask | ht.get(idx)
}
}}
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
nomodify volatile byte* rotateLeft::p loadstore zp[2]:213 5000.5
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
byte* volatile const rotateLeft::p loadstore zp[2]:213 5000.5
volatile byte rotateLeft::r loadstore zp[1]:215 10001.0
void setcursor()
byte setcursor::c
@ -12610,13 +12610,13 @@ Score: 650900
// File Comments
// 8 bit converted md5 calculator
// Upstart
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="atarixl-md5.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
// Atari XL/XE executable XEX file with a single segment
// https://www.atarimax.com/jindroush.atari.org/afmtexe.html
.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="atarixl-md5.xex", type="bin", segments="XexFile"]
.segmentdef XexFile [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data"]
.segmentdef Code [start=$2000]
.segmentdef Data [startAfter="Code"]
// Global Constants & labels
.const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
@ -12684,7 +12684,7 @@ main: {
.segment Code
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp($b6) s)
// cputs(const byte* zp($b6) s)
cputs: {
.label s = $b6
// [9] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]
@ -13258,9 +13258,9 @@ md5: {
// (i >> 4) & 3
// [78] md5::$25 = md5::$24 & 3 -- vbuaa=vbuaa_band_vbuc1
and #3
// case 0: // (i < 16)
// f = (b & c) | ((~b) & d);
// g = i;
// case 0: // (i < 16)
// f = (b & c) | ((~b) & d);
// g = i;
// break;
// [79] if(md5::$25==0) goto md5::@6 -- vbuaa_eq_0_then_la1
cmp #0
@ -13268,9 +13268,9 @@ md5: {
jmp __b6
!__b6:
// md5::@12
// case 1: // (i < 32)
// f = (d & b) | ((~d) & c);
// g = mod16(mul5(i) + 1);
// case 1: // (i < 32)
// f = (d & b) | ((~d) & c);
// g = mod16(mul5(i) + 1);
// break;
// [80] if(md5::$25==1) goto md5::@7 -- vbuaa_eq_vbuc1_then_la1
cmp #1
@ -13278,9 +13278,9 @@ md5: {
jmp __b7
!__b7:
// md5::@13
// case 2: // (i < 48)
// f = b ^ c ^ d;
// g = mod16(mul3(i) + 5);
// case 2: // (i < 48)
// f = b ^ c ^ d;
// g = mod16(mul3(i) + 5);
// break;
// [81] if(md5::$25==2) goto md5::@8 -- vbuaa_eq_vbuc1_then_la1
cmp #2
@ -13288,9 +13288,9 @@ md5: {
jmp __b8
!__b8:
// md5::@14
// case 3: // other
// f = c ^ (b | (~d));
// g = mod16(mul7(i));
// case 3: // other
// f = c ^ (b | (~d));
// g = mod16(mul7(i));
// break;
// [82] if(md5::$25==3) goto md5::@9 -- vbuaa_eq_vbuc1_then_la1
cmp #3

View File

@ -1,18 +1,18 @@
const word* COLCRS = (word*) 85
const nomodify byte* CRSINH = (byte*) 752
const byte* DIGITS[] = "0123456789abcdef"atz
const byte* HEAP_TOP = (byte*) 40960
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const nomodify byte** OLDADR = (byte**) 94
const nomodify byte* OLDCHR = (byte*) 93
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
const byte* ROWCRS = (byte*) 84
const nomodify byte** SAVMSC = (byte**) 88
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant word* COLCRS = (word*) 85
constant byte* const CRSINH = (byte*) 752
constant byte* DIGITS[] = "0123456789abcdef"atz
constant byte* HEAP_TOP = (byte*) 40960
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte** const OLDADR = (byte**) 94
constant byte* const OLDCHR = (byte*) 93
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
constant byte* ROWCRS = (byte*) 84
constant byte** const SAVMSC = (byte**) 88
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void* calloc(word calloc::nitems , word calloc::size)
void* calloc::mem
word calloc::nitems
@ -26,15 +26,15 @@ volatile byte cputc::c loadstore zp[1]:177 2.3853923693384613E10
byte cputc::convertToScreenCode1_return
byte cputc::convertToScreenCode1_return#0 reg byte x 1.833333333336667E11
byte* cputc::convertToScreenCode1_v
const byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
constant byte* cputc::convertToScreenCode1_v#0 convertToScreenCode1_v = &cputc::c
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 1.00000001E8
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:182 5.00000005E7
to_nomodify byte* cputs::s#10 s zp[2]:182 1.55000002E8
to_nomodify byte* cputs::s#11 s zp[2]:182 1.0000001E7
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:182 5.00000005E7
const byte* cputs::s#10 s zp[2]:182 1.55000002E8
const byte* cputs::s#11 s zp[2]:182 1.0000001E7
byte* cursorLocation()
word~ cursorLocation::$0 zp[2]:216 2.00000000000002E14
byte*~ cursorLocation::$1 zp[2]:216 2.00000000000002E14
@ -63,17 +63,17 @@ byte~ leftRotate::$5 reg byte x 10001.0
byte~ leftRotate::$9 reg byte x 10001.0
volatile dword leftRotate::a loadstore zp[4]:195 10010.0
byte* leftRotate::p
const byte* leftRotate::p#1 p = (byte*)&leftRotate::a
constant byte* leftRotate::p#1 p = (byte*)&leftRotate::a
byte leftRotate::r
byte leftRotate::r#0 r zp[1]:199 7100.800000000001
dword* leftRotate::result
const dword* leftRotate::result#0 result = (dword*)leftRotate::p#1
constant dword* leftRotate::result#0 result = (dword*)leftRotate::p#1
dword leftRotate::return
dword leftRotate::return#0 return zp[4]:200 3667.333333333333
dword leftRotate::return#2 return zp[4]:200 2002.0
void main()
const byte* main::message = "The quick brown fox jumps over the lazy dog"at
const byte* main::s[$11] = "Calculating MD5
constant byte* main::message = "The quick brown fox jumps over the lazy dog"at
constant byte* main::s[$11] = "Calculating MD5
"at
void* malloc(word malloc::size)
byte* malloc::mem
@ -140,7 +140,7 @@ byte md5::i#10 i zp[1]:148 100.94117647058822
word md5::initial_len
word md5::initial_len#0 initial_len zp[2]:128 3.0666666666666664
byte* md5::initial_msg
const dword* md5::k[] = { $d76aa478, $e8c7b756, $242070db, $c1bdceee, $f57c0faf, $4787c62a, $a8304613, $fd469501, $698098d8, $8b44f7af, $ffff5bb1, $895cd7be, $6b901122, $fd987193, $a679438e, $49b40821, $f61e2562, $c040b340, $265e5a51, $e9b6c7aa, $d62f105d, $2441453, $d8a1e681, $e7d3fbc8, $21e1cde6, $c33707d6, $f4d50d87, $455a14ed, $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a, $fffa3942, $8771f681, $6d9d6122, $fde5380c, $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70, $289b7ec6, $eaa127fa, $d4ef3085, $4881d05, $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665, $f4292244, $432aff97, $ab9423a7, $fc93a039, $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1, $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1, $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 }
constant dword* md5::k[] = { $d76aa478, $e8c7b756, $242070db, $c1bdceee, $f57c0faf, $4787c62a, $a8304613, $fd469501, $698098d8, $8b44f7af, $ffff5bb1, $895cd7be, $6b901122, $fd987193, $a679438e, $49b40821, $f61e2562, $c040b340, $265e5a51, $e9b6c7aa, $d62f105d, $2441453, $d8a1e681, $e7d3fbc8, $21e1cde6, $c33707d6, $f4d50d87, $455a14ed, $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a, $fffa3942, $8771f681, $6d9d6122, $fde5380c, $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70, $289b7ec6, $eaa127fa, $d4ef3085, $4881d05, $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665, $f4292244, $432aff97, $ab9423a7, $fc93a039, $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1, $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1, $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 }
dword md5::lr
dword md5::lr#0 lr zp[4]:200 2002.0
byte* md5::msg
@ -150,14 +150,14 @@ word md5::new_len#0 new_len zp[2]:178 0.8874172185430463
signed word md5::offset
signed word md5::offset#1 offset zp[2]:130 202.0
signed word md5::offset#2 offset zp[2]:130 2.9925925925925925
const byte* md5::r[] = { 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15 }
const byte* md5::s[3] = ": "at
const byte* md5::s1[4] = "f: "at
const byte* md5::s2[3] = "g:"at
const byte* md5::s3[7] = " w[g]:"at
const byte* md5::s4[3] = "L "at
const byte* md5::s5[4] = "r: "at
const byte* md5::s6[2] = "
constant byte* md5::r[] = { 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 7, $c, $11, $16, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 5, 9, $e, $14, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 4, $b, $10, $17, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15, 6, $a, $f, $15 }
constant byte* md5::s[3] = ": "at
constant byte* md5::s1[4] = "f: "at
constant byte* md5::s2[3] = "g:"at
constant byte* md5::s3[7] = " w[g]:"at
constant byte* md5::s4[3] = "L "at
constant byte* md5::s5[4] = "r: "at
constant byte* md5::s6[2] = "
"at
dword md5::temp
dword md5::temp#0 temp zp[4]:161 66.7479674796748
@ -260,20 +260,20 @@ byte* newline::start
byte* newline::start#0 start zp[2]:172 6.000000000006001E11
void print32(volatile dword print32::l)
byte* print32::dp
const byte* print32::dp#1 dp = (byte*)&print32::l
constant byte* print32::dp#1 dp = (byte*)&print32::l
volatile dword print32::l loadstore zp[4]:190 100100.0
struct printf_buffer_number printf_buffer loadstore mem[12] = {}
void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix)
word~ printf_number_buffer::$19 zp[2]:128 1000001.0
struct printf_buffer_number printf_number_buffer::buffer
byte* printf_number_buffer::buffer_digits
const byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
byte printf_number_buffer::buffer_sign
byte printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:212 155000.2
struct printf_format_number printf_number_buffer::format
byte printf_number_buffer::format_justify_left
byte printf_number_buffer::format_min_length
const byte printf_number_buffer::format_min_length#0 format_min_length = 2
constant byte printf_number_buffer::format_min_length#0 format_min_length = 2
byte printf_number_buffer::format_radix
byte printf_number_buffer::format_sign_always
byte printf_number_buffer::format_upper_case
@ -320,15 +320,15 @@ byte* putchar::loc
byte* putchar::loc#0 loc zp[2]:216 1.000000000001E12
byte putchar::newChar
byte putchar::newChar#0 reg byte a 1.5000000000015E12
const byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
constant byte* rawmap[$100] = kickasm {{ .var ht = Hashtable().put(0,64, 1,0, 2,32, 3,96) // the table for converting bit 6,7 into ora value
.for(var i=0; i<256; i++) {
.var idx = (i & $60) / 32
.var mask = i & $9f
.byte mask | ht.get(idx)
}
}}
void rotateLeft(nomodify volatile byte* rotateLeft::p , volatile byte rotateLeft::r)
nomodify volatile byte* rotateLeft::p loadstore zp[2]:213 5000.5
void rotateLeft(byte* volatile const rotateLeft::p , volatile byte rotateLeft::r)
byte* volatile const rotateLeft::p loadstore zp[2]:213 5000.5
volatile byte rotateLeft::r loadstore zp[1]:215 10001.0
void setcursor()
byte setcursor::c

View File

@ -199,7 +199,7 @@ __start::@return: scope:[__start] from __start::@2
to:@return
SYMBOL TABLE SSA
const byte* HEX[] = "0123456789abcdef"
constant byte* HEX[] = "0123456789abcdef"
void __start()
byte idx loadstore
byte* line loadstore
@ -1288,7 +1288,7 @@ Removing instruction __b3:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const byte* HEX[] = "0123456789abcdef"
constant byte* HEX[] = "0123456789abcdef"
void __start()
byte idx loadstore zp[1]:11 5873.634920634922
byte* line loadstore zp[2]:9 2121.4545454545455
@ -1308,7 +1308,7 @@ byte md5::b#1 b zp[1]:7 375.375
byte md5::b#2 b_1 zp[1]:4 263.42105263157896
byte md5::b#8 b_1 zp[1]:4 1001.0
byte md5::c
const byte md5::c#0 c = $98
constant byte md5::c#0 c = $98
byte md5::i
byte md5::i#1 reg byte x 500.5
byte md5::i#2 reg byte x 375.375

View File

@ -1,4 +1,4 @@
const byte* HEX[] = "0123456789abcdef"
constant byte* HEX[] = "0123456789abcdef"
void __start()
byte idx loadstore zp[1]:11 5873.634920634922
byte* line loadstore zp[2]:9 2121.4545454545455
@ -18,7 +18,7 @@ byte md5::b#1 b zp[1]:7 375.375
byte md5::b#2 b_1 zp[1]:4 263.42105263157896
byte md5::b#8 b_1 zp[1]:4 1001.0
byte md5::c
const byte md5::c#0 c = $98
constant byte md5::c#0 c = $98
byte md5::i
byte md5::i#1 reg byte x 500.5
byte md5::i#2 reg byte x 375.375

View File

@ -252,7 +252,7 @@ clrscr: {
jmp __b3
}
// Converts the string argument str to an integer.
// atoi(byte* zp(5) str)
// atoi(const byte* zp(5) str)
atoi: {
.label __3 = 2
.label __4 = 2
@ -374,7 +374,7 @@ printf_sint: {
rts
}
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp(5) s)
// cputs(const byte* zp(5) s)
cputs: {
.label s = 5
__b1:

View File

@ -130,7 +130,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3
[62] clrscr::c#1 = ++ clrscr::c#2
to:clrscr::@3
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
atoi: scope:[atoi] from main::@1 main::@4
[63] atoi::str#2 = phi( main::@1/main::str, main::@4/main::str1 )
[64] if(*atoi::str#2!='-') goto atoi::@3
@ -186,7 +186,7 @@ printf_sint::@return: scope:[printf_sint] from printf_sint::@3
[88] return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@3 main::@6 printf_number_buffer::@2
[89] cputs::s#5 = phi( main::@3/main::s, main::@6/main::s, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 )
to:cputs::@1

View File

@ -359,7 +359,7 @@ utoa_append::@return: scope:[utoa_append] from utoa_append::@3
return
to:@return
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
atoi: scope:[atoi] from main::@1 main::@4
atoi::str#2 = phi( main::@1/atoi::str#0, main::@4/atoi::str#1 )
atoi::res#0 = 0
@ -608,7 +608,7 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@7 cscroll::@8
return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@3 main::@6 printf_number_buffer::@5
cputs::s#5 = phi( main::@3/cputs::s#2, main::@6/cputs::s#3, printf_number_buffer::@5/cputs::s#1 )
cputs::c#0 = 0
@ -1063,30 +1063,30 @@ __start::@return: scope:[__start] from __start::@3
to:@return
SYMBOL TABLE SSA
const byte BINARY = 2
const nomodify byte* COLORRAM = (byte*)$d800
const nomodify byte* CONIO_SCREEN_COLORS = COLORRAM
const nomodify byte* CONIO_SCREEN_TEXT = DEFAULT_SCREEN
const nomodify byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE
const byte DECIMAL = $a
const nomodify byte* DEFAULT_SCREEN = (byte*)$400
const byte* DIGITS[] = "0123456789abcdef"z
const byte HEXADECIMAL = $10
const nomodify byte LIGHT_BLUE = $e
const byte OCTAL = 8
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
const word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
const byte SIZEOF_WORD = 2
constant byte BINARY = 2
constant byte* const COLORRAM = (byte*)$d800
constant byte* const CONIO_SCREEN_COLORS = COLORRAM
constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN
constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE
constant byte DECIMAL = $a
constant byte* const DEFAULT_SCREEN = (byte*)$400
constant byte* DIGITS[] = "0123456789abcdef"z
constant byte HEXADECIMAL = $10
constant const byte LIGHT_BLUE = $e
constant byte OCTAL = 8
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 }
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 }
constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 }
constant byte SIZEOF_WORD = 2
void __start()
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
bool~ atoi::$0
bool~ atoi::$1
signed word~ atoi::$2
@ -1126,13 +1126,13 @@ signed word atoi::return#4
signed word atoi::return#5
signed word atoi::return#6
signed word atoi::return#7
to_nomodify byte* atoi::str
to_nomodify byte* atoi::str#0
to_nomodify byte* atoi::str#1
to_nomodify byte* atoi::str#2
to_nomodify byte* atoi::str#3
to_nomodify byte* atoi::str#4
to_nomodify byte* atoi::str#5
const byte* atoi::str
const byte* atoi::str#0
const byte* atoi::str#1
const byte* atoi::str#2
const byte* atoi::str#3
const byte* atoi::str#4
const byte* atoi::str#5
void clrscr()
bool~ clrscr::$0
bool~ clrscr::$1
@ -1168,7 +1168,7 @@ byte* clrscr::line_text#6
void conio_c64_init()
bool~ conio_c64_init::$0
bool~ conio_c64_init::$1
const nomodify byte* conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6
constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6
byte conio_c64_init::line
byte conio_c64_init::line#0
byte conio_c64_init::line#1
@ -1190,22 +1190,22 @@ byte cputc::c#2
byte cputc::c#3
byte cputc::c#4
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte~ cputs::$0
bool~ cputs::$2
byte cputs::c
byte cputs::c#0
byte cputs::c#1
byte cputs::c#2
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0
to_nomodify byte* cputs::s#1
to_nomodify byte* cputs::s#2
to_nomodify byte* cputs::s#3
to_nomodify byte* cputs::s#4
to_nomodify byte* cputs::s#5
to_nomodify byte* cputs::s#6
to_nomodify byte* cputs::s#7
const byte* cputs::s
const byte* cputs::s#0
const byte* cputs::s#1
const byte* cputs::s#2
const byte* cputs::s#3
const byte* cputs::s#4
const byte* cputs::s#5
const byte* cputs::s#6
const byte* cputs::s#7
void cscroll()
bool~ cscroll::$0
bool~ cscroll::$1
@ -1240,12 +1240,12 @@ byte gotoxy::y#6
void main()
signed word~ main::$1
signed word~ main::$3
const byte* main::s[2] = "
constant byte* main::s[2] = "
"
const byte* main::s1[2] = "
constant byte* main::s1[2] = "
"
const byte* main::str[5] = "1234"
const byte* main::str1[6] = "-5678"
constant byte* main::str[5] = "1234"
constant byte* main::str1[6] = "-5678"
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
byte*~ memcpy::$0
bool~ memcpy::$1
@ -3114,7 +3114,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3
[62] clrscr::c#1 = ++ clrscr::c#2
to:clrscr::@3
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
atoi: scope:[atoi] from main::@1 main::@4
[63] atoi::str#2 = phi( main::@1/main::str, main::@4/main::str1 )
[64] if(*atoi::str#2!='-') goto atoi::@3
@ -3170,7 +3170,7 @@ printf_sint::@return: scope:[printf_sint] from printf_sint::@3
[88] return
to:@return
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
cputs: scope:[cputs] from main::@3 main::@6 printf_number_buffer::@2
[89] cputs::s#5 = phi( main::@3/main::s, main::@6/main::s, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 )
to:cputs::@1
@ -3384,7 +3384,7 @@ memset::@3: scope:[memset] from memset::@2
VARIABLE REGISTER WEIGHTS
void __start()
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
signed word~ atoi::$3 2002.0
signed word~ atoi::$4 2002.0
signed word~ atoi::$8 2002.0
@ -3402,8 +3402,8 @@ signed word atoi::return#0 202.0
signed word atoi::return#2 56.0
signed word atoi::return#3 22.0
signed word atoi::return#4 22.0
to_nomodify byte* atoi::str
to_nomodify byte* atoi::str#2 191.1818181818182
const byte* atoi::str
const byte* atoi::str#2 191.1818181818182
void clrscr()
byte clrscr::c
byte clrscr::c#1 20002.0
@ -3431,13 +3431,13 @@ byte cputc::c#0 200002.0
byte cputc::c#2 2002.0
byte cputc::c#3 1050502.0
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 100001.0
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 50000.5
to_nomodify byte* cputs::s#4 155002.0
to_nomodify byte* cputs::s#5 10001.0
const byte* cputs::s
const byte* cputs::s#0 50000.5
const byte* cputs::s#4 155002.0
const byte* cputs::s#5 10001.0
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte*~ gotoxy::$5 202.0
@ -4423,7 +4423,7 @@ clrscr: {
}
// atoi
// Converts the string argument str to an integer.
// atoi(byte* zp(5) str)
// atoi(const byte* zp(5) str)
atoi: {
.label __3 = 2
.label __4 = 2
@ -4603,7 +4603,7 @@ printf_sint: {
}
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp(5) s)
// cputs(const byte* zp(5) s)
cputs: {
.label s = 5
// [90] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]
@ -5375,19 +5375,19 @@ Removing instruction __b3:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* COLORRAM = (byte*) 55296
const nomodify byte* DEFAULT_SCREEN = (byte*) 1024
const byte* DIGITS[] = "0123456789abcdef"z
const nomodify byte LIGHT_BLUE = $e
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant byte* const COLORRAM = (byte*) 55296
constant byte* const DEFAULT_SCREEN = (byte*) 1024
constant byte* DIGITS[] = "0123456789abcdef"z
constant const byte LIGHT_BLUE = $e
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void __start()
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
signed word~ atoi::$3 zp[2]:2 2002.0
signed word~ atoi::$4 zp[2]:2 2002.0
signed word~ atoi::$8 zp[2]:23 2002.0
@ -5405,8 +5405,8 @@ signed word atoi::return#0 return zp[2]:2 202.0
signed word atoi::return#2 return zp[2]:2 56.0
signed word atoi::return#3 return zp[2]:2 22.0
signed word atoi::return#4 return zp[2]:2 22.0
to_nomodify byte* atoi::str
to_nomodify byte* atoi::str#2 str zp[2]:5 191.1818181818182
const byte* atoi::str
const byte* atoi::str#2 str zp[2]:5 191.1818181818182
void clrscr()
byte clrscr::c
byte clrscr::c#1 reg byte y 20002.0
@ -5421,7 +5421,7 @@ byte* clrscr::line_text
byte* clrscr::line_text#1 line_text zp[2]:5 667.3333333333334
byte* clrscr::line_text#5 line_text zp[2]:5 1714.7142857142858
void conio_c64_init()
const nomodify byte* conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_c64_init::line
byte conio_c64_init::line#0 reg byte x 11.0
byte conio_c64_init::line#2 reg byte x 22.0
@ -5435,13 +5435,13 @@ byte cputc::c#0 reg byte a 200002.0
byte cputc::c#2 reg byte a 2002.0
byte cputc::c#3 reg byte a 1050502.0
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 100001.0
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:5 50000.5
to_nomodify byte* cputs::s#4 s zp[2]:5 155002.0
to_nomodify byte* cputs::s#5 s zp[2]:5 10001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:5 50000.5
const byte* cputs::s#4 s zp[2]:5 155002.0
const byte* cputs::s#5 s zp[2]:5 10001.0
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte*~ gotoxy::$5 zp[2]:19 202.0
@ -5452,15 +5452,15 @@ word~ gotoxy::$9 zp[2]:15 202.0
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:15 101.0
byte gotoxy::x
const byte gotoxy::x#2 x = 0
constant byte gotoxy::x#2 x = 0
byte gotoxy::y
byte gotoxy::y#2 reg byte x 71.0
byte gotoxy::y#4 reg byte x 67.33333333333333
void main()
const byte* main::s[2] = "
constant byte* main::s[2] = "
"
const byte* main::str[5] = "1234"
const byte* main::str1[6] = "-5678"
constant byte* main::str[5] = "1234"
constant byte* main::str1[6] = "-5678"
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
void* memcpy::destination
void* memcpy::destination#2 destination zp[2]:23
@ -5495,7 +5495,7 @@ struct printf_buffer_number printf_buffer loadstore mem[12] = {}
void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix)
struct printf_buffer_number printf_number_buffer::buffer
byte* printf_number_buffer::buffer_digits
const byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
byte printf_number_buffer::buffer_sign
byte printf_number_buffer::buffer_sign#0 reg byte a 701.0
struct printf_format_number printf_number_buffer::format
@ -5970,7 +5970,7 @@ clrscr: {
}
// atoi
// Converts the string argument str to an integer.
// atoi(byte* zp(5) str)
// atoi(const byte* zp(5) str)
atoi: {
.label __3 = 2
.label __4 = 2
@ -6143,7 +6143,7 @@ printf_sint: {
}
// cputs
// Output a NUL-terminated string at the current cursor position
// cputs(byte* zp(5) s)
// cputs(const byte* zp(5) s)
cputs: {
.label s = 5
// [90] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1]

View File

@ -1,16 +1,16 @@
const nomodify byte* COLORRAM = (byte*) 55296
const nomodify byte* DEFAULT_SCREEN = (byte*) 1024
const byte* DIGITS[] = "0123456789abcdef"z
const nomodify byte LIGHT_BLUE = $e
const byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
const byte RADIX::BINARY = 2
const byte RADIX::DECIMAL = $a
const byte RADIX::HEXADECIMAL = $10
const byte RADIX::OCTAL = 8
const word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
const byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
constant byte* const COLORRAM = (byte*) 55296
constant byte* const DEFAULT_SCREEN = (byte*) 1024
constant byte* DIGITS[] = "0123456789abcdef"z
constant const byte LIGHT_BLUE = $e
constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1
constant byte RADIX::BINARY = 2
constant byte RADIX::DECIMAL = $a
constant byte RADIX::HEXADECIMAL = $10
constant byte RADIX::OCTAL = 8
constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a }
constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c
void __start()
signed word atoi(to_nomodify byte* atoi::str)
signed word atoi(const byte* atoi::str)
signed word~ atoi::$3 zp[2]:2 2002.0
signed word~ atoi::$4 zp[2]:2 2002.0
signed word~ atoi::$8 zp[2]:23 2002.0
@ -28,8 +28,8 @@ signed word atoi::return#0 return zp[2]:2 202.0
signed word atoi::return#2 return zp[2]:2 56.0
signed word atoi::return#3 return zp[2]:2 22.0
signed word atoi::return#4 return zp[2]:2 22.0
to_nomodify byte* atoi::str
to_nomodify byte* atoi::str#2 str zp[2]:5 191.1818181818182
const byte* atoi::str
const byte* atoi::str#2 str zp[2]:5 191.1818181818182
void clrscr()
byte clrscr::c
byte clrscr::c#1 reg byte y 20002.0
@ -44,7 +44,7 @@ byte* clrscr::line_text
byte* clrscr::line_text#1 line_text zp[2]:5 667.3333333333334
byte* clrscr::line_text#5 line_text zp[2]:5 1714.7142857142858
void conio_c64_init()
const nomodify byte* conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214
byte conio_c64_init::line
byte conio_c64_init::line#0 reg byte x 11.0
byte conio_c64_init::line#2 reg byte x 22.0
@ -58,13 +58,13 @@ byte cputc::c#0 reg byte a 200002.0
byte cputc::c#2 reg byte a 2002.0
byte cputc::c#3 reg byte a 1050502.0
void cputln()
void cputs(to_nomodify byte* cputs::s)
void cputs(const byte* cputs::s)
byte cputs::c
byte cputs::c#1 reg byte a 100001.0
to_nomodify byte* cputs::s
to_nomodify byte* cputs::s#0 s zp[2]:5 50000.5
to_nomodify byte* cputs::s#4 s zp[2]:5 155002.0
to_nomodify byte* cputs::s#5 s zp[2]:5 10001.0
const byte* cputs::s
const byte* cputs::s#0 s zp[2]:5 50000.5
const byte* cputs::s#4 s zp[2]:5 155002.0
const byte* cputs::s#5 s zp[2]:5 10001.0
void cscroll()
void gotoxy(byte gotoxy::x , byte gotoxy::y)
byte*~ gotoxy::$5 zp[2]:19 202.0
@ -75,15 +75,15 @@ word~ gotoxy::$9 zp[2]:15 202.0
word gotoxy::line_offset
word gotoxy::line_offset#0 line_offset zp[2]:15 101.0
byte gotoxy::x
const byte gotoxy::x#2 x = 0
constant byte gotoxy::x#2 x = 0
byte gotoxy::y
byte gotoxy::y#2 reg byte x 71.0
byte gotoxy::y#4 reg byte x 67.33333333333333
void main()
const byte* main::s[2] = "
constant byte* main::s[2] = "
"
const byte* main::str[5] = "1234"
const byte* main::str1[6] = "-5678"
constant byte* main::str[5] = "1234"
constant byte* main::str1[6] = "-5678"
void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num)
void* memcpy::destination
void* memcpy::destination#2 destination zp[2]:23
@ -118,7 +118,7 @@ struct printf_buffer_number printf_buffer loadstore mem[12] = {}
void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix)
struct printf_buffer_number printf_number_buffer::buffer
byte* printf_number_buffer::buffer_digits
const byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
byte printf_number_buffer::buffer_sign
byte printf_number_buffer::buffer_sign#0 reg byte a 701.0
struct printf_format_number printf_number_buffer::format

View File

@ -20,8 +20,8 @@ __start::@return: scope:[__start] from __start::@1
to:@return
SYMBOL TABLE SSA
const nomodify byte* BG_COLOR = (byte*)$d021
const nomodify byte BLACK = 0
constant byte* const BG_COLOR = (byte*)$d021
constant const byte BLACK = 0
void __start()
void main()
@ -98,8 +98,8 @@ Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
const nomodify byte* BG_COLOR = (byte*) 53281
const nomodify byte BLACK = 0
constant byte* const BG_COLOR = (byte*) 53281
constant const byte BLACK = 0
void main()

View File

@ -1,4 +1,4 @@
const nomodify byte* BG_COLOR = (byte*) 53281
const nomodify byte BLACK = 0
constant byte* const BG_COLOR = (byte*) 53281
constant const byte BLACK = 0
void main()

Some files were not shown because too many files have changed in this diff Show More