1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-09 18:29:36 +00:00

- testing and regeneration of fragment references

- implementation of near, close, far through AsmFragmentSignature
- fragment consolidation (removal of prepare, execute, finalize)
- stackcall banked throws error + test cases
- overall test cases for phi
- implementation of fragments
This commit is contained in:
Sven Van de Velde 2023-04-11 08:35:53 +02:00
parent b62430bfc3
commit f2bf3484ad
366 changed files with 4061 additions and 4477 deletions

View File

@ -42,58 +42,25 @@ final public class AsmFragmentInstanceSpecBuilder {
}
/**
* Create a fragment instance spec factory for a bank call prepare
* Create a fragment instance spec factory for a subroutine call
*
* @param distance The string expressing the distance of the call: "near", "close", "far".
* @param callingConvention The string expressing the calling convention supported by the fragment.
* @param bankArea The bank area where the procedure is to be called.
* @param bank The bank where the procedure is to be called.
* @param procedureName The full name of the procedure.
* @param program The program
* @return the fragment instance spec factory
*/
public static AsmFragmentInstanceSpec bankCallPrepare(String bankArea, Long bank, String procedureName, Program program) {
public static AsmFragmentInstanceSpec callBanked(String distance, String callingConvention, String bankArea, Long bank, String procedureName, Program program) {
AsmFragmentBindings bindings = new AsmFragmentBindings(program);
AsmFragmentSignature signature = new AsmFragmentSignature.CallBanked(bankArea, bank, program.getTargetPlatform().getName(), AsmFragmentSignature.CallBanked.PrepareExecuteFinalize.Prepare);
AsmFragmentSignature signature = new AsmFragmentSignature.CallBanked(distance, callingConvention, bankArea, bank);
ScopeRef codeScope = program.getScope().getRef();
bindings.bind("c1", new ConstantInteger(bank));
bindings.bind("la1", new LabelRef(procedureName));
return new AsmFragmentInstanceSpec(program, signature, bindings, codeScope);
}
/**
* Create a fragment instance spec factory for a bank call execute
*
* @param bankArea The bank area where the procedure is to be called.
* @param bank The bank where the procedure is to be called.
* @param procedureName The full name of the procedure.
* @param program The program
* @return the fragment instance spec factory
*/
public static AsmFragmentInstanceSpec bankCallExecute(String bankArea, Long bank, String procedureName, Program program) {
AsmFragmentBindings bindings = new AsmFragmentBindings(program);
AsmFragmentSignature signature = new AsmFragmentSignature.CallBanked(bankArea, bank, program.getTargetPlatform().getName(), AsmFragmentSignature.CallBanked.PrepareExecuteFinalize.Execute);
ScopeRef codeScope = program.getScope().getRef();
bindings.bind("c1", new ConstantInteger(bank));
bindings.bind("la1", new LabelRef(procedureName));
return new AsmFragmentInstanceSpec(program, signature, bindings, codeScope);
}
/**
* Create a fragment instance spec factory for a bank call finalize
*
* @param bankArea The bank area where the procedure is to be called.
* @param bank The bank where the procedure is to be called.
* @param procedureName The full name of the procedure.
* @param program The program
* @return the fragment instance spec factory
*/
public static AsmFragmentInstanceSpec bankCallFinalize(String bankArea, Long bank, String procedureName, Program program) {
AsmFragmentBindings bindings = new AsmFragmentBindings(program);
AsmFragmentSignature signature = new AsmFragmentSignature.CallBanked(bankArea, bank, program.getTargetPlatform().getName(), AsmFragmentSignature.CallBanked.PrepareExecuteFinalize.Finalize);
ScopeRef codeScope = program.getScope().getRef();
bindings.bind("c1", new ConstantInteger(bank));
bindings.bind("la1", new LabelRef(procedureName));
return new AsmFragmentInstanceSpec(program, signature, bindings, codeScope);
}
/**

View File

@ -75,29 +75,21 @@ public interface AsmFragmentSignature {
*/
class CallBanked implements AsmFragmentSignature {
final private String distance;
final private String callingConvention;
final private String bankArea;
final private Long bank;
final private String targetPlatform;
public enum PrepareExecuteFinalize {
Prepare,
Execute,
Finalize
}
final private PrepareExecuteFinalize fragment;
public CallBanked(String bankArea, Long bank, String targetPlatform, PrepareExecuteFinalize fragment) {
public CallBanked(String distance, String callingConvention, String bankArea, Long bank) {
this.distance = distance;
this.callingConvention = callingConvention;
this.bankArea = bankArea;
this.bank = bank;
this.targetPlatform = targetPlatform;
this.fragment = fragment;
}
@Override
public String getName() {
return "call_far" + "_" + targetPlatform.toLowerCase() + "_" + bankArea.toLowerCase() + "_" + fragment.name().toLowerCase();
return "call_" + callingConvention.toLowerCase() + "_" + distance.toLowerCase() + ((bankArea.isEmpty()) ? "" : ("_" + bankArea.toLowerCase()));
}
}

View File

@ -23,35 +23,67 @@ package dk.camelot64.kickc.model;
* The <b><i>method</i></b> and the <b><i>platform</i></b> are the key combinations that select the fragments
* in kickc to generate the banked function call implementations used by the compiler.
*
* <p>Your C-code can be augmented with 3 new directives, that define which function(s) will be declared as banked:
* <p><br>Your C-code can be augmented with 3 new directives, that define which function(s) will be declared as banked:
*
* <br><ul>
* <li><b>#pragma bank( <i>method</i>, <i>number</i> )</b> directive, defines for sequent functions
* the target bank <b><i>number</i></b> and the <b><i>method</i></b> for the banked function call implementations.</li>
* <li>A new <b>#pragma nobank( dummy )</b> directive, resets the calculation of banking for sequent functions
* not to calculate any banking for these functions.</li>
* <li>A new <b>__bank( <i>method</i>, <i>number</i> )</b> directive, defines for one function a
* target bank <b><i>number</i></b> and the <b><i>method</i></b> for the banked function call implementation.</li>
* <li><b>#pragma bank( <i>area</i>, <i>number</i> )</b> directive, defines for sequent functions
* the the <b><i>area</i></b> and the bank <b><i>number</i></b>.</li>
* <li>A new <b>#pragma nobank( dummy )</b> directive, resets the calculation of banking
* for the sequent functions.</li>
* <li><b>__bank( <i>area</i>, <i>number</i> )</b> directive, defines for one function a
* target bank <b><i>area</i></b> and <b><i>number</i></b>.</li>
* </ul>
* <p>Examples of bank areas are different RAM and/or ROM areas at different
* zones in the linear memory addressing space, and may or may not overlap.
* Each banking area has its own configuration in the target computer platform and
* operate independently from each other.<br>
* For example, the Commander X16 has 256 RAM bank between 0xA000 and 0xBFFF and
* 256 ROM banks from 0xC000 till 0xFFFF. Each RAM bank is configured through zero page $00
* and each ROM bank is configured through zero page $01.
* The compiler configures for you these registers, depending on the configured banking area of the function,
* when a banked call is required.</p>
*
* <p><br>There are different types of function calls that can be implemented, depending on:
* <ul>
* <li>the banked location of either or both the caller and/or the called function.</li>
* <li>the banking area of either or both the caller and the called function.</li>
* </ul>
*
* <p>The compiler decides automatically the function call implementation, which can be either banked or not.
* And if the function call implementation is banked, it should use the specified bank number to implement
* the banked function call.
* The rules can be summarized as follows:
* <p>The <b>types of (banked) function call implementations</b> are:
* <ul>
* <li><b>near</b> - jump to subroutine without any implementation of banking logic.</li>
* <li><b>close</b> - jump to subroutine with inline banking implementation logic.</li>
* <li><b>far</b> - jump to subroutine using a specific trampoline banking implementation logic.</li>
* </ul>
* Depending on the target platform of the system the <b>far</b> calls are likely the most complex
* and will consume the most CPU cycles. Therefore, careful design of the program flow and the
* placement of the functions in the banks need to be done, to avoid as much as possible these far calls.
*
* <p><br>The exact rules when <b>near</b>, <b>close</b> and <b>far</b> calls are implemented by the compiler,
* can be summarized in the following 6 cases:
*
* <ul>
* <li>If a function is declared <b>not banked</b>, and the function call location is <b>not banked</b>,
* the function call implementation will be <b>not banked</b>.</li>
* <li>If a function is declared <b>banked</b>, and the function call location is not <b>banked</b>,
* the function call implementation will be <b>banked</b>.</li>
* <li>If a function is declared <b>not banked</b>, and the function call location is <b>banked</b>,
* the function call implementation will be <b>not banked</b>.</li>
* <li>If a function is declared <b>banked</b>, and the function call location is <b>banked</b>,
* but the function call location is within the same bank,
* the function call implementation will be <b>not banked</b>.</li>
* <li>If a function is declared <b>banked</b>, and the function call location is <b>banked</b>,
* but the function call location is <b>not within the same bank</b>,
* the function call implementation will be <b>banked</b>.</li>
* <li><b>case #1</b> - If the caller function is <b>not banked</b>,<br>
* and the called function is <b>not banked</b>,<br>
* then a <b>near</b> call will be implemented.</li>
* <li><b>case #2</b> - If the caller function is <b>not banked</b>,<br>
* and the called function is <b>banked</b> in any bank in any banking area</b>,<br>
* then a <b>close</b> call will be implemented.</li>
* <li><b>case #3</b> - If the caller function is <b>banked</b> in any bank in any banking area,<br>
* and the called function is <b>not banked</b>,<br>
* then a <b>near</b> call will be implemented.</li>
* <li><b>case #4</b> - If the caller function is <b>banked</b>,<br>
* and the called function is <b>banked</b>,<br>
* and both functions are <b>in the same bank</b> and <b>in the same bank area</b>,<br>
* then a <b>near</b> call will be implemented.</li>
* <li><b>case #5</b> - If the caller function is <b>banked</b>,<br>
* and the called function is <b>banked</b>,<br>
* and both functions are <b>in a different bank</b> but <b>in the same bank area</b>,<br>
* then a <b>far</b> call will be implemented.</li>
* <li><b>case #6</b> - If the caller function is <b>banked</b>,<br>
* and the called function is <b>banked</b>,<br>
* and both functions are <b>in any bank</b> but <b>in a different bank area</b>,<br>
* then the a <b>close</b> call will be implemented.</li>
* </ul>
*
* <p>The usage of <b>#pragma code_seg( <i>segment</i> )</b> directive
@ -68,154 +100,8 @@ package dk.camelot64.kickc.model;
* at the function calling locations!</li>
* </ul>
*
* <p>
* The best way to describe the usage with a comprehensive example, documenting the different use cases
* how the compiler decides which functions are banked or not,
* and how the resulting banked function call code will be generated.
* <p>
* The example implements several functions in various forms to allocate the code in main memory
* using segment <b>Code</b> and within 3 banked memory locations, using segments <b>Bank1</b>, <b>Bank2</b>, <b>Bank3</b>.
* In order to ensure a good understanding of the example, the usage of these code segments in harmony with the
* banking directives must be described, which is absolutely necessary to master,
* in order to make banked function calls work.
* The KickC compiler contains several test cases and examples which demonstrate the usage of the banking system.
*
* <p>
* <ul>
* <li>The #pragma directive <b>code_seg( Code )</b> defines the sequent function code to be allocated
* within main (not banked) memory, defined within segment <b>Code<><b/> by the linker.</li>
* <li>The #pragma directive <b>code_seg( Bank1 )</b> defines the sequent function code to be allocated
* within banked memory, defined within segment <b>Bank1</b> by the linker.</li>
* <li>The #pragma directive <b>code_seg( Bank2 )</b> defines the sequent function code to be allocated
* within banked memory, defined within segment <b>Bank2</b> by the linker.</li>
* <li>The #pragma directive <b>code_seg( Bank3 )</b> defines the sequent function code to be allocated
* within banked memory, defined within segment <b>Bank3</b> by the linker.</li>
* </ul>
*
* Note that the <b>Code</b> segment is the default location in KickC where the code is placed by the linker.
*
* Find below the code example, which is also the program procedure-callingconvention-phi-bank-5.c
*
* <pre>
*
* // The linker specification of the different segments.
* #pragma link("procedure-callingconvention-phi-bank-5.ld")
*
* // The target computer platform is the Commander X16,
* // which implements banking in ram between 0xA0000 and 0xBFFF,
* // and in rom between 0xC000 and 0xFFFF.
* #pragma target(cx16)
*
* char *const SCREEN = (char *)0x0400; // Just for test purposes.
*
* #pragma code_seg(Bank1) // The sequent functions will be addressed specified by segment bank1 in the linker.
* #pragma bank(ram, 1) // The sequent functions will be banked using call method ram in bank number 1.
*
* // Function declarations
* char func_ram_bank1_a(char a, char b);
* char __bank(ram, 1) func_ram_bank1_b(char a, char b);
* char func_ram_bank1_c(char a, char b);
* char func_ram_bank1_d(char a, char b);
* char func_ram_bank1_e(char a, char b);
* char func_ram_bank1_f(char a, char b);
* char func_rom_bank2_a(char a, char b);
* char __bank(rom, 2) func_rom_bank2_b(char a, char b);
* char func_rom_bank2_c(char a, char b);
* char func_rom_bank2_d(char a, char b);
* char func_rom_bank2_e(char a, char b);
* char func_rom_bank2_f(char a, char b);
* char func_main_a(char a, char b);
* char func_main_b(char a, char b);
*
* // Functional code
*
* char func_ram_bank1_a(char a, char b) {
* return a + b;
* }
*
* char func_ram_bank1_c(char a, char b) {
* return func_ram_bank1_a(a, b); // Non banked call in ram bank 1.
* }
*
* char func_ram_bank1_d(char a, char b) {
* return func_rom_bank2_a(a, b); // Banked call from ram bank 1 to rom bank 2.
* }
*
* char func_ram_bank1_e(char a, char b) {
* return func_rom_bank2_b(a, b); // Banked call from ram bank 1 to rom bank 2.
* }
*
* char func_ram_bank1_f(char a, char b) {
* return func_main_a(a, b); // Non banked call from ram bank 1 to main memory.
* }
*
*
* #pragma code_seg(Bank2) // The sequent functions will be addressed specified by segment bank2 in the linker.
* #pragma bank(rom, 2) // The sequent functions will be banked using call method rom in bank number 2.
*
* char func_rom_bank2_a(char a, char b) {
* return a + b;
* }
*
* char func_rom_bank2_c(char a, char b) {
* return func_ram_bank1_a(a, b); // Banked call from rom bank 2 to ram bank 1.
* }
*
* char func_rom_bank2_d(char a, char b) {
* return func_rom_bank2_a(a, b); // Non banked call in rom bank 2.
* }
*
* char func_rom_bank2_e(char a, char b) {
* return func_rom_bank2_b(a, b); // Non Banked call in rom bank 2.
* }
*
* char func_rom_bank2_f(char a, char b) {
* return func_main_a(a, b); // Non banked call from rom bank 2 to main memory.
* }
*
*
* #pragma nobank(dummy) // The sequent functions will consider no banking calculations anymore.
*
* // The __bank directive declares this function to be banked using call method ram in bank number 1 of banked ram.
* char __bank(ram, 1) func_ram_bank1_b(char a, char b) {
* return a + b;
* }
*
* // The __bank directive declares this function to be banked using call method rom in bank number 2 of banked rom.
* char __bank(rom, 2) func_rom_bank2_b(char a, char b) {
* return a + b;
* }
*
* #pragma code_seg(Code) // The sequent functions will be addressed in the default main memory location (segment Code).
*
* // Allocated in main memory.
* char func_main_a(char a, char b) {
* return func_ram_bank1_e(a, b); // Banked call to ram in bank 1 from main memory.
* }
*
* // Allocated in main memory.
* char func_main_b(char a, char b) {
* return func_rom_bank2_e(a, b); // Banked call to rom in bank 2 from main memory.
* }
*
* // Practically this means that the main() function is placed in main memory ...
*
* void main(void) {
* SCREEN[0] = func_ram_bank1_a('0', 7); // Banked call to ram in bank 1 from main memory.
* SCREEN[0] = func_ram_bank1_b('0', 7); // Banked call to ram in bank 1 from main memory.
* SCREEN[0] = func_ram_bank1_c('0', 7); // Banked call to ram in bank 1 from main memory.
* SCREEN[0] = func_ram_bank1_d('0', 7); // Banked call to ram in bank 1 from main memory.
* SCREEN[0] = func_ram_bank1_e('0', 7); // Banked call to ram in bank 1 from main memory.
* SCREEN[0] = func_ram_bank1_f('0', 7); // Banked call to ram in bank 1 from main memory.
* SCREEN[0] = func_rom_bank2_a('0', 7); // Banked call to rom in bank 2 from main memory.
* SCREEN[0] = func_rom_bank2_b('0', 7); // Banked call to rom in bank 2 from main memory.
* SCREEN[0] = func_rom_bank2_c('0', 7); // Banked call to rom in bank 2 from main memory.
* SCREEN[0] = func_rom_bank2_d('0', 7); // Banked call to rom in bank 2 from main memory.
* SCREEN[0] = func_rom_bank2_e('0', 7); // banked call to rom in bank 2 from main memory.
* SCREEN[0] = func_rom_bank2_f('0', 7); // banked call to rom in bank 2 from main memory.
* SCREEN[0] = func_main_a('0', 7); // Near call in main memory from main memory.
* SCREEN[0] = func_main_b('0', 7); // Near call in main memory from main memory.
* }
* </pre>
*/
public class Bank {

View File

@ -590,7 +590,9 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
procedure.setParameters(parameterList);
procedure.setSegmentData(currentDataSegment); // When a procedure is defined, the currentDataSegment is to be set.
procedure.setSegmentCode(currentCodeSegment); // When a procedure is defined, the currentCodeSegment is to be set.
procedure.setBankLocation(currentBank); // When a procedure is defined, the currentBank is to be set, or far calls won't work.
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.
}
// Add return variable
if(!SymbolType.VOID.equals(procedure.getReturnType())) {
final VariableBuilder builder = new VariableBuilder("return", procedure, false, false, procedure.getReturnType(), varDecl.getDeclDirectives(), currentDataSegment, program.getTargetPlatform().getVariableBuilderConfig());

View File

@ -878,15 +878,15 @@ public class Pass4CodeGeneration {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.conditionalJump((StatementConditionalJump) statement, block, program), program);
} else if (statement instanceof StatementCall) {
StatementCall call = (StatementCall) statement;
Procedure procedure = getScope().getProcedure(call.getProcedure());
Procedure procedureFrom = block.getProcedure(this.program); // We obtain from where the procedure is called, to validate the bank equality.
if (procedure.isDeclaredIntrinsic()) {
if (Pass1ByteXIntrinsicRewrite.INTRINSIC_MAKELONG4.equals(procedure.getFullName())) {
Procedure toProcedure = getScope().getProcedure(call.getProcedure());
Procedure fromProcedure = block.getProcedure(this.program); // We obtain from where the procedure is called, to validate the bank equality.
if (toProcedure.isDeclaredIntrinsic()) {
if (Pass1ByteXIntrinsicRewrite.INTRINSIC_MAKELONG4.equals(toProcedure.getFullName())) {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.makelong4(call, program), program);
} else {
throw new CompileError("Intrinsic procedure not supported " + procedure.toString(program));
throw new CompileError("Intrinsic procedure not supported " + toProcedure.toString(program));
}
} else if (Procedure.CallingConvention.PHI_CALL.equals(procedure.getCallingConvention())) {
} else if (Procedure.CallingConvention.PHI_CALL.equals(toProcedure.getCallingConvention())) {
// Generate PHI transition
if (genCallPhiEntry) {
ControlFlowBlock callSuccessor = getGraph().getCallSuccessor(block);
@ -898,27 +898,56 @@ public class Pass4CodeGeneration {
genBlockPhiTransition(asm, block, callSuccessor, block.getScope());
}
}
// Note: I've chosen to keep this code duplication between phi and stack calling convention, for later maintenance flexibility, if any.
// We check if the procedure is declared as banked, and if the calling procedure is not in the same bank as the procedure called.
if(procedure.isDeclaredBanked() && procedureFrom.getBank() != procedure.getBank()) {
// In this case, Generate ASM for a far call.
// The call is constructed in a prepare, execute and finalize compiler .asm fragments respectively.
// The bank and other preparations are set in the call_far_[platform]_[bankarea]_prepare.asm fragment.
// The actual jsr statement is embedded in the far_call_[platform]_[bankarea]_execute.asm fragment.
// After the jsr, finalization of the call is defined in the far_call_[platform]_[bankarea]_finalize.asm fragment.
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallPrepare(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallExecute(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallFinalize(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
/*
The following variations exist related to banked calls:
#1 - unbanked to unbanked and no banking areas
#2 - unbanked to banked to any bank area
#3 - banked to unbanked from any bank area
#4 - banked to same bank in same bank area
#5 - banked to different bank in same bank area
#6 - banked to any bank between different bank areas
This brings us to the call types:
near - case #1, #3, #4
close - case #2, #6
far - case #5
*/
String fromBankArea = fromProcedure.getBankArea();
String toBankArea = toProcedure.getBankArea();
Boolean fromIsBanked = fromProcedure.isDeclaredBanked();
Boolean toIsBanked = toProcedure.isDeclaredBanked();
Long fromBank = fromProcedure.getBank();
Long toBank = toProcedure.getBank();
if( ((!fromIsBanked && !toIsBanked)) ||
((fromIsBanked && !toIsBanked)) ||
((fromIsBanked && toIsBanked) && (fromBank == toBank) && (fromBankArea.contentEquals(toBankArea)))
) {
// near call - case #1, #3, #4
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked( "near","phi", "", 0L, call.getProcedure().getFullName(), program), program);
// // Otherwise, Generate AM for a normal near call.
// asm.addInstruction("jsr", CpuAddressingMode.ABS, call.getProcedure().getFullName(), false);
} else {
// Otherwise, Generate AM for a normal near call.
asm.addInstruction("jsr", CpuAddressingMode.ABS, call.getProcedure().getFullName(), false);
if( (!fromIsBanked && toIsBanked) ||
((fromIsBanked && toIsBanked) && (!fromBankArea.contentEquals(toBankArea)))
) {
// close call - case #2, #6
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked( "close","phi", toBankArea, toBank, call.getProcedure().getFullName(), program), program);
} else {
// far call - case #5
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked( "far","phi", toBankArea, toBank, call.getProcedure().getFullName(), program), program);
}
}
} else if (Procedure.CallingConvention.STACK_CALL.equals(procedure.getCallingConvention())) {
} else if (Procedure.CallingConvention.STACK_CALL.equals(toProcedure.getCallingConvention())) {
// Same as PHI
if(procedure.isDeclaredBanked() && procedure.getBank() != procedureFrom.getBank()) {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallPrepare(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallExecute(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallFinalize(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
String fromBankArea = fromProcedure.getBankArea();
String toBankArea = toProcedure.getBankArea();
Boolean fromIsBanked = fromProcedure.isDeclaredBanked();
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));
// AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked("far", "stack", toProcedure.getBankArea(), toProcedure.getBank(), call.getProcedure().getFullName(), program), program);
} else {
asm.addInstruction("jsr", CpuAddressingMode.ABS, call.getProcedure().getFullName(), false);
}
@ -936,16 +965,22 @@ public class Pass4CodeGeneration {
ProcedureRef procedureRef = call.getProcedure();
if(procedureRef != null) {
ProgramScope scope = getScope();
Procedure procedure = scope.getProcedure(procedureRef);
Procedure procedureFrom = block.getProcedure(this.program); // We obtain from where the procedure is called, to validate the bank equality.
Procedure toProcedure = scope.getProcedure(procedureRef);
Procedure fromProcedure = block.getProcedure(this.program); // We obtain from where the procedure is called, to validate the bank equality.
String fromBankArea = fromProcedure.getBankArea();
String toBankArea = toProcedure.getBankArea();
Boolean fromIsBanked = fromProcedure.isDeclaredBanked();
Boolean toIsBanked = toProcedure.isDeclaredBanked();
Long fromBank = fromProcedure.getBank();
Long toBank = toProcedure.getBank();
RValue procedureRVal = call.getProcedureRVal();
// Same as PHI
if (procedure.isDeclaredBanked() && procedureFrom.getBank() != procedure.getBank()) {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallPrepare(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallExecute(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.bankCallFinalize(procedure.getBankArea(), procedure.getBank(), call.getProcedure().getFullName(), program), program);
if (toProcedure.isDeclaredBanked() && fromProcedure.getBank() != toProcedure.getBank()) {
throw new CompileError("Stack Call procedure not supported in banked mode " + toProcedure.toString(program));
// AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked( "far", "stack", toProcedure.getBankArea(), toProcedure.getBank(), call.getProcedure().getFullName(), program), program);
} else {
AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.call(call, indirectCallCount++, program), program);
// AsmFragmentCodeGenerator.generateAsm(asm, AsmFragmentInstanceSpecBuilder.callBanked( "near", "stack", toProcedure.getBankArea(), toProcedure.getBank(), call.getProcedure().getFullName(), program), program);
}
if (!(procedureRVal instanceof ProcedureRef)) {
asm.getCurrentChunk().setClobberOverwrite(CpuClobber.CLOBBER_ALL);

View File

@ -1496,65 +1496,76 @@ public class TestProgramsFast extends TestPrograms {
}
@Test
public void testProcedureCallingConventionPhiBank0() throws IOException {
compileAndCompare("procedure-callingconvention-phi-bank-0.c");
public void testBankedPhiCase1Near0() throws IOException {
compileAndCompare("call-banked-phi-case-1-near-0.c");
}
@Test
public void testProcedureCallingConventionPhiBank1() throws IOException {
compileAndCompare("procedure-callingconvention-phi-bank-1.c");
public void testBankedPhiCase1Near1() throws IOException {
compileAndCompare("call-banked-phi-case-1-near-1.c");
}
@Test
public void testProcedureCallingConventionPhiBank2() throws IOException {
compileAndCompare("procedure-callingconvention-phi-bank-2.c");
public void testBankedPhiCase2Close0() throws IOException {
compileAndCompare("call-banked-phi-case-2-close-0.c");
}
@Test
public void testProcedureCallingConventionPhiBank3() throws IOException {
compileAndCompare("procedure-callingconvention-phi-bank-3.c");
public void testBankedPhiCase2Close1() throws IOException {
compileAndCompare("call-banked-phi-case-2-close-1.c");
}
@Test
public void testProcedureCallingConventionPhiBank4() throws IOException {
compileAndCompare("procedure-callingconvention-phi-bank-4.c");
public void testBankedPhiCase3Near0() throws IOException {
compileAndCompare("call-banked-phi-case-3-near-0.c");
}
@Test
public void testProcedureCallingConventionPhiBank5() throws IOException {
compileAndCompare("procedure-callingconvention-phi-bank-5.c");
public void testBankedPhiCase3Near1() throws IOException {
compileAndCompare("call-banked-phi-case-3-near-1.c");
}
@Test
public void testProcedureCallingConventionStackBank5() throws IOException {
compileAndCompare("procedure-callingconvention-stack-bank-5.c");
public void testBankedPhiCase4Near0() throws IOException {
compileAndCompare("call-banked-phi-case-4-near-0.c");
}
@Test
public void testProcedureCallingConventionStackBank4() throws IOException {
compileAndCompare("procedure-callingconvention-stack-bank-4.c");
public void testBankedPhiCase4Near1() throws IOException {
compileAndCompare("call-banked-phi-case-4-near-1.c");
}
@Test
public void testProcedureCallingConventionStackBank3() throws IOException {
compileAndCompare("procedure-callingconvention-stack-bank-3.c");
public void testBankedPhiCase5Far0() throws IOException {
compileAndCompare("call-banked-phi-case-5-far-0.c");
}
@Test
public void testProcedureCallingConventionStackBank2() throws IOException {
compileAndCompare("procedure-callingconvention-stack-bank-2.c");
public void testBankedPhiCase5Far1() throws IOException {
compileAndCompare("call-banked-phi-case-5-far-1.c");
}
@Test
public void testProcedureCallingConventionStackBank1() throws IOException {
compileAndCompare("procedure-callingconvention-stack-bank-1.c");
public void testBankedPhiCase6Close0() throws IOException {
compileAndCompare("call-banked-phi-case-6-close-0.c");
}
@Test
public void testProcedureCallingConventionStackBank0() throws IOException {
compileAndCompare("procedure-callingconvention-stack-bank-0.c");
public void testBankedPhiCase6Close1() throws IOException {
compileAndCompare("call-banked-phi-case-6-close-1.c");
}
@Test
public void testBankedStackCase2Close0() throws IOException {
assertError("call-banked-stack-case-2-close-0.c", "Stack Call procedure not supported in banked mode");
}
@Test
public void testBankedStackCase5Far0() throws IOException {
assertError("call-banked-stack-case-5-far-0.c", "Stack Call procedure not supported in banked mode");
}
@Test
public void testProcedureCallingConventionStack13() throws IOException {
compileAndCompare("procedure-callingconvention-stack-13.c");

View File

@ -1,14 +1,15 @@
// Test a procedure with calling convention PHI - case #1
#pragma code_seg(Code)
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
SCREEN[0] = plus('0', 7); // near call
}
#pragma code_seg(Code)
char plus(char a, char b) {
return a+b;
}

View File

@ -1,14 +1,20 @@
// Test a procedure with calling convention PHI - case #1
#pragma code_seg(Code)
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
SCREEN[0] = plus('0', 7); // near call
}
#pragma code_seg(Code)
char plus(char a, char b) {
return min(a, b); // near call
}
#pragma code_seg(Code)
char min(char a, char b) {
return a+b;
}

View File

@ -2,16 +2,15 @@
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
__bank(cx16_ram,1) char plus(char a, char b) {
return a+b;
}
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
}

View File

@ -5,13 +5,18 @@
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
__bank(cx16_ram,1) char plus(char a, char b) {
#pragma bank(cx16_ram, 1)
char plus(char a, char b) {
return a+b;
}
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
}
#pragma nobank(dummy)

View File

@ -2,21 +2,21 @@
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
__bank(cx16_ram,1) char plus(char a, char b) {
return min(a, b); // near call
}
#pragma code_seg(Code)
char min(char a, char b) {
return a+b;
}
#pragma code_seg(RAM_Bank1)
__bank(cx16_ram,1) char plus(char a, char b) {
return min(a, b);
}
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
}

View File

@ -2,21 +2,23 @@
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
#pragma bank(cx16_ram, 1)
char plus(char a, char b) {
return min(a, b); // near call
}
#pragma code_seg(Code)
#pragma nobank(dummy)
char min(char a, char b) {
return a+b;
}
#pragma code_seg(RAM_Bank1)
__bank(cx16_ram,1) char plus(char a, char b) {
return min(a, b);
}
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
}

View File

@ -7,12 +7,12 @@ char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
char __bank(cx16_ram, 1) plus(char a, char b) {
return min(a, b);
return min(a, b); // near call
}
#pragma code_seg(RAM_Bank1)

View File

@ -2,20 +2,24 @@
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
char __bank(cx16_ram, 1) plus(char a, char b) {
return min(a, b);
#pragma bank(cx16_ram, 1)
char plus(char a, char b) {
return min(a, b); // near call
}
#pragma code_seg(RAM_Bank1)
char __bank(cx16_ram, 1) min(char a, char b) {
#pragma bank(cx16_ram, 1)
char min(char a, char b) {
return a+b;
}
#pragma code_seg(Code)
#pragma nobank(dummy)

View File

@ -2,20 +2,19 @@
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
char __bank(cx16_ram, 1) plus(char a, char b) {
return min(a, b);
__bank(cx16_ram, 1) char plus(char a, char b) {
return min(a, b); // far call
}
#pragma code_seg(RAM_Bank2)
char __bank(cx16_ram, 2) min(char a, char b) {
__bank(cx16_ram, 2) char min(char a, char b) {
return a+b;
}

View File

@ -2,20 +2,24 @@
#pragma link("call-banked-phi.ld")
char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7);
SCREEN[0] = plus('0', 7); // close call
}
#pragma code_seg(RAM_Bank1)
char __bank(cx16_ram, 1) plus(char a, char b) {
return min(a, b);
#pragma bank(cx16_ram, 1)
char plus(char a, char b) {
return min(a, b); // far call
}
#pragma code_seg(RAM_Bank2)
char __bank(cx16_ram, 2) min(char a, char b) {
#pragma bank(cx16_ram, 2)
char min(char a, char b) {
return a+b;
}
#pragma code_seg(RAM_Bank2)
#pragma nobank(dummy)

View File

@ -10,11 +10,11 @@ void main(void) {
}
#pragma code_seg(RAM_Bank1)
__bank(cx16_ram, 1) plus(char a, char b) {
return min(a, b); // near call
__bank(cx16_ram, 1) char plus(char a, char b) {
return min(a, b); // close call
}
#pragma code_seg(ROM_Bank1)
__bank(cx16_rom, 1) min(char a, char b) {
__bank(cx16_rom, 1) char min(char a, char b) {
return a+b;
}

View File

@ -12,7 +12,7 @@ void main(void) {
#pragma code_seg(RAM_Bank1)
#pragma bank(cx16_ram, 1)
char plus(char a, char b) {
return min(a, b); // near call
return min(a, b); // close call
}
#pragma code_seg(ROM_Bank1)

View File

@ -1,7 +1,13 @@
.segmentdef Program [segments="Basic, Code, Data, stage, platform"]
.file [name="%O", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=%P]
.segmentdef Data [startAfter="Code"]
.segmentdef stage [start=$0400, min=$0400, max=$07FF, align=$100]
.segmentdef platform [start=$C000, min=$C000, max=$C7FF, align=$100]
.segmentdef RAM_Bank1 [start=$A000, min=$A000, max=$BFFF, align=$100]
.segmentdef RAM_Bank2 [start=$A000, min=$A000, max=$BFFF, align=$100]
.segmentdef ROM_Bank1 [start=$C000, min=$C000, max=$FFFF, align=$100]
.segment Basic
:BasicUpstart(%E)
.segment Code
.segment Data

View File

@ -6,10 +6,10 @@ char* const SCREEN = (char*)0x0400;
#pragma code_seg(Code)
void main(void) {
SCREEN[0] = plus('0', 7); // near stack call
SCREEN[0] = plus('0', 7); // close stack call
}
#pragma code_seg(Code)
__stackcall char plus(char a, char b) {
#pragma code_seg(Bank1)
__stackcall __bank(cx16_ram, 1) char plus(char a, char b) {
return a+b;
}

View File

@ -10,11 +10,11 @@ void main(void) {
}
#pragma code_seg(RAM_Bank1)
char __bank(cx16_ram, 1) plus(char a, char b) {
__bank(cx16_ram, 1) char plus(char a, char b) {
return min(a, b); // far call
}
#pragma code_seg(RAM_Bank2)
char __bank(cx16_ram, 2) min(char a, char b) {
__stackcall __bank(cx16_ram, 2) char min(char a, char b) {
return a+b;
}

View File

@ -1,20 +0,0 @@
// Function declarations
// char add_a(char a);
// char add_b(char a);
// char add_c(char a);
// char add_d(char a);
// char add_e(char a);
// char add_f(char a);
// char add_m(char a);
// char mul_a(char m);
// char mul_b(char m);
// char mul_c(char m);
// char mul_d(char m);
// char mul_e(char m);
// char mul_f(char m);
// char mul_m(char m);

View File

@ -10,105 +10,107 @@
*/
// The linker specification of the different segments.
#pragma link("cx16-banking-1.ld")
#pragma link("cx16-banking.ld")
#pragma var_model(mem)
#include <cx16.h>
// #include <cx16.h>
#include <conio.h>
#include <printf.h>
#include <cx16-kernal.h>
// The target computer platform is the Commander X16,
// which implements banking in ram between 0xA0000 and 0xBFFF,
// and in ram between 0xC000 and 0xFFFF.
#pragma target(cx16)
#pragma code_seg(Bank1) // The sequent functions will be addressed specified by segment bank1 in the linker.
#pragma bank(ram, 1) // The sequent functions will be banked using call method ram in bank number 1.
// Functional code
__address(0x00) char RAM_Bank;
#pragma code_seg(Bank1) // The sequent functions will be addressed specified by segment bank1 in the linker.
#pragma bank(cx16_ram, 1) // The sequent functions will be banked using call method ram in bank number 1.
char add_a(char a) {
printf("add_a(%02x:%04p), ",bank_get_bram(), (void*)&add_a);
printf("add_a(%02x), ", RAM_Bank);
return a+1;
}
char add_c(char a) {
printf("add_c(%02x:%04p), ",bank_get_bram(),(void*)&add_c);
printf("add_c(%02x), ", RAM_Bank);
return add_a(a)+1; // Non banked call in ram bank 1.
}
char add_d(char a) {
printf("add_d(%02x:%04p), ",bank_get_bram(),(void*)&add_d);
printf("add_d(%02x), ",RAM_Bank);
return mul_a(a)+1; // Banked call fram ram bank 1 to ram bank 2.
}
char add_e(char a) {
printf("add_e(%02x:%04p), ",bank_get_bram(),(void*)&add_e);
printf("add_e(%02x), ",RAM_Bank);
return mul_b(a)+1; // Banked call fram ram bank 1 to ram bank 2.
}
char add_f(char a) {
printf("add_f(%02x:%04p), ",bank_get_bram(),(void*)&add_f);
printf("add_f(%02x), ",RAM_Bank);
return add_m(a)+1; // Non banked call fram ram bank 1 to main memory.
}
#pragma code_seg(Bank2) // The sequent functions will be addressed specified by segment bank2 in the linker.
#pragma bank(ram, 2) // The sequent functions will be banked using call method ram in bank number 2.
#pragma bank(cx16_ram, 2) // The sequent functions will be banked using call method ram in bank number 2.
char mul_a(char m) {
printf("mul_a(%02x:%04p), ",bank_get_bram(),(void*)&mul_a);
printf("mul_a(%02x), ",RAM_Bank);
return m * 2;
}
char mul_c(char m) {
printf("mul_c(%02x:%04p), ",bank_get_bram(),(void*)&mul_c);
printf("mul_c(%02x), ",RAM_Bank);
return add_a(m)*2; // Banked call fram ram bank 2 to ram bank 1.
}
char mul_d(char m) {
printf("mul_d(%02x:%04p), ",bank_get_bram(),(void*)&mul_d);
printf("mul_d(%02x), ",RAM_Bank);
return mul_a(m)*2; // Non banked call in ram bank 2.
}
char mul_e(char a) {
printf("mul_e(%02x:%04p), ",bank_get_bram(),(void*)&mul_e);
printf("mul_e(%02x), ",RAM_Bank);
return mul_b(a)*2; // Non Banked call in ram bank 2.
}
char mul_f(char m) {
printf("mul_f(%02x:%04p), ",bank_get_bram(),(void*)&mul_f);
printf("mul_f(%02x), ",RAM_Bank);
return add_m(m)*2; // Non banked call fram ram bank 2 to main memory.
}
#pragma code_seg(Code) // The sequent functions will be addressed in the default main memory location (segment Code).
#pragma nobank(dummy) // The sequent functions will consider no banking calculations anymore.
#pragma code_seg(Bank1) // The sequent functions will be addressed specified by segment bank1 in the linker.
// The __bank directive declares this function to be banked using call method ram in bank number 1 of banked ram.
char __bank(ram, 1) add_b(char a) {
printf("add_b(%02x:%04p), ",bank_get_bram(),(void*)&add_b);
char __bank(cx16_ram, 1) add_b(char a) {
printf("add_b(%02x), ",RAM_Bank);
return a+1;
}
#pragma code_seg(Bank2) // The sequent functions will be addressed specified by segment bank1 in the linker.
// The __bank directive declares this function to be banked using call method ram in bank number 2 of banked ram.
char __bank(ram, 2) mul_b(char m) {
printf("mul_b(%02x:%04p), ",bank_get_bram(),(void*)&mul_b);
char __bank(cx16_ram, 2) mul_b(char m) {
printf("mul_b(%02x), ",RAM_Bank);
return m*2;
}
#pragma code_seg(Code) // The sequent functions will be addressed in the default main memory location (segment Code).
// Allocated in main memory.
char add_m(char a) {
printf("add_m(%02x:%04p), ",bank_get_bram(),(void*)&add_m);
printf("add_m(%02x), ",RAM_Bank);
return add_e(a)+1; // Banked call to ram in bank 1 fram main memory.
}
// Allocated in main memory.
char mul_m(char m) {
printf("mul_m(%02x:%04p), ",bank_get_bram(),(void*)&mul_m);
printf("mul_m(%02x), ",RAM_Bank);
return mul_e(m)*2; // Banked call to ram in bank 2 fram main memory.
}
@ -116,50 +118,73 @@ char mul_m(char m) {
// Practically this means that the main() function is placed in main memory ...
void load_bank(char bank, char *file) {
bank_set_bram(bank);
cbm_k_setnam(file);
cbm_k_setlfs(1,8,2);
cbm_k_load((char*)0xA000, 0);
cbm_k_close(1);
RAM_Bank = bank;
//cbm_k_setnam(file);
char file_len = strlen(file);
asm {
lda file_len
ldx <file
ldy >file
jsr $FFBD
}
//cbm_k_setlfs(1,8,2);
asm {
lda #1
ldx #8
ldy #2
jsr $FFBA
}
//cbm_k_load((char*)0xA000, 0);
asm {
lda #0
ldx #<$A000
ldy #>$A000
jsr $FFD5
}
//cbm_k_close(1);
asm {
lda #1
jsr $FFC3
}
}
void main(void) {
clrscr();
cx16_k_screen_set_charset(1,0);
load_bank(1, "BANK1.BIN");
load_bank(2, "BANK2.BIN");
bank_set_bram(0);
RAM_Bank = 0;
asm{.byte $db}
__export char result = add_a(1);
printf("result = %u\n", result); // Banked call to ram in bank 1 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", add_b(1)); // Banked call to ram in bank 1 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", add_c(1)); // Banked call to ram in bank 1 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", add_d(1)); // Banked call to ram in bank 1 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", add_e(1)); // Banked call to ram in bank 1 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", add_f(1)); // Banked call to ram in bank 1 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_a(1)); // Banked call to ram in bank 2 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_b(1)); // Banked call to ram in bank 2 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_c(1)); // Banked call to ram in bank 2 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_d(1)); // Banked call to ram in bank 2 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_e(1)); // banked call to ram in bank 2 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_f(1)); // banked call to ram in bank 2 fram main memory.
// asm{.byte $db}
// printf("result = %u\n", add_m(1)); // Near call in main memory fram main memory.
// asm{.byte $db}
// printf("result = %u\n", mul_m(1)); // Near call in main memory fram main memory.
}
printf("result = %u\n", add_a(1)); // Banked call to ram in bank 1 fram main memory.
asm{.byte $db}
printf("result = %u\n", add_b(1)); // Banked call to ram in bank 1 fram main memory.
asm{.byte $db}
printf("result = %u\n", add_c(1)); // Banked call to ram in bank 1 fram main memory.
asm{.byte $db}
printf("result = %u\n", add_d(1)); // Banked call to ram in bank 1 fram main memory.
asm{.byte $db}
printf("result = %u\n", add_e(1)); // Banked call to ram in bank 1 fram main memory.
asm{.byte $db}
printf("result = %u\n", add_f(1)); // Banked call to ram in bank 1 fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_a(1)); // Banked call to ram in bank 2 fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_b(1)); // Banked call to ram in bank 2 fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_c(1)); // Banked call to ram in bank 2 fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_d(1)); // Banked call to ram in bank 2 fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_e(1)); // banked call to ram in bank 2 fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_f(1)); // banked call to ram in bank 2 fram main memory.
asm{.byte $db}
printf("result = %u\n", add_m(1)); // Near call in main memory fram main memory.
asm{.byte $db}
printf("result = %u\n", mul_m(1)); // Near call in main memory fram main memory.
}

View File

@ -0,0 +1,14 @@
.file [name="%O", type="prg", segments="Program"]
.file [name="BANK1.BIN", type="bin", segments="Bank1"]
.file [name="BANK2.BIN", type="bin", segments="Bank2"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=%P]
.segmentdef Data [startAfter="Code"]
.segmentdef Bank1 [start=$A000, min=$A000, max=$BFFF, align=$100]
.segmentdef Bank2 [start=$A000, min=$A000, max=$BFFF, align=$100]
.segment Basic
:BasicUpstart(%E)
.segment Code
.segment Data

View File

@ -152,7 +152,7 @@ __start: {
// __start::@1
__b1:
// [3] call main
// [5] phi from __start::@1 to main [phi:__start::@1->main]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
jsr main
// __start::@return
// [4] return

View File

@ -181,7 +181,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [6] call print -- call_phi_near
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
// [8] call print -- call_phi_near
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
// [10] call print -- call_phi_near
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
// [3] call main -- call_phi_near
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
// [6] call print -- call_phi_near
jsr print
// main::@1
// print('m')
// [7] print::ch = 'm' -- vbuz1=vbuc1
lda #'m'
sta.z print.ch
// [8] call print
// [8] call print -- call_phi_near
jsr print
// main::@2
// print('l')
// [9] print::ch = 'l' -- vbuz1=vbuc1
lda #'l'
sta.z print.ch
// [10] call print
// [10] call print -- call_phi_near
jsr print
// main::@return
// }

View File

@ -181,7 +181,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [6] call print -- call_phi_near
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
// [8] call print -- call_phi_near
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
// [10] call print -- call_phi_near
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
// [3] call main -- call_phi_near
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
// [6] call print -- call_phi_near
jsr print
// main::@1
// print('m')
// [7] print::ch = 'm' -- vbuz1=vbuc1
lda #'m'
sta.z print.ch
// [8] call print
// [8] call print -- call_phi_near
jsr print
// main::@2
// print('l')
// [9] print::ch = 'l' -- vbuz1=vbuc1
lda #'l'
sta.z print.ch
// [10] call print
// [10] call print -- call_phi_near
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] -- vbuxx=vbuc1
// [12] phi setByte::b#3 = 'c' [phi:main->setByte#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [12] phi setByte::b#3 = 'm' [phi:main::@1->setByte#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [12] phi setByte::b#3 = 'l' [phi:main::@2->setByte#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [12] phi setByte::b#3 = 'c' [phi:main->setByte#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [12] phi setByte::b#3 = 'm' [phi:main::@1->setByte#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [12] phi setByte::b#3 = 'l' [phi:main::@2->setByte#1] -- call_phi_near
ldx #'l'
jsr setByte
// main::@3

View File

@ -367,7 +367,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [16] call setv -- call_phi_near
// 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
// [19] call setp -- call_phi_near
// 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
// [3] call main -- call_phi_near
jsr main
// __start::@return
// [4] return
@ -603,7 +603,7 @@ main: {
lda.z ptr
sta SCREEN2+3
// setv(4)
// [16] call setv
// [16] call setv -- call_phi_near
// 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
// [19] call setp -- call_phi_near
// 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] -- vbuz1=vbuc1
// [11] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
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] -- register_copy
// [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
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] -- register_copy
// [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [11] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
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] -- register_copy
// [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
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] -- register_copy
// [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
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
// [3] call getValue -- call_phi_near
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
// [3] call getValue -- call_phi_near
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
// [1] call bne -- call_phi_near
jsr bne
jmp __b1
// main::@1
@ -215,7 +215,7 @@ main: {
lda #jmp
sta lda
// bne(jmp)
// [1] call bne
// [1] call bne -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3 [phi:main->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1 [phi:main::@1->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1 [phi:main::@2->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6 [phi:main::@3->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2 [phi:main::@4->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1 [phi:main::@5->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2 [phi:main::@6->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1 [phi:main::@7->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6 [phi:main::@8->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1 [phi:main::@9->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [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
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3 [phi:main->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1 [phi:main::@1->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1 [phi:main::@2->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6 [phi:main::@3->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2 [phi:main::@4->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1 [phi:main::@5->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2 [phi:main::@6->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1 [phi:main::@7->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6 [phi:main::@8->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [23] phi test::a#11 = 3+1-1*6/2&2-1<<2>>1^6|1 [phi:main::@9->test#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [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
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]
// [6] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [14] phi from main::@3 to md5 [phi:main::@3->md5] -- call_phi_near
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] -- register_copy
// [36] phi print::print321_l#0 = print::i#0 [phi:md5::@2->print#3] -- call_phi_near
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] -- register_copy
// [36] phi print::print321_l#0 = print::i#1 [phi:md5::@3->print#3] -- call_phi_near
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]
// [6] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [14] phi from main::@3 to md5 [phi:main::@3->md5] -- call_phi_near
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] -- register_copy
// [36] phi print::print321_l#0 = print::i#0 [phi:md5::@2->print#3] -- call_phi_near
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] -- register_copy
// [36] phi print::print321_l#0 = print::i#1 [phi:md5::@3->print#3] -- call_phi_near
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] -- pbuz1=pbuc1
// [13] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [13] phi fill::addr#0 = SCREEN [phi:main::@4->fill#2] -- call_phi_near
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
// [11] call circle -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [13] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [13] phi fill::addr#0 = SCREEN [phi:main::@4->fill#2] -- call_phi_near
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
// [11] call circle -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
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] -- register_copy
// [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [9] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [9] phi fill::addr#0 = SCREEN [phi:main::@2->fill#2] -- call_phi_near
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]
// [16] phi from main::@3 to circle [phi:main::@3->circle] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [9] phi fill::addr#0 = BITMAP [phi:main->fill#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [9] phi fill::addr#0 = SCREEN [phi:main::@2->fill#2] -- call_phi_near
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]
// [16] phi from main::@3 to circle [phi:main::@3->circle] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- call_phi_near
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] -- register_copy
// [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- call_phi_near
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]
// [13] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] -- call_phi_near
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]
// [40] phi from main::@3 to init_screen [phi:main::@3->init_screen] -- call_phi_near
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
// [11] call bitmap_line -- call_phi_near
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] -- vwuz1=vwuc1
// [94] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [94] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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] -- register_copy
// [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
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] -- register_copy
// [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [117] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
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]
// [13] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] -- call_phi_near
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]
// [40] phi from main::@3 to init_screen [phi:main::@3->init_screen] -- call_phi_near
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
// [11] call bitmap_line -- call_phi_near
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] -- vwuz1=vwuc1
// [94] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [94] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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] -- register_copy
// [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
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] -- register_copy
// [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [117] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
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]
// [14] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear] -- call_phi_near
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
// [9] call bitmap_line -- call_phi_near
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] -- vwuz1=vwuc1
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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] -- register_copy
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
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] -- register_copy
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
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]
// [14] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear] -- call_phi_near
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
// [9] call bitmap_line -- call_phi_near
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] -- vwuz1=vwuc1
// [89] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [89] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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] -- register_copy
// [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
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] -- register_copy
// [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
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] -- vwuz1=vwuc1
// [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [112] phi bitmap_plot::y#4 = 0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
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]
// [11] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [34] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear] -- call_phi_near
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
// [18] call init_irq -- call_phi_near
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
// [22] call bitmap_plot -- call_phi_near
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] -- vwuz1=vwuc1
// [77] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [77] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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]
// [11] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [34] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear] -- call_phi_near
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
// [18] call init_irq -- call_phi_near
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
// [22] call bitmap_plot -- call_phi_near
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] -- vwuz1=vwuc1
// [77] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [77] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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]
// [19] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear] -- call_phi_near
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
// [16] call bitmap_line -- call_phi_near
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] -- vwuz1=vwuc1
// [97] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [97] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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] -- register_copy
// [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
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] -- register_copy
// [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
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] -- register_copy
// [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
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]
// [19] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
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]
// [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear] -- call_phi_near
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
// [16] call bitmap_line -- call_phi_near
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] -- vwuz1=vwuc1
// [97] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
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] -- vwuz1=vwuc1
// [97] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
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] -- register_copy
// [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
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] -- register_copy
// [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
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] -- register_copy
// [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
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] -- register_copy
// [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
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]
// [11] phi from main to init_screen [phi:main->init_screen] -- call_phi_near
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]
// [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables] -- call_phi_near
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]
// [46] phi from main::@2 to plots [phi:main::@2->plots] -- call_phi_near
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
// [52] call plot -- call_phi_near
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]
// [11] phi from main to init_screen [phi:main->init_screen] -- call_phi_near
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]
// [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables] -- call_phi_near
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]
// [46] phi from main::@2 to plots [phi:main::@2->plots] -- call_phi_near
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
// [52] call plot -- call_phi_near
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]
// [7] phi from main to bool_const_if [phi:main->bool_const_if] -- call_phi_near
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]
// [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars] -- call_phi_near
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]
// [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline] -- call_phi_near
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]
// [7] phi from main to bool_const_if [phi:main->bool_const_if] -- call_phi_near
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]
// [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars] -- call_phi_near
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]
// [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline] -- call_phi_near
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
// [5] call isSet -- call_phi_near
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
// [5] call isSet -- call_phi_near
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]
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
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]
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
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]
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
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]
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
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]
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
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]
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
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]
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
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]
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
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]
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
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]
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
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]
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
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]
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
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]
// [9] phi from main to bool_and [phi:main->bool_and] -- call_phi_near
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]
// [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] -- call_phi_near
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]
// [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] -- call_phi_near
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]
// [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] -- call_phi_near
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]
// [11] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
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]
// [14] phi from main::@1 to testChar [phi:main::@1->testChar] -- call_phi_near
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
// [5] call testShort -- call_phi_near
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
// [7] call testInt -- call_phi_near
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
// [9] call testLong -- call_phi_near
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]
// [74] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- call_phi_near
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]
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar] -- call_phi_near
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] -- pbuz1=pbuc1
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- call_phi_near
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] -- vwuz1=vwuc1
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- call_phi_near
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] -- register_copy
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- call_phi_near
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] -- vwuz1=vwuc1
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- call_phi_near
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] -- register_copy
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- call_phi_near
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] -- vduz1=vduc1
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- call_phi_near
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] -- vdsz1=vdsc1
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- call_phi_near
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] -- vdsz1=vdsc1
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- call_phi_near
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] -- register_copy
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- call_phi_near
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] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- call_phi_near
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] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- call_phi_near
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] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- call_phi_near
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] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- call_phi_near
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] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- call_phi_near
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] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- call_phi_near
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] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- call_phi_near
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] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- call_phi_near
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] -- register_copy
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- call_phi_near
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]
// [11] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
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]
// [14] phi from main::@1 to testChar [phi:main::@1->testChar] -- call_phi_near
jsr testChar
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// testShort()
// [5] call testShort
// [5] call testShort -- call_phi_near
jsr testShort
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// testInt()
// [7] call testInt
// [7] call testInt -- call_phi_near
jsr testInt
// [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
// main::@4
// testLong()
// [9] call testLong
// [9] call testLong -- call_phi_near
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]
// [74] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- call_phi_near
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]
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar] -- call_phi_near
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] -- pbuz1=pbuc1
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- call_phi_near
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] -- vwuz1=vwuc1
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- call_phi_near
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] -- register_copy
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- call_phi_near
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] -- vwuz1=vwuc1
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- call_phi_near
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] -- vwsz1=vwsc1
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- call_phi_near
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] -- register_copy
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- call_phi_near
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] -- vduz1=vduc1
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- call_phi_near
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] -- vdsz1=vdsc1
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- call_phi_near
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] -- vdsz1=vdsc1
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- call_phi_near
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] -- register_copy
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- call_phi_near
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] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- call_phi_near
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] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- call_phi_near
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] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- call_phi_near
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] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- call_phi_near
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] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- call_phi_near
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] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- call_phi_near
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] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- call_phi_near
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] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- call_phi_near
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] -- register_copy
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- call_phi_near
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]
// [40] phi from main to gfx_init [phi:main->gfx_init] -- call_phi_near
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]
// [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0] -- call_phi_near
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]
// [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8] -- call_phi_near
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] -- vbuaa=vbuc1
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- call_phi_near
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]
// [40] phi from main to gfx_init [phi:main->gfx_init] -- call_phi_near
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]
// [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0] -- call_phi_near
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]
// [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8] -- call_phi_near
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] -- vbuaa=vbuc1
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- call_phi_near
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]
// [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky] -- call_phi_near
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] -- vbuaa=vbuc1
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- call_phi_near
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] -- register_copy
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- call_phi_near
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]
// [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky] -- call_phi_near
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] -- vbuaa=vbuc1
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- call_phi_near
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] -- register_copy
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- call_phi_near
lda #$4000/$4000
jsr dtvSetCpuBankSegment1
// gfx_init_chunky::@return

View File

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

View File

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

View File

@ -180,7 +180,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -266,7 +266,7 @@ Score: 39
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha

View File

@ -180,7 +180,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -266,7 +266,7 @@ Score: 39
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha

View File

@ -249,7 +249,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -276,7 +276,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
min_from_plus:
jsr min
jmp __breturn
@ -356,7 +356,7 @@ Score: 51
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -381,7 +381,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
jsr min
// plus::@return
// }

View File

@ -249,7 +249,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -276,7 +276,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
min_from_plus:
jsr min
jmp __breturn
@ -356,7 +356,7 @@ Score: 51
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -381,7 +381,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
jsr min
// plus::@return
// }

View File

@ -249,7 +249,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -276,7 +276,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
min_from_plus:
jsr min
jmp __breturn
@ -355,7 +355,7 @@ Score: 51
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -380,7 +380,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
jsr min
// plus::@return
// }

View File

@ -249,7 +249,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -276,7 +276,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
min_from_plus:
jsr min
jmp __breturn
@ -355,7 +355,7 @@ Score: 51
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -380,7 +380,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call__phi_near_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_near
jsr min
// plus::@return
// }

View File

@ -249,7 +249,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -276,7 +276,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_ram_phi_far_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_far_cx16_ram
min_from_plus:
jsr $ff6e
.byte <min
@ -359,7 +359,7 @@ Score: 51
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -384,7 +384,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_ram_phi_far_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_far_cx16_ram
jsr $ff6e
.byte <min
.byte >min

View File

@ -249,7 +249,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -276,7 +276,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_ram_phi_far_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_far_cx16_ram
min_from_plus:
jsr $ff6e
.byte <min
@ -359,7 +359,7 @@ Score: 51
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -384,7 +384,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_ram_phi_far_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_far_cx16_ram
jsr $ff6e
.byte <min
.byte >min

View File

@ -250,7 +250,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -277,7 +277,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_rom_phi_close_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_close_cx16_rom
min_from_plus:
lda #1
sta.z 1
@ -362,7 +362,7 @@ Score: 66
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -387,7 +387,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_rom_phi_close_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_close_cx16_rom
lda #1
sta.z 1
pha

View File

@ -250,7 +250,7 @@ ASSEMBLER BEFORE OPTIMIZATION
// main
main: {
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
plus_from_main:
lda #1
sta.z 0
@ -277,7 +277,7 @@ plus: {
.label a = '0'
.label b = 7
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_rom_phi_close_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_close_cx16_rom
min_from_plus:
lda #1
sta.z 1
@ -362,7 +362,7 @@ Score: 66
main: {
// plus('0', 7)
// [1] call plus
// [4] phi from main to plus [phi:main->plus] -- call_cx16_ram_phi_close_finalize
// [4] phi from main to plus [phi:main->plus] -- call_phi_close_cx16_ram
lda #1
sta.z 0
pha
@ -387,7 +387,7 @@ plus: {
.label b = 7
// min(a, b)
// [5] call min
// [7] phi from plus to min [phi:plus->min] -- call_cx16_rom_phi_close_finalize
// [7] phi from plus to min [phi:plus->min] -- call_phi_close_cx16_rom
lda #1
sta.z 1
pha

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] -- vbuxx=vbuc1
// [7] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
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] -- register_copy
// [7] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
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] -- register_copy
// [7] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [7] phi idx#13 = 0 [phi:main->print#1] -- call_phi_near
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] -- register_copy
// [7] phi idx#13 = idx#14 [phi:main::@1->print#1] -- call_phi_near
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] -- register_copy
// [7] phi idx#13 = idx#14 [phi:main::@2->print#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [5] phi line::x#0 = 1 [phi:main->line#2] -- call_phi_near
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] -- vbuxx=vbuc1
// [5] phi line::x#0 = 3 [phi:main::@1->line#2] -- call_phi_near
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] -- vbuxx=vbuc1
// [5] phi line::x#0 = 1 [phi:main->line#2] -- call_phi_near
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] -- vbuxx=vbuc1
// [5] phi line::x#0 = 3 [phi:main::@1->line#2] -- call_phi_near
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
// [5] call conio_c64_init -- call_phi_near
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]
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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
// [14] call gotoxy -- call_phi_near
jsr gotoxy
jmp __breturn
// conio_c64_init::@return
@ -3887,7 +3887,7 @@ cputc: {
jmp __b3
// cputc::@3
__b3:
// [23] call cputln
// [23] call cputln -- call_phi_near
jsr cputln
jmp __breturn
// cputc::@return
@ -3899,7 +3899,7 @@ cputc: {
jmp __b1
// cputc::@1
__b1:
// [26] call cputln
// [26] call cputln -- call_phi_near
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]
// [55] phi from main to clrscr [phi:main->clrscr] -- call_phi_near
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
// [34] call test_casting -- call_phi_near
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
// [53] call cscroll -- call_phi_near
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
// [72] call printf_sint -- call_phi_near
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] -- pbuz1=pbuc1
// [99] phi printf_str::s#4 = test_casting::s [phi:test_casting::@1->printf_str#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [108] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [108] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [118] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [118] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
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]
// [126] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] -- call_phi_near
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]
// [147] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] -- call_phi_near
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]
// [155] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] -- call_phi_near
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] -- pbuz1=pbuc1
// [99] phi printf_str::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->printf_str#1] -- call_phi_near
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
// [5] call conio_c64_init -- call_phi_near
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]
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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
// [14] call gotoxy -- call_phi_near
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
// [23] call cputln -- call_phi_near
jsr cputln
// cputc::@return
__breturn:
@ -5283,7 +5283,7 @@ cputc: {
// cputc::@1
__b1:
// cputln()
// [26] call cputln
// [26] call cputln -- call_phi_near
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]
// [55] phi from main to clrscr [phi:main->clrscr] -- call_phi_near
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
// [34] call test_casting -- call_phi_near
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
// [53] call cscroll -- call_phi_near
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
// [72] call printf_sint -- call_phi_near
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] -- pbuz1=pbuc1
// [99] phi printf_str::s#4 = test_casting::s [phi:test_casting::@1->printf_str#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [108] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [108] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [118] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [118] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
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]
// [126] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] -- call_phi_near
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]
// [147] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] -- call_phi_near
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]
// [155] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] -- call_phi_near
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] -- pbuz1=pbuc1
// [99] phi printf_str::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->printf_str#1] -- call_phi_near
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]
// [11] phi from main::@2 to w [phi:main::@2->w] -- call_phi_near
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]
// [11] phi from main::@2 to w [phi:main::@2->w] -- call_phi_near
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
// [5] call conio_c64_init -- call_phi_near
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]
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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
// [14] call gotoxy -- call_phi_near
jsr gotoxy
jmp __breturn
// conio_c64_init::@return
@ -4558,7 +4558,7 @@ cputc: {
jmp __b3
// cputc::@3
__b3:
// [23] call cputln
// [23] call cputln -- call_phi_near
jsr cputln
jmp __breturn
// cputc::@return
@ -4570,7 +4570,7 @@ cputc: {
jmp __b1
// cputc::@1
__b1:
// [26] call cputln
// [26] call cputln -- call_phi_near
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]
// [71] phi from main::@3 to clrscr [phi:main::@3->clrscr] -- call_phi_near
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
// [32] call GETIN -- call_phi_near
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
// [38] call petscii_to_screencode -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = main::s [phi:main::@5->printf_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = main::s1 [phi:main::@6->printf_str#1] -- call_phi_near
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]
// [112] phi from main::@7 to printf_uchar [phi:main::@7->printf_uchar] -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = main::s2 [phi:main::@8->printf_str#1] -- call_phi_near
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
// [69] call cscroll -- call_phi_near
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]
// [132] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] -- call_phi_near
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]
// [151] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] -- call_phi_near
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] -- pvoz1=pvoc1
// [174] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [174] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [184] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [184] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
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]
// [192] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] -- call_phi_near
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]
// [199] phi from printf_number_buffer::@4 to strlen [phi:printf_number_buffer::@4->strlen] -- call_phi_near
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]
// [205] phi from printf_number_buffer::@6 to printf_padding [phi:printf_number_buffer::@6->printf_padding] -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@3->printf_str#1] -- call_phi_near
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
// [5] call conio_c64_init -- call_phi_near
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]
// [27] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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
// [14] call gotoxy -- call_phi_near
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
// [23] call cputln -- call_phi_near
jsr cputln
// cputc::@return
__breturn:
@ -6394,7 +6394,7 @@ cputc: {
// cputc::@1
__b1:
// cputln()
// [26] call cputln
// [26] call cputln -- call_phi_near
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]
// [71] phi from main::@3 to clrscr [phi:main::@3->clrscr] -- call_phi_near
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
// [32] call GETIN -- call_phi_near
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
// [38] call petscii_to_screencode -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = main::s [phi:main::@5->printf_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = main::s1 [phi:main::@6->printf_str#1] -- call_phi_near
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]
// [112] phi from main::@7 to printf_uchar [phi:main::@7->printf_uchar] -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = main::s2 [phi:main::@8->printf_str#1] -- call_phi_near
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
// [69] call cscroll -- call_phi_near
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]
// [132] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] -- call_phi_near
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]
// [151] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] -- call_phi_near
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] -- pvoz1=pvoc1
// [174] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [174] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [184] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [184] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- call_phi_near
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]
// [192] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] -- call_phi_near
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]
// [199] phi from printf_number_buffer::@4 to strlen [phi:printf_number_buffer::@4->strlen] -- call_phi_near
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]
// [205] phi from printf_number_buffer::@6 to printf_padding [phi:printf_number_buffer::@6->printf_padding] -- call_phi_near
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] -- pbuz1=pbuc1
// [103] phi printf_str::s#6 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@3->printf_str#1] -- call_phi_near
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
// [2] call clock_start -- call_phi_near
// 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
// [4] call clock -- call_phi_near
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
// [9] call print_ulong_at -- call_phi_near
// 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] -- register_copy
// [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
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] -- register_copy
// [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
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] -- 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
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] -- 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
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] -- 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
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] -- 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
jsr print_char_at
jmp __breturn
// print_uchar_at::@return
@ -1097,7 +1097,7 @@ main: {
// main::@1
__b1:
// clock_start()
// [2] call clock_start
// [2] call clock_start -- call_phi_near
// 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
// [4] call clock -- call_phi_near
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
// [9] call print_ulong_at -- call_phi_near
// 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] -- register_copy
// [25] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
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] -- register_copy
// [25] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
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] -- 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
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] -- 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
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] -- 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
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] -- 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
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
// [1] call clock_start -- call_phi_near
// 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
// [3] call clock -- call_phi_near
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
// [6] call print_ulong_at -- call_phi_near
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] -- register_copy
// [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
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] -- register_copy
// [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
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] -- 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
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] -- 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
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] -- 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
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] -- 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
jsr print_char_at
jmp __breturn
// print_uchar_at::@return
@ -1030,20 +1030,20 @@ Score: 467
// main
main: {
// clock_start()
// [1] call clock_start
// [1] call clock_start -- call_phi_near
// 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
// [3] call clock -- call_phi_near
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
// [6] call print_ulong_at -- call_phi_near
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] -- register_copy
// [22] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- call_phi_near
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] -- register_copy
// [22] phi print_uint_at::w#2 = print_uint_at::w#1 [phi:print_ulong_at::@1->print_uint_at#1] -- call_phi_near
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] -- 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
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] -- 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
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] -- 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
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] -- 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
jsr print_char_at
// print_uchar_at::@return
// }

View File

@ -236,7 +236,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [3] call main -- call_phi_near
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]
// [6] phi from main to strlen [phi:main->strlen] -- call_phi_near
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]
// [6] phi from main to strlen [phi:main->strlen] -- call_phi_near
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]
// [4] phi from main to strlen [phi:main->strlen] -- call_phi_near
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]
// [4] phi from main to strlen [phi:main->strlen] -- call_phi_near
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] -- pvoz1=pvoc1
// [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- call_phi_near
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] -- pvoz1=pvoc1
// [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- call_phi_near
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
// [8] call OBJ_is_solid -- call_phi_near
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]
// [19] phi from OBJ_is_solid::@1 to tile_flag_at [phi:OBJ_is_solid::@1->tile_flag_at] -- call_phi_near
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
// [8] call OBJ_is_solid -- call_phi_near
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]
// [19] phi from OBJ_is_solid::@1 to tile_flag_at [phi:OBJ_is_solid::@1->tile_flag_at] -- call_phi_near
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
// [3] call main -- call_phi_near
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
// [8] call sub -- call_phi_near
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
// [3] call main -- call_phi_near
jsr main
// __start::@return
// [4] return
@ -338,7 +338,7 @@ main: {
lda.z addrA
sta SCREEN+2
// sub()
// [8] call sub
// [8] call sub -- call_phi_near
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]
// [8] phi from main::@2 to line [phi:main::@2->line] -- call_phi_near
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
// [13] call plot -- call_phi_near
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]
// [8] phi from main::@2 to line [phi:main::@2->line] -- call_phi_near
jsr line
jmp __b2
}
@ -561,7 +561,7 @@ line: {
__b2:
// plot(x)
// [12] plot::x#1 = line::x#2
// [13] call plot
// [13] call plot -- call_phi_near
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] -- vbuaa=vbuc1
// [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- call_phi_near
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] -- vbuaa=vbuc1
// [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- call_phi_near
lda #'l'
jsr sum
// sum(reverse, 'l')

View File

@ -204,7 +204,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [3] call main -- call_phi_near
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]
// [7] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
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]
// [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes] -- call_phi_near
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]
// [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes] -- call_phi_near
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]
// [28] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
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] -- pbuz1=pbuc1
// [34] phi assert_byte::msg#3 = msg [phi:test_bytes->assert_byte#4] -- call_phi_near
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] -- pbuz1=pbuc1
// [34] phi assert_byte::msg#3 = msg1 [phi:test_bytes::@1->assert_byte#4] -- call_phi_near
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] -- pbuz1=pbuc1
// [34] phi assert_byte::msg#3 = test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = msg [phi:test_sbytes->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- call_phi_near
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] -- register_copy
// [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- call_phi_near
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] -- register_copy
// [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- call_phi_near
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] -- register_copy
// [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- call_phi_near
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] -- register_copy
// [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- call_phi_near
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
// [66] call print_char -- call_phi_near
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]
// [7] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
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]
// [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes] -- call_phi_near
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]
// [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes] -- call_phi_near
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]
// [28] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
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] -- pbuz1=pbuc1
// [34] phi assert_byte::msg#3 = msg [phi:test_bytes->assert_byte#4] -- call_phi_near
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] -- pbuz1=pbuc1
// [34] phi assert_byte::msg#3 = msg1 [phi:test_bytes::@1->assert_byte#4] -- call_phi_near
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] -- pbuz1=pbuc1
// [34] phi assert_byte::msg#3 = test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = msg [phi:test_sbytes->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- call_phi_near
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] -- pbuz1=pbuc1
// [47] phi assert_sbyte::msg#5 = test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- call_phi_near
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] -- register_copy
// [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- call_phi_near
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] -- register_copy
// [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- call_phi_near
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] -- register_copy
// [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- call_phi_near
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] -- register_copy
// [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- call_phi_near
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] -- pbuz1=pbuc1
// [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- call_phi_near
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
// [66] call print_char -- call_phi_near
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
// [1] call copy -- call_phi_near
jsr copy
jmp __breturn
// main::@return
@ -267,7 +267,7 @@ Score: 41
// main
main: {
// copy(B, A)
// [1] call copy
// [1] call copy -- call_phi_near
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]
// [22] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
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
// [10] call atan2_16 -- call_phi_near
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]
// [22] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
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
// [10] call atan2_16 -- call_phi_near
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]
// [10] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
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]
// [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen] -- call_phi_near
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
// [49] call atan2_16 -- call_phi_near
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]
// [10] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
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]
// [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen] -- call_phi_near
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
// [49] call atan2_16 -- call_phi_near
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]
// [18] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
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
// [8] call atan2_8 -- call_phi_near
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]
// [18] phi from main to init_font_hex [phi:main->init_font_hex] -- call_phi_near
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
// [8] call atan2_8 -- call_phi_near
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] -- vbuxx=vbuc1
// [10] phi sum::a#2 = 'a' [phi:main->sum#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [10] phi sum::a#2 = 'a' [phi:main::@1->sum#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [10] phi sum::a#2 = 'a' [phi:main->sum#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [10] phi sum::a#2 = 'a' [phi:main::@1->sum#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::reg_zp_flex [phi:main->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::reg_zp_flex [phi:main->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- call_phi_near
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] -- vbuxx=vbuc1
// [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- call_phi_near
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] -- register_copy
// [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
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]
// [5] phi from __start::@1 to main [phi:__start::@1->main] -- call_phi_near
jsr main
// __start::@return
// [4] return

View File

@ -518,7 +518,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [3] call main -- call_phi_near
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]
// [13] phi from main to memset [phi:main->memset] -- call_phi_near
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]
// [13] phi from main to memset [phi:main->memset] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg1 [phi:main->print#1] -- call_phi_near
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] -- pbuz1=pbuc1
// [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- call_phi_near
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
// [1] call chrout -- call_phi_near
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
// [3] call chrout -- call_phi_near
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
// [5] call chrout -- call_phi_near
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
// [7] call chrout -- call_phi_near
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
// [9] call chrout -- call_phi_near
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
// [1] call chrout -- call_phi_near
jsr chrout
// main::@1
// chrout(points[0])
// [2] chrout::petscii = *points -- vbuz1=_deref_pbuc1
lda points
sta.z chrout.petscii
// [3] call chrout
// [3] call chrout -- call_phi_near
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
// [5] call chrout -- call_phi_near
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
// [7] call chrout -- call_phi_near
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
// [9] call chrout -- call_phi_near
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
// [5] call chrout -- call_phi_near
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
// [5] call chrout -- call_phi_near
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]
// [3] phi from main::@1 to menu [phi:main::@1->menu] -- call_phi_near
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]
// [7] phi from menu::@1 to mode [phi:menu::@1->mode] -- call_phi_near
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]
// [3] phi from main::@1 to menu [phi:main::@1->menu] -- call_phi_near
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]
// [7] phi from menu::@1 to mode [phi:menu::@1->mode] -- call_phi_near
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
// [1] call test -- call_phi_near
jsr test
jmp __breturn
// main::@return
@ -186,7 +186,7 @@ main: {
lda #ON
sta SCREEN
// test()
// [1] call test
// [1] call test -- call_phi_near
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]
// [15] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- call_phi_near
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]
// [36] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
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] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- call_phi_near
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] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- call_phi_near
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]
// [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] -- call_phi_near
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] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- call_phi_near
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]
// [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] -- call_phi_near
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] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- call_phi_near
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] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- call_phi_near
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]
// [15] phi from main to print_cls [phi:main->print_cls] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- call_phi_near
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]
// [36] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
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] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- call_phi_near
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] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- call_phi_near
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] -- vbuaa=vbuc1
// [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- call_phi_near
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]
// [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] -- call_phi_near
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] -- register_copy
// [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- call_phi_near
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]
// [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] -- call_phi_near
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] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- call_phi_near
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] -- register_copy
// [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $80 [phi:main->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $a9 [phi:main::@1->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $ff [phi:main::@2->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $63 [phi:main::@3->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $80 [phi:main->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $a9 [phi:main::@1->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $ff [phi:main::@2->euclid#1] -- call_phi_near
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] -- vbuz1=vbuc1
// [18] phi euclid::a#10 = $63 [phi:main::@3->euclid#1] -- call_phi_near
lda #$63
sta.z euclid.a
jsr euclid

View File

@ -869,7 +869,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [3] call main
// [3] call main -- call_phi_near
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
// [3] call main -- call_phi_near
jsr main
// __start::@return
// [4] return

View File

@ -1781,7 +1781,7 @@ __start: {
jmp __b1
// __start::@1
__b1:
// [7] call main
// [7] call main -- call_phi_near
jsr main
jmp __breturn
// __start::@return
@ -1794,7 +1794,7 @@ main: {
// asm { sei }
sei
// [10] call mulf_init
// [17] phi from main to mulf_init [phi:main->mulf_init]
// [17] phi from main to mulf_init [phi:main->mulf_init] -- call_phi_near
mulf_init_from_main:
jsr mulf_init
jmp __b1
@ -1811,7 +1811,7 @@ main: {
lda #>mulf_sqr2
sta.z psp2+1
// [13] call print_cls
// [35] phi from main::@1 to print_cls [phi:main::@1->print_cls]
// [35] phi from main::@1 to print_cls [phi:main::@1->print_cls] -- call_phi_near
print_cls_from___b1:
jsr print_cls
// [14] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
@ -1820,7 +1820,7 @@ main: {
// main::@2
__b2:
// [15] call do_perspective
// [38] phi from main::@2 to do_perspective [phi:main::@2->do_perspective]
// [38] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] -- call_phi_near
do_perspective_from___b2:
jsr do_perspective
jmp __breturn
@ -1926,7 +1926,7 @@ mulf_init: {
// Clear the screen. Also resets current line/char cursor.
print_cls: {
// [36] call memset
// [65] phi from print_cls to memset [phi:print_cls->memset]
// [65] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
memset_from_print_cls:
jsr memset
jmp __breturn
@ -1949,7 +1949,7 @@ do_perspective: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [71] phi print_str::str#10 = do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str [phi:do_perspective->print_str#1] -- call_phi_near
lda #<str
sta.z print_str.str
lda #>str
@ -1963,7 +1963,7 @@ do_perspective: {
// [41] call print_schar
// [78] phi from do_perspective::@1 to print_schar [phi:do_perspective::@1->print_schar]
print_schar_from___b1:
// [78] phi print_schar::b#4 = do_perspective::x#0 [phi:do_perspective::@1->print_schar#0] -- vbsxx=vbsc1
// [78] phi print_schar::b#4 = do_perspective::x#0 [phi:do_perspective::@1->print_schar#0] -- call_phi_near
ldx #x
jsr print_schar
// [42] phi from do_perspective::@1 to do_perspective::@2 [phi:do_perspective::@1->do_perspective::@2]
@ -1975,7 +1975,7 @@ do_perspective: {
// [71] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str]
print_str_from___b2:
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- call_phi_near
lda #<str1
sta.z print_str.str
lda #>str1
@ -1989,7 +1989,7 @@ do_perspective: {
// [45] call print_schar
// [78] phi from do_perspective::@3 to print_schar [phi:do_perspective::@3->print_schar]
print_schar_from___b3:
// [78] phi print_schar::b#4 = do_perspective::y#0 [phi:do_perspective::@3->print_schar#0] -- vbsxx=vbsc1
// [78] phi print_schar::b#4 = do_perspective::y#0 [phi:do_perspective::@3->print_schar#0] -- call_phi_near
ldx #y
jsr print_schar
// [46] phi from do_perspective::@3 to do_perspective::@4 [phi:do_perspective::@3->do_perspective::@4]
@ -2001,7 +2001,7 @@ do_perspective: {
// [71] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
print_str_from___b4:
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- call_phi_near
lda #<str1
sta.z print_str.str
lda #>str1
@ -2015,7 +2015,7 @@ do_perspective: {
// [49] call print_schar
// [78] phi from do_perspective::@5 to print_schar [phi:do_perspective::@5->print_schar]
print_schar_from___b5:
// [78] phi print_schar::b#4 = do_perspective::z#0 [phi:do_perspective::@5->print_schar#0] -- vbsxx=vbsc1
// [78] phi print_schar::b#4 = do_perspective::z#0 [phi:do_perspective::@5->print_schar#0] -- call_phi_near
ldx #z
jsr print_schar
// [50] phi from do_perspective::@5 to do_perspective::@6 [phi:do_perspective::@5->do_perspective::@6]
@ -2027,7 +2027,7 @@ do_perspective: {
// [71] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str]
print_str_from___b6:
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- call_phi_near
lda #<str3
sta.z print_str.str
lda #>str3
@ -2038,7 +2038,7 @@ do_perspective: {
jmp __b7
// do_perspective::@7
__b7:
// [53] call perspective
// [53] call perspective -- call_phi_near
jsr perspective
jmp __b8
// do_perspective::@8
@ -2049,7 +2049,7 @@ do_perspective: {
// [94] phi from do_perspective::@8 to print_uchar [phi:do_perspective::@8->print_uchar]
print_uchar_from___b8:
// [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@8->print_uchar#0] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#1 [phi:do_perspective::@8->print_uchar#1] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#1 [phi:do_perspective::@8->print_uchar#1] -- call_phi_near
jsr print_uchar
// [56] phi from do_perspective::@8 to do_perspective::@9 [phi:do_perspective::@8->do_perspective::@9]
__b9_from___b8:
@ -2060,7 +2060,7 @@ do_perspective: {
// [71] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
print_str_from___b9:
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- call_phi_near
lda #<str1
sta.z print_str.str
lda #>str1
@ -2075,7 +2075,7 @@ do_perspective: {
// [94] phi from do_perspective::@10 to print_uchar [phi:do_perspective::@10->print_uchar]
print_uchar_from___b10:
// [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@10->print_uchar#0] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#2 [phi:do_perspective::@10->print_uchar#1] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#2 [phi:do_perspective::@10->print_uchar#1] -- call_phi_near
jsr print_uchar
// [60] phi from do_perspective::@10 to do_perspective::@11 [phi:do_perspective::@10->do_perspective::@11]
__b11_from___b10:
@ -2086,7 +2086,7 @@ do_perspective: {
// [71] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str]
print_str_from___b11:
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- call_phi_near
lda #<str5
sta.z print_str.str
lda #>str5
@ -2098,7 +2098,7 @@ do_perspective: {
// do_perspective::@12
__b12:
// [63] call print_ln
// [102] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln]
// [102] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] -- call_phi_near
print_ln_from___b12:
jsr print_ln
jmp __breturn
@ -2196,7 +2196,7 @@ print_str: {
// [107] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
print_char_from___b2:
// [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- call_phi_near
jsr print_char
jmp __b3
// print_str::@3
@ -2224,7 +2224,7 @@ print_schar: {
// [107] phi from print_schar::@3 to print_char [phi:print_schar::@3->print_char]
print_char_from___b3:
// [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@3->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = ' ' [phi:print_schar::@3->print_char#1] -- vbuaa=vbuc1
// [107] phi print_char::ch#5 = ' ' [phi:print_schar::@3->print_char#1] -- call_phi_near
lda #' '
jsr print_char
// [82] phi from print_schar::@3 print_schar::@4 to print_schar::@2 [phi:print_schar::@3/print_schar::@4->print_schar::@2]
@ -2239,7 +2239,7 @@ print_schar: {
// [94] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
print_uchar_from___b2:
// [94] phi print_char_cursor#72 = print_char_cursor#11 [phi:print_schar::@2->print_uchar#0] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- call_phi_near
jsr print_uchar
jmp __breturn
// print_schar::@return
@ -2255,7 +2255,7 @@ print_schar: {
// [107] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
print_char_from___b1:
// [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@1->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1
// [107] phi print_char::ch#5 = '-' [phi:print_schar::@1->print_char#1] -- call_phi_near
lda #'-'
jsr print_char
jmp __b4
@ -2327,7 +2327,7 @@ print_uchar: {
// [107] phi from print_uchar to print_char [phi:print_uchar->print_char]
print_char_from_print_uchar:
// [107] phi print_char_cursor#45 = print_char_cursor#72 [phi:print_uchar->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#3 [phi:print_uchar->print_char#1] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#3 [phi:print_uchar->print_char#1] -- call_phi_near
jsr print_char
jmp __b1
// print_uchar::@1
@ -2341,7 +2341,7 @@ print_uchar: {
// [107] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
print_char_from___b1:
// [107] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- call_phi_near
jsr print_char
jmp __breturn
// print_uchar::@return
@ -2772,7 +2772,7 @@ __start: {
sta.z psp2+1
// [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1]
// __start::@1
// [7] call main
// [7] call main -- call_phi_near
jsr main
// __start::@return
// [8] return
@ -2785,7 +2785,7 @@ main: {
sei
// mulf_init()
// [10] call mulf_init
// [17] phi from main to mulf_init [phi:main->mulf_init]
// [17] phi from main to mulf_init [phi:main->mulf_init] -- call_phi_near
jsr mulf_init
// main::@1
// psp1 = (unsigned int)mulf_sqr1
@ -2802,13 +2802,13 @@ main: {
sta.z psp2+1
// print_cls()
// [13] call print_cls
// [35] phi from main::@1 to print_cls [phi:main::@1->print_cls]
// [35] phi from main::@1 to print_cls [phi:main::@1->print_cls] -- call_phi_near
jsr print_cls
// [14] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// do_perspective($39, -$47, $36)
// [15] call do_perspective
// [38] phi from main::@2 to do_perspective [phi:main::@2->do_perspective]
// [38] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] -- call_phi_near
jsr do_perspective
// main::@return
// }
@ -2914,7 +2914,7 @@ mulf_init: {
print_cls: {
// memset(print_screen, ' ', 1000)
// [36] call memset
// [65] phi from print_cls to memset [phi:print_cls->memset]
// [65] phi from print_cls to memset [phi:print_cls->memset] -- call_phi_near
jsr memset
// print_cls::@return
// }
@ -2935,7 +2935,7 @@ do_perspective: {
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [71] phi print_str::str#10 = do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str [phi:do_perspective->print_str#1] -- call_phi_near
lda #<str
sta.z print_str.str
lda #>str
@ -2946,7 +2946,7 @@ do_perspective: {
// print_schar(x)
// [41] call print_schar
// [78] phi from do_perspective::@1 to print_schar [phi:do_perspective::@1->print_schar]
// [78] phi print_schar::b#4 = do_perspective::x#0 [phi:do_perspective::@1->print_schar#0] -- vbsxx=vbsc1
// [78] phi print_schar::b#4 = do_perspective::x#0 [phi:do_perspective::@1->print_schar#0] -- call_phi_near
ldx #x
jsr print_schar
// [42] phi from do_perspective::@1 to do_perspective::@2 [phi:do_perspective::@1->do_perspective::@2]
@ -2955,7 +2955,7 @@ do_perspective: {
// [43] call print_str
// [71] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str]
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- call_phi_near
lda #<str1
sta.z print_str.str
lda #>str1
@ -2966,7 +2966,7 @@ do_perspective: {
// print_schar(y)
// [45] call print_schar
// [78] phi from do_perspective::@3 to print_schar [phi:do_perspective::@3->print_schar]
// [78] phi print_schar::b#4 = do_perspective::y#0 [phi:do_perspective::@3->print_schar#0] -- vbsxx=vbsc1
// [78] phi print_schar::b#4 = do_perspective::y#0 [phi:do_perspective::@3->print_schar#0] -- call_phi_near
ldx #y
jsr print_schar
// [46] phi from do_perspective::@3 to do_perspective::@4 [phi:do_perspective::@3->do_perspective::@4]
@ -2975,7 +2975,7 @@ do_perspective: {
// [47] call print_str
// [71] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- call_phi_near
lda #<str1
sta.z print_str.str
lda #>str1
@ -2986,7 +2986,7 @@ do_perspective: {
// print_schar(z)
// [49] call print_schar
// [78] phi from do_perspective::@5 to print_schar [phi:do_perspective::@5->print_schar]
// [78] phi print_schar::b#4 = do_perspective::z#0 [phi:do_perspective::@5->print_schar#0] -- vbsxx=vbsc1
// [78] phi print_schar::b#4 = do_perspective::z#0 [phi:do_perspective::@5->print_schar#0] -- call_phi_near
ldx #z
jsr print_schar
// [50] phi from do_perspective::@5 to do_perspective::@6 [phi:do_perspective::@5->do_perspective::@6]
@ -2995,7 +2995,7 @@ do_perspective: {
// [51] call print_str
// [71] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str]
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- call_phi_near
lda #<str3
sta.z print_str.str
lda #>str3
@ -3004,7 +3004,7 @@ do_perspective: {
// [52] phi from do_perspective::@6 to do_perspective::@7 [phi:do_perspective::@6->do_perspective::@7]
// do_perspective::@7
// perspective(x, y, z)
// [53] call perspective
// [53] call perspective -- call_phi_near
jsr perspective
// do_perspective::@8
// print_uchar((char)xr)
@ -3013,7 +3013,7 @@ do_perspective: {
// [55] call print_uchar
// [94] phi from do_perspective::@8 to print_uchar [phi:do_perspective::@8->print_uchar]
// [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@8->print_uchar#0] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#1 [phi:do_perspective::@8->print_uchar#1] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#1 [phi:do_perspective::@8->print_uchar#1] -- call_phi_near
jsr print_uchar
// [56] phi from do_perspective::@8 to do_perspective::@9 [phi:do_perspective::@8->do_perspective::@9]
// do_perspective::@9
@ -3021,7 +3021,7 @@ do_perspective: {
// [57] call print_str
// [71] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- call_phi_near
lda #<str1
sta.z print_str.str
lda #>str1
@ -3034,7 +3034,7 @@ do_perspective: {
// [59] call print_uchar
// [94] phi from do_perspective::@10 to print_uchar [phi:do_perspective::@10->print_uchar]
// [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@10->print_uchar#0] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#2 [phi:do_perspective::@10->print_uchar#1] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#2 [phi:do_perspective::@10->print_uchar#1] -- call_phi_near
jsr print_uchar
// [60] phi from do_perspective::@10 to do_perspective::@11 [phi:do_perspective::@10->do_perspective::@11]
// do_perspective::@11
@ -3042,7 +3042,7 @@ do_perspective: {
// [61] call print_str
// [71] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str]
// [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy
// [71] phi print_str::str#10 = do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
// [71] phi print_str::str#10 = do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- call_phi_near
lda #<str5
sta.z print_str.str
lda #>str5
@ -3052,7 +3052,7 @@ do_perspective: {
// do_perspective::@12
// print_ln()
// [63] call print_ln
// [102] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln]
// [102] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] -- call_phi_near
jsr print_ln
// do_perspective::@return
// }
@ -3144,7 +3144,7 @@ print_str: {
// [76] call print_char
// [107] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
// [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- call_phi_near
jsr print_char
// print_str::@3
// print_char(*(str++));
@ -3169,7 +3169,7 @@ print_schar: {
// [81] call print_char
// [107] phi from print_schar::@3 to print_char [phi:print_schar::@3->print_char]
// [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@3->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = ' ' [phi:print_schar::@3->print_char#1] -- vbuaa=vbuc1
// [107] phi print_char::ch#5 = ' ' [phi:print_schar::@3->print_char#1] -- call_phi_near
lda #' '
jsr print_char
// [82] phi from print_schar::@3 print_schar::@4 to print_schar::@2 [phi:print_schar::@3/print_schar::@4->print_schar::@2]
@ -3181,7 +3181,7 @@ print_schar: {
// [84] call print_uchar
// [94] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
// [94] phi print_char_cursor#72 = print_char_cursor#11 [phi:print_schar::@2->print_uchar#0] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- register_copy
// [94] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- call_phi_near
jsr print_uchar
// print_schar::@return
// }
@ -3194,7 +3194,7 @@ print_schar: {
// [87] call print_char
// [107] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
// [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@1->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1
// [107] phi print_char::ch#5 = '-' [phi:print_schar::@1->print_char#1] -- call_phi_near
lda #'-'
jsr print_char
// print_schar::@4
@ -3268,7 +3268,7 @@ print_uchar: {
// Table of hexadecimal digits
// [107] phi from print_uchar to print_char [phi:print_uchar->print_char]
// [107] phi print_char_cursor#45 = print_char_cursor#72 [phi:print_uchar->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#3 [phi:print_uchar->print_char#1] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#3 [phi:print_uchar->print_char#1] -- call_phi_near
jsr print_char
// print_uchar::@1
// b&$f
@ -3281,7 +3281,7 @@ print_uchar: {
// [100] call print_char
// [107] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
// [107] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- register_copy
// [107] phi print_char::ch#5 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- call_phi_near
jsr print_char
// print_uchar::@return
// }

View File

@ -2379,7 +2379,7 @@ main: {
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
sta VICII_MEMORY
// [4] call bitmap_init
// [11] phi from main to bitmap_init [phi:main->bitmap_init]
// [11] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
bitmap_init_from_main:
jsr bitmap_init
// [5] phi from main to main::@2 [phi:main->main::@2]
@ -2388,7 +2388,7 @@ main: {
// main::@2
__b2:
// [6] call bitmap_clear
// [33] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear]
// [33] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] -- call_phi_near
bitmap_clear_from___b2:
jsr bitmap_clear
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
@ -2397,7 +2397,7 @@ main: {
// main::@3
__b3:
// [8] call init_screen
// [38] phi from main::@3 to init_screen [phi:main::@3->init_screen]
// [38] phi from main::@3 to init_screen [phi:main::@3->init_screen] -- call_phi_near
init_screen_from___b3:
jsr init_screen
// [9] phi from main::@1 main::@3 to main::@1 [phi:main::@1/main::@3->main::@1]
@ -2407,7 +2407,7 @@ main: {
// main::@1
__b1:
// [10] call lines
// [44] phi from main::@1 to lines [phi:main::@1->lines]
// [44] phi from main::@1 to lines [phi:main::@1->lines] -- call_phi_near
lines_from___b1:
jsr lines
jmp __b1_from___b1
@ -2540,7 +2540,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [54] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
// [54] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -2561,7 +2561,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [54] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
// [54] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -2660,7 +2660,7 @@ lines: {
sta.z bitmap_line.y2
lda #0
sta.z bitmap_line.y2+1
// [52] call bitmap_line
// [52] call bitmap_line -- call_phi_near
jsr bitmap_line
jmp __b3
// lines::@3
@ -2757,7 +2757,7 @@ bitmap_line: {
// [64] call abs_u16
// [114] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
abs_u16_from_bitmap_line:
// [114] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
// [114] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
jsr abs_u16
// [65] abs_u16::return#0 = abs_u16::return#4
jmp __b12
@ -2779,7 +2779,7 @@ bitmap_line: {
// [68] call abs_u16
// [114] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
abs_u16_from___b12:
// [114] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy
// [114] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
jsr abs_u16
// [69] abs_u16::return#1 = abs_u16::return#4
jmp __b13
@ -2811,7 +2811,7 @@ bitmap_line: {
// [74] call sgn_u16
// [121] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
sgn_u16_from___b1:
// [121] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
// [121] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
jsr sgn_u16
// [75] sgn_u16::return#0 = sgn_u16::return#4
jmp __b14
@ -2833,7 +2833,7 @@ bitmap_line: {
// [78] call sgn_u16
// [121] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
sgn_u16_from___b14:
// [121] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy
// [121] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
jsr sgn_u16
// [79] sgn_u16::return#1 = sgn_u16::return#4
jmp __b15
@ -2876,7 +2876,7 @@ bitmap_line: {
// [128] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
bitmap_plot_from___b6:
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
jmp __b16
// bitmap_line::@16
@ -2955,7 +2955,7 @@ bitmap_line: {
// [128] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
bitmap_plot_from___b3:
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
jmp __breturn
// bitmap_line::@return
@ -2988,7 +2988,7 @@ bitmap_line: {
// [128] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
bitmap_plot_from___b9:
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
jmp __b17
// bitmap_line::@17
@ -3062,7 +3062,7 @@ bitmap_line: {
// [128] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot]
bitmap_plot_from___b4:
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
jmp __breturn
}
@ -3595,26 +3595,26 @@ main: {
sta VICII_MEMORY
// bitmap_init(BITMAP, SCREEN)
// [4] call bitmap_init
// [11] phi from main to bitmap_init [phi:main->bitmap_init]
// [11] phi from main to bitmap_init [phi:main->bitmap_init] -- call_phi_near
jsr bitmap_init
// [5] phi from main to main::@2 [phi:main->main::@2]
// main::@2
// bitmap_clear(BLACK, WHITE)
// [6] call bitmap_clear
// [33] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear]
// [33] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] -- call_phi_near
jsr bitmap_clear
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// init_screen()
// [8] call init_screen
// [38] phi from main::@3 to init_screen [phi:main::@3->init_screen]
// [38] phi from main::@3 to init_screen [phi:main::@3->init_screen] -- call_phi_near
jsr init_screen
// [9] phi from main::@1 main::@3 to main::@1 [phi:main::@1/main::@3->main::@1]
// main::@1
__b1:
// lines()
// [10] call lines
// [44] phi from main::@1 to lines [phi:main::@1->lines]
// [44] phi from main::@1 to lines [phi:main::@1->lines] -- call_phi_near
jsr lines
jmp __b1
}
@ -3738,7 +3738,7 @@ bitmap_clear: {
sta.z memset.str
lda #>SCREEN
sta.z memset.str+1
// [54] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- vwuz1=vwuc1
// [54] phi memset::num#2 = $3e8 [phi:bitmap_clear->memset#2] -- call_phi_near
lda #<$3e8
sta.z memset.num
lda #>$3e8
@ -3756,7 +3756,7 @@ bitmap_clear: {
sta.z memset.str
lda #>BITMAP
sta.z memset.str+1
// [54] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- vwuz1=vwuc1
// [54] phi memset::num#2 = $1f40 [phi:bitmap_clear::@1->memset#2] -- call_phi_near
lda #<$1f40
sta.z memset.num
lda #>$1f40
@ -3849,7 +3849,7 @@ lines: {
sta.z bitmap_line.y2
lda #0
sta.z bitmap_line.y2+1
// [52] call bitmap_line
// [52] call bitmap_line -- call_phi_near
jsr bitmap_line
// lines::@3
// for(char l=0; l<LINES;l++)
@ -3944,7 +3944,7 @@ bitmap_line: {
sta.z abs_u16.w+1
// [64] call abs_u16
// [114] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16]
// [114] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy
// [114] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- call_phi_near
jsr abs_u16
// unsigned int dx = abs_u16(x2-x1)
// [65] abs_u16::return#0 = abs_u16::return#4
@ -3965,7 +3965,7 @@ bitmap_line: {
sta.z abs_u16.w+1
// [68] call abs_u16
// [114] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16]
// [114] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy
// [114] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- call_phi_near
jsr abs_u16
// unsigned int dy = abs_u16(y2-y1)
// [69] abs_u16::return#1 = abs_u16::return#4
@ -3996,7 +3996,7 @@ bitmap_line: {
sta.z sgn_u16.w+1
// [74] call sgn_u16
// [121] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16]
// [121] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy
// [121] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- call_phi_near
jsr sgn_u16
// unsigned int sx = sgn_u16(x2-x1)
// [75] sgn_u16::return#0 = sgn_u16::return#4
@ -4017,7 +4017,7 @@ bitmap_line: {
sta.z sgn_u16.w+1
// [78] call sgn_u16
// [121] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16]
// [121] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy
// [121] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- call_phi_near
jsr sgn_u16
// unsigned int sy = sgn_u16(y2-y1)
// [79] sgn_u16::return#1 = sgn_u16::return#4
@ -4056,7 +4056,7 @@ bitmap_line: {
// [86] call bitmap_plot
// [128] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot]
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
// bitmap_line::@16
// y += sy
@ -4130,7 +4130,7 @@ bitmap_line: {
// [97] call bitmap_plot
// [128] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot]
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
// bitmap_line::@return
// }
@ -4160,7 +4160,7 @@ bitmap_line: {
// [103] call bitmap_plot
// [128] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot]
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
// bitmap_line::@17
// x += sx
@ -4232,7 +4232,7 @@ bitmap_line: {
// [113] call bitmap_plot
// [128] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot]
// [128] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy
// [128] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- call_phi_near
jsr bitmap_plot
rts
}

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