Working on far call merge.

This commit is contained in:
jespergravgaard 2023-04-23 11:54:47 +02:00
parent 04c507d047
commit 291ce871c4
363 changed files with 3814 additions and 3869 deletions

View File

@ -4,4 +4,4 @@ lda #{c1}
sta $0
jsr {la1}
pla
sta $0
sta $0

View File

@ -4,5 +4,4 @@ lda #{c1}
sta $1
jsr {la1}
pla
sta $1
sta $1

View File

@ -1,4 +1,4 @@
jsr $FF6E
.byte <{la1}
.byte >{la1}
.byte {c1}
.byte {c1}

View File

@ -1,4 +1,4 @@
jsr $FF6E
.byte <{la1}
.byte >{la1}
.byte {c1}
.byte {c1}

View File

@ -1 +1 @@
jsr {la1}
jsr {la1}

View File

@ -55,7 +55,7 @@ final public class AsmFragmentInstanceSpecBuilder {
AsmFragmentBindings bindings = new AsmFragmentBindings(program);
AsmFragmentSignature signature = new AsmFragmentSignature.CallBanked(callingDistance, callingConvention);
ScopeRef codeScope = program.getScope().getRef();
bindings.bind("c1", new ConstantInteger(callingDistance.getBank()));
bindings.bind("c1", new ConstantInteger(callingDistance.getBankNumber()));
bindings.bind("la1", new LabelRef(procedureName));
return new AsmFragmentInstanceSpec(program, signature, bindings, codeScope);
}

View File

@ -52,20 +52,20 @@ public class Directive {
static public class Bank extends Directive {
private String bankArea; // A bank area is a memory range that is banked on a target platform.
private Long bank; // A bank is a number that defines a bank configuration in a bank area.
private Long bankNumber; // A bank is a number that defines a bank configuration in a bank area.
public Bank(String bankArea, Long bank) {
public Bank(String bankArea, Long bankNumber) {
super("bank" );
this.bankArea = bankArea;
this.bank = bank;
this.bankNumber = bankNumber;
}
public String getBankArea() {
return bankArea;
}
public Long getBank() {
return bank;
public Long getBankNumber() {
return bankNumber;
}
}

View File

@ -8,11 +8,13 @@ import dk.camelot64.kickc.model.statements.Statement;
import dk.camelot64.kickc.model.symbols.ProgramScope;
import dk.camelot64.kickc.model.values.LabelRef;
import dk.camelot64.kickc.model.values.ProcedureRef;
import dk.camelot64.kickc.parser.KickCParser;
import dk.camelot64.kickc.passes.calcs.*;
import java.nio.file.Path;
import java.util.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/** A KickC Intermediate Compiler Language (ICL) Program */
public class Program {
@ -105,7 +107,6 @@ public class Program {
private NaturalLoopSet loopSet;
/** The register weight of all variables describing how much the variable would theoretically gain from being in a register. PASS 3-5 (CACHED ON-DEMAND) */
private VariableRegisterWeights variableRegisterWeights;
/** All #pragma code segments. Collected during parsing. These are used by the bank() pragmas to validate if the code segment exists during compilation.*/
public Program() {
this.outputFileManager = new OutputFileManager();
@ -537,4 +538,5 @@ public class Program {
sizeInfo.append(getAsm().getSizeInfo());
return sizeInfo.toString();
}
}

View File

@ -1,9 +1,6 @@
package dk.camelot64.kickc.model;
package dk.camelot64.kickc.model.symbols;
/**
*
* <p>
* Specific target computer platforms implement a memory layout that can be banked either in ram or rom.
* This class models the capability to calculate which function call implementations are banked and which not.
@ -99,44 +96,28 @@ package dk.camelot64.kickc.model;
* <b>__bank( <i>method</i>, <i>number</i> )</b> directive to calculate the function call implementation
* at the function calling locations!</li>
* </ul>
*
* <p>
* The KickC compiler contains several test cases and examples which demonstrate the usage of the banking system.
*
* @param bankArea The bankable area name.
* @param bankNumber The bank number.
*/
public class Bank extends Object {
private final String bankArea; // The bank method to apply.
private Long bank; // The bank number.
public record Bank(String bankArea, Long bankNumber) {
/**
* Creates a new Bank which collects the necessary data to handle banking.
* For example, on the Commander X16, RAM is banked from address 0xA000 till 0xBFFF.
* Zeropage 0x00 configures this banked RAM, with a number from 0x00 till 0xff.
* So banked RAM is is a bankArea, and the bank is a configurable bank number in the bankArea.
* So "Banked RAM" is is a bankArea, and the bank is a configurable bank number in the bankArea.
*
* @param bankArea A bank area is a memory range that is banked on a target platform.
* @param bank A bank is a number that defines a bank configuration in a bank area.
* @param bankNumber A bank is a number that defines a bank configuration in a bank area.
*/
public Bank(String bankArea, Long bank) {
this.bankArea = bankArea;
this.bank = bank;
}
public String getBankArea() {
return bankArea;
}
public Long getBank() {
return bank;
}
public void setBank(Long bank) {
this.bank = bank;
public Bank {
}
@Override
public String toString() {
return "banked : " +
"bank area='" + bankArea + '\'' +
", bank=" + bank;
return "__bank(" + this.bankArea() + ", " + this.bankNumber() + ") ";
}
}

View File

@ -1,7 +1,6 @@
package dk.camelot64.kickc.model.symbols;
import dk.camelot64.kickc.model.Comment;
import dk.camelot64.kickc.model.Bank;
import dk.camelot64.kickc.model.Program;
import dk.camelot64.kickc.model.statements.StatementSource;
import dk.camelot64.kickc.model.types.SymbolType;
@ -42,10 +41,12 @@ public class Procedure extends Scope {
private boolean isConstructor;
/** The source of the procedure definition. */
private StatementSource definitionSource;
/** The bank segment information. Collected during parsing. These are used to compare with the current currentBank to decide a near or a far call, and to keep inline calling routines.
* When this value is null, the procedure is not allocated to a bank.
/**
* The bank that the procedure code is placed in.
* Used to decide whether to produce near, close or far call when generating code.
* If null, the procedure is in a common bank (always visible) and all calls will be near.
*/
private Bank bankLocation;
private Bank bank;
/** The names of all legal intrinsic procedures. */
@ -56,12 +57,12 @@ public class Procedure extends Scope {
Pass1ByteXIntrinsicRewrite.INTRINSIC_MAKELONG4
);
public Bank getBankLocation() {
return bankLocation;
public Bank getBank() {
return bank;
}
public void setBankLocation(Bank bankLocation) {
this.bankLocation = bankLocation;
public void setBank(Bank bank) {
this.bank = bank;
}
public enum CallingProximity {
@ -109,16 +110,16 @@ public class Procedure extends Scope {
return bankArea;
}
public Long getBank() {
public Long getBankNumber() {
return bank;
}
public CallingDistance(Procedure from, Procedure to) {
if (((!from.isDeclaredBanked() && !to.isDeclaredBanked())) ||
((from.isDeclaredBanked() && !to.isDeclaredBanked())) ||
((from.isDeclaredBanked() && to.isDeclaredBanked()) &&
(from.getBank() == to.getBank()) &&
if (((!from.isBanked() && !to.isBanked())) ||
((from.isBanked() && !to.isBanked())) ||
((from.isBanked() && to.isBanked()) &&
(from.getBankNumber() == to.getBankNumber()) &&
(from.getBankArea().contentEquals(to.getBankArea()))
)
) {
@ -127,18 +128,18 @@ public class Procedure extends Scope {
this.bankArea = "";
this.bank = 0L;
} else {
if ((!from.isDeclaredBanked() && to.isDeclaredBanked()) ||
((from.isDeclaredBanked() && to.isDeclaredBanked()) && (!from.getBankArea().contentEquals(to.getBankArea())))
if ((!from.isBanked() && to.isBanked()) ||
((from.isBanked() && to.isBanked()) && (!from.getBankArea().contentEquals(to.getBankArea())))
) {
// close call - case #2, #6
this.proximity = CallingProximity.CLOSE;
this.bankArea = to.getBankArea();
this.bank = to.getBank();
this.bank = to.getBankNumber();
} else {
// far call - case #5
this.proximity = CallingProximity.FAR;
this.bankArea = to.getBankArea();
this.bank = to.getBank();
this.bank = to.getBankNumber();
}
}
}
@ -183,11 +184,11 @@ public class Procedure extends Scope {
/** The calling convention used for this procedure. */
private CallingConvention callingConvention;
public Procedure(String name, SymbolTypeProcedure procedureType, Scope parentScope, String segmentCode, String segmentData, CallingConvention callingConvention, Bank bankLocation) {
public Procedure(String name, SymbolTypeProcedure procedureType, Scope parentScope, String segmentCode, String segmentData, CallingConvention callingConvention, Bank bank) {
super(name, parentScope, segmentData);
this.procedureType = procedureType;
this.declaredInline = false;
this.bankLocation = bankLocation;
this.bank = bank;
this.interruptType = null;
this.comments = new ArrayList<>();
this.segmentCode = segmentCode;
@ -301,20 +302,20 @@ public class Procedure extends Scope {
this.declaredInline = declaredInline;
}
public boolean isDeclaredBanked() {
return bankLocation != null;
public boolean isBanked() {
return bank != null;
}
public Long getBank() {
if(bankLocation != null)
return bankLocation.getBank();
public Long getBankNumber() {
if(bank != null)
return bank.bankNumber();
else
return 0L;
}
public String getBankArea() {
if(bankLocation != null)
return bankLocation.getBankArea();
if(bank != null)
return bank.bankArea();
else
return "";
}
@ -379,8 +380,8 @@ public class Procedure extends Scope {
if(declaredIntrinsic) {
res.append("__intrinsic ");
}
if(isDeclaredBanked()) {
res.append("__bank(").append(this.getBankArea()).append(", ").append(this.getBank()).append(") ");
if(isBanked()) {
res.append("__bank(").append(this.getBankArea()).append(", ").append(this.getBankNumber()).append(") ");
}
if(!callingConvention.equals(CallingConvention.PHI_CALL)) {
res.append(getCallingConvention().getName()).append(" ");
@ -418,23 +419,11 @@ public class Procedure extends Scope {
if(o == null || getClass() != o.getClass()) return false;
if(!super.equals(o)) return false;
Procedure procedure = (Procedure) o;
return variableLengthParameterList == procedure.variableLengthParameterList &&
declaredInline == procedure.declaredInline &&
Objects.equals(bankLocation, procedure.bankLocation) &&
declaredIntrinsic == procedure.declaredIntrinsic &&
isConstructor == procedure.isConstructor &&
Objects.equals(procedureType, procedure.procedureType) &&
Objects.equals(parameterNames, procedure.parameterNames) &&
Objects.equals(interruptType, procedure.interruptType) &&
Objects.equals(comments, procedure.comments) &&
Objects.equals(reservedZps, procedure.reservedZps) &&
Objects.equals(segmentCode, procedure.segmentCode) &&
Objects.equals(constructorRefs, procedure.constructorRefs) &&
callingConvention == procedure.callingConvention;
return variableLengthParameterList == procedure.variableLengthParameterList && declaredInline == procedure.declaredInline && declaredIntrinsic == procedure.declaredIntrinsic && isConstructor == procedure.isConstructor && Objects.equals(procedureType, procedure.procedureType) && Objects.equals(parameterNames, procedure.parameterNames) && Objects.equals(interruptType, procedure.interruptType) && Objects.equals(comments, procedure.comments) && Objects.equals(reservedZps, procedure.reservedZps) && Objects.equals(segmentCode, procedure.segmentCode) && Objects.equals(constructorRefs, procedure.constructorRefs) && Objects.equals(definitionSource, procedure.definitionSource) && Objects.equals(bank, procedure.bank) && callingConvention == procedure.callingConvention;
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), procedureType, parameterNames, variableLengthParameterList, declaredInline, declaredIntrinsic, interruptType, comments, reservedZps, segmentCode, constructorRefs, isConstructor, callingConvention);
return Objects.hash(super.hashCode(), procedureType, parameterNames, variableLengthParameterList, declaredInline, declaredIntrinsic, interruptType, comments, reservedZps, segmentCode, constructorRefs, isConstructor, definitionSource, bank, callingConvention);
}
}

View File

@ -16,8 +16,6 @@ public abstract class Scope implements Symbol {
public static final String SEGMENT_CODE_DEFAULT = "Code";
/** The default data segment. */
public static final String SEGMENT_DATA_DEFAULT = "Data";
/** The default bank segment. */
public static final Long SEGMENT_BANK_DEFAULT = -1L;
private String name;
private HashMap<String, Symbol> symbols;

View File

@ -107,11 +107,11 @@ public class CParser {
*/
public static final String PRAGMA_RESOURCE = "resource";
/**
* #pragma bank(...) changes the current bank. Functionsand variables will be placed in the specified bank.
* #pragma bank(...) changes the current bank. Functions and variables will be placed in the specified bank.
*/
public static final String PRAGMA_BANK = "bank";
/**
* #pragma nobank Changes the current bank to the default bank.
* #pragma nobank Changes the current bank to the default/common bank.
*/
public static final String PRAGMA_NOBANK = "nobank";

View File

@ -16,7 +16,6 @@ import dk.camelot64.kickc.parser.KickCParserBaseVisitor;
import dk.camelot64.kickc.passes.utils.SizeOfConstants;
import org.antlr.v4.runtime.BufferedTokenStream;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.RuleContext;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.TerminalNode;
@ -295,12 +294,14 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
this.currentSegmentData = pragmaParamName(pragmaParamSingle(ctx));
break;
case CParser.PRAGMA_BANK:
if(ctx.pragmaParam().size() != 2)
throw new CompileError("#pragma expects two parameters!", new StatementSource(ctx));
try {
final String pragmaBankArea = pragmaParamName(ctx.pragmaParam(0));
final Number pragmaBank = pragmaParamNumber(ctx.pragmaParam(1));
this.currentBank = new Bank(pragmaBankArea, pragmaBank.longValue());
} catch(IllegalArgumentException e) {
throw new CompileError("Illegal parameter " + ctx.getText(), new StatementSource(ctx));
throw new CompileError("Illegal bank parameter " + ctx.getText(), new StatementSource(ctx));
}
break;
case CParser.PRAGMA_NOBANK:
@ -379,25 +380,6 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
return callingConvention;
}
/**
* Parse the BANK AREA parameter of a #pragma
* If the parameter is not a BANK AREA the compiler will fail out
*
* @param paramCtx The parameter to parse
* @return The name
*/
private String pragmaParamBankArea(KickCParser.PragmaParamContext paramCtx) {
if(!(paramCtx instanceof KickCParser.PragmaParamNameContext))
throw new CompileError("Expected a BANK AREA parameter. Found '" + paramCtx.getText() + "'.", new StatementSource(paramCtx.getParent()));
final String pragmaBankArea = ((KickCParser.PragmaParamNameContext) paramCtx).NAME().getText();
// if(this.program.getPragmaCodeSegs().get(pragmaBankArea) != null) {
// return pragmaBankArea;
// } else {
// throw new CompileError("Expected a previously declared CODE_SEG parameter. Found '" + paramCtx.getText() + "'.", new StatementSource(paramCtx.getParent()));
// }
return pragmaBankArea;
}
/**
* Parse a single NAME parameter of a #pragma
@ -584,8 +566,8 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
procedure.setParameters(parameterList);
procedure.setSegmentData(currentSegmentData); // When a procedure is defined, the currentDataSegment is to be set.
procedure.setSegmentCode(currentSegmentCode); // When a procedure is defined, the currentSegmentCode is to be set.
if(procedure.getBankLocation() == null && currentBank != null) {
procedure.setBankLocation(currentBank); // When a procedure is defined, the currentBank is to be set, or far calls won't work.
if(procedure.getBank() == null && currentBank != null) {
procedure.setBank(currentBank); // When a procedure is defined, the currentBank is to be set, or far calls won't work.
}
// Add return variable
if(!SymbolType.VOID.equals(procedure.getReturnType())) {
@ -1209,9 +1191,9 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
if(directive instanceof Directive.Inline) {
procedure.setDeclaredInline(true);
procedure.setCallingConvention(Procedure.CallingConvention.PHI_CALL);
} else if(directive instanceof Directive.Bank) {
Bank bank = new Bank(((Directive.Bank) directive).getBankArea(), ((Directive.Bank) directive).getBank());
procedure.setBankLocation(bank);
} else if(directive instanceof Directive.Bank directiveBank) {
Bank bank = new Bank(directiveBank.getBankArea(), directiveBank.getBankNumber());
procedure.setBank(bank);
} else if(directive instanceof Directive.CallingConvention) {
procedure.setCallingConvention(((Directive.CallingConvention) directive).callingConvention);
} else if(directive instanceof Directive.Interrupt) {
@ -1257,11 +1239,9 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
@Override
public Object visitDirectiveBank(KickCParser.DirectiveBankContext ctx) {
String bankArea = ctx.getChild(2).getText();
Long bank = Long.valueOf(ctx.getChild(4).getText());
return new Directive.Bank(bankArea, bank);
String bankArea = ctx.NAME().getText();
Number bankNumber = NumberParser.parseLiteral(ctx.NUMBER().getText());
return new Directive.Bank(bankArea, bankNumber.longValue());
}
@Override

View File

@ -220,7 +220,6 @@ public class Pass4CodeGeneration {
/**
* Generate a comment that describes the procedure signature and parameter transfer.
* We have added here also the banking information.
*
* @param asm The assembler program being generated
* @param procedure The procedure
@ -241,12 +240,8 @@ public class Pass4CodeGeneration {
if (i > 0) {
asm.addComment(signature.toString(), false);
}
// Banking information of the procedure.
Bank bank = procedure.getBankLocation();
if(bank != null) {
StringBuilder signatureBank = new StringBuilder();
signatureBank.append(" " + bank.toString()); // This procedure is in a bank and in a banking area.
asm.addComment(signatureBank.toString(), false);
if(procedure.getBank() != null) {
asm.addComment(" " + procedure.getBank(), false);
}
}
@ -896,6 +891,7 @@ public class Pass4CodeGeneration {
}
} else if (Procedure.CallingConvention.PHI_CALL.equals(toProcedure.getCallingConvention())) {
// Generate PHI transition
boolean generatedPhis = false;
if (genCallPhiEntry) {
ControlFlowBlock callSuccessor = getGraph().getCallSuccessor(block);
if (callSuccessor != null && callSuccessor.hasPhiBlock()) {
@ -904,17 +900,21 @@ public class Pass4CodeGeneration {
throw new InternalError("Error! JSR transition already generated. Must modify PhiTransitions code to ensure this does not happen.");
}
genBlockPhiTransition(asm, block, callSuccessor, block.getScope());
generatedPhis = true;
}
}
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked(new Procedure.CallingDistance(fromProcedure, toProcedure),"phi", call.getProcedure().getFullName(), program), program);
} else if (Procedure.CallingConvention.STACK_CALL.equals(toProcedure.getCallingConvention())) {
Boolean toIsBanked = toProcedure.isDeclaredBanked();
Long fromBank = fromProcedure.getBank();
Long toBank = toProcedure.getBank();
if(toIsBanked && fromBank != toBank) {
throw new CompileError("Stack Call procedure not supported in banked mode " + toProcedure.toString(program));
} else {
final Procedure.CallingDistance callingDistance = new Procedure.CallingDistance(fromProcedure, toProcedure);
if(Procedure.CallingProximity.NEAR.equals(callingDistance.getProximity())) {
asm.addInstruction("jsr", CpuAddressingMode.ABS, call.getProcedure().getFullName(), false);
} else {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked(callingDistance,"phi", call.getProcedure().getFullName(), program), program);
}
} else if (Procedure.CallingConvention.STACK_CALL.equals(toProcedure.getCallingConvention())) {
final Procedure.CallingDistance callingDistance = new Procedure.CallingDistance(fromProcedure, toProcedure);
if(Procedure.CallingProximity.NEAR.equals(callingDistance.getProximity())) {
asm.addInstruction("jsr", CpuAddressingMode.ABS, call.getProcedure().getFullName(), false);
} else {
throw new CompileError("Stack Call procedure not supported in banked mode " + toProcedure.toString(program));
}
}
} else if (statement instanceof StatementCallExecute) {
@ -923,14 +923,14 @@ public class Pass4CodeGeneration {
if(procedureRef != null) {
ProgramScope scope = getScope();
Procedure toProcedure = scope.getProcedure(procedureRef);
Procedure fromProcedure = block.getProcedure(this.program); // We obtain from where the procedure is called, to validate the bank equality.
RValue procedureRVal = call.getProcedureRVal();
// Same as PHI
if (toProcedure.isDeclaredBanked() && fromProcedure.getBank() != toProcedure.getBank()) {
throw new CompileError("Stack Call procedure not supported in banked mode " + toProcedure.toString(program));
} else {
Procedure fromProcedure = block.getProcedure(this.program);
final Procedure.CallingDistance callingDistance = new Procedure.CallingDistance(fromProcedure, toProcedure);
if(Procedure.CallingProximity.NEAR.equals(callingDistance.getProximity())) {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.call(call, indirectCallCount++, program), program);
} else {
throw new CompileError("Stack Call procedure not supported in banked mode " + toProcedure.toString(program));
}
RValue procedureRVal = call.getProcedureRVal();
if (!(procedureRVal instanceof ProcedureRef)) {
asm.getCurrentChunk().setClobberOverwrite(CpuClobber.CLOBBER_ALL);
}

View File

@ -152,7 +152,7 @@ __start: {
// __start::@1
__b1:
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -241,7 +241,7 @@ __start: {
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [4] return

View File

@ -152,7 +152,7 @@ __start: {
// __start::@1
__b1:
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -241,7 +241,7 @@ __start: {
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [4] return

View File

@ -181,7 +181,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -194,7 +194,7 @@ main: {
// [5] print::ch = 'c' -- vbuz1=vbuc1
lda #'c'
sta.z print.ch
// [6] call print -- call_phi_near
// [6] call print
jsr print
jmp __b1
// main::@1
@ -202,7 +202,7 @@ main: {
// [7] print::ch = 'm' -- vbuz1=vbuc1
lda #'m'
sta.z print.ch
// [8] call print -- call_phi_near
// [8] call print
jsr print
jmp __b2
// main::@2
@ -210,7 +210,7 @@ main: {
// [9] print::ch = 'l' -- vbuz1=vbuc1
lda #'l'
sta.z print.ch
// [10] call print -- call_phi_near
// [10] call print
jsr print
jmp __breturn
// main::@return
@ -295,7 +295,7 @@ __start: {
sta.z idx
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return
@ -307,21 +307,21 @@ main: {
// [5] print::ch = 'c' -- vbuz1=vbuc1
lda #'c'
sta.z print.ch
// [6] call print -- call_phi_near
// [6] call print
jsr print
// main::@1
// print('m')
// [7] print::ch = 'm' -- vbuz1=vbuc1
lda #'m'
sta.z print.ch
// [8] call print -- call_phi_near
// [8] call print
jsr print
// main::@2
// print('l')
// [9] print::ch = 'l' -- vbuz1=vbuc1
lda #'l'
sta.z print.ch
// [10] call print -- call_phi_near
// [10] call print
jsr print
// main::@return
// }

View File

@ -181,7 +181,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -194,7 +194,7 @@ main: {
// [5] print::ch = 'c' -- vbuz1=vbuc1
lda #'c'
sta.z print.ch
// [6] call print -- call_phi_near
// [6] call print
jsr print
jmp __b1
// main::@1
@ -202,7 +202,7 @@ main: {
// [7] print::ch = 'm' -- vbuz1=vbuc1
lda #'m'
sta.z print.ch
// [8] call print -- call_phi_near
// [8] call print
jsr print
jmp __b2
// main::@2
@ -210,7 +210,7 @@ main: {
// [9] print::ch = 'l' -- vbuz1=vbuc1
lda #'l'
sta.z print.ch
// [10] call print -- call_phi_near
// [10] call print
jsr print
jmp __breturn
// main::@return
@ -295,7 +295,7 @@ __start: {
sta idx
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return
@ -307,21 +307,21 @@ main: {
// [5] print::ch = 'c' -- vbuz1=vbuc1
lda #'c'
sta.z print.ch
// [6] call print -- call_phi_near
// [6] call print
jsr print
// main::@1
// print('m')
// [7] print::ch = 'm' -- vbuz1=vbuc1
lda #'m'
sta.z print.ch
// [8] call print -- call_phi_near
// [8] call print
jsr print
// main::@2
// print('l')
// [9] print::ch = 'l' -- vbuz1=vbuc1
lda #'l'
sta.z print.ch
// [10] call print -- call_phi_near
// [10] call print
jsr print
// main::@return
// }

View File

@ -259,7 +259,7 @@ main: {
sta.z setByte.ptr
lda #>b1
sta.z setByte.ptr+1
// [12] phi setByte::b#3 = 'c' [phi:main->setByte#1] -- call_phi_near
// [12] phi setByte::b#3 = 'c' [phi:main->setByte#1] -- vbuxx=vbuc1
ldx #'c'
jsr setByte
// [4] phi from main to main::@1 [phi:main->main::@1]
@ -275,7 +275,7 @@ main: {
sta.z setByte.ptr
lda #>b2
sta.z setByte.ptr+1
// [12] phi setByte::b#3 = 'm' [phi:main::@1->setByte#1] -- call_phi_near
// [12] phi setByte::b#3 = 'm' [phi:main::@1->setByte#1] -- vbuxx=vbuc1
ldx #'m'
jsr setByte
// [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -291,7 +291,7 @@ main: {
sta.z setByte.ptr
lda #>b3
sta.z setByte.ptr+1
// [12] phi setByte::b#3 = 'l' [phi:main::@2->setByte#1] -- call_phi_near
// [12] phi setByte::b#3 = 'l' [phi:main::@2->setByte#1] -- vbuxx=vbuc1
ldx #'l'
jsr setByte
jmp __b3
@ -410,7 +410,7 @@ main: {
sta.z setByte.ptr
lda #>b1
sta.z setByte.ptr+1
// [12] phi setByte::b#3 = 'c' [phi:main->setByte#1] -- call_phi_near
// [12] phi setByte::b#3 = 'c' [phi:main->setByte#1] -- vbuxx=vbuc1
ldx #'c'
jsr setByte
// [4] phi from main to main::@1 [phi:main->main::@1]
@ -423,7 +423,7 @@ main: {
sta.z setByte.ptr
lda #>b2
sta.z setByte.ptr+1
// [12] phi setByte::b#3 = 'm' [phi:main::@1->setByte#1] -- call_phi_near
// [12] phi setByte::b#3 = 'm' [phi:main::@1->setByte#1] -- vbuxx=vbuc1
ldx #'m'
jsr setByte
// [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -436,7 +436,7 @@ main: {
sta.z setByte.ptr
lda #>b3
sta.z setByte.ptr+1
// [12] phi setByte::b#3 = 'l' [phi:main::@2->setByte#1] -- call_phi_near
// [12] phi setByte::b#3 = 'l' [phi:main::@2->setByte#1] -- vbuxx=vbuc1
ldx #'l'
jsr setByte
// main::@3

View File

@ -367,7 +367,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -417,7 +417,7 @@ main: {
// [15] *(main::SCREEN2+3) = *main::ptr -- _deref_pbuc1=_deref_pbuc2
lda.z ptr
sta SCREEN2+3
// [16] call setv -- call_phi_near
// [16] call setv
// Set value directly in a call
jsr setv
jmp __b1
@ -429,7 +429,7 @@ main: {
// [18] *(main::SCREEN2+4) = *main::ptr -- _deref_pbuc1=_deref_pbuc2
lda.z ptr
sta SCREEN2+4
// [19] call setp -- call_phi_near
// [19] call setp
// Set value through pointer in a call
jsr setp
jmp __b2
@ -545,7 +545,7 @@ __start: {
sta.z val
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return
@ -603,7 +603,7 @@ main: {
lda.z ptr
sta SCREEN2+3
// setv(4)
// [16] call setv -- call_phi_near
// [16] call setv
// Set value directly in a call
jsr setv
// main::@1
@ -616,7 +616,7 @@ main: {
lda.z ptr
sta SCREEN2+4
// setp(ptr, 5)
// [19] call setp -- call_phi_near
// [19] call setp
// Set value through pointer in a call
jsr setp
// main::@2

View File

@ -332,7 +332,7 @@ main: {
sta.z print.p
lda #>VALS
sta.z print.p+1
// [11] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
// [11] phi idx#13 = 0 [phi:main->print#1] -- vbuz1=vbuc1
lda #0
sta.z idx
jsr print
@ -349,7 +349,7 @@ main: {
sta.z print.p
lda #>VALS+1*SIZEOF_INT
sta.z print.p+1
// [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
// [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- register_copy
jsr print
// [4] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
__b1_from___b2:
@ -377,7 +377,7 @@ main: {
// [11] phi from main::@1 to print [phi:main::@1->print]
print_from___b1:
// [11] phi print::p#3 = print::p#2 [phi:main::@1->print#0] -- register_copy
// [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
// [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- register_copy
jsr print
jmp __b3
// main::@3
@ -499,7 +499,7 @@ main: {
sta.z print.p
lda #>VALS
sta.z print.p+1
// [11] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
// [11] phi idx#13 = 0 [phi:main->print#1] -- vbuz1=vbuc1
lda #0
sta.z idx
jsr print
@ -513,7 +513,7 @@ main: {
sta.z print.p
lda #>VALS+1*SIZEOF_INT
sta.z print.p+1
// [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
// [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- register_copy
jsr print
// [4] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
// [4] phi main::i#2 = 2 [phi:main::@2->main::@1#0] -- vbuz1=vbuc1
@ -538,7 +538,7 @@ main: {
// [7] call print
// [11] phi from main::@1 to print [phi:main::@1->print]
// [11] phi print::p#3 = print::p#2 [phi:main::@1->print#0] -- register_copy
// [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
// [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- register_copy
jsr print
// main::@3
// for(char i:2..3)

View File

@ -313,7 +313,7 @@ main: {
sta.z getValue.index
lda #0
sta.z getValue.index+1
// [3] call getValue -- call_phi_near
// [3] call getValue
jsr getValue
// [4] getValue::return#0 = getValue::return#1
jmp __b2
@ -451,7 +451,7 @@ main: {
sta.z getValue.index
lda #0
sta.z getValue.index+1
// [3] call getValue -- call_phi_near
// [3] call getValue
jsr getValue
// [4] getValue::return#0 = getValue::return#1
// main::@2

View File

@ -135,7 +135,7 @@ main: {
// [0] *lda = main::jmp -- _deref_pbuc1=vbuc2
lda #jmp
sta lda
// [1] call bne -- call_phi_near
// [1] call bne
jsr bne
jmp __b1
// main::@1
@ -215,7 +215,7 @@ main: {
lda #jmp
sta lda
// bne(jmp)
// [1] call bne -- call_phi_near
// [1] call bne
jsr bne
// main::@1
// asm

View File

@ -726,7 +726,7 @@ main: {
test_from_main:
// [23] phi test::i#11 = 0 [phi:main->test#0] -- vbuxx=vbuc1
ldx #0
// [23] phi test::a#11 = 3 [phi:main->test#1] -- call_phi_near
// [23] phi test::a#11 = 3 [phi:main->test#1] -- vbuz1=vbuc1
lda #3
sta.z test.a
jsr test
@ -741,7 +741,7 @@ main: {
test_from___b1:
// [23] phi test::i#11 = 1 [phi:main::@1->test#0] -- vbuxx=vbuc1
ldx #1
// [23] phi test::a#11 = 3+1 [phi:main::@1->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1 [phi:main::@1->test#1] -- vbuz1=vbuc1
lda #3+1
sta.z test.a
jsr test
@ -756,7 +756,7 @@ main: {
test_from___b2:
// [23] phi test::i#11 = 2 [phi:main::@2->test#0] -- vbuxx=vbuc1
ldx #2
// [23] phi test::a#11 = 3+1-1 [phi:main::@2->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1 [phi:main::@2->test#1] -- vbuz1=vbuc1
lda #3+1-1
sta.z test.a
jsr test
@ -771,7 +771,7 @@ main: {
test_from___b3:
// [23] phi test::i#11 = 3 [phi:main::@3->test#0] -- vbuxx=vbuc1
ldx #3
// [23] phi test::a#11 = 3+1-1*6 [phi:main::@3->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6 [phi:main::@3->test#1] -- vbuz1=vbuc1
lda #(3+1-1)*6
sta.z test.a
jsr test
@ -786,7 +786,7 @@ main: {
test_from___b4:
// [23] phi test::i#11 = 4 [phi:main::@4->test#0] -- vbuxx=vbuc1
ldx #4
// [23] phi test::a#11 = 3+1-1*6/2 [phi:main::@4->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2 [phi:main::@4->test#1] -- vbuz1=vbuc1
lda #(3+1-1)*6/2
sta.z test.a
jsr test
@ -801,7 +801,7 @@ main: {
test_from___b5:
// [23] phi test::i#11 = 5 [phi:main::@5->test#0] -- vbuxx=vbuc1
ldx #5
// [23] phi test::a#11 = 3+1-1*6/2&2-1 [phi:main::@5->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1 [phi:main::@5->test#1] -- vbuz1=vbuc1
lda #(3+1-1)*6/2&2-1
sta.z test.a
jsr test
@ -816,7 +816,7 @@ main: {
test_from___b6:
// [23] phi test::i#11 = 6 [phi:main::@6->test#0] -- vbuxx=vbuc1
ldx #6
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2 [phi:main::@6->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2 [phi:main::@6->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2
sta.z test.a
jsr test
@ -831,7 +831,7 @@ main: {
test_from___b7:
// [23] phi test::i#11 = 7 [phi:main::@7->test#0] -- vbuxx=vbuc1
ldx #7
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1 [phi:main::@7->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1 [phi:main::@7->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2>>1
sta.z test.a
jsr test
@ -846,7 +846,7 @@ main: {
test_from___b8:
// [23] phi test::i#11 = 8 [phi:main::@8->test#0] -- vbuxx=vbuc1
ldx #8
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6 [phi:main::@8->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6 [phi:main::@8->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2>>1^6
sta.z test.a
jsr test
@ -861,7 +861,7 @@ main: {
test_from___b9:
// [23] phi test::i#11 = 9 [phi:main::@9->test#0] -- vbuxx=vbuc1
ldx #9
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1 [phi:main::@9->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1 [phi:main::@9->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2>>1^6|1
sta.z test.a
jsr test
@ -876,7 +876,7 @@ main: {
test_from___b10:
// [23] phi test::i#11 = $a [phi:main::@10->test#0] -- vbuxx=vbuc1
ldx #$a
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1&1 [phi:main::@10->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1&1 [phi:main::@10->test#1] -- vbuz1=vbuc1
lda #(((3+1-1)*6/2&2-1)<<2>>1^6|1)&1
sta.z test.a
jsr test
@ -1027,7 +1027,7 @@ main: {
// [23] phi from main to test [phi:main->test]
// [23] phi test::i#11 = 0 [phi:main->test#0] -- vbuxx=vbuc1
ldx #0
// [23] phi test::a#11 = 3 [phi:main->test#1] -- call_phi_near
// [23] phi test::a#11 = 3 [phi:main->test#1] -- vbuz1=vbuc1
lda #3
sta.z test.a
jsr test
@ -1039,7 +1039,7 @@ main: {
// [23] phi from main::@1 to test [phi:main::@1->test]
// [23] phi test::i#11 = 1 [phi:main::@1->test#0] -- vbuxx=vbuc1
ldx #1
// [23] phi test::a#11 = 3+1 [phi:main::@1->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1 [phi:main::@1->test#1] -- vbuz1=vbuc1
lda #3+1
sta.z test.a
jsr test
@ -1051,7 +1051,7 @@ main: {
// [23] phi from main::@2 to test [phi:main::@2->test]
// [23] phi test::i#11 = 2 [phi:main::@2->test#0] -- vbuxx=vbuc1
ldx #2
// [23] phi test::a#11 = 3+1-1 [phi:main::@2->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1 [phi:main::@2->test#1] -- vbuz1=vbuc1
lda #3+1-1
sta.z test.a
jsr test
@ -1063,7 +1063,7 @@ main: {
// [23] phi from main::@3 to test [phi:main::@3->test]
// [23] phi test::i#11 = 3 [phi:main::@3->test#0] -- vbuxx=vbuc1
ldx #3
// [23] phi test::a#11 = 3+1-1*6 [phi:main::@3->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6 [phi:main::@3->test#1] -- vbuz1=vbuc1
lda #(3+1-1)*6
sta.z test.a
jsr test
@ -1075,7 +1075,7 @@ main: {
// [23] phi from main::@4 to test [phi:main::@4->test]
// [23] phi test::i#11 = 4 [phi:main::@4->test#0] -- vbuxx=vbuc1
ldx #4
// [23] phi test::a#11 = 3+1-1*6/2 [phi:main::@4->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2 [phi:main::@4->test#1] -- vbuz1=vbuc1
lda #(3+1-1)*6/2
sta.z test.a
jsr test
@ -1087,7 +1087,7 @@ main: {
// [23] phi from main::@5 to test [phi:main::@5->test]
// [23] phi test::i#11 = 5 [phi:main::@5->test#0] -- vbuxx=vbuc1
ldx #5
// [23] phi test::a#11 = 3+1-1*6/2&2-1 [phi:main::@5->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1 [phi:main::@5->test#1] -- vbuz1=vbuc1
lda #(3+1-1)*6/2&2-1
sta.z test.a
jsr test
@ -1099,7 +1099,7 @@ main: {
// [23] phi from main::@6 to test [phi:main::@6->test]
// [23] phi test::i#11 = 6 [phi:main::@6->test#0] -- vbuxx=vbuc1
ldx #6
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2 [phi:main::@6->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2 [phi:main::@6->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2
sta.z test.a
jsr test
@ -1111,7 +1111,7 @@ main: {
// [23] phi from main::@7 to test [phi:main::@7->test]
// [23] phi test::i#11 = 7 [phi:main::@7->test#0] -- vbuxx=vbuc1
ldx #7
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1 [phi:main::@7->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1 [phi:main::@7->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2>>1
sta.z test.a
jsr test
@ -1123,7 +1123,7 @@ main: {
// [23] phi from main::@8 to test [phi:main::@8->test]
// [23] phi test::i#11 = 8 [phi:main::@8->test#0] -- vbuxx=vbuc1
ldx #8
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6 [phi:main::@8->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6 [phi:main::@8->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2>>1^6
sta.z test.a
jsr test
@ -1135,7 +1135,7 @@ main: {
// [23] phi from main::@9 to test [phi:main::@9->test]
// [23] phi test::i#11 = 9 [phi:main::@9->test#0] -- vbuxx=vbuc1
ldx #9
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1 [phi:main::@9->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1 [phi:main::@9->test#1] -- vbuz1=vbuc1
lda #((3+1-1)*6/2&2-1)<<2>>1^6|1
sta.z test.a
jsr test
@ -1147,7 +1147,7 @@ main: {
// [23] phi from main::@10 to test [phi:main::@10->test]
// [23] phi test::i#11 = $a [phi:main::@10->test#0] -- vbuxx=vbuc1
ldx #$a
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1&1 [phi:main::@10->test#1] -- call_phi_near
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1&1 [phi:main::@10->test#1] -- vbuz1=vbuc1
lda #(((3+1-1)*6/2&2-1)<<2>>1^6|1)&1
sta.z test.a
jsr test

View File

@ -903,7 +903,7 @@ __start: {
// __start::@1
__b1:
// [4] call main
// [6] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [6] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -940,7 +940,7 @@ main: {
// main::@3
__b3:
// [10] call md5
// [14] phi from main::@3 to md5 [phi:main::@3->md5] -- call_phi_near
// [14] phi from main::@3 to md5 [phi:main::@3->md5]
md5_from___b3:
jsr md5
// [11] phi from main::@3 main::@4 to main::@4 [phi:main::@3/main::@4->main::@4]
@ -1012,7 +1012,7 @@ md5: {
// [36] phi print::c#2 = print::c#0 [phi:md5::@2->print#0] -- register_copy
// [36] phi print::b#2 = print::b#0 [phi:md5::@2->print#1] -- register_copy
// [36] phi print::a#2 = print::a#0 [phi:md5::@2->print#2] -- register_copy
// [36] phi print::print321_l#0 = print::i#0 [phi:md5::@2->print#3] -- call_phi_near
// [36] phi print::print321_l#0 = print::i#0 [phi:md5::@2->print#3] -- register_copy
jsr print
jmp __b5
// md5::@5
@ -1049,7 +1049,7 @@ md5: {
// [36] phi print::c#2 = print::c#1 [phi:md5::@3->print#0] -- register_copy
// [36] phi print::b#2 = print::b#1 [phi:md5::@3->print#1] -- register_copy
// [36] phi print::a#2 = print::a#1 [phi:md5::@3->print#2] -- register_copy
// [36] phi print::print321_l#0 = print::i#1 [phi:md5::@3->print#3] -- call_phi_near
// [36] phi print::print321_l#0 = print::i#1 [phi:md5::@3->print#3] -- register_copy
jsr print
jmp __b6
// md5::@6
@ -1400,7 +1400,7 @@ __start: {
// [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [4] call main
// [6] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [6] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [5] return
@ -1431,7 +1431,7 @@ main: {
// main::@3
// md5()
// [10] call md5
// [14] phi from main::@3 to md5 [phi:main::@3->md5] -- call_phi_near
// [14] phi from main::@3 to md5 [phi:main::@3->md5]
jsr md5
// [11] phi from main::@3 main::@4 to main::@4 [phi:main::@3/main::@4->main::@4]
// main::@4
@ -1498,7 +1498,7 @@ md5: {
// [36] phi print::c#2 = print::c#0 [phi:md5::@2->print#0] -- register_copy
// [36] phi print::b#2 = print::b#0 [phi:md5::@2->print#1] -- register_copy
// [36] phi print::a#2 = print::a#0 [phi:md5::@2->print#2] -- register_copy
// [36] phi print::print321_l#0 = print::i#0 [phi:md5::@2->print#3] -- call_phi_near
// [36] phi print::print321_l#0 = print::i#0 [phi:md5::@2->print#3] -- register_copy
jsr print
// md5::@5
// i&1
@ -1530,7 +1530,7 @@ md5: {
// [36] phi print::c#2 = print::c#1 [phi:md5::@3->print#0] -- register_copy
// [36] phi print::b#2 = print::b#1 [phi:md5::@3->print#1] -- register_copy
// [36] phi print::a#2 = print::a#1 [phi:md5::@3->print#2] -- register_copy
// [36] phi print::print321_l#0 = print::i#1 [phi:md5::@3->print#3] -- call_phi_near
// [36] phi print::print321_l#0 = print::i#1 [phi:md5::@3->print#3] -- register_copy
jsr print
// md5::@6
// for(char i = 0; i<4; i++)

View File

@ -1318,7 +1318,7 @@ main: {
sta.z fill.size
lda #>$28*$19*8
sta.z fill.size+1
// [13] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
// [13] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- pbuz1=pbuc1
lda #<BITMAP
sta.z fill.addr
lda #>BITMAP
@ -1339,7 +1339,7 @@ main: {
sta.z fill.size
lda #>$28*$19
sta.z fill.size+1
// [13] phi fill::addr#0 = SCREEN [phi:main::@4->fill#2] -- call_phi_near
// [13] phi fill::addr#0 = SCREEN [phi:main::@4->fill#2] -- pbuz1=pbuc1
lda #<SCREEN
sta.z fill.addr
lda #>SCREEN
@ -1390,7 +1390,7 @@ main: {
sta.z circle.r
lda.z i+1
sta.z circle.r+1
// [11] call circle -- call_phi_near
// [11] call circle
jsr circle
jmp __b6
// main::@6
@ -1584,7 +1584,7 @@ circle: {
// [60] phi from circle::@4 to plot [phi:circle::@4->plot]
plot_from___b4:
// [60] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- register_copy
jsr plot
jmp __b6
// circle::@6
@ -1609,7 +1609,7 @@ circle: {
// [60] phi from circle::@6 to plot [phi:circle::@6->plot]
plot_from___b6:
// [60] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- register_copy
jsr plot
jmp __b7
// circle::@7
@ -1634,7 +1634,7 @@ circle: {
// [60] phi from circle::@7 to plot [phi:circle::@7->plot]
plot_from___b7:
// [60] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- register_copy
jsr plot
jmp __b8
// circle::@8
@ -1659,7 +1659,7 @@ circle: {
// [60] phi from circle::@8 to plot [phi:circle::@8->plot]
plot_from___b8:
// [60] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- register_copy
jsr plot
jmp __b9
// circle::@9
@ -1684,7 +1684,7 @@ circle: {
// [60] phi from circle::@9 to plot [phi:circle::@9->plot]
plot_from___b9:
// [60] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- register_copy
jsr plot
jmp __b10
// circle::@10
@ -1709,7 +1709,7 @@ circle: {
// [60] phi from circle::@10 to plot [phi:circle::@10->plot]
plot_from___b10:
// [60] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- register_copy
jsr plot
jmp __b11
// circle::@11
@ -1734,7 +1734,7 @@ circle: {
// [60] phi from circle::@11 to plot [phi:circle::@11->plot]
plot_from___b11:
// [60] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- register_copy
jsr plot
jmp __b12
// circle::@12
@ -1759,7 +1759,7 @@ circle: {
// [60] phi from circle::@12 to plot [phi:circle::@12->plot]
plot_from___b12:
// [60] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- register_copy
jsr plot
jmp __b13
// circle::@13
@ -2189,7 +2189,7 @@ main: {
sta.z fill.size
lda #>$28*$19*8
sta.z fill.size+1
// [13] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
// [13] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- pbuz1=pbuc1
lda #<BITMAP
sta.z fill.addr
lda #>BITMAP
@ -2207,7 +2207,7 @@ main: {
sta.z fill.size
lda #>$28*$19
sta.z fill.size+1
// [13] phi fill::addr#0 = SCREEN [phi:main::@4->fill#2] -- call_phi_near
// [13] phi fill::addr#0 = SCREEN [phi:main::@4->fill#2] -- pbuz1=pbuc1
lda #<SCREEN
sta.z fill.addr
lda #>SCREEN
@ -2256,7 +2256,7 @@ main: {
sta.z circle.r
lda.z i+1
sta.z circle.r+1
// [11] call circle -- call_phi_near
// [11] call circle
jsr circle
// main::@6
// i += 5
@ -2450,7 +2450,7 @@ circle: {
// [34] call plot
// [60] phi from circle::@4 to plot [phi:circle::@4->plot]
// [60] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- register_copy
jsr plot
// circle::@6
// plot(xc-x,yc-y)
@ -2473,7 +2473,7 @@ circle: {
// [37] call plot
// [60] phi from circle::@6 to plot [phi:circle::@6->plot]
// [60] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- register_copy
jsr plot
// circle::@7
// plot(xc+x,yc+y)
@ -2496,7 +2496,7 @@ circle: {
// [40] call plot
// [60] phi from circle::@7 to plot [phi:circle::@7->plot]
// [60] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- register_copy
jsr plot
// circle::@8
// plot(xc-x,yc+y)
@ -2519,7 +2519,7 @@ circle: {
// [43] call plot
// [60] phi from circle::@8 to plot [phi:circle::@8->plot]
// [60] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- register_copy
jsr plot
// circle::@9
// plot(xc+y,yc-x)
@ -2542,7 +2542,7 @@ circle: {
// [46] call plot
// [60] phi from circle::@9 to plot [phi:circle::@9->plot]
// [60] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- register_copy
jsr plot
// circle::@10
// plot(xc-y,yc-x)
@ -2565,7 +2565,7 @@ circle: {
// [49] call plot
// [60] phi from circle::@10 to plot [phi:circle::@10->plot]
// [60] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- register_copy
jsr plot
// circle::@11
// plot(xc+y,yc+x)
@ -2588,7 +2588,7 @@ circle: {
// [52] call plot
// [60] phi from circle::@11 to plot [phi:circle::@11->plot]
// [60] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- register_copy
jsr plot
// circle::@12
// plot(xc-y,yc+x)
@ -2611,7 +2611,7 @@ circle: {
// [55] call plot
// [60] phi from circle::@12 to plot [phi:circle::@12->plot]
// [60] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy
// [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
// [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- register_copy
jsr plot
// circle::@13
// for(int x = 0; x <= y; x ++)

View File

@ -1192,7 +1192,7 @@ main: {
sta.z fill.size
lda #>$28*$19*8
sta.z fill.size+1
// [9] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
// [9] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- pbuz1=pbuc1
lda #<BITMAP
sta.z fill.addr
lda #>BITMAP
@ -1213,7 +1213,7 @@ main: {
sta.z fill.size
lda #>$28*$19
sta.z fill.size+1
// [9] phi fill::addr#0 = SCREEN [phi:main::@2->fill#2] -- call_phi_near
// [9] phi fill::addr#0 = SCREEN [phi:main::@2->fill#2] -- pbuz1=pbuc1
lda #<SCREEN
sta.z fill.addr
lda #>SCREEN
@ -1232,7 +1232,7 @@ main: {
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
sta VICII_MEMORY
// [7] call circle
// [16] phi from main::@3 to circle [phi:main::@3->circle] -- call_phi_near
// [16] phi from main::@3 to circle [phi:main::@3->circle]
circle_from___b3:
jsr circle
// [8] phi from main::@1 main::@3 to main::@1 [phi:main::@1/main::@3->main::@1]
@ -1411,7 +1411,7 @@ circle: {
// [55] phi from circle::@4 to plot [phi:circle::@4->plot]
plot_from___b4:
// [55] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- register_copy
jsr plot
jmp __b6
// circle::@6
@ -1436,7 +1436,7 @@ circle: {
// [55] phi from circle::@6 to plot [phi:circle::@6->plot]
plot_from___b6:
// [55] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- register_copy
jsr plot
jmp __b7
// circle::@7
@ -1461,7 +1461,7 @@ circle: {
// [55] phi from circle::@7 to plot [phi:circle::@7->plot]
plot_from___b7:
// [55] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- register_copy
jsr plot
jmp __b8
// circle::@8
@ -1486,7 +1486,7 @@ circle: {
// [55] phi from circle::@8 to plot [phi:circle::@8->plot]
plot_from___b8:
// [55] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- register_copy
jsr plot
jmp __b9
// circle::@9
@ -1511,7 +1511,7 @@ circle: {
// [55] phi from circle::@9 to plot [phi:circle::@9->plot]
plot_from___b9:
// [55] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- register_copy
jsr plot
jmp __b10
// circle::@10
@ -1536,7 +1536,7 @@ circle: {
// [55] phi from circle::@10 to plot [phi:circle::@10->plot]
plot_from___b10:
// [55] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- register_copy
jsr plot
jmp __b11
// circle::@11
@ -1561,7 +1561,7 @@ circle: {
// [55] phi from circle::@11 to plot [phi:circle::@11->plot]
plot_from___b11:
// [55] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- register_copy
jsr plot
jmp __b12
// circle::@12
@ -1586,7 +1586,7 @@ circle: {
// [55] phi from circle::@12 to plot [phi:circle::@12->plot]
plot_from___b12:
// [55] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- register_copy
jsr plot
jmp __b13
// circle::@13
@ -1955,7 +1955,7 @@ main: {
sta.z fill.size
lda #>$28*$19*8
sta.z fill.size+1
// [9] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
// [9] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- pbuz1=pbuc1
lda #<BITMAP
sta.z fill.addr
lda #>BITMAP
@ -1973,7 +1973,7 @@ main: {
sta.z fill.size
lda #>$28*$19
sta.z fill.size+1
// [9] phi fill::addr#0 = SCREEN [phi:main::@2->fill#2] -- call_phi_near
// [9] phi fill::addr#0 = SCREEN [phi:main::@2->fill#2] -- pbuz1=pbuc1
lda #<SCREEN
sta.z fill.addr
lda #>SCREEN
@ -1994,7 +1994,7 @@ main: {
sta VICII_MEMORY
// circle(100,100,50)
// [7] call circle
// [16] phi from main::@3 to circle [phi:main::@3->circle] -- call_phi_near
// [16] phi from main::@3 to circle [phi:main::@3->circle]
jsr circle
// [8] phi from main::@1 main::@3 to main::@1 [phi:main::@1/main::@3->main::@1]
// main::@1
@ -2169,7 +2169,7 @@ circle: {
// [29] call plot
// [55] phi from circle::@4 to plot [phi:circle::@4->plot]
// [55] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- register_copy
jsr plot
// circle::@6
// plot(xc-x,yc-y)
@ -2192,7 +2192,7 @@ circle: {
// [32] call plot
// [55] phi from circle::@6 to plot [phi:circle::@6->plot]
// [55] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- register_copy
jsr plot
// circle::@7
// plot(xc+x,yc+y)
@ -2215,7 +2215,7 @@ circle: {
// [35] call plot
// [55] phi from circle::@7 to plot [phi:circle::@7->plot]
// [55] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- register_copy
jsr plot
// circle::@8
// plot(xc-x,yc+y)
@ -2238,7 +2238,7 @@ circle: {
// [38] call plot
// [55] phi from circle::@8 to plot [phi:circle::@8->plot]
// [55] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- register_copy
jsr plot
// circle::@9
// plot(xc+y,yc-x)
@ -2261,7 +2261,7 @@ circle: {
// [41] call plot
// [55] phi from circle::@9 to plot [phi:circle::@9->plot]
// [55] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- register_copy
jsr plot
// circle::@10
// plot(xc-y,yc-x)
@ -2284,7 +2284,7 @@ circle: {
// [44] call plot
// [55] phi from circle::@10 to plot [phi:circle::@10->plot]
// [55] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- register_copy
jsr plot
// circle::@11
// plot(xc+y,yc+x)
@ -2307,7 +2307,7 @@ circle: {
// [47] call plot
// [55] phi from circle::@11 to plot [phi:circle::@11->plot]
// [55] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- register_copy
jsr plot
// circle::@12
// plot(xc-y,yc+x)
@ -2330,7 +2330,7 @@ circle: {
// [50] call plot
// [55] phi from circle::@12 to plot [phi:circle::@12->plot]
// [55] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy
// [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
// [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- register_copy
jsr plot
// circle::@13
// for(int x = 0; x <= y; x ++)

View File

@ -2327,7 +2327,7 @@ main: {
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
sta VICII_MEMORY
// [4] call bitmap_init
// [13] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [13] phi from main to bitmap_init [phi:main->bitmap_init]
bitmap_init_from_main:
jsr bitmap_init
// [5] phi from main to main::@2 [phi:main->main::@2]
@ -2336,7 +2336,7 @@ main: {
// main::@2
__b2:
// [6] call bitmap_clear
// [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] -- call_phi_near
// [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear]
bitmap_clear_from___b2:
jsr bitmap_clear
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
@ -2345,7 +2345,7 @@ main: {
// main::@3
__b3:
// [8] call init_screen
// [40] phi from main::@3 to init_screen [phi:main::@3->init_screen] -- call_phi_near
// [40] phi from main::@3 to init_screen [phi:main::@3->init_screen]
init_screen_from___b3:
jsr init_screen
// [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
@ -2361,7 +2361,7 @@ main: {
sta.z bitmap_line.x2
lda #0
sta.z bitmap_line.x2+1
// [11] call bitmap_line -- call_phi_near
// [11] call bitmap_line
jsr bitmap_line
jmp __b4
// main::@4
@ -2501,7 +2501,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [94] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [94] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -2522,7 +2522,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [94] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [94] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -2599,7 +2599,7 @@ bitmap_line: {
// [47] call abs_u16
// [103] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
abs_u16_from_bitmap_line:
// [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
// [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
jsr abs_u16
// [48] abs_u16::return#0 = abs_u16::return#4
jmp __b12
@ -2613,7 +2613,7 @@ bitmap_line: {
// [50] call abs_u16
// [103] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
abs_u16_from___b12:
// [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
// [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z abs_u16.w
lda #>y2
@ -2646,7 +2646,7 @@ bitmap_line: {
// [56] call sgn_u16
// [110] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
sgn_u16_from___b1:
// [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
// [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
jsr sgn_u16
// [57] sgn_u16::return#0 = sgn_u16::return#4
jmp __b14
@ -2660,7 +2660,7 @@ bitmap_line: {
// [59] call sgn_u16
// [110] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
sgn_u16_from___b14:
// [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
// [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z sgn_u16.w
lda #>y2
@ -2720,7 +2720,7 @@ bitmap_line: {
// [117] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
bitmap_plot_from___b6:
// [117] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __b16
// bitmap_line::@16
@ -2799,7 +2799,7 @@ bitmap_line: {
// [117] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
bitmap_plot_from___b3:
// [117] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __breturn
// bitmap_line::@return
@ -2845,7 +2845,7 @@ bitmap_line: {
// [117] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
bitmap_plot_from___b9:
// [117] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __b17
// bitmap_line::@17
@ -2923,7 +2923,7 @@ bitmap_line: {
sta.z bitmap_plot.x
lda #>x1
sta.z bitmap_plot.x+1
// [117] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- vbuxx=vbuc1
ldx #0
jsr bitmap_plot
jmp __breturn
@ -3494,19 +3494,19 @@ main: {
sta VICII_MEMORY
// bitmap_init(BITMAP, SCREEN)
// [4] call bitmap_init
// [13] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [13] phi from main to bitmap_init [phi:main->bitmap_init]
jsr bitmap_init
// [5] phi from main to main::@2 [phi:main->main::@2]
// main::@2
// bitmap_clear(BLACK, WHITE)
// [6] call bitmap_clear
// [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] -- call_phi_near
// [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear]
jsr bitmap_clear
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// init_screen()
// [8] call init_screen
// [40] phi from main::@3 to init_screen [phi:main::@3->init_screen] -- call_phi_near
// [40] phi from main::@3 to init_screen [phi:main::@3->init_screen]
jsr init_screen
// [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
// [9] phi next#5 = 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1
@ -3520,7 +3520,7 @@ main: {
sta.z bitmap_line.x2
lda #0
sta.z bitmap_line.x2+1
// [11] call bitmap_line -- call_phi_near
// [11] call bitmap_line
jsr bitmap_line
// main::@4
// next++;
@ -3650,7 +3650,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [94] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [94] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -3668,7 +3668,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [94] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [94] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -3743,7 +3743,7 @@ bitmap_line: {
sta.z abs_u16.w+1
// [47] call abs_u16
// [103] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
// [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
// [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
jsr abs_u16
// unsigned int dx = abs_u16(x2-x1)
// [48] abs_u16::return#0 = abs_u16::return#4
@ -3756,7 +3756,7 @@ bitmap_line: {
// unsigned int dy = abs_u16(y2-y1)
// [50] call abs_u16
// [103] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
// [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
// [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z abs_u16.w
lda #>y2
@ -3788,7 +3788,7 @@ bitmap_line: {
sta.z sgn_u16.w+1
// [56] call sgn_u16
// [110] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
// [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
// [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
jsr sgn_u16
// unsigned int sx = sgn_u16(x2-x1)
// [57] sgn_u16::return#0 = sgn_u16::return#4
@ -3801,7 +3801,7 @@ bitmap_line: {
// unsigned int sy = sgn_u16(y2-y1)
// [59] call sgn_u16
// [110] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
// [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
// [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z sgn_u16.w
lda #>y2
@ -3856,7 +3856,7 @@ bitmap_line: {
// [67] call bitmap_plot
// [117] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
// [117] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@16
// y += sy
@ -3930,7 +3930,7 @@ bitmap_line: {
// [78] call bitmap_plot
// [117] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
// [117] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@return
// }
@ -3972,7 +3972,7 @@ bitmap_line: {
// [84] call bitmap_plot
// [117] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
// [117] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@17
// x += sx
@ -4046,7 +4046,7 @@ bitmap_line: {
sta.z bitmap_plot.x
lda #>x1
sta.z bitmap_plot.x+1
// [117] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
// [117] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- vbuxx=vbuc1
ldx #0
jsr bitmap_plot
rts

View File

@ -2293,7 +2293,7 @@ main: {
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
sta VICII_MEMORY
// [4] call bitmap_init
// [14] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [14] phi from main to bitmap_init [phi:main->bitmap_init]
bitmap_init_from_main:
jsr bitmap_init
// [5] phi from main to main::@3 [phi:main->main::@3]
@ -2302,7 +2302,7 @@ main: {
// main::@3
__b3:
// [6] call bitmap_clear
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear] -- call_phi_near
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear]
bitmap_clear_from___b3:
jsr bitmap_clear
// [7] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
@ -2316,7 +2316,7 @@ main: {
// main::@1
__b1:
// [8] bitmap_line::x2#0 = next#6
// [9] call bitmap_line -- call_phi_near
// [9] call bitmap_line
jsr bitmap_line
jmp __b4
// main::@4
@ -2485,7 +2485,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -2506,7 +2506,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -2542,7 +2542,7 @@ bitmap_line: {
// [42] call abs_u16
// [98] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
abs_u16_from_bitmap_line:
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
jsr abs_u16
// [43] abs_u16::return#0 = abs_u16::return#4
jmp __b12
@ -2556,7 +2556,7 @@ bitmap_line: {
// [45] call abs_u16
// [98] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
abs_u16_from___b12:
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z abs_u16.w
lda #>y2
@ -2589,7 +2589,7 @@ bitmap_line: {
// [51] call sgn_u16
// [105] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
sgn_u16_from___b1:
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
jsr sgn_u16
// [52] sgn_u16::return#0 = sgn_u16::return#4
jmp __b14
@ -2603,7 +2603,7 @@ bitmap_line: {
// [54] call sgn_u16
// [105] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
sgn_u16_from___b14:
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z sgn_u16.w
lda #>y2
@ -2663,7 +2663,7 @@ bitmap_line: {
// [112] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
bitmap_plot_from___b6:
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __b16
// bitmap_line::@16
@ -2742,7 +2742,7 @@ bitmap_line: {
// [112] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
bitmap_plot_from___b3:
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __breturn
// bitmap_line::@return
@ -2788,7 +2788,7 @@ bitmap_line: {
// [112] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
bitmap_plot_from___b9:
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __b17
// bitmap_line::@17
@ -2866,7 +2866,7 @@ bitmap_line: {
sta.z bitmap_plot.x
lda #>x1
sta.z bitmap_plot.x+1
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- vbuxx=vbuc1
ldx #0
jsr bitmap_plot
jmp __breturn
@ -3443,13 +3443,13 @@ main: {
sta VICII_MEMORY
// bitmap_init(BITMAP, SCREEN)
// [4] call bitmap_init
// [14] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [14] phi from main to bitmap_init [phi:main->bitmap_init]
jsr bitmap_init
// [5] phi from main to main::@3 [phi:main->main::@3]
// main::@3
// bitmap_clear(PURPLE, WHITE)
// [6] call bitmap_clear
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear] -- call_phi_near
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear]
jsr bitmap_clear
// [7] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
// [7] phi next#6 = 0 [phi:main::@3->main::@1#0] -- vwuz1=vwuc1
@ -3460,7 +3460,7 @@ main: {
__b1:
// bitmap_line(0,0,next,100)
// [8] bitmap_line::x2#0 = next#6
// [9] call bitmap_line -- call_phi_near
// [9] call bitmap_line
jsr bitmap_line
// main::@4
// next++;
@ -3611,7 +3611,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -3629,7 +3629,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -3664,7 +3664,7 @@ bitmap_line: {
sta.z abs_u16.w+1
// [42] call abs_u16
// [98] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
jsr abs_u16
// unsigned int dx = abs_u16(x2-x1)
// [43] abs_u16::return#0 = abs_u16::return#4
@ -3677,7 +3677,7 @@ bitmap_line: {
// unsigned int dy = abs_u16(y2-y1)
// [45] call abs_u16
// [98] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z abs_u16.w
lda #>y2
@ -3709,7 +3709,7 @@ bitmap_line: {
sta.z sgn_u16.w+1
// [51] call sgn_u16
// [105] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
jsr sgn_u16
// unsigned int sx = sgn_u16(x2-x1)
// [52] sgn_u16::return#0 = sgn_u16::return#4
@ -3722,7 +3722,7 @@ bitmap_line: {
// unsigned int sy = sgn_u16(y2-y1)
// [54] call sgn_u16
// [105] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1
lda #<y2
sta.z sgn_u16.w
lda #>y2
@ -3777,7 +3777,7 @@ bitmap_line: {
// [62] call bitmap_plot
// [112] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@16
// y += sy
@ -3851,7 +3851,7 @@ bitmap_line: {
// [73] call bitmap_plot
// [112] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@return
// }
@ -3893,7 +3893,7 @@ bitmap_line: {
// [79] call bitmap_plot
// [112] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
// [112] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@17
// x += sx
@ -3967,7 +3967,7 @@ bitmap_line: {
sta.z bitmap_plot.x
lda #>x1
sta.z bitmap_plot.x+1
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- vbuxx=vbuc1
ldx #0
jsr bitmap_plot
rts

View File

@ -1730,7 +1730,7 @@ __start: {
// __start::@1
__b1:
// [3] call main
// [11] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [11] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -1782,7 +1782,7 @@ main: {
.label vx = $a
.label vy = 9
// [12] call bitmap_init
// [34] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [34] phi from main to bitmap_init [phi:main->bitmap_init]
bitmap_init_from_main:
jsr bitmap_init
// [13] phi from main to main::@8 [phi:main->main::@8]
@ -1791,7 +1791,7 @@ main: {
// main::@8
__b8:
// [14] call bitmap_clear
// [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear] -- call_phi_near
// [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear]
bitmap_clear_from___b8:
jsr bitmap_clear
jmp __b9
@ -1811,7 +1811,7 @@ main: {
// [17] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2
lda #toD0181_return
sta D018
// [18] call init_irq -- call_phi_near
// [18] call init_irq
jsr init_irq
// [19] phi from main::@7 to main::@1 [phi:main::@7->main::@1]
__b1_from___b7:
@ -1840,7 +1840,7 @@ main: {
// [20] bitmap_plot::x#0 = main::x#2
// [21] bitmap_plot::y#0 = main::y#2 -- vbuxx=vbuz1
ldx.z y
// [22] call bitmap_plot -- call_phi_near
// [22] call bitmap_plot
jsr bitmap_plot
jmp __b10
// main::@10
@ -2056,7 +2056,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [77] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [77] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -2077,7 +2077,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [77] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [77] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -2562,7 +2562,7 @@ __start: {
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main
// [11] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [11] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [4] return
@ -2613,13 +2613,13 @@ main: {
.label vy = 9
// bitmap_init(BITMAP, SCREEN)
// [12] call bitmap_init
// [34] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [34] phi from main to bitmap_init [phi:main->bitmap_init]
jsr bitmap_init
// [13] phi from main to main::@8 [phi:main->main::@8]
// main::@8
// bitmap_clear(BLACK, WHITE)
// [14] call bitmap_clear
// [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear] -- call_phi_near
// [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear]
jsr bitmap_clear
// main::@9
// *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
@ -2634,7 +2634,7 @@ main: {
lda #toD0181_return
sta D018
// init_irq()
// [18] call init_irq -- call_phi_near
// [18] call init_irq
jsr init_irq
// [19] phi from main::@7 to main::@1 [phi:main::@7->main::@1]
// [19] phi main::vy#2 = 1 [phi:main::@7->main::@1#0] -- vbuz1=vbuc1
@ -2656,7 +2656,7 @@ main: {
// [20] bitmap_plot::x#0 = main::x#2
// [21] bitmap_plot::y#0 = main::y#2 -- vbuxx=vbuz1
ldx.z y
// [22] call bitmap_plot -- call_phi_near
// [22] call bitmap_plot
jsr bitmap_plot
// main::@10
// x += vx
@ -2856,7 +2856,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [77] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [77] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -2874,7 +2874,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [77] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [77] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40

View File

@ -2524,7 +2524,7 @@ main: {
.label a = $1c
.label i = $1b
// [1] call bitmap_init
// [19] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [19] phi from main to bitmap_init [phi:main->bitmap_init]
bitmap_init_from_main:
jsr bitmap_init
// [2] phi from main to main::@5 [phi:main->main::@5]
@ -2533,7 +2533,7 @@ main: {
// main::@5
__b5:
// [3] call bitmap_clear
// [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear] -- call_phi_near
// [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear]
bitmap_clear_from___b5:
jsr bitmap_clear
jmp __b6
@ -2616,7 +2616,7 @@ main: {
sta.z bitmap_line.y2
lda #0
sta.z bitmap_line.y2+1
// [16] call bitmap_line -- call_phi_near
// [16] call bitmap_line
jsr bitmap_line
jmp __b7
// main::@7
@ -2761,7 +2761,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [97] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [97] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -2782,7 +2782,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [97] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [97] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -2821,7 +2821,7 @@ bitmap_line: {
// [47] call abs_u16
// [106] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
abs_u16_from_bitmap_line:
// [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
// [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
jsr abs_u16
// [48] abs_u16::return#0 = abs_u16::return#4
jmp __b12
@ -2843,7 +2843,7 @@ bitmap_line: {
// [51] call abs_u16
// [106] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
abs_u16_from___b12:
// [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
// [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy
jsr abs_u16
// [52] abs_u16::return#1 = abs_u16::return#4
jmp __b13
@ -2875,7 +2875,7 @@ bitmap_line: {
// [57] call sgn_u16
// [113] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
sgn_u16_from___b1:
// [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
// [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
jsr sgn_u16
// [58] sgn_u16::return#0 = sgn_u16::return#4
jmp __b14
@ -2897,7 +2897,7 @@ bitmap_line: {
// [61] call sgn_u16
// [113] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
sgn_u16_from___b14:
// [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
// [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy
jsr sgn_u16
// [62] sgn_u16::return#1 = sgn_u16::return#4
jmp __b15
@ -2940,7 +2940,7 @@ bitmap_line: {
// [120] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
bitmap_plot_from___b6:
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __b16
// bitmap_line::@16
@ -3019,7 +3019,7 @@ bitmap_line: {
// [120] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
bitmap_plot_from___b3:
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __breturn
// bitmap_line::@return
@ -3052,7 +3052,7 @@ bitmap_line: {
// [120] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
bitmap_plot_from___b9:
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __b17
// bitmap_line::@17
@ -3126,7 +3126,7 @@ bitmap_line: {
// [120] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot]
bitmap_plot_from___b4:
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy
jsr bitmap_plot
jmp __breturn
}
@ -3699,13 +3699,13 @@ main: {
.label i = $1b
// bitmap_init(BITMAP, SCREEN)
// [1] call bitmap_init
// [19] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
// [19] phi from main to bitmap_init [phi:main->bitmap_init]
jsr bitmap_init
// [2] phi from main to main::@5 [phi:main->main::@5]
// main::@5
// bitmap_clear(BLACK, WHITE)
// [3] call bitmap_clear
// [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear] -- call_phi_near
// [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear]
jsr bitmap_clear
// main::@6
// *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
@ -3783,7 +3783,7 @@ main: {
sta.z bitmap_line.y2
lda #0
sta.z bitmap_line.y2+1
// [16] call bitmap_line -- call_phi_near
// [16] call bitmap_line
jsr bitmap_line
// main::@7
// a+=32
@ -3919,7 +3919,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [97] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
// [97] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -3937,7 +3937,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [97] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
// [97] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -3975,7 +3975,7 @@ bitmap_line: {
sta.z abs_u16.w+1
// [47] call abs_u16
// [106] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
// [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
// [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
jsr abs_u16
// unsigned int dx = abs_u16(x2-x1)
// [48] abs_u16::return#0 = abs_u16::return#4
@ -3996,7 +3996,7 @@ bitmap_line: {
sta.z abs_u16.w+1
// [51] call abs_u16
// [106] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
// [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
// [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy
jsr abs_u16
// unsigned int dy = abs_u16(y2-y1)
// [52] abs_u16::return#1 = abs_u16::return#4
@ -4027,7 +4027,7 @@ bitmap_line: {
sta.z sgn_u16.w+1
// [57] call sgn_u16
// [113] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
// [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
// [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
jsr sgn_u16
// unsigned int sx = sgn_u16(x2-x1)
// [58] sgn_u16::return#0 = sgn_u16::return#4
@ -4048,7 +4048,7 @@ bitmap_line: {
sta.z sgn_u16.w+1
// [61] call sgn_u16
// [113] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
// [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
// [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy
jsr sgn_u16
// unsigned int sy = sgn_u16(y2-y1)
// [62] sgn_u16::return#1 = sgn_u16::return#4
@ -4087,7 +4087,7 @@ bitmap_line: {
// [69] call bitmap_plot
// [120] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@16
// y += sy
@ -4161,7 +4161,7 @@ bitmap_line: {
// [80] call bitmap_plot
// [120] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@return
// }
@ -4191,7 +4191,7 @@ bitmap_line: {
// [86] call bitmap_plot
// [120] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
jsr bitmap_plot
// bitmap_line::@17
// x += sx
@ -4263,7 +4263,7 @@ bitmap_line: {
// [96] call bitmap_plot
// [120] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot]
// [120] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy
jsr bitmap_plot
rts
}

View File

@ -980,7 +980,7 @@ main: {
lda #SCREEN/$40|BITMAP/$400
sta D018
// [4] call init_screen
// [11] phi from main to init_screen [phi:main->init_screen] -- call_phi_near
// [11] phi from main to init_screen [phi:main->init_screen]
init_screen_from_main:
jsr init_screen
// [5] phi from main to main::@3 [phi:main->main::@3]
@ -989,7 +989,7 @@ main: {
// main::@3
__b3:
// [6] call init_plot_tables
// [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables] -- call_phi_near
// [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables]
init_plot_tables_from___b3:
jsr init_plot_tables
jmp __b1
@ -1005,7 +1005,7 @@ main: {
// [8] *BG_COLOR = ++ *BG_COLOR -- _deref_pbuc1=_inc__deref_pbuc1
inc BG_COLOR
// [9] call plots
// [46] phi from main::@2 to plots [phi:main::@2->plots] -- call_phi_near
// [46] phi from main::@2 to plots [phi:main::@2->plots]
plots_from___b2:
jsr plots
jmp __b4
@ -1234,7 +1234,7 @@ plots: {
// [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx
lda plots_y,x
sta.z plot.y
// [52] call plot -- call_phi_near
// [52] call plot
jsr plot
jmp __b3
// plots::@3
@ -1511,13 +1511,13 @@ main: {
sta D018
// init_screen()
// [4] call init_screen
// [11] phi from main to init_screen [phi:main->init_screen] -- call_phi_near
// [11] phi from main to init_screen [phi:main->init_screen]
jsr init_screen
// [5] phi from main to main::@3 [phi:main->main::@3]
// main::@3
// init_plot_tables()
// [6] call init_plot_tables
// [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables] -- call_phi_near
// [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables]
jsr init_plot_tables
// main::@1
__b1:
@ -1532,7 +1532,7 @@ main: {
inc BG_COLOR
// plots()
// [9] call plots
// [46] phi from main::@2 to plots [phi:main::@2->plots] -- call_phi_near
// [46] phi from main::@2 to plots [phi:main::@2->plots]
jsr plots
// main::@4
// (*BG_COLOR)--;
@ -1751,7 +1751,7 @@ plots: {
// [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx
lda plots_y,x
sta.z plot.y
// [52] call plot -- call_phi_near
// [52] call plot
jsr plot
// plots::@3
// for(byte i=0; i<plots_cnt;i++)

View File

@ -368,7 +368,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call bool_const_if
// [7] phi from main to bool_const_if [phi:main->bool_const_if] -- call_phi_near
// [7] phi from main to bool_const_if [phi:main->bool_const_if]
bool_const_if_from_main:
jsr bool_const_if
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -377,7 +377,7 @@ main: {
// main::@1
__b1:
// [3] call bool_const_vars
// [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars] -- call_phi_near
// [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars]
bool_const_vars_from___b1:
jsr bool_const_vars
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -386,7 +386,7 @@ main: {
// main::@2
__b2:
// [5] call bool_const_inline
// [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline] -- call_phi_near
// [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline]
bool_const_inline_from___b2:
jsr bool_const_inline
jmp __breturn
@ -503,19 +503,19 @@ Score: 60
main: {
// bool_const_if()
// [1] call bool_const_if
// [7] phi from main to bool_const_if [phi:main->bool_const_if] -- call_phi_near
// [7] phi from main to bool_const_if [phi:main->bool_const_if]
jsr bool_const_if
// [2] phi from main to main::@1 [phi:main->main::@1]
// main::@1
// bool_const_vars()
// [3] call bool_const_vars
// [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars] -- call_phi_near
// [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars]
jsr bool_const_vars
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// bool_const_inline()
// [5] call bool_const_inline
// [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline] -- call_phi_near
// [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline]
jsr bool_const_inline
// main::@return
// }

View File

@ -325,7 +325,7 @@ main: {
tay
// [4] isSet::i#0 = main::i#2 -- vbuaa=vbuxx
txa
// [5] call isSet -- call_phi_near
// [5] call isSet
jsr isSet
// [6] isSet::return#0 = isSet::return#1
jmp __b5
@ -474,7 +474,7 @@ main: {
tay
// [4] isSet::i#0 = main::i#2 -- vbuaa=vbuxx
txa
// [5] call isSet -- call_phi_near
// [5] call isSet
jsr isSet
// [6] isSet::return#0 = isSet::return#1
// main::@5

View File

@ -655,7 +655,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call bool_and
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
// [9] phi from main to bool_and [phi:main->bool_and]
bool_and_from_main:
jsr bool_and
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -664,7 +664,7 @@ main: {
// main::@1
__b1:
// [3] call bool_or
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or]
bool_or_from___b1:
jsr bool_or
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -673,7 +673,7 @@ main: {
// main::@2
__b2:
// [5] call bool_not
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not]
bool_not_from___b2:
jsr bool_not
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
@ -682,7 +682,7 @@ main: {
// main::@3
__b3:
// [7] call bool_complex
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex]
bool_complex_from___b3:
jsr bool_complex
jmp __breturn
@ -1040,25 +1040,25 @@ Score: 1684
main: {
// bool_and()
// [1] call bool_and
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
// [9] phi from main to bool_and [phi:main->bool_and]
jsr bool_and
// [2] phi from main to main::@1 [phi:main->main::@1]
// main::@1
// bool_or()
// [3] call bool_or
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or]
jsr bool_or
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// bool_not()
// [5] call bool_not
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not]
jsr bool_not
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// bool_complex()
// [7] call bool_complex
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex]
jsr bool_complex
// main::@return
// }

View File

@ -689,7 +689,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call bool_and
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
// [9] phi from main to bool_and [phi:main->bool_and]
bool_and_from_main:
jsr bool_and
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -698,7 +698,7 @@ main: {
// main::@1
__b1:
// [3] call bool_or
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or]
bool_or_from___b1:
jsr bool_or
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -707,7 +707,7 @@ main: {
// main::@2
__b2:
// [5] call bool_not
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not]
bool_not_from___b2:
jsr bool_not
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
@ -716,7 +716,7 @@ main: {
// main::@3
__b3:
// [7] call bool_complex
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex]
bool_complex_from___b3:
jsr bool_complex
jmp __breturn
@ -1102,25 +1102,25 @@ Score: 1899
main: {
// bool_and()
// [1] call bool_and
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
// [9] phi from main to bool_and [phi:main->bool_and]
jsr bool_and
// [2] phi from main to main::@1 [phi:main->main::@1]
// main::@1
// bool_or()
// [3] call bool_or
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or]
jsr bool_or
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// bool_not()
// [5] call bool_not
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not]
jsr bool_not
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// bool_complex()
// [7] call bool_complex
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex]
jsr bool_complex
// main::@return
// }

View File

@ -2212,7 +2212,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call print_cls
// [11] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
// [11] phi from main to print_cls [phi:main->print_cls]
print_cls_from_main:
jsr print_cls
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -2221,7 +2221,7 @@ main: {
// main::@1
__b1:
// [3] call testChar
// [14] phi from main::@1 to testChar [phi:main::@1->testChar] -- call_phi_near
// [14] phi from main::@1 to testChar [phi:main::@1->testChar]
testChar_from___b1:
jsr testChar
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -2229,21 +2229,21 @@ main: {
jmp __b2
// main::@2
__b2:
// [5] call testShort -- call_phi_near
// [5] call testShort
jsr testShort
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
__b3_from___b2:
jmp __b3
// main::@3
__b3:
// [7] call testInt -- call_phi_near
// [7] call testInt
jsr testInt
// [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
__b4_from___b3:
jmp __b4
// main::@4
__b4:
// [9] call testLong -- call_phi_near
// [9] call testLong
jsr testLong
jmp __breturn
// main::@return
@ -2255,7 +2255,7 @@ main: {
// Clear the screen. Also resets current line/char cursor.
print_cls: {
// [12] call memset
// [74] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
// [74] phi from print_cls to memset [phi:print_cls->memset]
memset_from_print_cls:
jsr memset
jmp __breturn
@ -2277,7 +2277,7 @@ testChar: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2292,7 +2292,7 @@ testChar: {
// [87] phi from testChar::@1 to print_uchar [phi:testChar::@1->print_uchar]
print_uchar_from___b1:
// [87] phi print_char_cursor#152 = print_char_cursor#1 [phi:testChar::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- vbuxx=vbuc1
ldx #u
jsr print_uchar
// [18] phi from testChar::@1 to testChar::@2 [phi:testChar::@1->testChar::@2]
@ -2304,7 +2304,7 @@ testChar: {
// [95] phi from testChar::@2 to print_char [phi:testChar::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [20] phi from testChar::@2 to testChar::@3 [phi:testChar::@2->testChar::@3]
@ -2316,7 +2316,7 @@ testChar: {
// [87] phi from testChar::@3 to print_uchar [phi:testChar::@3->print_uchar]
print_uchar_from___b3:
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:testChar::@3->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- vbuxx=vbuc1
ldx #n
jsr print_uchar
// [22] phi from testChar::@3 to testChar::@4 [phi:testChar::@3->testChar::@4]
@ -2328,7 +2328,7 @@ testChar: {
// [95] phi from testChar::@4 to print_char [phi:testChar::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [24] phi from testChar::@4 to testChar::@5 [phi:testChar::@4->testChar::@5]
@ -2337,7 +2337,7 @@ testChar: {
// testChar::@5
__b5:
// [25] call print_schar
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar] -- call_phi_near
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar]
print_schar_from___b5:
jsr print_schar
// [26] phi from testChar::@5 to testChar::@6 [phi:testChar::@5->testChar::@6]
@ -2348,7 +2348,7 @@ testChar: {
// [27] call print_ln
// [105] phi from testChar::@6 to print_ln [phi:testChar::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- pbuz1=pbuc1
lda #<print_screen
sta.z print_line_cursor
lda #>print_screen
@ -2378,7 +2378,7 @@ testShort: {
// [80] phi from testShort to print_str [phi:testShort->print_str]
print_str_from_testShort:
// [80] phi print_char_cursor#159 = print_char_cursor#165 [phi:testShort->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2393,7 +2393,7 @@ testShort: {
// [110] phi from testShort::@1 to print_uint [phi:testShort::@1->print_uint]
print_uint_from___b1:
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testShort::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
@ -2408,7 +2408,7 @@ testShort: {
// [95] phi from testShort::@2 to print_char [phi:testShort::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [35] phi from testShort::@2 to testShort::@3 [phi:testShort::@2->testShort::@3]
@ -2419,7 +2419,7 @@ testShort: {
// [36] call print_sint
// [116] phi from testShort::@3 to print_sint [phi:testShort::@3->print_sint]
print_sint_from___b3:
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
@ -2434,7 +2434,7 @@ testShort: {
// [95] phi from testShort::@4 to print_char [phi:testShort::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [39] phi from testShort::@4 to testShort::@5 [phi:testShort::@4->testShort::@5]
@ -2445,7 +2445,7 @@ testShort: {
// [40] call print_sint
// [116] phi from testShort::@5 to print_sint [phi:testShort::@5->print_sint]
print_sint_from___b5:
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
@ -2459,7 +2459,7 @@ testShort: {
// [42] call print_ln
// [105] phi from testShort::@6 to print_ln [phi:testShort::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// testShort::@return
@ -2485,7 +2485,7 @@ testInt: {
// [80] phi from testInt to print_str [phi:testInt->print_str]
print_str_from_testInt:
// [80] phi print_char_cursor#159 = print_char_cursor#163 [phi:testInt->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2500,7 +2500,7 @@ testInt: {
// [110] phi from testInt::@1 to print_uint [phi:testInt::@1->print_uint]
print_uint_from___b1:
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testInt::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
@ -2515,7 +2515,7 @@ testInt: {
// [95] phi from testInt::@2 to print_char [phi:testInt::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [50] phi from testInt::@2 to testInt::@3 [phi:testInt::@2->testInt::@3]
@ -2526,7 +2526,7 @@ testInt: {
// [51] call print_sint
// [116] phi from testInt::@3 to print_sint [phi:testInt::@3->print_sint]
print_sint_from___b3:
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
@ -2541,7 +2541,7 @@ testInt: {
// [95] phi from testInt::@4 to print_char [phi:testInt::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [54] phi from testInt::@4 to testInt::@5 [phi:testInt::@4->testInt::@5]
@ -2552,7 +2552,7 @@ testInt: {
// [55] call print_sint
// [116] phi from testInt::@5 to print_sint [phi:testInt::@5->print_sint]
print_sint_from___b5:
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
@ -2566,7 +2566,7 @@ testInt: {
// [57] call print_ln
// [105] phi from testInt::@6 to print_ln [phi:testInt::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// testInt::@return
@ -2592,7 +2592,7 @@ testLong: {
// [80] phi from testLong to print_str [phi:testLong->print_str]
print_str_from_testLong:
// [80] phi print_char_cursor#159 = print_char_cursor#164 [phi:testLong->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2607,7 +2607,7 @@ testLong: {
// [127] phi from testLong::@1 to print_ulong [phi:testLong::@1->print_ulong]
print_ulong_from___b1:
// [127] phi print_char_cursor#148 = print_char_cursor#1 [phi:testLong::@1->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- call_phi_near
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- vduz1=vduc1
lda #<u
sta.z print_ulong.dw
lda #>u
@ -2626,7 +2626,7 @@ testLong: {
// [95] phi from testLong::@2 to print_char [phi:testLong::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [65] phi from testLong::@2 to testLong::@3 [phi:testLong::@2->testLong::@3]
@ -2637,7 +2637,7 @@ testLong: {
// [66] call print_slong
// [133] phi from testLong::@3 to print_slong [phi:testLong::@3->print_slong]
print_slong_from___b3:
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- call_phi_near
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- vdsz1=vdsc1
lda #<n
sta.z print_slong.dw
lda #>n
@ -2656,7 +2656,7 @@ testLong: {
// [95] phi from testLong::@4 to print_char [phi:testLong::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [69] phi from testLong::@4 to testLong::@5 [phi:testLong::@4->testLong::@5]
@ -2667,7 +2667,7 @@ testLong: {
// [70] call print_slong
// [133] phi from testLong::@5 to print_slong [phi:testLong::@5->print_slong]
print_slong_from___b5:
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- call_phi_near
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- vdsz1=vdsc1
lda #<s
sta.z print_slong.dw
lda #>s
@ -2685,7 +2685,7 @@ testLong: {
// [72] call print_ln
// [105] phi from testLong::@6 to print_ln [phi:testLong::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// testLong::@return
@ -2776,7 +2776,7 @@ print_str: {
// [95] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy
jsr print_char
jmp __b3
// print_str::@3
@ -2806,7 +2806,7 @@ print_uchar: {
// [95] phi from print_uchar to print_char [phi:print_uchar->print_char]
print_char_from_print_uchar:
// [95] phi print_char_cursor#95 = print_char_cursor#152 [phi:print_uchar->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- register_copy
jsr print_char
jmp __b1
// print_uchar::@1
@ -2820,7 +2820,7 @@ print_uchar: {
// [95] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- register_copy
jsr print_char
jmp __breturn
// print_uchar::@return
@ -2860,7 +2860,7 @@ print_schar: {
// [95] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_schar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// [102] phi from print_schar::@1 to print_schar::@2 [phi:print_schar::@1->print_schar::@2]
@ -2872,7 +2872,7 @@ print_schar: {
// [87] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
print_uchar_from___b2:
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_schar::@2->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1
ldx #b
jsr print_uchar
jmp __breturn
@ -2925,7 +2925,7 @@ print_uint: {
// [87] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
print_uchar_from_print_uint:
// [87] phi print_char_cursor#152 = print_char_cursor#147 [phi:print_uint->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy
jsr print_uchar
jmp __b1
// print_uint::@1
@ -2936,7 +2936,7 @@ print_uint: {
// [87] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
print_uchar_from___b1:
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy
jsr print_uchar
jmp __breturn
// print_uint::@return
@ -2961,7 +2961,7 @@ print_sint: {
// [95] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char]
print_char_from___b3:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [120] phi from print_sint::@3 print_sint::@4 to print_sint::@2 [phi:print_sint::@3/print_sint::@4->print_sint::@2]
@ -2976,7 +2976,7 @@ print_sint: {
// [110] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint]
print_uint_from___b2:
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_sint::@2->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy
jsr print_uint
jmp __breturn
// print_sint::@return
@ -2992,7 +2992,7 @@ print_sint: {
// [95] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
jmp __b4
@ -3022,7 +3022,7 @@ print_ulong: {
// [110] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
print_uint_from_print_ulong:
// [110] phi print_char_cursor#147 = print_char_cursor#148 [phi:print_ulong->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- register_copy
jsr print_uint
jmp __b1
// print_ulong::@1
@ -3036,7 +3036,7 @@ print_ulong: {
// [110] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
print_uint_from___b1:
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_ulong::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- register_copy
jsr print_uint
jmp __breturn
// print_ulong::@return
@ -3061,7 +3061,7 @@ print_slong: {
// [95] phi from print_slong::@3 to print_char [phi:print_slong::@3->print_char]
print_char_from___b3:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [137] phi from print_slong::@3 print_slong::@4 to print_slong::@2 [phi:print_slong::@3/print_slong::@4->print_slong::@2]
@ -3076,7 +3076,7 @@ print_slong: {
// [127] phi from print_slong::@2 to print_ulong [phi:print_slong::@2->print_ulong]
print_ulong_from___b2:
// [127] phi print_char_cursor#148 = print_char_cursor#25 [phi:print_slong::@2->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- call_phi_near
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- register_copy
jsr print_ulong
jmp __breturn
// print_slong::@return
@ -3092,7 +3092,7 @@ print_slong: {
// [95] phi from print_slong::@1 to print_char [phi:print_slong::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
jmp __b4
@ -3473,28 +3473,28 @@ Score: 2013
main: {
// print_cls()
// [1] call print_cls
// [11] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
// [11] phi from main to print_cls [phi:main->print_cls]
jsr print_cls
// [2] phi from main to main::@1 [phi:main->main::@1]
// main::@1
// testChar()
// [3] call testChar
// [14] phi from main::@1 to testChar [phi:main::@1->testChar] -- call_phi_near
// [14] phi from main::@1 to testChar [phi:main::@1->testChar]
jsr testChar
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// testShort()
// [5] call testShort -- call_phi_near
// [5] call testShort
jsr testShort
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// testInt()
// [7] call testInt -- call_phi_near
// [7] call testInt
jsr testInt
// [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
// main::@4
// testLong()
// [9] call testLong -- call_phi_near
// [9] call testLong
jsr testLong
// main::@return
// }
@ -3506,7 +3506,7 @@ main: {
print_cls: {
// memset(print_screen, ' ', 1000)
// [12] call memset
// [74] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
// [74] phi from print_cls to memset [phi:print_cls->memset]
jsr memset
// print_cls::@return
// }
@ -3526,7 +3526,7 @@ testChar: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3538,7 +3538,7 @@ testChar: {
// [17] call print_uchar
// [87] phi from testChar::@1 to print_uchar [phi:testChar::@1->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#1 [phi:testChar::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- vbuxx=vbuc1
ldx #u
jsr print_uchar
// [18] phi from testChar::@1 to testChar::@2 [phi:testChar::@1->testChar::@2]
@ -3547,7 +3547,7 @@ testChar: {
// [19] call print_char
// [95] phi from testChar::@2 to print_char [phi:testChar::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [20] phi from testChar::@2 to testChar::@3 [phi:testChar::@2->testChar::@3]
@ -3556,7 +3556,7 @@ testChar: {
// [21] call print_uchar
// [87] phi from testChar::@3 to print_uchar [phi:testChar::@3->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:testChar::@3->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- vbuxx=vbuc1
ldx #n
jsr print_uchar
// [22] phi from testChar::@3 to testChar::@4 [phi:testChar::@3->testChar::@4]
@ -3565,21 +3565,21 @@ testChar: {
// [23] call print_char
// [95] phi from testChar::@4 to print_char [phi:testChar::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [24] phi from testChar::@4 to testChar::@5 [phi:testChar::@4->testChar::@5]
// testChar::@5
// print_schar(s)
// [25] call print_schar
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar] -- call_phi_near
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar]
jsr print_schar
// [26] phi from testChar::@5 to testChar::@6 [phi:testChar::@5->testChar::@6]
// testChar::@6
// print_ln()
// [27] call print_ln
// [105] phi from testChar::@6 to print_ln [phi:testChar::@6->print_ln]
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- pbuz1=pbuc1
lda #<print_screen
sta.z print_line_cursor
lda #>print_screen
@ -3608,7 +3608,7 @@ testShort: {
// [30] call print_str
// [80] phi from testShort to print_str [phi:testShort->print_str]
// [80] phi print_char_cursor#159 = print_char_cursor#165 [phi:testShort->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3620,7 +3620,7 @@ testShort: {
// [32] call print_uint
// [110] phi from testShort::@1 to print_uint [phi:testShort::@1->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testShort::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
@ -3632,7 +3632,7 @@ testShort: {
// [34] call print_char
// [95] phi from testShort::@2 to print_char [phi:testShort::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [35] phi from testShort::@2 to testShort::@3 [phi:testShort::@2->testShort::@3]
@ -3640,7 +3640,7 @@ testShort: {
// print_sint(n)
// [36] call print_sint
// [116] phi from testShort::@3 to print_sint [phi:testShort::@3->print_sint]
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
@ -3652,7 +3652,7 @@ testShort: {
// [38] call print_char
// [95] phi from testShort::@4 to print_char [phi:testShort::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [39] phi from testShort::@4 to testShort::@5 [phi:testShort::@4->testShort::@5]
@ -3660,7 +3660,7 @@ testShort: {
// print_sint(s)
// [40] call print_sint
// [116] phi from testShort::@5 to print_sint [phi:testShort::@5->print_sint]
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
@ -3671,7 +3671,7 @@ testShort: {
// print_ln()
// [42] call print_ln
// [105] phi from testShort::@6 to print_ln [phi:testShort::@6->print_ln]
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- register_copy
jsr print_ln
// testShort::@return
// }
@ -3696,7 +3696,7 @@ testInt: {
// [45] call print_str
// [80] phi from testInt to print_str [phi:testInt->print_str]
// [80] phi print_char_cursor#159 = print_char_cursor#163 [phi:testInt->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3708,7 +3708,7 @@ testInt: {
// [47] call print_uint
// [110] phi from testInt::@1 to print_uint [phi:testInt::@1->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testInt::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
@ -3720,7 +3720,7 @@ testInt: {
// [49] call print_char
// [95] phi from testInt::@2 to print_char [phi:testInt::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [50] phi from testInt::@2 to testInt::@3 [phi:testInt::@2->testInt::@3]
@ -3728,7 +3728,7 @@ testInt: {
// print_sint(n)
// [51] call print_sint
// [116] phi from testInt::@3 to print_sint [phi:testInt::@3->print_sint]
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
@ -3740,7 +3740,7 @@ testInt: {
// [53] call print_char
// [95] phi from testInt::@4 to print_char [phi:testInt::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [54] phi from testInt::@4 to testInt::@5 [phi:testInt::@4->testInt::@5]
@ -3748,7 +3748,7 @@ testInt: {
// print_sint(s)
// [55] call print_sint
// [116] phi from testInt::@5 to print_sint [phi:testInt::@5->print_sint]
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- call_phi_near
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
@ -3759,7 +3759,7 @@ testInt: {
// print_ln()
// [57] call print_ln
// [105] phi from testInt::@6 to print_ln [phi:testInt::@6->print_ln]
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- register_copy
jsr print_ln
// testInt::@return
// }
@ -3784,7 +3784,7 @@ testLong: {
// [60] call print_str
// [80] phi from testLong to print_str [phi:testLong->print_str]
// [80] phi print_char_cursor#159 = print_char_cursor#164 [phi:testLong->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- call_phi_near
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3796,7 +3796,7 @@ testLong: {
// [62] call print_ulong
// [127] phi from testLong::@1 to print_ulong [phi:testLong::@1->print_ulong]
// [127] phi print_char_cursor#148 = print_char_cursor#1 [phi:testLong::@1->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- call_phi_near
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- vduz1=vduc1
lda #<u
sta.z print_ulong.dw
lda #>u
@ -3812,7 +3812,7 @@ testLong: {
// [64] call print_char
// [95] phi from testLong::@2 to print_char [phi:testLong::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [65] phi from testLong::@2 to testLong::@3 [phi:testLong::@2->testLong::@3]
@ -3820,7 +3820,7 @@ testLong: {
// print_slong(n)
// [66] call print_slong
// [133] phi from testLong::@3 to print_slong [phi:testLong::@3->print_slong]
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- call_phi_near
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- vdsz1=vdsc1
lda #<n
sta.z print_slong.dw
lda #>n
@ -3836,7 +3836,7 @@ testLong: {
// [68] call print_char
// [95] phi from testLong::@4 to print_char [phi:testLong::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [69] phi from testLong::@4 to testLong::@5 [phi:testLong::@4->testLong::@5]
@ -3844,7 +3844,7 @@ testLong: {
// print_slong(s)
// [70] call print_slong
// [133] phi from testLong::@5 to print_slong [phi:testLong::@5->print_slong]
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- call_phi_near
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- vdsz1=vdsc1
lda #<s
sta.z print_slong.dw
lda #>s
@ -3859,7 +3859,7 @@ testLong: {
// print_ln()
// [72] call print_ln
// [105] phi from testLong::@6 to print_ln [phi:testLong::@6->print_ln]
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- call_phi_near
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- register_copy
jsr print_ln
// testLong::@return
// }
@ -3945,7 +3945,7 @@ print_str: {
// [85] call print_char
// [95] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy
jsr print_char
// print_str::@3
// print_char(*(str++));
@ -3975,7 +3975,7 @@ print_uchar: {
// Table of hexadecimal digits
// [95] phi from print_uchar to print_char [phi:print_uchar->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#152 [phi:print_uchar->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- register_copy
jsr print_char
// print_uchar::@1
// b&$f
@ -3988,7 +3988,7 @@ print_uchar: {
// [93] call print_char
// [95] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- register_copy
jsr print_char
// print_uchar::@return
// }
@ -4025,7 +4025,7 @@ print_schar: {
// [101] call print_char
// [95] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_schar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// [102] phi from print_schar::@1 to print_schar::@2 [phi:print_schar::@1->print_schar::@2]
@ -4034,7 +4034,7 @@ print_schar: {
// [103] call print_uchar
// [87] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_schar::@2->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1
ldx #b
jsr print_uchar
// print_schar::@return
@ -4084,7 +4084,7 @@ print_uint: {
// [112] call print_uchar
// [87] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#147 [phi:print_uint->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy
jsr print_uchar
// print_uint::@1
// print_uchar(BYTE0(w))
@ -4093,7 +4093,7 @@ print_uint: {
// [114] call print_uchar
// [87] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- call_phi_near
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy
jsr print_uchar
// print_uint::@return
// }
@ -4115,7 +4115,7 @@ print_sint: {
// [119] call print_char
// [95] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [120] phi from print_sint::@3 print_sint::@4 to print_sint::@2 [phi:print_sint::@3/print_sint::@4->print_sint::@2]
@ -4127,7 +4127,7 @@ print_sint: {
// [122] call print_uint
// [110] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_sint::@2->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy
jsr print_uint
// print_sint::@return
// }
@ -4140,7 +4140,7 @@ print_sint: {
// [125] call print_char
// [95] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// print_sint::@4
@ -4169,7 +4169,7 @@ print_ulong: {
// [129] call print_uint
// [110] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#148 [phi:print_ulong->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- register_copy
jsr print_uint
// print_ulong::@1
// print_uint(WORD0(dw))
@ -4181,7 +4181,7 @@ print_ulong: {
// [131] call print_uint
// [110] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_ulong::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- call_phi_near
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- register_copy
jsr print_uint
// print_ulong::@return
// }
@ -4203,7 +4203,7 @@ print_slong: {
// [136] call print_char
// [95] phi from print_slong::@3 to print_char [phi:print_slong::@3->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [137] phi from print_slong::@3 print_slong::@4 to print_slong::@2 [phi:print_slong::@3/print_slong::@4->print_slong::@2]
@ -4215,7 +4215,7 @@ print_slong: {
// [139] call print_ulong
// [127] phi from print_slong::@2 to print_ulong [phi:print_slong::@2->print_ulong]
// [127] phi print_char_cursor#148 = print_char_cursor#25 [phi:print_slong::@2->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- call_phi_near
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- register_copy
jsr print_ulong
// print_slong::@return
// }
@ -4228,7 +4228,7 @@ print_slong: {
// [142] call print_char
// [95] phi from print_slong::@1 to print_char [phi:print_slong::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- call_phi_near
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// print_slong::@4

View File

@ -1380,7 +1380,7 @@ main: {
lda #PROCPORT_RAM_IO
sta.z PROCPORT
// [3] call gfx_init
// [40] phi from main to gfx_init [phi:main->gfx_init] -- call_phi_near
// [40] phi from main to gfx_init [phi:main->gfx_init]
gfx_init_from_main:
jsr gfx_init
jmp __b6
@ -1592,7 +1592,7 @@ main: {
// Initialize the different graphics in the memory
gfx_init: {
// [41] call gfx_init_screen0
// [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0] -- call_phi_near
// [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0]
gfx_init_screen0_from_gfx_init:
jsr gfx_init_screen0
// [42] phi from gfx_init to gfx_init::@1 [phi:gfx_init->gfx_init::@1]
@ -1601,7 +1601,7 @@ gfx_init: {
// gfx_init::@1
__b1:
// [43] call gfx_init_plane_charset8
// [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8] -- call_phi_near
// [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8]
gfx_init_plane_charset8_from___b1:
jsr gfx_init_plane_charset8
jmp __breturn
@ -1703,7 +1703,7 @@ gfx_init_plane_charset8: {
// [60] call dtvSetCpuBankSegment1
// [84] phi from gfx_init_plane_charset8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1]
dtvSetCpuBankSegment1_from_gfx_init_plane_charset8:
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- call_phi_near
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #gfxbCpuBank
jsr dtvSetCpuBankSegment1
jmp __b9
@ -1850,7 +1850,7 @@ gfx_init_plane_charset8: {
// Reset CPU BANK segment to $4000
// [84] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1]
dtvSetCpuBankSegment1_from___b8:
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- call_phi_near
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #$4000/$4000
jsr dtvSetCpuBankSegment1
jmp __breturn
@ -2224,7 +2224,7 @@ main: {
sta.z PROCPORT
// gfx_init()
// [3] call gfx_init
// [40] phi from main to gfx_init [phi:main->gfx_init] -- call_phi_near
// [40] phi from main to gfx_init [phi:main->gfx_init]
jsr gfx_init
// main::@6
// *DTV_FEATURE = DTV_FEATURE_ENABLE
@ -2454,13 +2454,13 @@ main: {
gfx_init: {
// gfx_init_screen0()
// [41] call gfx_init_screen0
// [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0] -- call_phi_near
// [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0]
jsr gfx_init_screen0
// [42] phi from gfx_init to gfx_init::@1 [phi:gfx_init->gfx_init::@1]
// gfx_init::@1
// gfx_init_plane_charset8()
// [43] call gfx_init_plane_charset8
// [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8] -- call_phi_near
// [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8]
jsr gfx_init_plane_charset8
// gfx_init::@return
// }
@ -2557,7 +2557,7 @@ gfx_init_plane_charset8: {
// dtvSetCpuBankSegment1(gfxbCpuBank++)
// [60] call dtvSetCpuBankSegment1
// [84] phi from gfx_init_plane_charset8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1]
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- call_phi_near
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #gfxbCpuBank
jsr dtvSetCpuBankSegment1
// gfx_init_plane_charset8::@9
@ -2691,7 +2691,7 @@ gfx_init_plane_charset8: {
// [82] call dtvSetCpuBankSegment1
// Reset CPU BANK segment to $4000
// [84] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1]
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- call_phi_near
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #$4000/$4000
jsr dtvSetCpuBankSegment1
// gfx_init_plane_charset8::@return

View File

@ -911,7 +911,7 @@ main: {
lda #PROCPORT_RAM_IO
sta.z PROCPORT
// [3] call gfx_init_chunky
// [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky] -- call_phi_near
// [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky]
gfx_init_chunky_from_main:
jsr gfx_init_chunky
jmp __b6
@ -1110,7 +1110,7 @@ gfx_init_chunky: {
// [35] call dtvSetCpuBankSegment1
// [54] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1]
dtvSetCpuBankSegment1_from_gfx_init_chunky:
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- call_phi_near
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #CHUNKY/$4000
jsr dtvSetCpuBankSegment1
// [36] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1]
@ -1167,7 +1167,7 @@ gfx_init_chunky: {
// [40] call dtvSetCpuBankSegment1
// [54] phi from gfx_init_chunky::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1]
dtvSetCpuBankSegment1_from___b4:
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- call_phi_near
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- register_copy
jsr dtvSetCpuBankSegment1
jmp __b7
// gfx_init_chunky::@7
@ -1238,7 +1238,7 @@ gfx_init_chunky: {
// Reset CPU BANK segment to $4000
// [54] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1]
dtvSetCpuBankSegment1_from___b6:
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- call_phi_near
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #$4000/$4000
jsr dtvSetCpuBankSegment1
jmp __breturn
@ -1530,7 +1530,7 @@ main: {
sta.z PROCPORT
// gfx_init_chunky()
// [3] call gfx_init_chunky
// [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky] -- call_phi_near
// [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky]
jsr gfx_init_chunky
// main::@6
// *DTV_FEATURE = DTV_FEATURE_ENABLE
@ -1744,7 +1744,7 @@ gfx_init_chunky: {
// dtvSetCpuBankSegment1(gfxbCpuBank++)
// [35] call dtvSetCpuBankSegment1
// [54] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1]
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- call_phi_near
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #CHUNKY/$4000
jsr dtvSetCpuBankSegment1
// [36] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1]
@ -1791,7 +1791,7 @@ gfx_init_chunky: {
txa
// [40] call dtvSetCpuBankSegment1
// [54] phi from gfx_init_chunky::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1]
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- call_phi_near
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- register_copy
jsr dtvSetCpuBankSegment1
// gfx_init_chunky::@7
// dtvSetCpuBankSegment1(gfxbCpuBank++);
@ -1858,7 +1858,7 @@ gfx_init_chunky: {
// [52] call dtvSetCpuBankSegment1
// Reset CPU BANK segment to $4000
// [54] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1]
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- call_phi_near
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1
lda #$4000/$4000
jsr dtvSetCpuBankSegment1
// gfx_init_chunky::@return

View File

@ -204,7 +204,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_phi_near
// [4] phi from main to plus [phi:main->plus]
plus_from_main:
jsr plus
jmp __b1
@ -309,7 +309,7 @@ Score: 24
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_phi_near
// [4] phi from main to plus [phi:main->plus]
jsr plus
// main::@1
// SCREEN[0] = plus('0', 7)

View File

@ -273,7 +273,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_phi_near
// [4] phi from main to plus [phi:main->plus]
plus_from_main:
jsr plus
jmp __b1
@ -294,7 +294,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
min_from_plus:
jsr min
jmp __breturn
@ -398,7 +398,7 @@ Score: 36
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_phi_near
// [4] phi from main to plus [phi:main->plus]
jsr plus
// main::@1
// SCREEN[0] = plus('0', 7)
@ -417,7 +417,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
jsr min
// plus::@return
// }

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.const a = '0'
.const b = 7

View File

@ -230,7 +230,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.const a = '0'
.const b = 7
@ -341,7 +341,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.const a = '0'
.const b = 7

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.const a = '0'
.const b = 7

View File

@ -230,7 +230,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.const a = '0'
.const b = 7
@ -341,7 +341,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.const a = '0'
.const b = 7

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7

View File

@ -299,12 +299,12 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
min_from_plus:
jsr min
jmp __breturn
@ -431,13 +431,13 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
jsr min
// plus::@return
// }

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -69,7 +69,6 @@ plus: {
}
.segment Code
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
min: {
.label return = plus.a+plus.b
rts

View File

@ -20,7 +20,7 @@ plus::@return: scope:[plus] from plus
[6] return
to:@return
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
min: scope:[min] from plus
[7] phi()
to:min::@return

View File

@ -38,7 +38,7 @@ plus::@return: scope:[plus] from plus::@1
return
to:@return
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
min: scope:[min] from plus
min::b#1 = phi( plus/min::b#0 )
min::a#1 = phi( plus/min::a#0 )
@ -66,7 +66,7 @@ __constant char * const SCREEN = (char *)$400
void __start()
void main()
char main::$0
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
char min::$0
char min::a
char min::a#0
@ -188,7 +188,7 @@ plus::@return: scope:[plus] from plus
[6] return
to:@return
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
min: scope:[min] from plus
[7] phi()
to:min::@return
@ -199,7 +199,7 @@ min::@return: scope:[min] from min
VARIABLE REGISTER WEIGHTS
void main()
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
char min::a
char min::b
char min::return
@ -299,12 +299,12 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
min_from_plus:
jsr min
jmp __breturn
@ -316,7 +316,6 @@ plus: {
.segment Code
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -344,7 +343,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
__constant char * const SCREEN = (char *) 1024
void main()
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
char min::a
char min::b
char min::return
@ -432,13 +431,13 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
jsr min
// plus::@return
// }
@ -448,7 +447,6 @@ plus: {
.segment Code
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -1,6 +1,6 @@
__constant char * const SCREEN = (char *) 1024
void main()
__bank(cx16_ram, 1) char min(char a , char b)
char min(char a , char b)
char min::a
char min::b
char min::return

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -68,7 +68,7 @@ plus: {
rts
}
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
min: {
.label return = plus.a+plus.b
rts

View File

@ -299,12 +299,12 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
min_from_plus:
jsr min
jmp __breturn
@ -315,7 +315,7 @@ plus: {
}
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -431,13 +431,13 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
jsr min
// plus::@return
// }
@ -446,7 +446,7 @@ plus: {
}
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -68,7 +68,7 @@ plus: {
rts
}
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
min: {
.label return = plus.a+plus.b
rts

View File

@ -299,12 +299,12 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
min_from_plus:
jsr min
jmp __breturn
@ -315,7 +315,7 @@ plus: {
}
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -431,13 +431,13 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
// [7] phi from plus to min [phi:plus->min]
jsr min
// plus::@return
// }
@ -446,7 +446,7 @@ plus: {
}
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -72,7 +72,7 @@ plus: {
}
.segment RAM_Bank2
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=2
// __bank(cx16_ram, 2)
min: {
.label return = plus.a+plus.b
rts

View File

@ -299,7 +299,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -319,7 +319,7 @@ plus: {
.segment RAM_Bank2
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=2
// __bank(cx16_ram, 2)
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -435,7 +435,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -454,7 +454,7 @@ plus: {
.segment RAM_Bank2
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=2
// __bank(cx16_ram, 2)
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -72,7 +72,7 @@ plus: {
}
.segment RAM_Bank2
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=2
// __bank(cx16_ram, 2)
min: {
.label return = plus.a+plus.b
rts

View File

@ -299,7 +299,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -319,7 +319,7 @@ plus: {
.segment RAM_Bank2
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=2
// __bank(cx16_ram, 2)
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -435,7 +435,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -454,7 +454,7 @@ plus: {
.segment RAM_Bank2
// min
// char min(char a, char b)
// banked : bank area='cx16_ram', bank=2
// __bank(cx16_ram, 2)
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -75,7 +75,7 @@ plus: {
}
.segment ROM_Bank1
// char min(char a, char b)
// banked : bank area='cx16_rom', bank=1
// __bank(cx16_rom, 1)
min: {
.label return = plus.a+plus.b
rts

View File

@ -300,7 +300,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -323,7 +323,7 @@ plus: {
.segment ROM_Bank1
// min
// char min(char a, char b)
// banked : bank area='cx16_rom', bank=1
// __bank(cx16_rom, 1)
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -439,7 +439,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -461,7 +461,7 @@ plus: {
.segment ROM_Bank1
// min
// char min(char a, char b)
// banked : bank area='cx16_rom', bank=1
// __bank(cx16_rom, 1)
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -58,7 +58,7 @@ main: {
}
.segment RAM_Bank1
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -75,7 +75,7 @@ plus: {
}
.segment ROM_Bank1
// char min(char a, char b)
// banked : bank area='cx16_rom', bank=1
// __bank(cx16_rom, 1)
min: {
.label return = plus.a+plus.b
rts

View File

@ -300,7 +300,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -323,7 +323,7 @@ plus: {
.segment ROM_Bank1
// min
// char min(char a, char b)
// banked : bank area='cx16_rom', bank=1
// __bank(cx16_rom, 1)
min: {
.label return = plus.a+plus.b
jmp __breturn
@ -439,7 +439,7 @@ main: {
.segment RAM_Bank1
// plus
// char plus(char a, char b)
// banked : bank area='cx16_ram', bank=1
// __bank(cx16_ram, 1)
plus: {
.label a = '0'
.label b = 7
@ -461,7 +461,7 @@ plus: {
.segment ROM_Bank1
// min
// char min(char a, char b)
// banked : bank area='cx16_rom', bank=1
// __bank(cx16_rom, 1)
min: {
.label return = plus.a+plus.b
// min::@return

View File

@ -261,7 +261,7 @@ main: {
sta.z print.w
lda #>$1234
sta.z print.w+1
// [7] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
// [7] phi idx#13 = 0 [phi:main->print#1] -- vbuxx=vbuc1
ldx #0
jsr print
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -277,7 +277,7 @@ main: {
sta.z print.w
lda #>w
sta.z print.w+1
// [7] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
// [7] phi idx#13 = idx#14 [phi:main::@1->print#1] -- register_copy
jsr print
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
__b2_from___b1:
@ -292,7 +292,7 @@ main: {
sta.z print.w
lda #>$12*$100+$34
sta.z print.w+1
// [7] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
// [7] phi idx#13 = idx#14 [phi:main::@2->print#1] -- register_copy
jsr print
jmp __breturn
// main::@return
@ -386,7 +386,7 @@ main: {
sta.z print.w
lda #>$1234
sta.z print.w+1
// [7] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
// [7] phi idx#13 = 0 [phi:main->print#1] -- vbuxx=vbuc1
ldx #0
jsr print
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -399,7 +399,7 @@ main: {
sta.z print.w
lda #>w
sta.z print.w+1
// [7] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
// [7] phi idx#13 = idx#14 [phi:main::@1->print#1] -- register_copy
jsr print
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
@ -411,7 +411,7 @@ main: {
sta.z print.w
lda #>$12*$100+$34
sta.z print.w+1
// [7] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
// [7] phi idx#13 = idx#14 [phi:main::@2->print#1] -- register_copy
jsr print
// main::@return
// }

View File

@ -307,7 +307,7 @@ main: {
// [5] phi line::x1#3 = 2 [phi:main->line#1] -- vbuz1=vbuc1
lda #2
sta.z line.x1
// [5] phi line::x#0 = 1 [phi:main->line#2] -- call_phi_near
// [5] phi line::x#0 = 1 [phi:main->line#2] -- vbuxx=vbuc1
ldx #1
jsr line
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -322,7 +322,7 @@ main: {
// [5] phi line::x1#3 = 5 [phi:main::@1->line#1] -- vbuz1=vbuc1
lda #5
sta.z line.x1
// [5] phi line::x#0 = 3 [phi:main::@1->line#2] -- call_phi_near
// [5] phi line::x#0 = 3 [phi:main::@1->line#2] -- vbuxx=vbuc1
ldx #3
jsr line
jmp __breturn
@ -438,7 +438,7 @@ main: {
// [5] phi line::x1#3 = 2 [phi:main->line#1] -- vbuz1=vbuc1
lda #2
sta.z line.x1
// [5] phi line::x#0 = 1 [phi:main->line#2] -- call_phi_near
// [5] phi line::x#0 = 1 [phi:main->line#2] -- vbuxx=vbuc1
ldx #1
jsr line
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -450,7 +450,7 @@ main: {
// [5] phi line::x1#3 = 5 [phi:main::@1->line#1] -- vbuz1=vbuc1
lda #5
sta.z line.x1
// [5] phi line::x#0 = 3 [phi:main::@1->line#2] -- call_phi_near
// [5] phi line::x#0 = 3 [phi:main::@1->line#2] -- vbuxx=vbuc1
ldx #3
jsr line
// main::@return

View File

@ -3802,7 +3802,7 @@ __start: {
sta.z conio_line_color
lda #>COLORRAM
sta.z conio_line_color+1
// [5] call conio_c64_init -- call_phi_near
// [5] call conio_c64_init
jsr conio_c64_init
// [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
__b1_from___init1:
@ -3810,7 +3810,7 @@ __start: {
// __start::@1
__b1:
// [7] call main
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [27] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -3846,7 +3846,7 @@ conio_c64_init: {
// conio_c64_init::@1
__b1:
// [13] gotoxy::y#2 = conio_c64_init::line#2
// [14] call gotoxy -- call_phi_near
// [14] call gotoxy
jsr gotoxy
jmp __breturn
// conio_c64_init::@return
@ -3887,7 +3887,7 @@ cputc: {
jmp __b3
// cputc::@3
__b3:
// [23] call cputln -- call_phi_near
// [23] call cputln
jsr cputln
jmp __breturn
// cputc::@return
@ -3899,7 +3899,7 @@ cputc: {
jmp __b1
// cputc::@1
__b1:
// [26] call cputln -- call_phi_near
// [26] call cputln
jsr cputln
jmp __breturn
}
@ -3907,7 +3907,7 @@ cputc: {
main: {
.label signed_char_value = $17
// [28] call clrscr
// [55] phi from main to clrscr [phi:main->clrscr] -- call_phi_near
// [55] phi from main to clrscr [phi:main->clrscr]
clrscr_from_main:
jsr clrscr
// [29] phi from main to main::@1 [phi:main->main::@1]
@ -3939,7 +3939,7 @@ main: {
lda #$ff
!:
sta.z test_casting.signed_short_value+1
// [34] call test_casting -- call_phi_near
// [34] call test_casting
jsr test_casting
// [29] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
__b1_from___b2:
@ -4069,7 +4069,7 @@ cputln: {
sta.z conio_cursor_x
// [52] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1
inc.z conio_cursor_y
// [53] call cscroll -- call_phi_near
// [53] call cscroll
jsr cscroll
jmp __breturn
// cputln::@return
@ -4183,7 +4183,7 @@ clrscr: {
test_casting: {
.label signed_short_value = 4
// [71] printf_sint::value#1 = test_casting::signed_short_value#0
// [72] call printf_sint -- call_phi_near
// [72] call printf_sint
jsr printf_sint
// [73] phi from test_casting to test_casting::@1 [phi:test_casting->test_casting::@1]
__b1_from_test_casting:
@ -4198,7 +4198,7 @@ test_casting: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [99] phi printf_str::s#4 = test_casting::s [phi:test_casting::@1->printf_str#1] -- call_phi_near
// [99] phi printf_str::s#4 = test_casting::s [phi:test_casting::@1->printf_str#1] -- pbuz1=pbuc1
lda #<s
sta.z printf_str.s
lda #>s
@ -4234,7 +4234,7 @@ cscroll: {
sta.z memcpy.destination
lda #>DEFAULT_SCREEN
sta.z memcpy.destination+1
// [108] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
// [108] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$28
sta.z memcpy.source
lda #>DEFAULT_SCREEN+$28
@ -4253,7 +4253,7 @@ cscroll: {
sta.z memcpy.destination
lda #>COLORRAM
sta.z memcpy.destination+1
// [108] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
// [108] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1
lda #<COLORRAM+$28
sta.z memcpy.source
lda #>COLORRAM+$28
@ -4269,7 +4269,7 @@ cscroll: {
memset_from___b3:
// [118] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1
ldx #' '
// [118] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
// [118] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$19*$28-$28
sta.z memset.str
lda #>DEFAULT_SCREEN+$19*$28-$28
@ -4285,7 +4285,7 @@ cscroll: {
memset_from___b4:
// [118] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1
ldx #LIGHT_BLUE
// [118] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
// [118] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1
lda #<COLORRAM+$19*$28-$28
sta.z memset.str
lda #>COLORRAM+$19*$28-$28
@ -4354,7 +4354,7 @@ printf_sint: {
__b2:
// [94] utoa::value#1 = (unsigned int)printf_sint::value#4
// [95] call utoa
// [126] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] -- call_phi_near
// [126] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa]
utoa_from___b2:
jsr utoa
jmp __b3
@ -4364,7 +4364,7 @@ printf_sint: {
lda printf_buffer
// [97] call printf_number_buffer
// Print using format
// [147] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] -- call_phi_near
// [147] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer]
printf_number_buffer_from___b3:
jsr printf_number_buffer
jmp __breturn
@ -4630,7 +4630,7 @@ utoa: {
// [141] utoa_append::value#0 = utoa::value#2
// [142] utoa_append::sub#0 = utoa::digit_value#0
// [143] call utoa_append
// [155] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] -- call_phi_near
// [155] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append]
utoa_append_from___b5:
jsr utoa_append
// [144] utoa_append::return#0 = utoa_append::value#2
@ -4686,7 +4686,7 @@ printf_number_buffer: {
sta.z printf_str.putc
lda #>printf_sint.putc
sta.z printf_str.putc+1
// [99] phi printf_str::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->printf_str#1] -- call_phi_near
// [99] phi printf_str::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->printf_str#1] -- pbuz1=pbuc1
lda #<buffer_digits
sta.z printf_str.s
lda #>buffer_digits
@ -5199,12 +5199,12 @@ __start: {
lda #>COLORRAM
sta.z conio_line_color+1
// #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll)
// [5] call conio_c64_init -- call_phi_near
// [5] call conio_c64_init
jsr conio_c64_init
// [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [7] call main
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [27] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [8] return
@ -5233,7 +5233,7 @@ conio_c64_init: {
__b1:
// gotoxy(0, line)
// [13] gotoxy::y#2 = conio_c64_init::line#2
// [14] call gotoxy -- call_phi_near
// [14] call gotoxy
jsr gotoxy
// conio_c64_init::@return
// }
@ -5272,7 +5272,7 @@ cputc: {
// [22] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3]
// cputc::@3
// cputln()
// [23] call cputln -- call_phi_near
// [23] call cputln
jsr cputln
// cputc::@return
__breturn:
@ -5283,7 +5283,7 @@ cputc: {
// cputc::@1
__b1:
// cputln()
// [26] call cputln -- call_phi_near
// [26] call cputln
jsr cputln
rts
}
@ -5292,7 +5292,7 @@ main: {
.label signed_char_value = $17
// clrscr()
// [28] call clrscr
// [55] phi from main to clrscr [phi:main->clrscr] -- call_phi_near
// [55] phi from main to clrscr [phi:main->clrscr]
jsr clrscr
// [29] phi from main to main::@1 [phi:main->main::@1]
// [29] phi main::signed_char_value#2 = -5 [phi:main->main::@1#0] -- vbsz1=vbsc1
@ -5323,7 +5323,7 @@ main: {
lda #$ff
!:
sta.z test_casting.signed_short_value+1
// [34] call test_casting -- call_phi_near
// [34] call test_casting
jsr test_casting
// [29] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
// [29] phi main::signed_char_value#2 = main::signed_char_value#1 [phi:main::@2->main::@1#0] -- register_copy
@ -5455,7 +5455,7 @@ cputln: {
// [52] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1
inc.z conio_cursor_y
// cscroll()
// [53] call cscroll -- call_phi_near
// [53] call cscroll
jsr cscroll
// cputln::@return
// }
@ -5570,7 +5570,7 @@ test_casting: {
.label signed_short_value = 4
// printf("%d\n", signed_short_value)
// [71] printf_sint::value#1 = test_casting::signed_short_value#0
// [72] call printf_sint -- call_phi_near
// [72] call printf_sint
jsr printf_sint
// [73] phi from test_casting to test_casting::@1 [phi:test_casting->test_casting::@1]
// test_casting::@1
@ -5582,7 +5582,7 @@ test_casting: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [99] phi printf_str::s#4 = test_casting::s [phi:test_casting::@1->printf_str#1] -- call_phi_near
// [99] phi printf_str::s#4 = test_casting::s [phi:test_casting::@1->printf_str#1] -- pbuz1=pbuc1
lda #<s
sta.z printf_str.s
lda #>s
@ -5615,7 +5615,7 @@ cscroll: {
sta.z memcpy.destination
lda #>DEFAULT_SCREEN
sta.z memcpy.destination+1
// [108] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
// [108] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$28
sta.z memcpy.source
lda #>DEFAULT_SCREEN+$28
@ -5631,7 +5631,7 @@ cscroll: {
sta.z memcpy.destination
lda #>COLORRAM
sta.z memcpy.destination+1
// [108] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
// [108] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1
lda #<COLORRAM+$28
sta.z memcpy.source
lda #>COLORRAM+$28
@ -5644,7 +5644,7 @@ cscroll: {
// [118] phi from cscroll::@3 to memset [phi:cscroll::@3->memset]
// [118] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1
ldx #' '
// [118] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
// [118] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$19*$28-$28
sta.z memset.str
lda #>DEFAULT_SCREEN+$19*$28-$28
@ -5657,7 +5657,7 @@ cscroll: {
// [118] phi from cscroll::@4 to memset [phi:cscroll::@4->memset]
// [118] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1
ldx #LIGHT_BLUE
// [118] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
// [118] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1
lda #<COLORRAM+$19*$28-$28
sta.z memset.str
lda #>COLORRAM+$19*$28-$28
@ -5729,7 +5729,7 @@ printf_sint: {
// utoa(uvalue, printf_buffer.digits, format.radix)
// [94] utoa::value#1 = (unsigned int)printf_sint::value#4
// [95] call utoa
// [126] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] -- call_phi_near
// [126] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa]
jsr utoa
// printf_sint::@3
// printf_number_buffer(putc, printf_buffer, format)
@ -5737,7 +5737,7 @@ printf_sint: {
lda printf_buffer
// [97] call printf_number_buffer
// Print using format
// [147] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] -- call_phi_near
// [147] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer]
jsr printf_number_buffer
// printf_sint::@return
// }
@ -5993,7 +5993,7 @@ utoa: {
// [141] utoa_append::value#0 = utoa::value#2
// [142] utoa_append::sub#0 = utoa::digit_value#0
// [143] call utoa_append
// [155] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] -- call_phi_near
// [155] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append]
jsr utoa_append
// utoa_append(buffer++, value, digit_value)
// [144] utoa_append::return#0 = utoa_append::value#2
@ -6043,7 +6043,7 @@ printf_number_buffer: {
sta.z printf_str.putc
lda #>printf_sint.putc
sta.z printf_str.putc+1
// [99] phi printf_str::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->printf_str#1] -- call_phi_near
// [99] phi printf_str::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->printf_str#1] -- pbuz1=pbuc1
lda #<buffer_digits
sta.z printf_str.s
lda #>buffer_digits

View File

@ -413,7 +413,7 @@ main: {
// main::@2
__b2:
// [9] call w
// [11] phi from main::@2 to w [phi:main::@2->w] -- call_phi_near
// [11] phi from main::@2 to w [phi:main::@2->w]
w_from___b2:
jsr w
jmp __breturn
@ -577,7 +577,7 @@ main: {
// main::@2
// w()
// [9] call w
// [11] phi from main::@2 to w [phi:main::@2->w] -- call_phi_near
// [11] phi from main::@2 to w [phi:main::@2->w]
jsr w
// main::@return
// }

View File

@ -4473,7 +4473,7 @@ __start: {
sta.z conio_line_color
lda #>COLORRAM
sta.z conio_line_color+1
// [5] call conio_c64_init -- call_phi_near
// [5] call conio_c64_init
jsr conio_c64_init
// [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
__b1_from___init1:
@ -4481,7 +4481,7 @@ __start: {
// __start::@1
__b1:
// [7] call main
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [27] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -4517,7 +4517,7 @@ conio_c64_init: {
// conio_c64_init::@1
__b1:
// [13] gotoxy::y#2 = conio_c64_init::line#2
// [14] call gotoxy -- call_phi_near
// [14] call gotoxy
jsr gotoxy
jmp __breturn
// conio_c64_init::@return
@ -4558,7 +4558,7 @@ cputc: {
jmp __b3
// cputc::@3
__b3:
// [23] call cputln -- call_phi_near
// [23] call cputln
jsr cputln
jmp __breturn
// cputc::@return
@ -4570,7 +4570,7 @@ cputc: {
jmp __b1
// cputc::@1
__b1:
// [26] call cputln -- call_phi_near
// [26] call cputln
jsr cputln
jmp __breturn
}
@ -4593,7 +4593,7 @@ main: {
lda #toD0181_return
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
// [30] call clrscr
// [71] phi from main::@3 to clrscr [phi:main::@3->clrscr] -- call_phi_near
// [71] phi from main::@3 to clrscr [phi:main::@3->clrscr]
clrscr_from___b3:
jsr clrscr
// [31] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
@ -4609,7 +4609,7 @@ main: {
jmp __b1
// main::@1
__b1:
// [32] call GETIN -- call_phi_near
// [32] call GETIN
jsr GETIN
// [33] GETIN::return#0 = GETIN::return#1
jmp __b4
@ -4634,7 +4634,7 @@ main: {
__b2:
// [37] petscii_to_screencode::petscii#0 = main::ch#0 -- vbuaa=vbuz1
lda.z ch
// [38] call petscii_to_screencode -- call_phi_near
// [38] call petscii_to_screencode
jsr petscii_to_screencode
// [39] petscii_to_screencode::return#0 = petscii_to_screencode::return#10
jmp __b5
@ -4650,7 +4650,7 @@ main: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = main::s [phi:main::@5->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = main::s [phi:main::@5->printf_str#1] -- pbuz1=pbuc1
lda #<s
sta.z printf_str.s
lda #>s
@ -4674,7 +4674,7 @@ main: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = main::s1 [phi:main::@6->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = main::s1 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1
lda #<s1
sta.z printf_str.s
lda #>s1
@ -4686,7 +4686,7 @@ main: {
// [46] printf_uchar::uvalue#0 = main::ch#0 -- vbuxx=vbuz1
ldx.z ch
// [47] call printf_uchar
// [112] phi from main::@7 to printf_uchar [phi:main::@7->printf_uchar] -- call_phi_near
// [112] phi from main::@7 to printf_uchar [phi:main::@7->printf_uchar]
printf_uchar_from___b7:
jsr printf_uchar
// [48] phi from main::@7 to main::@8 [phi:main::@7->main::@8]
@ -4702,7 +4702,7 @@ main: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = main::s2 [phi:main::@8->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = main::s2 [phi:main::@8->printf_str#1] -- pbuz1=pbuc1
lda #<s2
sta.z printf_str.s
lda #>s2
@ -4847,7 +4847,7 @@ cputln: {
sta.z conio_cursor_x
// [68] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1
inc.z conio_cursor_y
// [69] call cscroll -- call_phi_near
// [69] call cscroll
jsr cscroll
jmp __breturn
// cputln::@return
@ -5115,7 +5115,7 @@ printf_uchar: {
// [114] uctoa::value#1 = printf_uchar::uvalue#0
// [115] call uctoa
// Format number into buffer
// [132] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] -- call_phi_near
// [132] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa]
uctoa_from___b1:
jsr uctoa
jmp __b2
@ -5126,7 +5126,7 @@ printf_uchar: {
sta.z printf_number_buffer.buffer_sign
// [117] call printf_number_buffer
// Print using format
// [151] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] -- call_phi_near
// [151] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer]
printf_number_buffer_from___b2:
jsr printf_number_buffer
jmp __breturn
@ -5155,7 +5155,7 @@ cscroll: {
sta.z memcpy.destination
lda #>DEFAULT_SCREEN
sta.z memcpy.destination+1
// [174] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
// [174] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$28
sta.z memcpy.source
lda #>DEFAULT_SCREEN+$28
@ -5174,7 +5174,7 @@ cscroll: {
sta.z memcpy.destination
lda #>COLORRAM
sta.z memcpy.destination+1
// [174] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
// [174] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1
lda #<COLORRAM+$28
sta.z memcpy.source
lda #>COLORRAM+$28
@ -5190,7 +5190,7 @@ cscroll: {
memset_from___b3:
// [184] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1
ldx #' '
// [184] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
// [184] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$19*$28-$28
sta.z memset.str
lda #>DEFAULT_SCREEN+$19*$28-$28
@ -5206,7 +5206,7 @@ cscroll: {
memset_from___b4:
// [184] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1
ldx #LIGHT_BLUE
// [184] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
// [184] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1
lda #<COLORRAM+$19*$28-$28
sta.z memset.str
lda #>COLORRAM+$19*$28-$28
@ -5332,7 +5332,7 @@ uctoa: {
// [145] uctoa_append::value#0 = uctoa::value#2
// [146] uctoa_append::sub#0 = uctoa::digit_value#0
// [147] call uctoa_append
// [192] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] -- call_phi_near
// [192] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append]
uctoa_append_from___b5:
jsr uctoa_append
// [148] uctoa_append::return#0 = uctoa_append::value#2
@ -5368,7 +5368,7 @@ printf_number_buffer: {
// printf_number_buffer::@4
__b4:
// [153] call strlen
// [199] phi from printf_number_buffer::@4 to strlen [phi:printf_number_buffer::@4->strlen] -- call_phi_near
// [199] phi from printf_number_buffer::@4 to strlen [phi:printf_number_buffer::@4->strlen]
strlen_from___b4:
jsr strlen
// [154] strlen::return#2 = strlen::len#2
@ -5430,7 +5430,7 @@ printf_number_buffer: {
// [165] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuaa
sta.z printf_padding.length
// [166] call printf_padding
// [205] phi from printf_number_buffer::@6 to printf_padding [phi:printf_number_buffer::@6->printf_padding] -- call_phi_near
// [205] phi from printf_number_buffer::@6 to printf_padding [phi:printf_number_buffer::@6->printf_padding]
printf_padding_from___b6:
jsr printf_padding
jmp __b2
@ -5463,7 +5463,7 @@ printf_number_buffer: {
sta.z printf_str.putc
lda #>printf_uchar.putc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@3->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@3->printf_str#1] -- pbuz1=pbuc1
lda #<buffer_digits
sta.z printf_str.s
lda #>buffer_digits
@ -6310,12 +6310,12 @@ __start: {
lda #>COLORRAM
sta.z conio_line_color+1
// #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll)
// [5] call conio_c64_init -- call_phi_near
// [5] call conio_c64_init
jsr conio_c64_init
// [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [7] call main
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [27] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [8] return
@ -6344,7 +6344,7 @@ conio_c64_init: {
__b1:
// gotoxy(0, line)
// [13] gotoxy::y#2 = conio_c64_init::line#2
// [14] call gotoxy -- call_phi_near
// [14] call gotoxy
jsr gotoxy
// conio_c64_init::@return
// }
@ -6383,7 +6383,7 @@ cputc: {
// [22] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3]
// cputc::@3
// cputln()
// [23] call cputln -- call_phi_near
// [23] call cputln
jsr cputln
// cputc::@return
__breturn:
@ -6394,7 +6394,7 @@ cputc: {
// cputc::@1
__b1:
// cputln()
// [26] call cputln -- call_phi_near
// [26] call cputln
jsr cputln
rts
}
@ -6414,7 +6414,7 @@ main: {
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
// clrscr()
// [30] call clrscr
// [71] phi from main::@3 to clrscr [phi:main::@3->clrscr] -- call_phi_near
// [71] phi from main::@3 to clrscr [phi:main::@3->clrscr]
jsr clrscr
// [31] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
// [31] phi main::current#2 = 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1
@ -6425,7 +6425,7 @@ main: {
// main::@1
__b1:
// char ch = GETIN()
// [32] call GETIN -- call_phi_near
// [32] call GETIN
jsr GETIN
// [33] GETIN::return#0 = GETIN::return#1
// main::@4
@ -6445,7 +6445,7 @@ main: {
// petscii_to_screencode(ch)
// [37] petscii_to_screencode::petscii#0 = main::ch#0 -- vbuaa=vbuz1
lda.z ch
// [38] call petscii_to_screencode -- call_phi_near
// [38] call petscii_to_screencode
jsr petscii_to_screencode
// [39] petscii_to_screencode::return#0 = petscii_to_screencode::return#10
// main::@5
@ -6459,7 +6459,7 @@ main: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = main::s [phi:main::@5->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = main::s [phi:main::@5->printf_str#1] -- pbuz1=pbuc1
lda #<s
sta.z printf_str.s
lda #>s
@ -6481,7 +6481,7 @@ main: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = main::s1 [phi:main::@6->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = main::s1 [phi:main::@6->printf_str#1] -- pbuz1=pbuc1
lda #<s1
sta.z printf_str.s
lda #>s1
@ -6492,7 +6492,7 @@ main: {
// [46] printf_uchar::uvalue#0 = main::ch#0 -- vbuxx=vbuz1
ldx.z ch
// [47] call printf_uchar
// [112] phi from main::@7 to printf_uchar [phi:main::@7->printf_uchar] -- call_phi_near
// [112] phi from main::@7 to printf_uchar [phi:main::@7->printf_uchar]
jsr printf_uchar
// [48] phi from main::@7 to main::@8 [phi:main::@7->main::@8]
// main::@8
@ -6504,7 +6504,7 @@ main: {
sta.z printf_str.putc
lda #>cputc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = main::s2 [phi:main::@8->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = main::s2 [phi:main::@8->printf_str#1] -- pbuz1=pbuc1
lda #<s2
sta.z printf_str.s
lda #>s2
@ -6650,7 +6650,7 @@ cputln: {
// [68] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1
inc.z conio_cursor_y
// cscroll()
// [69] call cscroll -- call_phi_near
// [69] call cscroll
jsr cscroll
// cputln::@return
// }
@ -6910,7 +6910,7 @@ printf_uchar: {
// [114] uctoa::value#1 = printf_uchar::uvalue#0
// [115] call uctoa
// Format number into buffer
// [132] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] -- call_phi_near
// [132] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa]
jsr uctoa
// printf_uchar::@2
// printf_number_buffer(putc, printf_buffer, format)
@ -6919,7 +6919,7 @@ printf_uchar: {
sta.z printf_number_buffer.buffer_sign
// [117] call printf_number_buffer
// Print using format
// [151] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] -- call_phi_near
// [151] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer]
jsr printf_number_buffer
// printf_uchar::@return
// }
@ -6944,7 +6944,7 @@ cscroll: {
sta.z memcpy.destination
lda #>DEFAULT_SCREEN
sta.z memcpy.destination+1
// [174] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
// [174] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$28
sta.z memcpy.source
lda #>DEFAULT_SCREEN+$28
@ -6960,7 +6960,7 @@ cscroll: {
sta.z memcpy.destination
lda #>COLORRAM
sta.z memcpy.destination+1
// [174] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
// [174] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1
lda #<COLORRAM+$28
sta.z memcpy.source
lda #>COLORRAM+$28
@ -6973,7 +6973,7 @@ cscroll: {
// [184] phi from cscroll::@3 to memset [phi:cscroll::@3->memset]
// [184] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1
ldx #' '
// [184] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
// [184] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1
lda #<DEFAULT_SCREEN+$19*$28-$28
sta.z memset.str
lda #>DEFAULT_SCREEN+$19*$28-$28
@ -6986,7 +6986,7 @@ cscroll: {
// [184] phi from cscroll::@4 to memset [phi:cscroll::@4->memset]
// [184] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1
ldx #LIGHT_BLUE
// [184] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
// [184] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1
lda #<COLORRAM+$19*$28-$28
sta.z memset.str
lda #>COLORRAM+$19*$28-$28
@ -7110,7 +7110,7 @@ uctoa: {
// [145] uctoa_append::value#0 = uctoa::value#2
// [146] uctoa_append::sub#0 = uctoa::digit_value#0
// [147] call uctoa_append
// [192] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] -- call_phi_near
// [192] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append]
jsr uctoa_append
// uctoa_append(buffer++, value, digit_value)
// [148] uctoa_append::return#0 = uctoa_append::value#2
@ -7143,7 +7143,7 @@ printf_number_buffer: {
// printf_number_buffer::@4
// strlen(buffer.digits)
// [153] call strlen
// [199] phi from printf_number_buffer::@4 to strlen [phi:printf_number_buffer::@4->strlen] -- call_phi_near
// [199] phi from printf_number_buffer::@4 to strlen [phi:printf_number_buffer::@4->strlen]
jsr strlen
// strlen(buffer.digits)
// [154] strlen::return#2 = strlen::len#2
@ -7196,7 +7196,7 @@ printf_number_buffer: {
// [165] printf_padding::length#0 = (char)printf_number_buffer::padding#10 -- vbuz1=vbuaa
sta.z printf_padding.length
// [166] call printf_padding
// [205] phi from printf_number_buffer::@6 to printf_padding [phi:printf_number_buffer::@6->printf_padding] -- call_phi_near
// [205] phi from printf_number_buffer::@6 to printf_padding [phi:printf_number_buffer::@6->printf_padding]
jsr printf_padding
// printf_number_buffer::@2
__b2:
@ -7223,7 +7223,7 @@ printf_number_buffer: {
sta.z printf_str.putc
lda #>printf_uchar.putc
sta.z printf_str.putc+1
// [103] phi printf_str::s#6 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@3->printf_str#1] -- call_phi_near
// [103] phi printf_str::s#6 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@3->printf_str#1] -- pbuz1=pbuc1
lda #<buffer_digits
sta.z printf_str.s
lda #>buffer_digits

View File

@ -694,7 +694,7 @@ main: {
jmp __b1
// main::@1
__b1:
// [2] call clock_start -- call_phi_near
// [2] call clock_start
// Reset & start the CIA#2 timer A+B
jsr clock_start
jmp __b2
@ -702,7 +702,7 @@ main: {
__b2:
// asm { nop }
nop
// [4] call clock -- call_phi_near
// [4] call clock
jsr clock
// [5] clock::return#2 = clock::return#0
jmp __b3
@ -725,7 +725,7 @@ main: {
sbc #>CLOCKS_PER_INIT>>$10
sta.z cyclecount+3
// [8] print_ulong_at::dw#0 = main::cyclecount#0
// [9] call print_ulong_at -- call_phi_near
// [9] call print_ulong_at
// Print cycle count
jsr print_ulong_at
jmp __b1_from___b3
@ -813,7 +813,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN
sta.z print_uint_at.at+1
// [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
// [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __b1
// print_ulong_at::@1
@ -831,7 +831,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN+4
sta.z print_uint_at.at+1
// [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
// [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __breturn
// print_ulong_at::@return
@ -853,7 +853,7 @@ print_uint_at: {
// [33] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
print_uchar_at_from_print_uint_at:
// [33] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- call_phi_near
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __b1
// print_uint_at::@1
@ -873,7 +873,7 @@ print_uint_at: {
// [33] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
print_uchar_at_from___b1:
// [33] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- call_phi_near
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __breturn
// print_uint_at::@return
@ -906,7 +906,7 @@ print_uchar_at: {
// [43] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
print_char_at_from_print_uchar_at:
// [43] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
// [43] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- call_phi_near
// [43] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
jmp __b1
// print_uchar_at::@1
@ -929,7 +929,7 @@ print_uchar_at: {
// [43] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
print_char_at_from___b1:
// [43] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
// [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- call_phi_near
// [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
jmp __breturn
// print_uchar_at::@return
@ -1097,7 +1097,7 @@ main: {
// main::@1
__b1:
// clock_start()
// [2] call clock_start -- call_phi_near
// [2] call clock_start
// Reset & start the CIA#2 timer A+B
jsr clock_start
// main::@2
@ -1105,7 +1105,7 @@ main: {
// asm { nop }
nop
// clock()
// [4] call clock -- call_phi_near
// [4] call clock
jsr clock
// [5] clock::return#2 = clock::return#0
// main::@3
@ -1128,7 +1128,7 @@ main: {
sta.z cyclecount+3
// print_ulong_at(cyclecount, SCREEN)
// [8] print_ulong_at::dw#0 = main::cyclecount#0
// [9] call print_ulong_at -- call_phi_near
// [9] call print_ulong_at
// Print cycle count
jsr print_ulong_at
jmp __b1
@ -1222,7 +1222,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN
sta.z print_uint_at.at+1
// [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
// [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@1
// print_uint_at(WORD0(dw), at+4)
@ -1238,7 +1238,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN+4
sta.z print_uint_at.at+1
// [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
// [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@return
// }
@ -1259,7 +1259,7 @@ print_uint_at: {
// [28] call print_uchar_at
// [33] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
// [33] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- call_phi_near
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@1
// print_uchar_at(BYTE0(w), at+2)
@ -1277,7 +1277,7 @@ print_uint_at: {
// [31] call print_uchar_at
// [33] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
// [33] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- call_phi_near
// [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@return
// }
@ -1310,7 +1310,7 @@ print_uchar_at: {
// Table of hexadecimal digits
// [43] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
// [43] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
// [43] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- call_phi_near
// [43] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@1
// b&$f
@ -1332,7 +1332,7 @@ print_uchar_at: {
// [41] call print_char_at
// [43] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
// [43] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
// [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- call_phi_near
// [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@return
// }

View File

@ -657,7 +657,7 @@ ASSEMBLER BEFORE OPTIMIZATION
.segment Code
// main
main: {
// [1] call clock_start -- call_phi_near
// [1] call clock_start
// Reset & start the CIA#2 timer A+B
jsr clock_start
// [2] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1]
@ -666,14 +666,14 @@ main: {
jmp __b1
// main::@1
__b1:
// [3] call clock -- call_phi_near
// [3] call clock
jsr clock
// [4] clock::return#2 = clock::return#0
jmp __b2
// main::@2
__b2:
// [5] print_ulong_at::dw#0 = clock::return#2
// [6] call print_ulong_at -- call_phi_near
// [6] call print_ulong_at
jsr print_ulong_at
jmp __b1_from___b2
}
@ -760,7 +760,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN
sta.z print_uint_at.at+1
// [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
// [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __b1
// print_ulong_at::@1
@ -778,7 +778,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN+4
sta.z print_uint_at.at+1
// [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
// [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
jmp __breturn
// print_ulong_at::@return
@ -800,7 +800,7 @@ print_uint_at: {
// [30] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
print_uchar_at_from_print_uint_at:
// [30] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- call_phi_near
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __b1
// print_uint_at::@1
@ -820,7 +820,7 @@ print_uint_at: {
// [30] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
print_uchar_at_from___b1:
// [30] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- call_phi_near
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
jmp __breturn
// print_uint_at::@return
@ -853,7 +853,7 @@ print_uchar_at: {
// [40] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
print_char_at_from_print_uchar_at:
// [40] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
// [40] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- call_phi_near
// [40] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
jmp __b1
// print_uchar_at::@1
@ -876,7 +876,7 @@ print_uchar_at: {
// [40] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
print_char_at_from___b1:
// [40] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
// [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- call_phi_near
// [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
jmp __breturn
// print_uchar_at::@return
@ -1030,20 +1030,20 @@ Score: 467
// main
main: {
// clock_start()
// [1] call clock_start -- call_phi_near
// [1] call clock_start
// Reset & start the CIA#2 timer A+B
jsr clock_start
// [2] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1]
// main::@1
__b1:
// clock()
// [3] call clock -- call_phi_near
// [3] call clock
jsr clock
// [4] clock::return#2 = clock::return#0
// main::@2
// print_ulong_at(clock(), SCREEN)
// [5] print_ulong_at::dw#0 = clock::return#2
// [6] call print_ulong_at -- call_phi_near
// [6] call print_ulong_at
jsr print_ulong_at
jmp __b1
}
@ -1136,7 +1136,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN
sta.z print_uint_at.at+1
// [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
// [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@1
// print_uint_at(WORD0(dw), at+4)
@ -1152,7 +1152,7 @@ print_ulong_at: {
sta.z print_uint_at.at
lda #>SCREEN+4
sta.z print_uint_at.at+1
// [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
// [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@return
// }
@ -1173,7 +1173,7 @@ print_uint_at: {
// [25] call print_uchar_at
// [30] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at]
// [30] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- call_phi_near
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@1
// print_uchar_at(BYTE0(w), at+2)
@ -1191,7 +1191,7 @@ print_uint_at: {
// [28] call print_uchar_at
// [30] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at]
// [30] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- call_phi_near
// [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@return
// }
@ -1224,7 +1224,7 @@ print_uchar_at: {
// Table of hexadecimal digits
// [40] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at]
// [40] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy
// [40] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- call_phi_near
// [40] phi print_char_at::ch#2 = print_char_at::ch#0 [phi:print_uchar_at->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@1
// b&$f
@ -1246,7 +1246,7 @@ print_uchar_at: {
// [38] call print_char_at
// [40] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at]
// [40] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy
// [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- call_phi_near
// [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy
jsr print_char_at
// print_uchar_at::@return
// }

View File

@ -236,7 +236,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -383,7 +383,7 @@ __start: {
sta.z irq_raster_next
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return

View File

@ -235,7 +235,7 @@ ASSEMBLER BEFORE OPTIMIZATION
main: {
.label __0 = 4
// [1] call strlen
// [6] phi from main to strlen [phi:main->strlen] -- call_phi_near
// [6] phi from main to strlen [phi:main->strlen]
strlen_from_main:
jsr strlen
// [2] strlen::return#2 = strlen::len#2
@ -364,7 +364,7 @@ main: {
.label __0 = 4
// strlen(STR)
// [1] call strlen
// [6] phi from main to strlen [phi:main->strlen] -- call_phi_near
// [6] phi from main to strlen [phi:main->strlen]
jsr strlen
// strlen(STR)
// [2] strlen::return#2 = strlen::len#2

View File

@ -164,7 +164,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call strlen
// [4] phi from main to strlen [phi:main->strlen] -- call_phi_near
// [4] phi from main to strlen [phi:main->strlen]
strlen_from_main:
jsr strlen
jmp __b1
@ -234,7 +234,7 @@ Score: 24
main: {
// strlen(STR)
// [1] call strlen
// [4] phi from main to strlen [phi:main->strlen] -- call_phi_near
// [4] phi from main to strlen [phi:main->strlen]
jsr strlen
// main::@1
// SCREEN [0] = (char) strlen(STR)

View File

@ -569,7 +569,7 @@ main: {
memset_from_main:
// [17] phi memset::c#4 = ' ' [phi:main->memset#0] -- vbuxx=vbuc1
ldx #' '
// [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- call_phi_near
// [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- pvoz1=pvoc1
lda #<SCREEN
sta.z memset.str
lda #>SCREEN
@ -585,7 +585,7 @@ main: {
memset_from___b6:
// [17] phi memset::c#4 = WHITE [phi:main::@6->memset#0] -- vbuxx=vbuc1
ldx #WHITE
// [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- call_phi_near
// [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- pvoz1=pvoc1
lda #<COLS
sta.z memset.str
lda #>COLS
@ -866,7 +866,7 @@ main: {
// [17] phi from main to memset [phi:main->memset]
// [17] phi memset::c#4 = ' ' [phi:main->memset#0] -- vbuxx=vbuc1
ldx #' '
// [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- call_phi_near
// [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- pvoz1=pvoc1
lda #<SCREEN
sta.z memset.str
lda #>SCREEN
@ -879,7 +879,7 @@ main: {
// [17] phi from main::@6 to memset [phi:main::@6->memset]
// [17] phi memset::c#4 = WHITE [phi:main::@6->memset#0] -- vbuxx=vbuc1
ldx #WHITE
// [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- call_phi_near
// [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- pvoz1=pvoc1
lda #<COLS
sta.z memset.str
lda #>COLS

View File

@ -420,7 +420,7 @@ main: {
__b3:
// [7] OBJ_is_solid::oy#0 = main::oy#2 -- vbuaa=vbuz1
lda.z oy
// [8] call OBJ_is_solid -- call_phi_near
// [8] call OBJ_is_solid
jsr OBJ_is_solid
// [9] OBJ_is_solid::return#0 = OBJ_is_solid::return#3
jmp __b7
@ -467,7 +467,7 @@ OBJ_is_solid: {
// OBJ_is_solid::@1
__b1:
// [16] call tile_flag_at
// [19] phi from OBJ_is_solid::@1 to tile_flag_at [phi:OBJ_is_solid::@1->tile_flag_at] -- call_phi_near
// [19] phi from OBJ_is_solid::@1 to tile_flag_at [phi:OBJ_is_solid::@1->tile_flag_at]
tile_flag_at_from___b1:
jsr tile_flag_at
// [17] phi from OBJ_is_solid::@1 to OBJ_is_solid::@return [phi:OBJ_is_solid::@1->OBJ_is_solid::@return]
@ -612,7 +612,7 @@ main: {
// OBJ_is_solid(ox,oy)
// [7] OBJ_is_solid::oy#0 = main::oy#2 -- vbuaa=vbuz1
lda.z oy
// [8] call OBJ_is_solid -- call_phi_near
// [8] call OBJ_is_solid
jsr OBJ_is_solid
// [9] OBJ_is_solid::return#0 = OBJ_is_solid::return#3
// main::@7
@ -657,7 +657,7 @@ OBJ_is_solid: {
__b1:
// tile_flag_at()
// [16] call tile_flag_at
// [19] phi from OBJ_is_solid::@1 to tile_flag_at [phi:OBJ_is_solid::@1->tile_flag_at] -- call_phi_near
// [19] phi from OBJ_is_solid::@1 to tile_flag_at [phi:OBJ_is_solid::@1->tile_flag_at]
jsr tile_flag_at
// [17] phi from OBJ_is_solid::@1 to OBJ_is_solid::@return [phi:OBJ_is_solid::@1->OBJ_is_solid::@return]
// [17] phi OBJ_is_solid::return#3 = tile_flag_at::return#1 [phi:OBJ_is_solid::@1->OBJ_is_solid::@return#0] -- vboaa=vboc1

View File

@ -206,7 +206,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -227,7 +227,7 @@ main: {
// [7] *(SCREEN+2) = *main::addrA -- _deref_pbuc1=_deref_pbuc2
lda.z addrA
sta SCREEN+2
// [8] call sub -- call_phi_near
// [8] call sub
jsr sub
jmp __breturn
// main::@return
@ -315,7 +315,7 @@ __start: {
sta.z A
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return
@ -338,7 +338,7 @@ main: {
lda.z addrA
sta SCREEN+2
// sub()
// [8] call sub -- call_phi_near
// [8] call sub
jsr sub
// main::@return
// }

View File

@ -377,7 +377,7 @@ main: {
// main::@2
__b2:
// [7] call line
// [8] phi from main::@2 to line [phi:main::@2->line] -- call_phi_near
// [8] phi from main::@2 to line [phi:main::@2->line]
line_from___b2:
jsr line
jmp __b2_from___b2
@ -405,7 +405,7 @@ line: {
// line::@2
__b2:
// [12] plot::x#1 = line::x#2
// [13] call plot -- call_phi_near
// [13] call plot
jsr plot
jmp __b3
// line::@3
@ -535,7 +535,7 @@ main: {
__b2:
// line(0, 10)
// [7] call line
// [8] phi from main::@2 to line [phi:main::@2->line] -- call_phi_near
// [8] phi from main::@2 to line [phi:main::@2->line]
jsr line
jmp __b2
}
@ -561,7 +561,7 @@ line: {
__b2:
// plot(x)
// [12] plot::x#1 = line::x#2
// [13] call plot -- call_phi_near
// [13] call plot
jsr plot
// line::@3
// for(byte x = x0; x<=x1; x++)

View File

@ -269,7 +269,7 @@ main: {
// [1] call sum
// [14] phi from main to sum [phi:main->sum]
sum_from_main:
// [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- call_phi_near
// [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- vbuaa=vbuc1
lda #'c'
jsr sum
// [2] sum::return#0 = sum::return#3
@ -282,7 +282,7 @@ main: {
// [5] call sum
// [14] phi from main::@1 to sum [phi:main::@1->sum]
sum_from___b1:
// [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- call_phi_near
// [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- vbuaa=vbuc1
lda #'m'
jsr sum
// [6] sum::return#1 = sum::return#3
@ -295,7 +295,7 @@ main: {
// [9] call sum
// [14] phi from main::@2 to sum [phi:main::@2->sum]
sum_from___b2:
// [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- call_phi_near
// [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- vbuaa=vbuc1
lda #'l'
jsr sum
// [10] sum::return#2 = sum::return#3
@ -392,7 +392,7 @@ main: {
// sum(reverse, 'c')
// [1] call sum
// [14] phi from main to sum [phi:main->sum]
// [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- call_phi_near
// [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- vbuaa=vbuc1
lda #'c'
jsr sum
// sum(reverse, 'c')
@ -405,7 +405,7 @@ main: {
// sum(reverse, 'm')
// [5] call sum
// [14] phi from main::@1 to sum [phi:main::@1->sum]
// [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- call_phi_near
// [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- vbuaa=vbuc1
lda #'m'
jsr sum
// sum(reverse, 'm')
@ -418,7 +418,7 @@ main: {
// sum(reverse, 'l')
// [9] call sum
// [14] phi from main::@2 to sum [phi:main::@2->sum]
// [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- call_phi_near
// [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- vbuaa=vbuc1
lda #'l'
jsr sum
// sum(reverse, 'l')

View File

@ -204,7 +204,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -313,7 +313,7 @@ __start: {
sta.z idx
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return

View File

@ -1647,7 +1647,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call print_cls
// [7] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
// [7] phi from main to print_cls [phi:main->print_cls]
print_cls_from_main:
jsr print_cls
jmp __b1
@ -1657,7 +1657,7 @@ main: {
lda #GREEN
sta BG_COLOR
// [3] call test_bytes
// [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes] -- call_phi_near
// [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes]
test_bytes_from___b1:
jsr test_bytes
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -1666,7 +1666,7 @@ main: {
// main::@2
__b2:
// [5] call test_sbytes
// [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes] -- call_phi_near
// [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes]
test_sbytes_from___b2:
jsr test_sbytes
jmp __breturn
@ -1679,7 +1679,7 @@ main: {
// Clear the screen. Also resets current line/char cursor.
print_cls: {
// [8] call memset
// [28] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
// [28] phi from print_cls to memset [phi:print_cls->memset]
memset_from_print_cls:
jsr memset
jmp __breturn
@ -1712,7 +1712,7 @@ test_bytes: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [34] phi assert_byte::msg#3 = msg [phi:test_bytes->assert_byte#4] -- call_phi_near
// [34] phi assert_byte::msg#3 = msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
lda #<msg
sta.z assert_byte.msg
lda #>msg
@ -1736,7 +1736,7 @@ test_bytes: {
// [34] phi assert_byte::b#3 = test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1
ldx #bc
// [34] phi print_char_cursor#77 = print_char_cursor#98 [phi:test_bytes::@1->assert_byte#3] -- register_copy
// [34] phi assert_byte::msg#3 = msg1 [phi:test_bytes::@1->assert_byte#4] -- call_phi_near
// [34] phi assert_byte::msg#3 = msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_byte.msg
lda #>msg1
@ -1760,7 +1760,7 @@ test_bytes: {
// [34] phi assert_byte::b#3 = test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1
ldx #bd
// [34] phi print_char_cursor#77 = print_char_cursor#99 [phi:test_bytes::@2->assert_byte#3] -- register_copy
// [34] phi assert_byte::msg#3 = test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- call_phi_near
// [34] phi assert_byte::msg#3 = test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_byte.msg
lda #>msg2
@ -1792,7 +1792,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bb [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bb
// [47] phi assert_sbyte::msg#5 = msg [phi:test_sbytes->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg
sta.z assert_sbyte.msg
lda #>msg
@ -1811,7 +1811,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bc
// [47] phi assert_sbyte::msg#5 = msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_sbyte.msg
lda #>msg1
@ -1830,7 +1830,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bd
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_sbyte.msg
lda #>msg2
@ -1849,7 +1849,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsxx=vbsc1
ldx #be
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg3
sta.z assert_sbyte.msg
lda #>msg3
@ -1868,7 +1868,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bf [phi:test_sbytes::@4->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bf
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg4
sta.z assert_sbyte.msg
lda #>msg4
@ -1945,7 +1945,7 @@ assert_byte: {
// [61] phi from assert_byte to print_str [phi:assert_byte->print_str]
print_str_from_assert_byte:
// [61] phi print_char_cursor#87 = print_char_cursor#77 [phi:assert_byte->print_str#0] -- register_copy
// [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- register_copy
jsr print_str
// [37] phi from assert_byte to assert_byte::@4 [phi:assert_byte->assert_byte::@4]
__b4_from_assert_byte:
@ -1956,7 +1956,7 @@ assert_byte: {
// [61] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str]
print_str_from___b4:
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@4->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -1977,7 +1977,7 @@ assert_byte: {
// [61] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
print_str_from___b3:
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@3->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -1992,7 +1992,7 @@ assert_byte: {
// [43] call print_ln
// [68] phi from assert_byte::@2 to print_ln [phi:assert_byte::@2->print_ln]
print_ln_from___b2:
// [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- call_phi_near
// [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// assert_byte::@return
@ -2008,7 +2008,7 @@ assert_byte: {
// [61] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
print_str_from___b1:
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@1->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2031,7 +2031,7 @@ assert_sbyte: {
// [61] phi from assert_sbyte to print_str [phi:assert_sbyte->print_str]
print_str_from_assert_sbyte:
// [61] phi print_char_cursor#87 = print_char_cursor#92 [phi:assert_sbyte->print_str#0] -- register_copy
// [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- register_copy
jsr print_str
// [51] phi from assert_sbyte to assert_sbyte::@4 [phi:assert_sbyte->assert_sbyte::@4]
__b4_from_assert_sbyte:
@ -2042,7 +2042,7 @@ assert_sbyte: {
// [61] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str]
print_str_from___b4:
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@4->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2063,7 +2063,7 @@ assert_sbyte: {
// [61] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
print_str_from___b3:
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@3->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -2078,7 +2078,7 @@ assert_sbyte: {
// [57] call print_ln
// [68] phi from assert_sbyte::@2 to print_ln [phi:assert_sbyte::@2->print_ln]
print_ln_from___b2:
// [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- call_phi_near
// [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// assert_sbyte::@return
@ -2094,7 +2094,7 @@ assert_sbyte: {
// [61] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
print_str_from___b1:
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@1->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2130,7 +2130,7 @@ print_str: {
// [65] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1
ldy #0
lda (str),y
// [66] call print_char -- call_phi_near
// [66] call print_char
jsr print_char
jmp __b3
// print_str::@3
@ -2438,7 +2438,7 @@ Score: 1783
main: {
// print_cls()
// [1] call print_cls
// [7] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
// [7] phi from main to print_cls [phi:main->print_cls]
jsr print_cls
// main::@1
// *BG_COLOR = GREEN
@ -2447,13 +2447,13 @@ main: {
sta BG_COLOR
// test_bytes()
// [3] call test_bytes
// [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes] -- call_phi_near
// [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes]
jsr test_bytes
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// test_sbytes()
// [5] call test_sbytes
// [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes] -- call_phi_near
// [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes]
jsr test_sbytes
// main::@return
// }
@ -2465,7 +2465,7 @@ main: {
print_cls: {
// memset(print_screen, ' ', 1000)
// [8] call memset
// [28] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
// [28] phi from print_cls to memset [phi:print_cls->memset]
jsr memset
// print_cls::@return
// }
@ -2496,7 +2496,7 @@ test_bytes: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [34] phi assert_byte::msg#3 = msg [phi:test_bytes->assert_byte#4] -- call_phi_near
// [34] phi assert_byte::msg#3 = msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
lda #<msg
sta.z assert_byte.msg
lda #>msg
@ -2518,7 +2518,7 @@ test_bytes: {
// [34] phi assert_byte::b#3 = test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1
ldx #bc
// [34] phi print_char_cursor#77 = print_char_cursor#98 [phi:test_bytes::@1->assert_byte#3] -- register_copy
// [34] phi assert_byte::msg#3 = msg1 [phi:test_bytes::@1->assert_byte#4] -- call_phi_near
// [34] phi assert_byte::msg#3 = msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_byte.msg
lda #>msg1
@ -2540,7 +2540,7 @@ test_bytes: {
// [34] phi assert_byte::b#3 = test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1
ldx #bd
// [34] phi print_char_cursor#77 = print_char_cursor#99 [phi:test_bytes::@2->assert_byte#3] -- register_copy
// [34] phi assert_byte::msg#3 = test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- call_phi_near
// [34] phi assert_byte::msg#3 = test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_byte.msg
lda #>msg2
@ -2571,7 +2571,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bb [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bb
// [47] phi assert_sbyte::msg#5 = msg [phi:test_sbytes->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg
sta.z assert_sbyte.msg
lda #>msg
@ -2587,7 +2587,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bc
// [47] phi assert_sbyte::msg#5 = msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_sbyte.msg
lda #>msg1
@ -2603,7 +2603,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bd
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_sbyte.msg
lda #>msg2
@ -2619,7 +2619,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsxx=vbsc1
ldx #be
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg3
sta.z assert_sbyte.msg
lda #>msg3
@ -2635,7 +2635,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [47] phi assert_sbyte::b#5 = test_sbytes::bf [phi:test_sbytes::@4->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bf
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- call_phi_near
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg4
sta.z assert_sbyte.msg
lda #>msg4
@ -2710,7 +2710,7 @@ assert_byte: {
// [36] call print_str
// [61] phi from assert_byte to print_str [phi:assert_byte->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#77 [phi:assert_byte->print_str#0] -- register_copy
// [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- register_copy
jsr print_str
// [37] phi from assert_byte to assert_byte::@4 [phi:assert_byte->assert_byte::@4]
// assert_byte::@4
@ -2718,7 +2718,7 @@ assert_byte: {
// [38] call print_str
// [61] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@4->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2735,7 +2735,7 @@ assert_byte: {
// [41] call print_str
// [61] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@3->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -2747,7 +2747,7 @@ assert_byte: {
// print_ln()
// [43] call print_ln
// [68] phi from assert_byte::@2 to print_ln [phi:assert_byte::@2->print_ln]
// [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- call_phi_near
// [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- register_copy
jsr print_ln
// assert_byte::@return
// }
@ -2763,7 +2763,7 @@ assert_byte: {
// [46] call print_str
// [61] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@1->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2787,7 +2787,7 @@ assert_sbyte: {
// [50] call print_str
// [61] phi from assert_sbyte to print_str [phi:assert_sbyte->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#92 [phi:assert_sbyte->print_str#0] -- register_copy
// [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- register_copy
jsr print_str
// [51] phi from assert_sbyte to assert_sbyte::@4 [phi:assert_sbyte->assert_sbyte::@4]
// assert_sbyte::@4
@ -2795,7 +2795,7 @@ assert_sbyte: {
// [52] call print_str
// [61] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@4->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2812,7 +2812,7 @@ assert_sbyte: {
// [55] call print_str
// [61] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@3->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -2824,7 +2824,7 @@ assert_sbyte: {
// print_ln()
// [57] call print_ln
// [68] phi from assert_sbyte::@2 to print_ln [phi:assert_sbyte::@2->print_ln]
// [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- call_phi_near
// [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- register_copy
jsr print_ln
// assert_sbyte::@return
// }
@ -2840,7 +2840,7 @@ assert_sbyte: {
// [60] call print_str
// [61] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
// [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@1->print_str#0] -- register_copy
// [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- call_phi_near
// [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2874,7 +2874,7 @@ print_str: {
// [65] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1
ldy #0
lda (str),y
// [66] call print_char -- call_phi_near
// [66] call print_char
jsr print_char
// print_str::@3
// print_char(*(str++));

View File

@ -180,7 +180,7 @@ ASSEMBLER BEFORE OPTIMIZATION
.segment Code
// main
main: {
// [1] call copy -- call_phi_near
// [1] call copy
jsr copy
jmp __breturn
// main::@return
@ -267,7 +267,7 @@ Score: 41
// main
main: {
// copy(B, A)
// [1] call copy -- call_phi_near
// [1] call copy
jsr copy
// main::@return
// }

View File

@ -1758,7 +1758,7 @@ main: {
.label x = $f
.label y = $17
// [1] call init_font_hex
// [22] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
// [22] phi from main to init_font_hex [phi:main->init_font_hex]
init_font_hex_from_main:
jsr init_font_hex
// [2] phi from main to main::toD0181 [phi:main->main::toD0181]
@ -1816,7 +1816,7 @@ main: {
sta.z yw
// [8] atan2_16::x#0 = (int)main::xw#0
// [9] atan2_16::y#0 = (int)main::yw#0
// [10] call atan2_16 -- call_phi_near
// [10] call atan2_16
jsr atan2_16
// [11] atan2_16::return#2 = atan2_16::return#0
jmp __b6
@ -2636,7 +2636,7 @@ main: {
.label y = $17
// init_font_hex(CHARSET)
// [1] call init_font_hex
// [22] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
// [22] phi from main to init_font_hex [phi:main->init_font_hex]
jsr init_font_hex
// [2] phi from main to main::toD0181 [phi:main->main::toD0181]
// main::toD0181
@ -2683,7 +2683,7 @@ main: {
// word angle_w = atan2_16(xw, yw)
// [8] atan2_16::x#0 = (int)main::xw#0
// [9] atan2_16::y#0 = (int)main::yw#0
// [10] call atan2_16 -- call_phi_near
// [10] call atan2_16
jsr atan2_16
// [11] atan2_16::return#2 = atan2_16::return#0
// main::@6

View File

@ -2027,7 +2027,7 @@ main: {
// Clear the screen by modifying the charset
.label clear_char = $18
// [1] call init_font_hex
// [10] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
// [10] phi from main to init_font_hex [phi:main->init_font_hex]
init_font_hex_from_main:
jsr init_font_hex
// [2] phi from main to main::toD0181 [phi:main->main::toD0181]
@ -2042,7 +2042,7 @@ main: {
lda #toD0181_return
sta D018
// [4] call init_angle_screen
// [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen] -- call_phi_near
// [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen]
init_angle_screen_from___b5:
jsr init_angle_screen
// [5] phi from main::@5 to main::@1 [phi:main::@5->main::@1]
@ -2357,7 +2357,7 @@ init_angle_screen: {
sty.z yw
// [47] atan2_16::x#0 = (int)init_angle_screen::xw#0
// [48] atan2_16::y#0 = (int)init_angle_screen::yw#0
// [49] call atan2_16 -- call_phi_near
// [49] call atan2_16
jsr atan2_16
// [50] atan2_16::return#2 = atan2_16::return#0
jmp __b5
@ -3059,7 +3059,7 @@ main: {
.label clear_char = $18
// init_font_hex(CHARSET)
// [1] call init_font_hex
// [10] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
// [10] phi from main to init_font_hex [phi:main->init_font_hex]
jsr init_font_hex
// [2] phi from main to main::toD0181 [phi:main->main::toD0181]
// main::toD0181
@ -3070,7 +3070,7 @@ main: {
sta D018
// init_angle_screen(SCREEN)
// [4] call init_angle_screen
// [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen] -- call_phi_near
// [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen]
jsr init_angle_screen
// [5] phi from main::@5 to main::@1 [phi:main::@5->main::@1]
// [5] phi main::clear_char#5 = CHARSET [phi:main::@5->main::@1#0] -- pbuz1=pbuc1
@ -3373,7 +3373,7 @@ init_angle_screen: {
// word angle_w = atan2_16(xw, yw)
// [47] atan2_16::x#0 = (int)init_angle_screen::xw#0
// [48] atan2_16::y#0 = (int)init_angle_screen::yw#0
// [49] call atan2_16 -- call_phi_near
// [49] call atan2_16
jsr atan2_16
// [50] atan2_16::return#2 = atan2_16::return#0
// init_angle_screen::@5

View File

@ -1440,7 +1440,7 @@ main: {
.label x = $c
.label y = $d
// [1] call init_font_hex
// [18] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
// [18] phi from main to init_font_hex [phi:main->init_font_hex]
init_font_hex_from_main:
jsr init_font_hex
// [2] phi from main to main::toD0181 [phi:main->main::toD0181]
@ -1488,7 +1488,7 @@ main: {
__b2:
// [6] atan2_8::x#0 = main::x#2
// [7] atan2_8::y#0 = main::y#4
// [8] call atan2_8 -- call_phi_near
// [8] call atan2_8
jsr atan2_8
// [9] atan2_8::return#2 = atan2_8::return#0 -- vbuaa=vbuxx
txa
@ -2171,7 +2171,7 @@ main: {
.label y = $d
// init_font_hex(CHARSET)
// [1] call init_font_hex
// [18] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
// [18] phi from main to init_font_hex [phi:main->init_font_hex]
jsr init_font_hex
// [2] phi from main to main::toD0181 [phi:main->main::toD0181]
// main::toD0181
@ -2207,7 +2207,7 @@ main: {
// byte angle = atan2_8(x, y)
// [6] atan2_8::x#0 = main::x#2
// [7] atan2_8::y#0 = main::y#4
// [8] call atan2_8 -- call_phi_near
// [8] call atan2_8
jsr atan2_8
// [9] atan2_8::return#2 = atan2_8::return#0 -- vbuaa=vbuxx
txa

View File

@ -243,7 +243,7 @@ main: {
sum_from_main:
// [10] phi sum::b#2 = 2 [phi:main->sum#0] -- vbuaa=vbuc1
lda #2
// [10] phi sum::a#2 = 'a' [phi:main->sum#1] -- call_phi_near
// [10] phi sum::a#2 = 'a' [phi:main->sum#1] -- vbuxx=vbuc1
ldx #'a'
jsr sum
// [2] sum::return#0 = sum::return#2
@ -258,7 +258,7 @@ main: {
sum_from___b1:
// [10] phi sum::b#2 = $c [phi:main::@1->sum#0] -- vbuaa=vbuc1
lda #$c
// [10] phi sum::a#2 = 'a' [phi:main::@1->sum#1] -- call_phi_near
// [10] phi sum::a#2 = 'a' [phi:main::@1->sum#1] -- vbuxx=vbuc1
ldx #'a'
jsr sum
// [6] sum::return#1 = sum::return#2
@ -353,7 +353,7 @@ main: {
// [10] phi from main to sum [phi:main->sum]
// [10] phi sum::b#2 = 2 [phi:main->sum#0] -- vbuaa=vbuc1
lda #2
// [10] phi sum::a#2 = 'a' [phi:main->sum#1] -- call_phi_near
// [10] phi sum::a#2 = 'a' [phi:main->sum#1] -- vbuxx=vbuc1
ldx #'a'
jsr sum
// sum('a', 2)
@ -368,7 +368,7 @@ main: {
// [10] phi from main::@1 to sum [phi:main::@1->sum]
// [10] phi sum::b#2 = $c [phi:main::@1->sum#0] -- vbuaa=vbuc1
lda #$c
// [10] phi sum::a#2 = 'a' [phi:main::@1->sum#1] -- call_phi_near
// [10] phi sum::a#2 = 'a' [phi:main::@1->sum#1] -- vbuxx=vbuc1
ldx #'a'
jsr sum
// sum('a', 12)

View File

@ -438,7 +438,7 @@ main: {
out_from_main:
// [24] phi i#27 = 0 [phi:main->out#0] -- vbuyy=vbuc1
ldy #0
// [24] phi out::c#10 = main::reg_zp_flex [phi:main->out#1] -- call_phi_near
// [24] phi out::c#10 = main::reg_zp_flex [phi:main->out#1] -- vbuxx=vbuc1
ldx #reg_zp_flex
jsr out
jmp __b1
@ -450,7 +450,7 @@ main: {
// [24] phi from main::@1 to out [phi:main::@1->out]
out_from___b1:
// [24] phi i#27 = i#11 [phi:main::@1->out#0] -- register_copy
// [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- register_copy
jsr out
// [7] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
__b2_from___b1:
@ -461,7 +461,7 @@ main: {
// [24] phi from main::@2 to out [phi:main::@2->out]
out_from___b2:
// [24] phi i#27 = i#11 [phi:main::@2->out#0] -- register_copy
// [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- call_phi_near
// [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- vbuxx=vbuc1
ldx #reg_mem_flex
jsr out
jmp __b3
@ -473,7 +473,7 @@ main: {
// [24] phi from main::@3 to out [phi:main::@3->out]
out_from___b3:
// [24] phi i#27 = i#11 [phi:main::@3->out#0] -- register_copy
// [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- register_copy
jsr out
// [11] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
__b4_from___b3:
@ -484,7 +484,7 @@ main: {
// [24] phi from main::@4 to out [phi:main::@4->out]
out_from___b4:
// [24] phi i#27 = i#11 [phi:main::@4->out#0] -- register_copy
// [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- call_phi_near
// [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- vbuxx=vbuc1
ldx #default_default
jsr out
// [13] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
@ -496,7 +496,7 @@ main: {
// [24] phi from main::@5 to out [phi:main::@5->out]
out_from___b5:
// [24] phi i#27 = i#11 [phi:main::@5->out#0] -- register_copy
// [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- call_phi_near
// [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- vbuxx=vbuc1
ldx #reg_default
jsr out
// [15] phi from main::@5 to main::@6 [phi:main::@5->main::@6]
@ -508,7 +508,7 @@ main: {
// [24] phi from main::@6 to out [phi:main::@6->out]
out_from___b6:
// [24] phi i#27 = i#11 [phi:main::@6->out#0] -- register_copy
// [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- call_phi_near
// [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- vbuxx=vbuc1
ldx #default_zp_flex
jsr out
jmp __b7
@ -520,7 +520,7 @@ main: {
// [24] phi from main::@7 to out [phi:main::@7->out]
out_from___b7:
// [24] phi i#27 = i#11 [phi:main::@7->out#0] -- register_copy
// [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- register_copy
jsr out
// [19] phi from main::@7 to main::@8 [phi:main::@7->main::@8]
__b8_from___b7:
@ -531,7 +531,7 @@ main: {
// [24] phi from main::@8 to out [phi:main::@8->out]
out_from___b8:
// [24] phi i#27 = i#11 [phi:main::@8->out#0] -- register_copy
// [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- call_phi_near
// [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- vbuxx=vbuc1
ldx #default_mem_flex
jsr out
jmp __b9
@ -543,7 +543,7 @@ main: {
// [24] phi from main::@9 to out [phi:main::@9->out]
out_from___b9:
// [24] phi i#27 = i#11 [phi:main::@9->out#0] -- register_copy
// [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- register_copy
jsr out
jmp __breturn
// main::@return
@ -694,7 +694,7 @@ main: {
// [24] phi from main to out [phi:main->out]
// [24] phi i#27 = 0 [phi:main->out#0] -- vbuyy=vbuc1
ldy #0
// [24] phi out::c#10 = main::reg_zp_flex [phi:main->out#1] -- call_phi_near
// [24] phi out::c#10 = main::reg_zp_flex [phi:main->out#1] -- vbuxx=vbuc1
ldx #reg_zp_flex
jsr out
// main::@1
@ -704,7 +704,7 @@ main: {
// [6] call out
// [24] phi from main::@1 to out [phi:main::@1->out]
// [24] phi i#27 = i#11 [phi:main::@1->out#0] -- register_copy
// [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- register_copy
jsr out
// [7] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
@ -712,7 +712,7 @@ main: {
// [8] call out
// [24] phi from main::@2 to out [phi:main::@2->out]
// [24] phi i#27 = i#11 [phi:main::@2->out#0] -- register_copy
// [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- call_phi_near
// [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- vbuxx=vbuc1
ldx #reg_mem_flex
jsr out
// main::@3
@ -722,7 +722,7 @@ main: {
// [10] call out
// [24] phi from main::@3 to out [phi:main::@3->out]
// [24] phi i#27 = i#11 [phi:main::@3->out#0] -- register_copy
// [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- register_copy
jsr out
// [11] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
// main::@4
@ -730,7 +730,7 @@ main: {
// [12] call out
// [24] phi from main::@4 to out [phi:main::@4->out]
// [24] phi i#27 = i#11 [phi:main::@4->out#0] -- register_copy
// [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- call_phi_near
// [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- vbuxx=vbuc1
ldx #default_default
jsr out
// [13] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
@ -739,7 +739,7 @@ main: {
// [14] call out
// [24] phi from main::@5 to out [phi:main::@5->out]
// [24] phi i#27 = i#11 [phi:main::@5->out#0] -- register_copy
// [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- call_phi_near
// [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- vbuxx=vbuc1
ldx #reg_default
jsr out
// [15] phi from main::@5 to main::@6 [phi:main::@5->main::@6]
@ -748,7 +748,7 @@ main: {
// [16] call out
// [24] phi from main::@6 to out [phi:main::@6->out]
// [24] phi i#27 = i#11 [phi:main::@6->out#0] -- register_copy
// [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- call_phi_near
// [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- vbuxx=vbuc1
ldx #default_zp_flex
jsr out
// main::@7
@ -758,7 +758,7 @@ main: {
// [18] call out
// [24] phi from main::@7 to out [phi:main::@7->out]
// [24] phi i#27 = i#11 [phi:main::@7->out#0] -- register_copy
// [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- register_copy
jsr out
// [19] phi from main::@7 to main::@8 [phi:main::@7->main::@8]
// main::@8
@ -766,7 +766,7 @@ main: {
// [20] call out
// [24] phi from main::@8 to out [phi:main::@8->out]
// [24] phi i#27 = i#11 [phi:main::@8->out#0] -- register_copy
// [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- call_phi_near
// [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- vbuxx=vbuc1
ldx #default_mem_flex
jsr out
// main::@9
@ -776,7 +776,7 @@ main: {
// [22] call out
// [24] phi from main::@9 to out [phi:main::@9->out]
// [24] phi i#27 = i#11 [phi:main::@9->out#0] -- register_copy
// [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- call_phi_near
// [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- register_copy
jsr out
// main::@return
// }

View File

@ -181,7 +181,7 @@ __start: {
// __start::@1
__b1:
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -287,7 +287,7 @@ __start: {
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [4] return

View File

@ -179,7 +179,7 @@ __start: {
// __start::@1
__b1:
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
main_from___b1:
jsr main
jmp __breturn
@ -285,7 +285,7 @@ __start: {
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
// [5] phi from __start::@1 to main [phi:__start::@1->main]
jsr main
// __start::@return
// [4] return

View File

@ -518,7 +518,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -791,7 +791,7 @@ __start: {
sta.z idx_nssa_g
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return

View File

@ -469,7 +469,7 @@ main: {
.label ch = 6
.label x = 7
// [1] call memset
// [13] phi from main to memset [phi:main->memset] -- call_phi_near
// [13] phi from main to memset [phi:main->memset]
memset_from_main:
jsr memset
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -686,7 +686,7 @@ main: {
.label x = 7
// memset(SCREEN, ' ', 1000)
// [1] call memset
// [13] phi from main to memset [phi:main->memset] -- call_phi_near
// [13] phi from main to memset [phi:main->memset]
jsr memset
// [2] phi from main to main::@1 [phi:main->main::@1]
// [2] phi main::x#4 = 0 [phi:main->main::@1#0] -- vbuz1=vbuc1

View File

@ -245,7 +245,7 @@ main: {
// [5] phi screen_idx#11 = 0 [phi:main->print#0] -- vbuz1=vbuc1
lda #0
sta.z screen_idx
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- pbuz1=pbuc1
lda #<msg1
sta.z print.m
lda #>msg1
@ -260,7 +260,7 @@ main: {
// [5] phi from main::@1 to print [phi:main::@1->print]
print_from___b1:
// [5] phi screen_idx#11 = screen_idx#12 [phi:main::@1->print#0] -- register_copy
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1
lda #<msg2
sta.z print.m
lda #>msg2
@ -358,7 +358,7 @@ main: {
// [5] phi screen_idx#11 = 0 [phi:main->print#0] -- vbuz1=vbuc1
lda #0
sta.z screen_idx
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- pbuz1=pbuc1
lda #<msg1
sta.z print.m
lda #>msg1
@ -370,7 +370,7 @@ main: {
// [3] call print
// [5] phi from main::@1 to print [phi:main::@1->print]
// [5] phi screen_idx#11 = screen_idx#12 [phi:main::@1->print#0] -- register_copy
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1
lda #<msg2
sta.z print.m
lda #>msg2

View File

@ -225,7 +225,7 @@ main: {
print_from_main:
// [5] phi idx#11 = 0 [phi:main->print#0] -- vbuxx=vbuc1
ldx #0
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- pbuz1=pbuc1
lda #<msg1
sta.z print.m
lda #>msg1
@ -240,7 +240,7 @@ main: {
// [5] phi from main::@1 to print [phi:main::@1->print]
print_from___b1:
// [5] phi idx#11 = idx#12 [phi:main::@1->print#0] -- register_copy
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1
lda #<msg2
sta.z print.m
lda #>msg2
@ -327,7 +327,7 @@ main: {
// [5] phi from main to print [phi:main->print]
// [5] phi idx#11 = 0 [phi:main->print#0] -- vbuxx=vbuc1
ldx #0
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- pbuz1=pbuc1
lda #<msg1
sta.z print.m
lda #>msg1
@ -339,7 +339,7 @@ main: {
// [3] call print
// [5] phi from main::@1 to print [phi:main::@1->print]
// [5] phi idx#11 = idx#12 [phi:main::@1->print#0] -- register_copy
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1
lda #<msg2
sta.z print.m
lda #>msg2

View File

@ -360,7 +360,7 @@ main: {
// [0] chrout::petscii = $95 -- vbuz1=vbuc1
lda #$95
sta.z chrout.petscii
// [1] call chrout -- call_phi_near
// [1] call chrout
jsr chrout
jmp __b1
// main::@1
@ -368,7 +368,7 @@ main: {
// [2] chrout::petscii = *points -- vbuz1=_deref_pbuc1
lda points
sta.z chrout.petscii
// [3] call chrout -- call_phi_near
// [3] call chrout
jsr chrout
jmp __b2
// main::@2
@ -376,7 +376,7 @@ main: {
// [4] chrout::petscii = *(points+1) -- vbuz1=_deref_pbuc1
lda points+1
sta.z chrout.petscii
// [5] call chrout -- call_phi_near
// [5] call chrout
jsr chrout
jmp __b3
// main::@3
@ -384,7 +384,7 @@ main: {
// [6] chrout::petscii = *(points+2) -- vbuz1=_deref_pbuc1
lda points+2
sta.z chrout.petscii
// [7] call chrout -- call_phi_near
// [7] call chrout
jsr chrout
jmp __b4
// main::@4
@ -392,7 +392,7 @@ main: {
// [8] chrout::petscii = *(points+3) -- vbuz1=_deref_pbuc1
lda points+3
sta.z chrout.petscii
// [9] call chrout -- call_phi_near
// [9] call chrout
jsr chrout
jmp __breturn
// main::@return
@ -468,35 +468,35 @@ main: {
// [0] chrout::petscii = $95 -- vbuz1=vbuc1
lda #$95
sta.z chrout.petscii
// [1] call chrout -- call_phi_near
// [1] call chrout
jsr chrout
// main::@1
// chrout(points[0])
// [2] chrout::petscii = *points -- vbuz1=_deref_pbuc1
lda points
sta.z chrout.petscii
// [3] call chrout -- call_phi_near
// [3] call chrout
jsr chrout
// main::@2
// chrout(points[1])
// [4] chrout::petscii = *(points+1) -- vbuz1=_deref_pbuc1
lda points+1
sta.z chrout.petscii
// [5] call chrout -- call_phi_near
// [5] call chrout
jsr chrout
// main::@3
// chrout(points[2])
// [6] chrout::petscii = *(points+2) -- vbuz1=_deref_pbuc1
lda points+2
sta.z chrout.petscii
// [7] call chrout -- call_phi_near
// [7] call chrout
jsr chrout
// main::@4
// chrout(points[3])
// [8] chrout::petscii = *(points+3) -- vbuz1=_deref_pbuc1
lda points+3
sta.z chrout.petscii
// [9] call chrout -- call_phi_near
// [9] call chrout
jsr chrout
// main::@return
// }

View File

@ -214,7 +214,7 @@ main: {
// [4] chrout::petscii = brick -- vbuz1=vbuc1
lda #brick
sta.z chrout.petscii
// [5] call chrout -- call_phi_near
// [5] call chrout
jsr chrout
jmp __b2
// main::@2
@ -320,7 +320,7 @@ main: {
// [4] chrout::petscii = brick -- vbuz1=vbuc1
lda #brick
sta.z chrout.petscii
// [5] call chrout -- call_phi_near
// [5] call chrout
jsr chrout
// main::@2
// ++k;

File diff suppressed because it is too large Load Diff

View File

@ -210,7 +210,7 @@ main: {
// main::@1
__b1:
// [2] call menu
// [3] phi from main::@1 to menu [phi:main::@1->menu] -- call_phi_near
// [3] phi from main::@1 to menu [phi:main::@1->menu]
menu_from___b1:
jsr menu
jmp __b1_from___b1
@ -223,7 +223,7 @@ menu: {
// menu::@1
__b1:
// [5] call mode
// [7] phi from menu::@1 to mode [phi:menu::@1->mode] -- call_phi_near
// [7] phi from menu::@1 to mode [phi:menu::@1->mode]
mode_from___b1:
jsr mode
jmp __breturn
@ -301,7 +301,7 @@ main: {
__b1:
// menu()
// [2] call menu
// [3] phi from main::@1 to menu [phi:main::@1->menu] -- call_phi_near
// [3] phi from main::@1 to menu [phi:main::@1->menu]
jsr menu
jmp __b1
}
@ -311,7 +311,7 @@ menu: {
// menu::@1
// mode()
// [5] call mode
// [7] phi from menu::@1 to mode [phi:menu::@1->mode] -- call_phi_near
// [7] phi from menu::@1 to mode [phi:menu::@1->mode]
jsr mode
// menu::@return
// }

View File

@ -120,7 +120,7 @@ main: {
// [0] *main::SCREEN = main::ON -- _deref_pbuc1=vbuc2
lda #ON
sta SCREEN
// [1] call test -- call_phi_near
// [1] call test
jsr test
jmp __breturn
// main::@return
@ -186,7 +186,7 @@ main: {
lda #ON
sta SCREEN
// test()
// [1] call test -- call_phi_near
// [1] call test
jsr test
// main::@return
// }

View File

@ -1274,7 +1274,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call print_cls
// [15] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
// [15] phi from main to print_cls [phi:main->print_cls]
print_cls_from_main:
jsr print_cls
// [2] phi from main to main::@1 [phi:main->main::@1]
@ -1298,7 +1298,7 @@ main: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- vbuz1=vbuc1
lda #$80
sta.z print_euclid.a
jsr print_euclid
@ -1318,7 +1318,7 @@ main: {
lda #$45
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#65 [phi:main::@2->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- vbuz1=vbuc1
lda #$a9
sta.z print_euclid.a
jsr print_euclid
@ -1338,7 +1338,7 @@ main: {
lda #$37
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#66 [phi:main::@3->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- vbuz1=vbuc1
lda #$9b
sta.z print_euclid.a
jsr print_euclid
@ -1358,7 +1358,7 @@ main: {
lda #3
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#67 [phi:main::@4->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- vbuz1=vbuc1
lda #$c7
sta.z print_euclid.a
jsr print_euclid
@ -1378,7 +1378,7 @@ main: {
lda #$1a
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#68 [phi:main::@5->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- vbuz1=vbuc1
lda #$5b
sta.z print_euclid.a
jsr print_euclid
@ -1398,7 +1398,7 @@ main: {
lda #$bb
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#69 [phi:main::@6->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- vbuz1=vbuc1
lda #$77
sta.z print_euclid.a
jsr print_euclid
@ -1412,7 +1412,7 @@ main: {
// Clear the screen. Also resets current line/char cursor.
print_cls: {
// [16] call memset
// [36] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
// [36] phi from print_cls to memset [phi:print_cls->memset]
memset_from_print_cls:
jsr memset
jmp __breturn
@ -1432,7 +1432,7 @@ print_euclid: {
// [42] phi from print_euclid to print_uchar [phi:print_euclid->print_uchar]
print_uchar_from_print_euclid:
// [42] phi print_char_cursor#53 = print_char_cursor#55 [phi:print_euclid->print_uchar#0] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- call_phi_near
// [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- register_copy
jsr print_uchar
// [21] phi from print_euclid to print_euclid::@1 [phi:print_euclid->print_euclid::@1]
__b1_from_print_euclid:
@ -1443,7 +1443,7 @@ print_euclid: {
// [50] phi from print_euclid::@1 to print_char [phi:print_euclid::@1->print_char]
print_char_from___b1:
// [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@1->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
jmp __b2
@ -1455,7 +1455,7 @@ print_euclid: {
// [42] phi from print_euclid::@2 to print_uchar [phi:print_euclid::@2->print_uchar]
print_uchar_from___b2:
// [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@2->print_uchar#0] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- call_phi_near
// [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- register_copy
jsr print_uchar
// [25] phi from print_euclid::@2 to print_euclid::@3 [phi:print_euclid::@2->print_euclid::@3]
__b3_from___b2:
@ -1466,7 +1466,7 @@ print_euclid: {
// [50] phi from print_euclid::@3 to print_char [phi:print_euclid::@3->print_char]
print_char_from___b3:
// [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@3->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
jmp __b4
@ -1476,7 +1476,7 @@ print_euclid: {
// [28] euclid::b#0 = print_euclid::b#10 -- vbuxx=vbuz1
ldx.z b
// [29] call euclid
// [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] -- call_phi_near
// [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid]
euclid_from___b4:
jsr euclid
// [30] euclid::return#0 = euclid::a#2 -- vbuaa=vbuz1
@ -1490,7 +1490,7 @@ print_euclid: {
// [42] phi from print_euclid::@5 to print_uchar [phi:print_euclid::@5->print_uchar]
print_uchar_from___b5:
// [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@5->print_uchar#0] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- call_phi_near
// [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- register_copy
jsr print_uchar
// [33] phi from print_euclid::@5 to print_euclid::@6 [phi:print_euclid::@5->print_euclid::@6]
__b6_from___b5:
@ -1498,7 +1498,7 @@ print_euclid: {
// print_euclid::@6
__b6:
// [34] call print_ln
// [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] -- call_phi_near
// [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln]
print_ln_from___b6:
jsr print_ln
jmp __breturn
@ -1572,7 +1572,7 @@ print_uchar: {
// [50] phi from print_uchar to print_char [phi:print_uchar->print_char]
print_char_from_print_uchar:
// [50] phi print_char_cursor#32 = print_char_cursor#53 [phi:print_uchar->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy
jsr print_char
jmp __b1
// print_uchar::@1
@ -1586,7 +1586,7 @@ print_uchar: {
// [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
print_char_from___b1:
// [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_uchar::@1->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy
jsr print_char
jmp __breturn
// print_uchar::@return
@ -1885,7 +1885,7 @@ Score: 1607
main: {
// print_cls()
// [1] call print_cls
// [15] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
// [15] phi from main to print_cls [phi:main->print_cls]
jsr print_cls
// [2] phi from main to main::@1 [phi:main->main::@1]
// main::@1
@ -1905,7 +1905,7 @@ main: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- vbuz1=vbuc1
lda #$80
sta.z print_euclid.a
jsr print_euclid
@ -1923,7 +1923,7 @@ main: {
lda #$45
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#65 [phi:main::@2->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- vbuz1=vbuc1
lda #$a9
sta.z print_euclid.a
jsr print_euclid
@ -1941,7 +1941,7 @@ main: {
lda #$37
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#66 [phi:main::@3->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- vbuz1=vbuc1
lda #$9b
sta.z print_euclid.a
jsr print_euclid
@ -1959,7 +1959,7 @@ main: {
lda #3
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#67 [phi:main::@4->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- vbuz1=vbuc1
lda #$c7
sta.z print_euclid.a
jsr print_euclid
@ -1977,7 +1977,7 @@ main: {
lda #$1a
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#68 [phi:main::@5->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- vbuz1=vbuc1
lda #$5b
sta.z print_euclid.a
jsr print_euclid
@ -1995,7 +1995,7 @@ main: {
lda #$bb
sta.z print_euclid.b
// [18] phi print_char_cursor#55 = print_char_cursor#69 [phi:main::@6->print_euclid#2] -- register_copy
// [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- call_phi_near
// [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- vbuz1=vbuc1
lda #$77
sta.z print_euclid.a
jsr print_euclid
@ -2009,7 +2009,7 @@ main: {
print_cls: {
// memset(print_screen, ' ', 1000)
// [16] call memset
// [36] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
// [36] phi from print_cls to memset [phi:print_cls->memset]
jsr memset
// print_cls::@return
// }
@ -2027,7 +2027,7 @@ print_euclid: {
// [20] call print_uchar
// [42] phi from print_euclid to print_uchar [phi:print_euclid->print_uchar]
// [42] phi print_char_cursor#53 = print_char_cursor#55 [phi:print_euclid->print_uchar#0] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- call_phi_near
// [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- register_copy
jsr print_uchar
// [21] phi from print_euclid to print_euclid::@1 [phi:print_euclid->print_euclid::@1]
// print_euclid::@1
@ -2035,7 +2035,7 @@ print_euclid: {
// [22] call print_char
// [50] phi from print_euclid::@1 to print_char [phi:print_euclid::@1->print_char]
// [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@1->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// print_euclid::@2
@ -2045,7 +2045,7 @@ print_euclid: {
// [24] call print_uchar
// [42] phi from print_euclid::@2 to print_uchar [phi:print_euclid::@2->print_uchar]
// [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@2->print_uchar#0] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- call_phi_near
// [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- register_copy
jsr print_uchar
// [25] phi from print_euclid::@2 to print_euclid::@3 [phi:print_euclid::@2->print_euclid::@3]
// print_euclid::@3
@ -2053,7 +2053,7 @@ print_euclid: {
// [26] call print_char
// [50] phi from print_euclid::@3 to print_char [phi:print_euclid::@3->print_char]
// [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@3->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// print_euclid::@4
@ -2062,7 +2062,7 @@ print_euclid: {
// [28] euclid::b#0 = print_euclid::b#10 -- vbuxx=vbuz1
ldx.z b
// [29] call euclid
// [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] -- call_phi_near
// [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid]
jsr euclid
// euclid(a,b)
// [30] euclid::return#0 = euclid::a#2 -- vbuaa=vbuz1
@ -2074,13 +2074,13 @@ print_euclid: {
// [32] call print_uchar
// [42] phi from print_euclid::@5 to print_uchar [phi:print_euclid::@5->print_uchar]
// [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@5->print_uchar#0] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- call_phi_near
// [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- register_copy
jsr print_uchar
// [33] phi from print_euclid::@5 to print_euclid::@6 [phi:print_euclid::@5->print_euclid::@6]
// print_euclid::@6
// print_ln()
// [34] call print_ln
// [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] -- call_phi_near
// [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln]
jsr print_ln
// print_euclid::@return
// }
@ -2152,7 +2152,7 @@ print_uchar: {
// Table of hexadecimal digits
// [50] phi from print_uchar to print_char [phi:print_uchar->print_char]
// [50] phi print_char_cursor#32 = print_char_cursor#53 [phi:print_uchar->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy
jsr print_char
// print_uchar::@1
// b&$f
@ -2165,7 +2165,7 @@ print_uchar: {
// [48] call print_char
// [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
// [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_uchar::@1->print_char#0] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- call_phi_near
// [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy
jsr print_char
// print_uchar::@return
// }

View File

@ -499,7 +499,7 @@ main: {
euclid_from_main:
// [18] phi euclid::b#9 = 2 [phi:main->euclid#0] -- vbuxx=vbuc1
ldx #2
// [18] phi euclid::a#10 = $80 [phi:main->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $80 [phi:main->euclid#1] -- vbuz1=vbuc1
lda #$80
sta.z euclid.a
jsr euclid
@ -516,7 +516,7 @@ main: {
euclid_from___b1:
// [18] phi euclid::b#9 = $45 [phi:main::@1->euclid#0] -- vbuxx=vbuc1
ldx #$45
// [18] phi euclid::a#10 = $a9 [phi:main::@1->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $a9 [phi:main::@1->euclid#1] -- vbuz1=vbuc1
lda #$a9
sta.z euclid.a
jsr euclid
@ -533,7 +533,7 @@ main: {
euclid_from___b2:
// [18] phi euclid::b#9 = $9b [phi:main::@2->euclid#0] -- vbuxx=vbuc1
ldx #$9b
// [18] phi euclid::a#10 = $ff [phi:main::@2->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $ff [phi:main::@2->euclid#1] -- vbuz1=vbuc1
lda #$ff
sta.z euclid.a
jsr euclid
@ -550,7 +550,7 @@ main: {
euclid_from___b3:
// [18] phi euclid::b#9 = 3 [phi:main::@3->euclid#0] -- vbuxx=vbuc1
ldx #3
// [18] phi euclid::a#10 = $63 [phi:main::@3->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $63 [phi:main::@3->euclid#1] -- vbuz1=vbuc1
lda #$63
sta.z euclid.a
jsr euclid
@ -705,7 +705,7 @@ main: {
// [18] phi from main to euclid [phi:main->euclid]
// [18] phi euclid::b#9 = 2 [phi:main->euclid#0] -- vbuxx=vbuc1
ldx #2
// [18] phi euclid::a#10 = $80 [phi:main->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $80 [phi:main->euclid#1] -- vbuz1=vbuc1
lda #$80
sta.z euclid.a
jsr euclid
@ -722,7 +722,7 @@ main: {
// [18] phi from main::@1 to euclid [phi:main::@1->euclid]
// [18] phi euclid::b#9 = $45 [phi:main::@1->euclid#0] -- vbuxx=vbuc1
ldx #$45
// [18] phi euclid::a#10 = $a9 [phi:main::@1->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $a9 [phi:main::@1->euclid#1] -- vbuz1=vbuc1
lda #$a9
sta.z euclid.a
jsr euclid
@ -739,7 +739,7 @@ main: {
// [18] phi from main::@2 to euclid [phi:main::@2->euclid]
// [18] phi euclid::b#9 = $9b [phi:main::@2->euclid#0] -- vbuxx=vbuc1
ldx #$9b
// [18] phi euclid::a#10 = $ff [phi:main::@2->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $ff [phi:main::@2->euclid#1] -- vbuz1=vbuc1
lda #$ff
sta.z euclid.a
jsr euclid
@ -756,7 +756,7 @@ main: {
// [18] phi from main::@3 to euclid [phi:main::@3->euclid]
// [18] phi euclid::b#9 = 3 [phi:main::@3->euclid#0] -- vbuxx=vbuc1
ldx #3
// [18] phi euclid::a#10 = $63 [phi:main::@3->euclid#1] -- call_phi_near
// [18] phi euclid::a#10 = $63 [phi:main::@3->euclid#1] -- vbuz1=vbuc1
lda #$63
sta.z euclid.a
jsr euclid

View File

@ -869,7 +869,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main -- call_phi_near
// [3] call main
jsr main
jmp __breturn
// __start::@return
@ -1279,7 +1279,7 @@ __start: {
sta.z p0_xpos
// [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [3] call main -- call_phi_near
// [3] call main
jsr main
// __start::@return
// [4] return

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