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:
parent
8fd8bb1832
commit
78209db593
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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(" ", "_");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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() ? "~" : "")
|
||||
;
|
||||
|
@ -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).
|
||||
|
@ -22,7 +22,7 @@ public class SymbolTypeBlockScope implements SymbolType {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
public String getTypeBaseName() {
|
||||
return "BLOCK";
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -27,7 +27,7 @@ public class SymbolTypeIntegerAuto implements SymbolTypeInteger {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
public String getTypeBaseName() {
|
||||
return typeName;
|
||||
}
|
||||
|
||||
|
@ -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() {
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -36,7 +36,7 @@ public class SymbolTypeProcedure implements SymbolType {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
public String getTypeBaseName() {
|
||||
return returnType.getTypeName() + "()";
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ public class SymbolTypeProgram implements SymbolType {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
public String getTypeBaseName() {
|
||||
return "PROGRAM";
|
||||
}
|
||||
|
||||
|
@ -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() {
|
||||
|
@ -22,7 +22,7 @@ public class SymbolTypeTypeDefScope implements SymbolType {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
public String getTypeBaseName() {
|
||||
return "TYPEDEF";
|
||||
}
|
||||
|
||||
|
@ -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(")");
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 ]
|
||||
|
@ -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 ]
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 ]
|
||||
|
@ -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 ]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
@ -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:
|
||||
|
@ -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
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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 ]
|
||||
|
@ -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 ]
|
||||
|
@ -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()
|
||||
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
const nomodify byte* BG_COLOR = (byte*) 53280
|
||||
constant byte* const BG_COLOR = (byte*) 53280
|
||||
void init()
|
||||
void main()
|
||||
|
||||
|
@ -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 ]
|
||||
|
||||
|
@ -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 ]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user