mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-08-08 13:25:12 +00:00
Allowing ZP coalescing whenever registers are the same type (before variables had to be the same type).
This commit is contained in:
@@ -191,9 +191,14 @@ public class AsmFragmentManager {
|
|||||||
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.|vwsc.)", null, null, "$1=$2", null, mapSToU));
|
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.|vwsc.)", null, null, "$1=$2", null, mapSToU));
|
||||||
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.|vwsc.)_(plus|band|bxor|bor)_(vwsz.|vwsc.)", null, null, "$1=$2_$3_$4", null, mapSToU));
|
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.|vwsc.)_(plus|band|bxor|bor)_(vwsz.|vwsc.)", null, null, "$1=$2_$3_$4", null, mapSToU));
|
||||||
|
|
||||||
|
synths.add(new FragmentSynthesis("(vwuz.)=(vwuz.)_(plus|minus|band|bxor|bor)_vb.c(.)", null, null, "$1=$2_$3_vwuc$4", null, null));
|
||||||
|
synths.add(new FragmentSynthesis("(vwuz.)=vb.c(.)_(plus|minus|band|bxor|bor)_(vwuz.)", null, null, "$1=vwuc$2_$3_$4", null, null));
|
||||||
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.)_(plus|minus|band|bxor|bor)_vb.c(.)", null, null, "$1=$2_$3_vwsc$4", null, null));
|
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.)_(plus|minus|band|bxor|bor)_vb.c(.)", null, null, "$1=$2_$3_vwsc$4", null, null));
|
||||||
synths.add(new FragmentSynthesis("(vwsz.)=vb.c(.)_(plus|minus|band|bxor|bor)_(vwsz.)", null, null, "$1=vwsc$2_$3_$4", null, null));
|
synths.add(new FragmentSynthesis("(vwsz.)=vb.c(.)_(plus|minus|band|bxor|bor)_(vwsz.)", null, null, "$1=vwsc$2_$3_$4", null, null));
|
||||||
|
|
||||||
|
synths.add(new FragmentSynthesis("(vwuz.)=(vwuc.)_(plus|band|bxor|bor)_(vwuz.)", null, null, "$1=$4_$3_$2", null, null));
|
||||||
|
synths.add(new FragmentSynthesis("(vwsz.)=(vwsc.)_(plus|band|bxor|bor)_(vwsz.)", null, null, "$1=$4_$3_$2", null, null));
|
||||||
|
|
||||||
synths.add(new FragmentSynthesis("(vbuz.|vbuaa|vbuxx|vbuyy)=_(lo|hi)_vws(z.|c.)", null, null, "$1=_$2_vwu$3", null, mapSToU));
|
synths.add(new FragmentSynthesis("(vbuz.|vbuaa|vbuxx|vbuyy)=_(lo|hi)_vws(z.|c.)", null, null, "$1=_$2_vwu$3", null, mapSToU));
|
||||||
|
|
||||||
// Use Z1/Z2 ASM to synthesize Z1-only code
|
// Use Z1/Z2 ASM to synthesize Z1-only code
|
||||||
|
@@ -0,0 +1 @@
|
|||||||
|
// do nothing
|
@@ -0,0 +1,4 @@
|
|||||||
|
lda {c2}
|
||||||
|
sta {z1}
|
||||||
|
lda {c1}
|
||||||
|
sta {z1}+1
|
@@ -32,8 +32,8 @@ public class Pass4ZeroPageCoalesce extends Pass2Base {
|
|||||||
for (LiveRangeEquivalenceClass myEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
for (LiveRangeEquivalenceClass myEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
||||||
for (LiveRangeEquivalenceClass otherEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
for (LiveRangeEquivalenceClass otherEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
||||||
if (!myEquivalenceClass.equals(otherEquivalenceClass)) {
|
if (!myEquivalenceClass.equals(otherEquivalenceClass)) {
|
||||||
if(canCoalesce(myEquivalenceClass, otherEquivalenceClass)) {
|
if (canCoalesce(myEquivalenceClass, otherEquivalenceClass)) {
|
||||||
getLog().append("Coalescing zero page register [ "+myEquivalenceClass+" ] with [ "+otherEquivalenceClass+" ]" );
|
getLog().append("Coalescing zero page register [ " + myEquivalenceClass + " ] with [ " + otherEquivalenceClass + " ]");
|
||||||
liveRangeEquivalenceClassSet.consolidate(myEquivalenceClass, otherEquivalenceClass);
|
liveRangeEquivalenceClassSet.consolidate(myEquivalenceClass, otherEquivalenceClass);
|
||||||
// Reset the program register allocation
|
// Reset the program register allocation
|
||||||
getProgram().getLiveRangeEquivalenceClassSet().storeRegisterAllocation();
|
getProgram().getLiveRangeEquivalenceClassSet().storeRegisterAllocation();
|
||||||
@@ -50,19 +50,23 @@ public class Pass4ZeroPageCoalesce extends Pass2Base {
|
|||||||
Variable myVariable = getProgram().getSymbolInfos().getVariable(myVariableRef);
|
Variable myVariable = getProgram().getSymbolInfos().getVariable(myVariableRef);
|
||||||
VariableRef otherVariableRef = otherEquivalenceClass.getVariables().get(0);
|
VariableRef otherVariableRef = otherEquivalenceClass.getVariables().get(0);
|
||||||
Variable otherVariable = getProgram().getSymbolInfos().getVariable(otherVariableRef);
|
Variable otherVariable = getProgram().getSymbolInfos().getVariable(otherVariableRef);
|
||||||
if (myVariable.getType().equals(otherVariable.getType())) {
|
// Types match
|
||||||
// Types match
|
Registers.Register myRegister = myEquivalenceClass.getRegister();
|
||||||
if (myEquivalenceClass.getRegister().isZp() && otherEquivalenceClass.getRegister().isZp()) {
|
Registers.Register otherRegister = otherEquivalenceClass.getRegister();
|
||||||
// Both registers are on Zero Page
|
if (myRegister.isZp() && otherRegister.isZp()) {
|
||||||
|
// Both registers are on Zero Page
|
||||||
|
|
||||||
|
if (myRegister.getType().equals(otherRegister.getType())) {
|
||||||
|
// Both registers have the same Zero Page size
|
||||||
|
|
||||||
// Reset the program register allocation to the one specified in the equivalence class set
|
// Reset the program register allocation to the one specified in the equivalence class set
|
||||||
getProgram().getLiveRangeEquivalenceClassSet().storeRegisterAllocation();
|
getProgram().getLiveRangeEquivalenceClassSet().storeRegisterAllocation();
|
||||||
// Try out the coalesce to test if it works
|
// Try out the coalesce to test if it works
|
||||||
for (VariableRef var : otherEquivalenceClass.getVariables()) {
|
for (VariableRef var : otherEquivalenceClass.getVariables()) {
|
||||||
Variable variable = getProgram().getSymbolInfos().getVariable(var);
|
Variable variable = getProgram().getSymbolInfos().getVariable(var);
|
||||||
variable.setAllocation(myEquivalenceClass.getRegister());
|
variable.setAllocation(myRegister);
|
||||||
}
|
}
|
||||||
if(!Pass4RegisterUpliftCombinations.isAllocationOverlapping(getProgram())) {
|
if (!Pass4RegisterUpliftCombinations.isAllocationOverlapping(getProgram())) {
|
||||||
// Live ranges do not overlap
|
// Live ranges do not overlap
|
||||||
// Perform coalesce!
|
// Perform coalesce!
|
||||||
return true;
|
return true;
|
||||||
|
@@ -34,9 +34,7 @@ word getFAC() {
|
|||||||
sty $fe
|
sty $fe
|
||||||
sta $ff
|
sta $ff
|
||||||
}
|
}
|
||||||
word w = 0;
|
word w = { *memHi, *memLo};
|
||||||
<w = *memLo;
|
|
||||||
>w = *memHi;
|
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
jsr main
|
|
||||||
main: {
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
rts
|
|
||||||
}
|
|
@@ -1,16 +0,0 @@
|
|||||||
@begin: scope:[] from
|
|
||||||
[0] phi() [ ] ( )
|
|
||||||
to:@1
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
[1] phi() [ ] ( )
|
|
||||||
[2] call main param-assignment [ ] ( )
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
[3] phi() [ ] ( )
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
[6] return [ ] ( main:2 [ ] )
|
|
||||||
to:@return
|
|
@@ -1,439 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
|
|
||||||
// Load word register Y,A into FAC (floating point accumulator)
|
|
||||||
asm {
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load FAC (floating point accumulator) integer part into word register Y,A
|
|
||||||
asm {
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
PROGRAM
|
|
||||||
proc (void()) main()
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
main::@return:
|
|
||||||
return
|
|
||||||
endproc // main()
|
|
||||||
call main
|
|
||||||
|
|
||||||
SYMBOLS
|
|
||||||
(void()) main()
|
|
||||||
(label) main::@return
|
|
||||||
|
|
||||||
INITIAL CONTROL FLOW GRAPH
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
main: scope:[main] from
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
|
|
||||||
CONTROL FLOW GRAPH
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
main: scope:[main] from
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
|
|
||||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
|
||||||
|
|
||||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main param-assignment
|
|
||||||
to:@2
|
|
||||||
@2: scope:[] from @1
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @2
|
|
||||||
|
|
||||||
Completing Phi functions...
|
|
||||||
CONTROL FLOW GRAPH SSA
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main param-assignment
|
|
||||||
to:@2
|
|
||||||
@2: scope:[] from @1
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @2
|
|
||||||
|
|
||||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main param-assignment
|
|
||||||
to:@2
|
|
||||||
@2: scope:[] from @1
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @2
|
|
||||||
|
|
||||||
INITIAL SSA SYMBOL TABLE
|
|
||||||
(label) @1
|
|
||||||
(label) @2
|
|
||||||
(label) @begin
|
|
||||||
(label) @end
|
|
||||||
(void()) main()
|
|
||||||
(label) main::@return
|
|
||||||
|
|
||||||
Culled Empty Block (label) @2
|
|
||||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
|
||||||
CONTROL FLOW GRAPH
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main param-assignment
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
|
|
||||||
FINAL SYMBOL TABLE
|
|
||||||
(label) @1
|
|
||||||
(label) @begin
|
|
||||||
(label) @end
|
|
||||||
(void()) main()
|
|
||||||
(label) main::@return
|
|
||||||
|
|
||||||
Block Sequence Planned @begin @1 @end main main::@return
|
|
||||||
Block Sequence Planned @begin @1 @end main main::@return
|
|
||||||
CONTROL FLOW GRAPH - PHI LIFTED
|
|
||||||
@begin: scope:[] from
|
|
||||||
to:@1
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
call main param-assignment
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
return
|
|
||||||
to:@return
|
|
||||||
|
|
||||||
Adding NOP phi() at start of @begin
|
|
||||||
Adding NOP phi() at start of @1
|
|
||||||
Adding NOP phi() at start of @end
|
|
||||||
CALL GRAPH
|
|
||||||
Calls in [] to main:2
|
|
||||||
|
|
||||||
Propagating live ranges...
|
|
||||||
CONTROL FLOW GRAPH - LIVE RANGES FOUND
|
|
||||||
@begin: scope:[] from
|
|
||||||
[0] phi() [ ]
|
|
||||||
to:@1
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
[1] phi() [ ]
|
|
||||||
[2] call main param-assignment [ ]
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
[3] phi() [ ]
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
[6] return [ ]
|
|
||||||
to:@return
|
|
||||||
|
|
||||||
Created 0 initial phi equivalence classes
|
|
||||||
Coalesced down to 0 phi equivalence classes
|
|
||||||
Block Sequence Planned @begin @1 @end main main::@return
|
|
||||||
Adding NOP phi() at start of @begin
|
|
||||||
Adding NOP phi() at start of @1
|
|
||||||
Adding NOP phi() at start of @end
|
|
||||||
Propagating live ranges...
|
|
||||||
CONTROL FLOW GRAPH - BEFORE EFFECTIVE LIVE RANGES
|
|
||||||
@begin: scope:[] from
|
|
||||||
[0] phi() [ ]
|
|
||||||
to:@1
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
[1] phi() [ ]
|
|
||||||
[2] call main param-assignment [ ]
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
[3] phi() [ ]
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
[6] return [ ]
|
|
||||||
to:@return
|
|
||||||
|
|
||||||
CONTROL FLOW GRAPH - PHI MEM COALESCED
|
|
||||||
@begin: scope:[] from
|
|
||||||
[0] phi() [ ] ( )
|
|
||||||
to:@1
|
|
||||||
@1: scope:[] from @begin
|
|
||||||
[1] phi() [ ] ( )
|
|
||||||
[2] call main param-assignment [ ] ( )
|
|
||||||
to:@end
|
|
||||||
@end: scope:[] from @1
|
|
||||||
[3] phi() [ ] ( )
|
|
||||||
main: scope:[main] from @1
|
|
||||||
asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
asm { jsr$b1aasty$festa$ff }
|
|
||||||
to:main::@return
|
|
||||||
main::@return: scope:[main] from main
|
|
||||||
[6] return [ ] ( main:2 [ ] )
|
|
||||||
to:@return
|
|
||||||
|
|
||||||
DOMINATORS
|
|
||||||
@begin dominated by @begin
|
|
||||||
@1 dominated by @1 @begin
|
|
||||||
@end dominated by @1 @begin @end
|
|
||||||
main dominated by @1 @begin main
|
|
||||||
main::@return dominated by main::@return @1 @begin main
|
|
||||||
|
|
||||||
NATURAL LOOPS
|
|
||||||
|
|
||||||
Found 0 loops in scope []
|
|
||||||
Found 0 loops in scope [main]
|
|
||||||
NATURAL LOOPS WITH DEPTH
|
|
||||||
|
|
||||||
|
|
||||||
VARIABLE REGISTER WEIGHTS
|
|
||||||
(void()) main()
|
|
||||||
|
|
||||||
Initial phi equivalence classes
|
|
||||||
Complete equivalence classes
|
|
||||||
INITIAL ASM
|
|
||||||
//SEG0 Basic Upstart
|
|
||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
//SEG1 Global Constants & labels
|
|
||||||
//SEG2 @begin
|
|
||||||
bbegin:
|
|
||||||
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
||||||
b1_from_bbegin:
|
|
||||||
jmp b1
|
|
||||||
//SEG4 @1
|
|
||||||
b1:
|
|
||||||
//SEG5 [2] call main param-assignment [ ] ( )
|
|
||||||
jsr main
|
|
||||||
//SEG6 [3] phi from @1 to @end [phi:@1->@end]
|
|
||||||
bend_from_b1:
|
|
||||||
jmp bend
|
|
||||||
//SEG7 @end
|
|
||||||
bend:
|
|
||||||
//SEG8 main
|
|
||||||
main: {
|
|
||||||
//SEG9 asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
//SEG10 asm { jsr$b1aasty$festa$ff }
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
jmp breturn
|
|
||||||
//SEG11 main::@return
|
|
||||||
breturn:
|
|
||||||
//SEG12 [6] return [ ] ( main:2 [ ] )
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
|
||||||
Statement asm { lda#$55ldy#$aajsr$b391 } always clobbers reg byte a reg byte y
|
|
||||||
|
|
||||||
REGISTER UPLIFT SCOPES
|
|
||||||
Uplift Scope [main]
|
|
||||||
Uplift Scope []
|
|
||||||
|
|
||||||
Uplifting [main] best 45 combination
|
|
||||||
Uplifting [] best 45 combination
|
|
||||||
Removing instruction jmp b1
|
|
||||||
Removing instruction jmp bend
|
|
||||||
Removing instruction jmp breturn
|
|
||||||
Succesful ASM optimization Pass5NextJumpElimination
|
|
||||||
ASSEMBLER
|
|
||||||
//SEG0 Basic Upstart
|
|
||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
//SEG1 Global Constants & labels
|
|
||||||
//SEG2 @begin
|
|
||||||
bbegin:
|
|
||||||
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
||||||
b1_from_bbegin:
|
|
||||||
//SEG4 @1
|
|
||||||
b1:
|
|
||||||
//SEG5 [2] call main param-assignment [ ] ( )
|
|
||||||
jsr main
|
|
||||||
//SEG6 [3] phi from @1 to @end [phi:@1->@end]
|
|
||||||
bend_from_b1:
|
|
||||||
//SEG7 @end
|
|
||||||
bend:
|
|
||||||
//SEG8 main
|
|
||||||
main: {
|
|
||||||
//SEG9 asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
//SEG10 asm { jsr$b1aasty$festa$ff }
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
//SEG11 main::@return
|
|
||||||
breturn:
|
|
||||||
//SEG12 [6] return [ ] ( main:2 [ ] )
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
Removing instruction bbegin:
|
|
||||||
Removing instruction b1_from_bbegin:
|
|
||||||
Removing instruction bend_from_b1:
|
|
||||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
|
||||||
ASSEMBLER
|
|
||||||
//SEG0 Basic Upstart
|
|
||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
//SEG1 Global Constants & labels
|
|
||||||
//SEG2 @begin
|
|
||||||
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
||||||
//SEG4 @1
|
|
||||||
b1:
|
|
||||||
//SEG5 [2] call main param-assignment [ ] ( )
|
|
||||||
jsr main
|
|
||||||
//SEG6 [3] phi from @1 to @end [phi:@1->@end]
|
|
||||||
//SEG7 @end
|
|
||||||
bend:
|
|
||||||
//SEG8 main
|
|
||||||
main: {
|
|
||||||
//SEG9 asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
//SEG10 asm { jsr$b1aasty$festa$ff }
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
//SEG11 main::@return
|
|
||||||
breturn:
|
|
||||||
//SEG12 [6] return [ ] ( main:2 [ ] )
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
Removing instruction b1:
|
|
||||||
Removing instruction bend:
|
|
||||||
Removing instruction breturn:
|
|
||||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
||||||
ASSEMBLER
|
|
||||||
//SEG0 Basic Upstart
|
|
||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
//SEG1 Global Constants & labels
|
|
||||||
//SEG2 @begin
|
|
||||||
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
||||||
//SEG4 @1
|
|
||||||
//SEG5 [2] call main param-assignment [ ] ( )
|
|
||||||
jsr main
|
|
||||||
//SEG6 [3] phi from @1 to @end [phi:@1->@end]
|
|
||||||
//SEG7 @end
|
|
||||||
//SEG8 main
|
|
||||||
main: {
|
|
||||||
//SEG9 asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
//SEG10 asm { jsr$b1aasty$festa$ff }
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
//SEG11 main::@return
|
|
||||||
//SEG12 [6] return [ ] ( main:2 [ ] )
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
FINAL SYMBOL TABLE
|
|
||||||
(label) @1
|
|
||||||
(label) @begin
|
|
||||||
(label) @end
|
|
||||||
(void()) main()
|
|
||||||
(label) main::@return
|
|
||||||
|
|
||||||
|
|
||||||
FINAL CODE
|
|
||||||
//SEG0 Basic Upstart
|
|
||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
//SEG1 Global Constants & labels
|
|
||||||
//SEG2 @begin
|
|
||||||
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
||||||
//SEG4 @1
|
|
||||||
//SEG5 [2] call main param-assignment [ ] ( )
|
|
||||||
jsr main
|
|
||||||
//SEG6 [3] phi from @1 to @end [phi:@1->@end]
|
|
||||||
//SEG7 @end
|
|
||||||
//SEG8 main
|
|
||||||
main: {
|
|
||||||
//SEG9 asm { lda#$55ldy#$aajsr$b391 }
|
|
||||||
lda #$55
|
|
||||||
ldy #$aa
|
|
||||||
jsr $b391
|
|
||||||
//SEG10 asm { jsr$b1aasty$festa$ff }
|
|
||||||
jsr $b1aa
|
|
||||||
sty $fe
|
|
||||||
sta $ff
|
|
||||||
//SEG11 main::@return
|
|
||||||
//SEG12 [6] return [ ] ( main:2 [ ] )
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
@@ -1,6 +0,0 @@
|
|||||||
(label) @1
|
|
||||||
(label) @begin
|
|
||||||
(label) @end
|
|
||||||
(void()) main()
|
|
||||||
(label) main::@return
|
|
||||||
|
|
@@ -5,7 +5,7 @@
|
|||||||
jsr main
|
jsr main
|
||||||
main: {
|
main: {
|
||||||
.label w = 3
|
.label w = 3
|
||||||
.label sc = 5
|
.label sc = 3
|
||||||
.label l = 2
|
.label l = 2
|
||||||
ldx #0
|
ldx #0
|
||||||
b1:
|
b1:
|
||||||
@@ -16,9 +16,6 @@ main: {
|
|||||||
sta w+1
|
sta w+1
|
||||||
lda l
|
lda l
|
||||||
sta w
|
sta w
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #'*'
|
lda #'*'
|
||||||
sta (sc),y
|
sta (sc),y
|
||||||
|
@@ -1148,9 +1148,9 @@ Uplifting [main] best 6693 combination zp ZP_BYTE:3 [ main::l#2 main::l#1 ] reg
|
|||||||
Uplifting [] best 6693 combination
|
Uplifting [] best 6693 combination
|
||||||
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ main::l#2 main::l#1 ]
|
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ main::l#2 main::l#1 ]
|
||||||
Uplifting [main] best 6693 combination zp ZP_BYTE:3 [ main::l#2 main::l#1 ]
|
Uplifting [main] best 6693 combination zp ZP_BYTE:3 [ main::l#2 main::l#1 ]
|
||||||
|
Coalescing zero page register [ zp ZP_WORD:5 [ main::w#0 ] ] with [ zp ZP_WORD:7 [ main::sc#0 ] ]
|
||||||
Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
|
Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
|
||||||
Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::w#0 ]
|
Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::w#0 main::sc#0 ]
|
||||||
Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ main::sc#0 ]
|
|
||||||
Removing instruction jmp b1
|
Removing instruction jmp b1
|
||||||
Removing instruction jmp bend
|
Removing instruction jmp bend
|
||||||
Removing instruction jmp b1
|
Removing instruction jmp b1
|
||||||
@@ -1182,7 +1182,7 @@ bend:
|
|||||||
//SEG9 main
|
//SEG9 main
|
||||||
main: {
|
main: {
|
||||||
.label w = 3
|
.label w = 3
|
||||||
.label sc = 5
|
.label sc = 3
|
||||||
.label l = 2
|
.label l = 2
|
||||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
b1_from_main:
|
b1_from_main:
|
||||||
@@ -1211,94 +1211,7 @@ main: {
|
|||||||
sta w+1
|
sta w+1
|
||||||
lda l
|
lda l
|
||||||
sta w
|
sta w
|
||||||
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz2
|
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz1
|
||||||
lda w
|
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
|
||||||
ldy #0
|
|
||||||
lda #'*'
|
|
||||||
sta (sc),y
|
|
||||||
//SEG24 [11] (byte) main::l#1 ← ++ (byte) main::l#2 [ main::h#4 main::l#1 ] ( main:2 [ main::h#4 main::l#1 ] ) -- vbuz1=_inc_vbuz1
|
|
||||||
inc l
|
|
||||||
//SEG25 [12] if((byte) main::l#1!=(byte/signed byte/word/signed word) 8) goto main::@2 [ main::h#4 main::l#1 ] ( main:2 [ main::h#4 main::l#1 ] ) -- vbuz1_neq_vbuc1_then_la1
|
|
||||||
lda l
|
|
||||||
cmp #8
|
|
||||||
bne b2_from_b2
|
|
||||||
//SEG26 main::@3
|
|
||||||
b3:
|
|
||||||
//SEG27 [13] (byte) main::h#1 ← ++ (byte) main::h#4 [ main::h#1 ] ( main:2 [ main::h#1 ] ) -- vbuxx=_inc_vbuxx
|
|
||||||
inx
|
|
||||||
//SEG28 [14] if((byte) main::h#1!=(byte/signed byte/word/signed word) 2) goto main::@1 [ main::h#1 ] ( main:2 [ main::h#1 ] ) -- vbuxx_neq_vbuc1_then_la1
|
|
||||||
cpx #2
|
|
||||||
bne b1_from_b3
|
|
||||||
//SEG29 main::@return
|
|
||||||
breturn:
|
|
||||||
//SEG30 [15] return [ ] ( main:2 [ ] )
|
|
||||||
rts
|
|
||||||
his: .byte >SCREEN, >SCREEN+$100
|
|
||||||
}
|
|
||||||
|
|
||||||
Removing instruction lda w
|
|
||||||
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
||||||
ASSEMBLER
|
|
||||||
//SEG0 Basic Upstart
|
|
||||||
.pc = $801 "Basic"
|
|
||||||
:BasicUpstart(main)
|
|
||||||
.pc = $80d "Program"
|
|
||||||
//SEG1 Global Constants & labels
|
|
||||||
.const SCREEN = $400
|
|
||||||
//SEG2 @begin
|
|
||||||
bbegin:
|
|
||||||
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
||||||
b1_from_bbegin:
|
|
||||||
//SEG4 @1
|
|
||||||
b1:
|
|
||||||
//SEG5 [2] call main param-assignment [ ] ( )
|
|
||||||
//SEG6 [4] phi from @1 to main [phi:@1->main]
|
|
||||||
main_from_b1:
|
|
||||||
jsr main
|
|
||||||
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
|
|
||||||
bend_from_b1:
|
|
||||||
//SEG8 @end
|
|
||||||
bend:
|
|
||||||
//SEG9 main
|
|
||||||
main: {
|
|
||||||
.label w = 3
|
|
||||||
.label sc = 5
|
|
||||||
.label l = 2
|
|
||||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
|
||||||
b1_from_main:
|
|
||||||
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
|
||||||
ldx #0
|
|
||||||
jmp b1
|
|
||||||
//SEG12 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
|
|
||||||
b1_from_b3:
|
|
||||||
//SEG13 [5] phi (byte) main::h#4 = (byte) main::h#1 [phi:main::@3->main::@1#0] -- register_copy
|
|
||||||
//SEG14 main::@1
|
|
||||||
b1:
|
|
||||||
//SEG15 [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
|
|
||||||
b2_from_b1:
|
|
||||||
//SEG16 [6] phi (byte) main::l#2 = (byte/signed byte/word/signed word) 4 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1
|
|
||||||
lda #4
|
|
||||||
sta l
|
|
||||||
jmp b2
|
|
||||||
//SEG17 [6] phi from main::@2 to main::@2 [phi:main::@2->main::@2]
|
|
||||||
b2_from_b2:
|
|
||||||
//SEG18 [6] phi (byte) main::l#2 = (byte) main::l#1 [phi:main::@2->main::@2#0] -- register_copy
|
|
||||||
//SEG19 main::@2
|
|
||||||
b2:
|
|
||||||
//SEG20 [7] (byte~) main::$3 ← (const byte[]) main::his#0 *idx (byte) main::h#4 [ main::h#4 main::l#2 main::$3 ] ( main:2 [ main::h#4 main::l#2 main::$3 ] ) -- vbuaa=pbuc1_derefidx_vbuxx
|
|
||||||
lda his,x
|
|
||||||
//SEG21 [8] (word) main::w#0 ← (byte~) main::$3 w= (byte) main::l#2 [ main::h#4 main::l#2 main::w#0 ] ( main:2 [ main::h#4 main::l#2 main::w#0 ] ) -- vwuz1=vbuaa_word_vbuz2
|
|
||||||
sta w+1
|
|
||||||
lda l
|
|
||||||
sta w
|
|
||||||
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz2
|
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #'*'
|
lda #'*'
|
||||||
@@ -1353,7 +1266,7 @@ bend:
|
|||||||
//SEG9 main
|
//SEG9 main
|
||||||
main: {
|
main: {
|
||||||
.label w = 3
|
.label w = 3
|
||||||
.label sc = 5
|
.label sc = 3
|
||||||
.label l = 2
|
.label l = 2
|
||||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
b1_from_main:
|
b1_from_main:
|
||||||
@@ -1379,10 +1292,7 @@ main: {
|
|||||||
sta w+1
|
sta w+1
|
||||||
lda l
|
lda l
|
||||||
sta w
|
sta w
|
||||||
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz2
|
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz1
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #'*'
|
lda #'*'
|
||||||
@@ -1431,7 +1341,7 @@ ASSEMBLER
|
|||||||
//SEG9 main
|
//SEG9 main
|
||||||
main: {
|
main: {
|
||||||
.label w = 3
|
.label w = 3
|
||||||
.label sc = 5
|
.label sc = 3
|
||||||
.label l = 2
|
.label l = 2
|
||||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
||||||
@@ -1456,10 +1366,7 @@ main: {
|
|||||||
sta w+1
|
sta w+1
|
||||||
lda l
|
lda l
|
||||||
sta w
|
sta w
|
||||||
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz2
|
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz1
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #'*'
|
lda #'*'
|
||||||
@@ -1503,7 +1410,7 @@ ASSEMBLER
|
|||||||
//SEG9 main
|
//SEG9 main
|
||||||
main: {
|
main: {
|
||||||
.label w = 3
|
.label w = 3
|
||||||
.label sc = 5
|
.label sc = 3
|
||||||
.label l = 2
|
.label l = 2
|
||||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
||||||
@@ -1526,10 +1433,7 @@ main: {
|
|||||||
sta w+1
|
sta w+1
|
||||||
lda l
|
lda l
|
||||||
sta w
|
sta w
|
||||||
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz2
|
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz1
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #'*'
|
lda #'*'
|
||||||
@@ -1573,15 +1477,14 @@ FINAL SYMBOL TABLE
|
|||||||
(byte) main::l#1 l zp ZP_BYTE:2 151.5
|
(byte) main::l#1 l zp ZP_BYTE:2 151.5
|
||||||
(byte) main::l#2 l zp ZP_BYTE:2 60.599999999999994
|
(byte) main::l#2 l zp ZP_BYTE:2 60.599999999999994
|
||||||
(byte*) main::sc
|
(byte*) main::sc
|
||||||
(byte*) main::sc#0 sc zp ZP_WORD:5 202.0
|
(byte*) main::sc#0 sc zp ZP_WORD:3 202.0
|
||||||
(word) main::w
|
(word) main::w
|
||||||
(word) main::w#0 w zp ZP_WORD:3 202.0
|
(word) main::w#0 w zp ZP_WORD:3 202.0
|
||||||
|
|
||||||
reg byte x [ main::h#4 main::h#1 ]
|
reg byte x [ main::h#4 main::h#1 ]
|
||||||
zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
|
zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
|
||||||
reg byte a [ main::$3 ]
|
reg byte a [ main::$3 ]
|
||||||
zp ZP_WORD:3 [ main::w#0 ]
|
zp ZP_WORD:3 [ main::w#0 main::sc#0 ]
|
||||||
zp ZP_WORD:5 [ main::sc#0 ]
|
|
||||||
|
|
||||||
FINAL CODE
|
FINAL CODE
|
||||||
//SEG0 Basic Upstart
|
//SEG0 Basic Upstart
|
||||||
@@ -1601,7 +1504,7 @@ FINAL CODE
|
|||||||
//SEG9 main
|
//SEG9 main
|
||||||
main: {
|
main: {
|
||||||
.label w = 3
|
.label w = 3
|
||||||
.label sc = 5
|
.label sc = 3
|
||||||
.label l = 2
|
.label l = 2
|
||||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
//SEG11 [5] phi (byte) main::h#4 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
||||||
@@ -1624,10 +1527,7 @@ main: {
|
|||||||
sta w+1
|
sta w+1
|
||||||
lda l
|
lda l
|
||||||
sta w
|
sta w
|
||||||
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz2
|
//SEG22 [9] (byte*) main::sc#0 ← ((byte*)) (word) main::w#0 [ main::h#4 main::l#2 main::sc#0 ] ( main:2 [ main::h#4 main::l#2 main::sc#0 ] ) -- pbuz1=_ptrby_vwuz1
|
||||||
sta sc
|
|
||||||
lda w+1
|
|
||||||
sta sc+1
|
|
||||||
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
//SEG23 [10] *((byte*) main::sc#0) ← (byte) '*' [ main::h#4 main::l#2 ] ( main:2 [ main::h#4 main::l#2 ] ) -- _deref_pbuz1=vbuc1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #'*'
|
lda #'*'
|
||||||
|
@@ -18,12 +18,11 @@
|
|||||||
(byte) main::l#1 l zp ZP_BYTE:2 151.5
|
(byte) main::l#1 l zp ZP_BYTE:2 151.5
|
||||||
(byte) main::l#2 l zp ZP_BYTE:2 60.599999999999994
|
(byte) main::l#2 l zp ZP_BYTE:2 60.599999999999994
|
||||||
(byte*) main::sc
|
(byte*) main::sc
|
||||||
(byte*) main::sc#0 sc zp ZP_WORD:5 202.0
|
(byte*) main::sc#0 sc zp ZP_WORD:3 202.0
|
||||||
(word) main::w
|
(word) main::w
|
||||||
(word) main::w#0 w zp ZP_WORD:3 202.0
|
(word) main::w#0 w zp ZP_WORD:3 202.0
|
||||||
|
|
||||||
reg byte x [ main::h#4 main::h#1 ]
|
reg byte x [ main::h#4 main::h#1 ]
|
||||||
zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
|
zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
|
||||||
reg byte a [ main::$3 ]
|
reg byte a [ main::$3 ]
|
||||||
zp ZP_WORD:3 [ main::w#0 ]
|
zp ZP_WORD:3 [ main::w#0 main::sc#0 ]
|
||||||
zp ZP_WORD:5 [ main::sc#0 ]
|
|
||||||
|
@@ -49,8 +49,8 @@ scroll_soft: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
lda current_bit
|
lda current_bit
|
||||||
@@ -65,12 +65,12 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
lda #$80
|
lda #$80
|
||||||
sta current_bit
|
sta current_bit
|
||||||
|
@@ -8669,12 +8669,12 @@ Uplifting [scroll_hard] best 9094 combination reg byte a [ scroll_hard::$31 ]
|
|||||||
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||||
Uplifting [] best 9094 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
Uplifting [] best 9094 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||||
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] ] with [ zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] ]
|
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] ] with [ zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] ]
|
||||||
Coalescing zero page register [ zp ZP_WORD:18 [ scroll_bit::c#0 ] ] with [ zp ZP_WORD:20 [ scroll_bit::$4 ] ]
|
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 ] ] with [ zp ZP_WORD:18 [ scroll_bit::c#0 ] ]
|
||||||
|
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::c#0 ] ] with [ zp ZP_WORD:20 [ scroll_bit::$4 ] ]
|
||||||
Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||||
Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::c#0 scroll_bit::$4 ]
|
||||||
Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||||
Allocated (was zp ZP_WORD:11) zp ZP_WORD:7 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ]
|
Allocated (was zp ZP_WORD:11) zp ZP_WORD:7 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ]
|
||||||
Allocated (was zp ZP_WORD:18) zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::$4 ]
|
|
||||||
Removing instruction jmp b6
|
Removing instruction jmp b6
|
||||||
Removing instruction jmp bend
|
Removing instruction jmp bend
|
||||||
Removing instruction jmp b2
|
Removing instruction jmp b2
|
||||||
@@ -8832,8 +8832,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -8863,13 +8863,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
b1_from_b8:
|
b1_from_b8:
|
||||||
@@ -9253,8 +9253,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -9283,13 +9283,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
b1_from_b8:
|
b1_from_b8:
|
||||||
@@ -9656,8 +9656,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -9684,13 +9684,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -10020,8 +10020,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -10048,13 +10048,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -10383,8 +10383,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -10411,13 +10411,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -10747,8 +10747,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -10775,13 +10775,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -11114,8 +11114,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -11142,13 +11142,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -11469,8 +11469,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -11497,13 +11497,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -11823,8 +11823,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -11851,13 +11851,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
@@ -12133,7 +12133,7 @@ FINAL SYMBOL TABLE
|
|||||||
(void()) scroll_bit()
|
(void()) scroll_bit()
|
||||||
(byte~) scroll_bit::$10 reg byte a 22.0
|
(byte~) scroll_bit::$10 reg byte a 22.0
|
||||||
(byte~) scroll_bit::$3 reg byte a 4.0
|
(byte~) scroll_bit::$3 reg byte a 4.0
|
||||||
(word~) scroll_bit::$4 $4 zp ZP_WORD:9 4.0
|
(word~) scroll_bit::$4 $4 zp ZP_WORD:3 4.0
|
||||||
(label) scroll_bit::@1
|
(label) scroll_bit::@1
|
||||||
(label) scroll_bit::@2
|
(label) scroll_bit::@2
|
||||||
(label) scroll_bit::@3
|
(label) scroll_bit::@3
|
||||||
@@ -12148,7 +12148,7 @@ FINAL SYMBOL TABLE
|
|||||||
(byte) scroll_bit::bits
|
(byte) scroll_bit::bits
|
||||||
(byte) scroll_bit::bits#0 reg byte a 22.0
|
(byte) scroll_bit::bits#0 reg byte a 22.0
|
||||||
(word) scroll_bit::c
|
(word) scroll_bit::c
|
||||||
(word) scroll_bit::c#0 c zp ZP_WORD:9 4.0
|
(word) scroll_bit::c#0 c zp ZP_WORD:3 4.0
|
||||||
(byte) scroll_bit::r
|
(byte) scroll_bit::r
|
||||||
(byte) scroll_bit::r#1 reg byte x 16.5
|
(byte) scroll_bit::r#1 reg byte x 16.5
|
||||||
(byte) scroll_bit::r#2 reg byte x 4.125
|
(byte) scroll_bit::r#2 reg byte x 4.125
|
||||||
@@ -12192,7 +12192,7 @@ FINAL SYMBOL TABLE
|
|||||||
|
|
||||||
reg byte x [ scroll#18 scroll#10 scroll#3 ]
|
reg byte x [ scroll#18 scroll#10 scroll#3 ]
|
||||||
zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||||
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::c#0 scroll_bit::$4 ]
|
||||||
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
||||||
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||||
reg byte a [ scroll_bit::b#2 ]
|
reg byte a [ scroll_bit::b#2 ]
|
||||||
@@ -12201,7 +12201,6 @@ zp ZP_WORD:7 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ]
|
|||||||
reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ]
|
reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ]
|
||||||
reg byte a [ next_char::return#0 ]
|
reg byte a [ next_char::return#0 ]
|
||||||
reg byte a [ scroll_bit::$3 ]
|
reg byte a [ scroll_bit::$3 ]
|
||||||
zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::$4 ]
|
|
||||||
reg byte a [ scroll_bit::bits#0 ]
|
reg byte a [ scroll_bit::bits#0 ]
|
||||||
reg byte a [ scroll_bit::$10 ]
|
reg byte a [ scroll_bit::$10 ]
|
||||||
reg byte a [ scroll_hard::$17 ]
|
reg byte a [ scroll_hard::$17 ]
|
||||||
@@ -12321,8 +12320,8 @@ scroll_soft: {
|
|||||||
}
|
}
|
||||||
//SEG55 scroll_bit
|
//SEG55 scroll_bit
|
||||||
scroll_bit: {
|
scroll_bit: {
|
||||||
.label _4 = 9
|
.label _4 = 3
|
||||||
.label c = 9
|
.label c = 3
|
||||||
.label sc = 5
|
.label sc = 5
|
||||||
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
//SEG56 [21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] ) -- vbuz1=vbuz1_ror_1
|
||||||
lsr current_bit
|
lsr current_bit
|
||||||
@@ -12349,13 +12348,13 @@ scroll_bit: {
|
|||||||
rol _4+1
|
rol _4+1
|
||||||
asl _4
|
asl _4
|
||||||
rol _4+1
|
rol _4+1
|
||||||
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
|
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz1
|
||||||
lda #<CHARGEN
|
lda current_chargen
|
||||||
clc
|
clc
|
||||||
adc _4
|
adc #<CHARGEN
|
||||||
sta current_chargen
|
sta current_chargen
|
||||||
lda #>CHARGEN
|
lda current_chargen+1
|
||||||
adc _4+1
|
adc #>CHARGEN
|
||||||
sta current_chargen+1
|
sta current_chargen+1
|
||||||
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
//SEG67 [30] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1]
|
||||||
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
//SEG68 [30] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy
|
||||||
|
@@ -63,7 +63,7 @@
|
|||||||
(void()) scroll_bit()
|
(void()) scroll_bit()
|
||||||
(byte~) scroll_bit::$10 reg byte a 22.0
|
(byte~) scroll_bit::$10 reg byte a 22.0
|
||||||
(byte~) scroll_bit::$3 reg byte a 4.0
|
(byte~) scroll_bit::$3 reg byte a 4.0
|
||||||
(word~) scroll_bit::$4 $4 zp ZP_WORD:9 4.0
|
(word~) scroll_bit::$4 $4 zp ZP_WORD:3 4.0
|
||||||
(label) scroll_bit::@1
|
(label) scroll_bit::@1
|
||||||
(label) scroll_bit::@2
|
(label) scroll_bit::@2
|
||||||
(label) scroll_bit::@3
|
(label) scroll_bit::@3
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
(byte) scroll_bit::bits
|
(byte) scroll_bit::bits
|
||||||
(byte) scroll_bit::bits#0 reg byte a 22.0
|
(byte) scroll_bit::bits#0 reg byte a 22.0
|
||||||
(word) scroll_bit::c
|
(word) scroll_bit::c
|
||||||
(word) scroll_bit::c#0 c zp ZP_WORD:9 4.0
|
(word) scroll_bit::c#0 c zp ZP_WORD:3 4.0
|
||||||
(byte) scroll_bit::r
|
(byte) scroll_bit::r
|
||||||
(byte) scroll_bit::r#1 reg byte x 16.5
|
(byte) scroll_bit::r#1 reg byte x 16.5
|
||||||
(byte) scroll_bit::r#2 reg byte x 4.125
|
(byte) scroll_bit::r#2 reg byte x 4.125
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
|
|
||||||
reg byte x [ scroll#18 scroll#10 scroll#3 ]
|
reg byte x [ scroll#18 scroll#10 scroll#3 ]
|
||||||
zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||||
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::c#0 scroll_bit::$4 ]
|
||||||
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
||||||
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||||
reg byte a [ scroll_bit::b#2 ]
|
reg byte a [ scroll_bit::b#2 ]
|
||||||
@@ -131,7 +131,6 @@ zp ZP_WORD:7 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ]
|
|||||||
reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ]
|
reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ]
|
||||||
reg byte a [ next_char::return#0 ]
|
reg byte a [ next_char::return#0 ]
|
||||||
reg byte a [ scroll_bit::$3 ]
|
reg byte a [ scroll_bit::$3 ]
|
||||||
zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::$4 ]
|
|
||||||
reg byte a [ scroll_bit::bits#0 ]
|
reg byte a [ scroll_bit::bits#0 ]
|
||||||
reg byte a [ scroll_bit::$10 ]
|
reg byte a [ scroll_bit::$10 ]
|
||||||
reg byte a [ scroll_hard::$17 ]
|
reg byte a [ scroll_hard::$17 ]
|
||||||
|
@@ -50,10 +50,10 @@ main: {
|
|||||||
jmp b2
|
jmp b2
|
||||||
}
|
}
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
sec
|
sec
|
||||||
@@ -171,7 +171,7 @@ anim: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
lda #0
|
lda #0
|
||||||
|
@@ -4330,10 +4330,11 @@ Uplifting [init] best 8724 combination zp ZP_WORD:12 [ init::sc#2 init::sc#1 ] r
|
|||||||
Uplifting [] best 8724 combination zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ] zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ] zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ] zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ] zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
Uplifting [] best 8724 combination zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ] zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ] zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ] zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ] zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
||||||
Uplifting [anim] best 8706 combination zp ZP_WORD:15 [ anim::$10 ] zp ZP_WORD:19 [ anim::$12 ] reg byte a [ anim::$14 ] reg byte a [ anim::$15 ] reg byte a [ anim::$16 ] zp ZP_WORD:21 [ anim::sprite_y#0 ] zp ZP_WORD:17 [ anim::sprite_x#0 ]
|
Uplifting [anim] best 8706 combination zp ZP_WORD:15 [ anim::$10 ] zp ZP_WORD:19 [ anim::$12 ] reg byte a [ anim::$14 ] reg byte a [ anim::$15 ] reg byte a [ anim::$16 ] zp ZP_WORD:21 [ anim::sprite_y#0 ] zp ZP_WORD:17 [ anim::sprite_x#0 ]
|
||||||
Uplifting [main] best 8706 combination
|
Uplifting [main] best 8706 combination
|
||||||
|
Coalescing zero page register [ zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ] ] with [ zp ZP_WORD:12 [ init::sc#2 init::sc#1 ] ]
|
||||||
Coalescing zero page register [ zp ZP_WORD:15 [ anim::$10 ] ] with [ zp ZP_WORD:17 [ anim::sprite_x#0 ] ]
|
Coalescing zero page register [ zp ZP_WORD:15 [ anim::$10 ] ] with [ zp ZP_WORD:17 [ anim::sprite_x#0 ] ]
|
||||||
Coalescing zero page register [ zp ZP_WORD:19 [ anim::$12 ] ] with [ zp ZP_WORD:21 [ anim::sprite_y#0 ] ]
|
Coalescing zero page register [ zp ZP_WORD:19 [ anim::$12 ] ] with [ zp ZP_WORD:21 [ anim::sprite_y#0 ] ]
|
||||||
Allocated (was zp ZP_WORD:15) zp ZP_WORD:14 [ anim::$10 anim::sprite_x#0 ]
|
Allocated (was zp ZP_WORD:15) zp ZP_WORD:12 [ anim::$10 anim::sprite_x#0 ]
|
||||||
Allocated (was zp ZP_WORD:19) zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
Allocated (was zp ZP_WORD:19) zp ZP_WORD:14 [ anim::$12 anim::sprite_y#0 ]
|
||||||
Removing instruction jmp b3
|
Removing instruction jmp b3
|
||||||
Removing instruction jmp bend
|
Removing instruction jmp bend
|
||||||
Removing instruction jmp b2
|
Removing instruction jmp b2
|
||||||
@@ -4456,10 +4457,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1_from_anim
|
bpl b1_from_anim
|
||||||
@@ -4632,7 +4633,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -4820,10 +4821,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1_from_anim
|
bpl b1_from_anim
|
||||||
@@ -4993,7 +4994,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -5181,10 +5182,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -5351,7 +5352,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -5527,10 +5528,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -5693,7 +5694,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -5855,10 +5856,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -6021,7 +6022,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -6181,10 +6182,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -6347,7 +6348,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -6507,10 +6508,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -6673,7 +6674,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -6835,10 +6836,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -7000,7 +7001,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -7156,10 +7157,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -7321,7 +7322,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -7477,10 +7478,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -7641,7 +7642,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -7797,10 +7798,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -7960,7 +7961,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -8115,10 +8116,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -8278,7 +8279,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
@@ -8373,8 +8374,8 @@ FINAL SYMBOL TABLE
|
|||||||
(byte) WHITE
|
(byte) WHITE
|
||||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word) 1
|
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word) 1
|
||||||
(void()) anim()
|
(void()) anim()
|
||||||
(signed word~) anim::$10 $10 zp ZP_WORD:14 4.0
|
(signed word~) anim::$10 $10 zp ZP_WORD:12 4.0
|
||||||
(signed word~) anim::$12 $12 zp ZP_WORD:16 4.0
|
(signed word~) anim::$12 $12 zp ZP_WORD:14 4.0
|
||||||
(byte~) anim::$14 reg byte a 4.0
|
(byte~) anim::$14 reg byte a 4.0
|
||||||
(byte~) anim::$15 reg byte a 4.0
|
(byte~) anim::$15 reg byte a 4.0
|
||||||
(byte~) anim::$16 reg byte a 4.0
|
(byte~) anim::$16 reg byte a 4.0
|
||||||
@@ -8384,9 +8385,9 @@ FINAL SYMBOL TABLE
|
|||||||
(label) anim::@5
|
(label) anim::@5
|
||||||
(label) anim::@return
|
(label) anim::@return
|
||||||
(signed word) anim::sprite_x
|
(signed word) anim::sprite_x
|
||||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:14 0.8571428571428571
|
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:12 0.8571428571428571
|
||||||
(signed word) anim::sprite_y
|
(signed word) anim::sprite_y
|
||||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:16 1.3333333333333333
|
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:14 1.3333333333333333
|
||||||
(signed word) g
|
(signed word) g
|
||||||
(const signed word) g#0 g = -(byte/signed byte/word/signed word) 5
|
(const signed word) g#0 g = -(byte/signed byte/word/signed word) 5
|
||||||
(void()) init()
|
(void()) init()
|
||||||
@@ -8397,8 +8398,8 @@ FINAL SYMBOL TABLE
|
|||||||
(byte) init::i#1 reg byte x 16.5
|
(byte) init::i#1 reg byte x 16.5
|
||||||
(byte) init::i#2 reg byte x 16.5
|
(byte) init::i#2 reg byte x 16.5
|
||||||
(byte*) init::sc
|
(byte*) init::sc
|
||||||
(byte*) init::sc#1 sc zp ZP_WORD:12 16.5
|
(byte*) init::sc#1 sc zp ZP_WORD:2 16.5
|
||||||
(byte*) init::sc#2 sc zp ZP_WORD:12 16.5
|
(byte*) init::sc#2 sc zp ZP_WORD:2 16.5
|
||||||
(void()) main()
|
(void()) main()
|
||||||
(label) main::@2
|
(label) main::@2
|
||||||
(label) main::@3
|
(label) main::@3
|
||||||
@@ -8427,15 +8428,14 @@ FINAL SYMBOL TABLE
|
|||||||
(signed word) yvel_init#13 yvel_init zp ZP_WORD:4 3.0
|
(signed word) yvel_init#13 yvel_init zp ZP_WORD:4 3.0
|
||||||
(signed word) yvel_init#3 yvel_init zp ZP_WORD:4 2.0
|
(signed word) yvel_init#3 yvel_init zp ZP_WORD:4 2.0
|
||||||
|
|
||||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 init::sc#2 init::sc#1 ]
|
||||||
zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ]
|
zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ]
|
||||||
zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ]
|
zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ]
|
||||||
zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ]
|
zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ]
|
||||||
zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ]
|
zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ]
|
||||||
zp ZP_WORD:12 [ init::sc#2 init::sc#1 ]
|
|
||||||
reg byte x [ init::i#2 init::i#1 ]
|
reg byte x [ init::i#2 init::i#1 ]
|
||||||
zp ZP_WORD:14 [ anim::$10 anim::sprite_x#0 ]
|
zp ZP_WORD:12 [ anim::$10 anim::sprite_x#0 ]
|
||||||
zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
zp ZP_WORD:14 [ anim::$12 anim::sprite_y#0 ]
|
||||||
reg byte a [ anim::$14 ]
|
reg byte a [ anim::$14 ]
|
||||||
reg byte a [ anim::$15 ]
|
reg byte a [ anim::$15 ]
|
||||||
reg byte a [ anim::$16 ]
|
reg byte a [ anim::$16 ]
|
||||||
@@ -8527,10 +8527,10 @@ main: {
|
|||||||
}
|
}
|
||||||
//SEG33 anim
|
//SEG33 anim
|
||||||
anim: {
|
anim: {
|
||||||
.label _10 = $e
|
.label _10 = $c
|
||||||
.label _12 = $10
|
.label _12 = $e
|
||||||
.label sprite_x = $e
|
.label sprite_x = $c
|
||||||
.label sprite_y = $10
|
.label sprite_y = $e
|
||||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) -- vwsz1_ge_0_then_la1
|
||||||
lda ypos+1
|
lda ypos+1
|
||||||
bpl b1
|
bpl b1
|
||||||
@@ -8690,7 +8690,7 @@ anim: {
|
|||||||
}
|
}
|
||||||
//SEG75 init
|
//SEG75 init
|
||||||
init: {
|
init: {
|
||||||
.label sc = $c
|
.label sc = 2
|
||||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||||
lda #1
|
lda #1
|
||||||
sta SPRITES_ENABLE
|
sta SPRITES_ENABLE
|
||||||
|
@@ -26,8 +26,8 @@
|
|||||||
(byte) WHITE
|
(byte) WHITE
|
||||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word) 1
|
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word) 1
|
||||||
(void()) anim()
|
(void()) anim()
|
||||||
(signed word~) anim::$10 $10 zp ZP_WORD:14 4.0
|
(signed word~) anim::$10 $10 zp ZP_WORD:12 4.0
|
||||||
(signed word~) anim::$12 $12 zp ZP_WORD:16 4.0
|
(signed word~) anim::$12 $12 zp ZP_WORD:14 4.0
|
||||||
(byte~) anim::$14 reg byte a 4.0
|
(byte~) anim::$14 reg byte a 4.0
|
||||||
(byte~) anim::$15 reg byte a 4.0
|
(byte~) anim::$15 reg byte a 4.0
|
||||||
(byte~) anim::$16 reg byte a 4.0
|
(byte~) anim::$16 reg byte a 4.0
|
||||||
@@ -37,9 +37,9 @@
|
|||||||
(label) anim::@5
|
(label) anim::@5
|
||||||
(label) anim::@return
|
(label) anim::@return
|
||||||
(signed word) anim::sprite_x
|
(signed word) anim::sprite_x
|
||||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:14 0.8571428571428571
|
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:12 0.8571428571428571
|
||||||
(signed word) anim::sprite_y
|
(signed word) anim::sprite_y
|
||||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:16 1.3333333333333333
|
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:14 1.3333333333333333
|
||||||
(signed word) g
|
(signed word) g
|
||||||
(const signed word) g#0 g = -(byte/signed byte/word/signed word) 5
|
(const signed word) g#0 g = -(byte/signed byte/word/signed word) 5
|
||||||
(void()) init()
|
(void()) init()
|
||||||
@@ -50,8 +50,8 @@
|
|||||||
(byte) init::i#1 reg byte x 16.5
|
(byte) init::i#1 reg byte x 16.5
|
||||||
(byte) init::i#2 reg byte x 16.5
|
(byte) init::i#2 reg byte x 16.5
|
||||||
(byte*) init::sc
|
(byte*) init::sc
|
||||||
(byte*) init::sc#1 sc zp ZP_WORD:12 16.5
|
(byte*) init::sc#1 sc zp ZP_WORD:2 16.5
|
||||||
(byte*) init::sc#2 sc zp ZP_WORD:12 16.5
|
(byte*) init::sc#2 sc zp ZP_WORD:2 16.5
|
||||||
(void()) main()
|
(void()) main()
|
||||||
(label) main::@2
|
(label) main::@2
|
||||||
(label) main::@3
|
(label) main::@3
|
||||||
@@ -80,15 +80,14 @@
|
|||||||
(signed word) yvel_init#13 yvel_init zp ZP_WORD:4 3.0
|
(signed word) yvel_init#13 yvel_init zp ZP_WORD:4 3.0
|
||||||
(signed word) yvel_init#3 yvel_init zp ZP_WORD:4 2.0
|
(signed word) yvel_init#3 yvel_init zp ZP_WORD:4 2.0
|
||||||
|
|
||||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 init::sc#2 init::sc#1 ]
|
||||||
zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ]
|
zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ]
|
||||||
zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ]
|
zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ]
|
||||||
zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ]
|
zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ]
|
||||||
zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ]
|
zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ]
|
||||||
zp ZP_WORD:12 [ init::sc#2 init::sc#1 ]
|
|
||||||
reg byte x [ init::i#2 init::i#1 ]
|
reg byte x [ init::i#2 init::i#1 ]
|
||||||
zp ZP_WORD:14 [ anim::$10 anim::sprite_x#0 ]
|
zp ZP_WORD:12 [ anim::$10 anim::sprite_x#0 ]
|
||||||
zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
zp ZP_WORD:14 [ anim::$12 anim::sprite_y#0 ]
|
||||||
reg byte a [ anim::$14 ]
|
reg byte a [ anim::$14 ]
|
||||||
reg byte a [ anim::$15 ]
|
reg byte a [ anim::$15 ]
|
||||||
reg byte a [ anim::$16 ]
|
reg byte a [ anim::$16 ]
|
||||||
|
@@ -96,7 +96,7 @@ print_ln: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
print_word: {
|
print_word: {
|
||||||
.label w = 9
|
.label w = 7
|
||||||
lda w+1
|
lda w+1
|
||||||
tax
|
tax
|
||||||
jsr print_byte
|
jsr print_byte
|
||||||
@@ -132,15 +132,12 @@ print_char: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
getFAC: {
|
getFAC: {
|
||||||
.label w = 9
|
.label return = 7
|
||||||
.label return = 9
|
|
||||||
jsr $b1aa
|
jsr $b1aa
|
||||||
sty $fe
|
sty $fe
|
||||||
sta $ff
|
sta $ff
|
||||||
lda memLo
|
lda memLo
|
||||||
sta w
|
sta return
|
||||||
lda #0
|
|
||||||
sta w+1
|
|
||||||
lda memHi
|
lda memHi
|
||||||
sta return+1
|
sta return+1
|
||||||
rts
|
rts
|
||||||
@@ -188,11 +185,7 @@ divMEMbyFAC: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
setFAC: {
|
setFAC: {
|
||||||
.label w = 9
|
.label w = 7
|
||||||
lda w
|
|
||||||
sta prepareMEM.mem
|
|
||||||
lda w+1
|
|
||||||
sta prepareMEM.mem+1
|
|
||||||
jsr prepareMEM
|
jsr prepareMEM
|
||||||
ldy $fe
|
ldy $fe
|
||||||
lda $ff
|
lda $ff
|
||||||
|
@@ -125,84 +125,83 @@ print_char::@return: scope:[print_char] from print_char
|
|||||||
to:@return
|
to:@return
|
||||||
getFAC: scope:[getFAC] from main::@13
|
getFAC: scope:[getFAC] from main::@13
|
||||||
asm { jsr$b1aasty$festa$ff }
|
asm { jsr$b1aasty$festa$ff }
|
||||||
[61] (word) getFAC::w#1 ← (byte/signed byte/word/signed word) 0 lo= *((const byte*) memLo#0) [ getFAC::w#1 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::w#1 ] )
|
[61] (word) getFAC::return#0 ← *((const byte*) memHi#0) w= *((const byte*) memLo#0) [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||||
[62] (word) getFAC::return#0 ← (word) getFAC::w#1 hi= *((const byte*) memHi#0) [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
|
||||||
to:getFAC::@return
|
to:getFAC::@return
|
||||||
getFAC::@return: scope:[getFAC] from getFAC
|
getFAC::@return: scope:[getFAC] from getFAC
|
||||||
[63] return [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
[62] return [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||||
to:@return
|
to:@return
|
||||||
addMEMtoFAC: scope:[addMEMtoFAC] from main::@12
|
addMEMtoFAC: scope:[addMEMtoFAC] from main::@12
|
||||||
[64] phi() [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[63] phi() [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
[65] call prepareMEM param-assignment [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[64] call prepareMEM param-assignment [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:addMEMtoFAC::@1
|
to:addMEMtoFAC::@1
|
||||||
addMEMtoFAC::@1: scope:[addMEMtoFAC] from addMEMtoFAC
|
addMEMtoFAC::@1: scope:[addMEMtoFAC] from addMEMtoFAC
|
||||||
asm { lda$feldy$ffjsr$b867 }
|
asm { lda$feldy$ffjsr$b867 }
|
||||||
to:addMEMtoFAC::@return
|
to:addMEMtoFAC::@return
|
||||||
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1
|
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1
|
||||||
[67] return [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[66] return [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
||||||
[68] (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(const byte[]) main::f_127#0 divMEMbyFAC/(const byte[]) main::f_i#0 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::mem#5 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
[67] (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(const byte[]) main::f_127#0 divMEMbyFAC/(const byte[]) main::f_i#0 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:26::prepareMEM:64 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:14::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:24::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:20::prepareMEM:81 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:86 [ prepareMEM::mem#5 ] main:2::setFAC:12::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:18::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:91 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:16::prepareMEM:91 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||||
[69] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5 [ prepareMEM::mem#5 prepareMEM::$0 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] )
|
[68] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5 [ prepareMEM::mem#5 prepareMEM::$0 ] ( main:2::addMEMtoFAC:26::prepareMEM:64 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:14::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:24::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::divMEMbyFAC:20::prepareMEM:81 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:5::prepareMEM:86 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:12::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:18::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:9::prepareMEM:91 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:16::prepareMEM:91 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] )
|
||||||
[70] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::mem#5 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
[69] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:26::prepareMEM:64 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:14::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:24::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:20::prepareMEM:81 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:86 [ prepareMEM::mem#5 ] main:2::setFAC:12::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:18::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:91 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:16::prepareMEM:91 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||||
[71] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#5 [ prepareMEM::$1 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::$1 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::$1 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] )
|
[70] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#5 [ prepareMEM::$1 ] ( main:2::addMEMtoFAC:26::prepareMEM:64 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:14::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:24::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::divMEMbyFAC:20::prepareMEM:81 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:5::prepareMEM:86 [ prepareMEM::$1 ] main:2::setFAC:12::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:18::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setMEMtoFAC:9::prepareMEM:91 [ prepareMEM::$1 ] main:2::setMEMtoFAC:16::prepareMEM:91 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] )
|
||||||
[72] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:87 [ ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[71] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::addMEMtoFAC:26::prepareMEM:64 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:14::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:20::prepareMEM:81 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:86 [ ] main:2::setFAC:12::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:91 [ ] main:2::setMEMtoFAC:16::prepareMEM:91 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:prepareMEM::@return
|
to:prepareMEM::@return
|
||||||
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
||||||
[73] return [ ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:87 [ ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[72] return [ ] ( main:2::addMEMtoFAC:26::prepareMEM:64 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:14::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24::prepareMEM:75 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:20::prepareMEM:81 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:86 [ ] main:2::setFAC:12::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18::prepareMEM:86 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:91 [ ] main:2::setMEMtoFAC:16::prepareMEM:91 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
mulFACbyMEM: scope:[mulFACbyMEM] from main::@11 main::@6
|
mulFACbyMEM: scope:[mulFACbyMEM] from main::@11 main::@6
|
||||||
[74] (byte*) mulFACbyMEM::mem#2 ← phi( main::@11/(const byte[]) main::f_127#0 main::@6/(const byte*) main::f_2pi#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] )
|
[73] (byte*) mulFACbyMEM::mem#2 ← phi( main::@11/(const byte[]) main::f_127#0 main::@6/(const byte*) main::f_2pi#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] )
|
||||||
[75] (byte*) prepareMEM::mem#4 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#4 ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
[74] (byte*) prepareMEM::mem#4 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#4 ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
||||||
[76] call prepareMEM param-assignment [ ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[75] call prepareMEM param-assignment [ ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:mulFACbyMEM::@1
|
to:mulFACbyMEM::@1
|
||||||
mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM
|
mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM
|
||||||
asm { lda$feldy$ffjsr$ba28 }
|
asm { lda$feldy$ffjsr$ba28 }
|
||||||
to:mulFACbyMEM::@return
|
to:mulFACbyMEM::@return
|
||||||
mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM::@1
|
mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM::@1
|
||||||
[78] return [ ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[77] return [ ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
sinFAC: scope:[sinFAC] from main::@10
|
sinFAC: scope:[sinFAC] from main::@10
|
||||||
asm { jsr$e26b }
|
asm { jsr$e26b }
|
||||||
to:sinFAC::@return
|
to:sinFAC::@return
|
||||||
sinFAC::@return: scope:[sinFAC] from sinFAC
|
sinFAC::@return: scope:[sinFAC] from sinFAC
|
||||||
[80] return [ ] ( main:2::sinFAC:22 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[79] return [ ] ( main:2::sinFAC:22 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
divMEMbyFAC: scope:[divMEMbyFAC] from main::@9
|
divMEMbyFAC: scope:[divMEMbyFAC] from main::@9
|
||||||
[81] phi() [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[80] phi() [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
[82] call prepareMEM param-assignment [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[81] call prepareMEM param-assignment [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:divMEMbyFAC::@1
|
to:divMEMbyFAC::@1
|
||||||
divMEMbyFAC::@1: scope:[divMEMbyFAC] from divMEMbyFAC
|
divMEMbyFAC::@1: scope:[divMEMbyFAC] from divMEMbyFAC
|
||||||
asm { lda$feldy$ffjsr$bb0f }
|
asm { lda$feldy$ffjsr$bb0f }
|
||||||
to:divMEMbyFAC::@return
|
to:divMEMbyFAC::@return
|
||||||
divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1
|
divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1
|
||||||
[84] return [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[83] return [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
setFAC: scope:[setFAC] from main main::@1 main::@8
|
setFAC: scope:[setFAC] from main main::@1 main::@8
|
||||||
[85] (word) setFAC::w#3 ← phi( main/(word/signed word) 1275 main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word) 25 ) [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
[84] (word) setFAC::w#3 ← phi( main/(word/signed word) 1275 main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word) 25 ) [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
||||||
[86] (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#3 [ prepareMEM::mem#0 ] ( main:2::setFAC:5 [ prepareMEM::mem#0 ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] )
|
[85] (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#3 [ prepareMEM::mem#0 ] ( main:2::setFAC:5 [ prepareMEM::mem#0 ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] )
|
||||||
[87] call prepareMEM param-assignment [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[86] call prepareMEM param-assignment [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:setFAC::@1
|
to:setFAC::@1
|
||||||
setFAC::@1: scope:[setFAC] from setFAC
|
setFAC::@1: scope:[setFAC] from setFAC
|
||||||
asm { ldy$felda$ffjsr$b391 }
|
asm { ldy$felda$ffjsr$b391 }
|
||||||
to:setFAC::@return
|
to:setFAC::@return
|
||||||
setFAC::@return: scope:[setFAC] from setFAC::@1
|
setFAC::@return: scope:[setFAC] from setFAC::@1
|
||||||
[89] return [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[88] return [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
setMEMtoFAC: scope:[setMEMtoFAC] from main::@4 main::@7
|
setMEMtoFAC: scope:[setMEMtoFAC] from main::@4 main::@7
|
||||||
[90] (byte*) setMEMtoFAC::mem#2 ← phi( main::@4/(const byte[]) main::f_127#0 main::@7/(const byte[]) main::f_i#0 ) [ setMEMtoFAC::mem#2 ] ( main:2::setMEMtoFAC:9 [ setMEMtoFAC::mem#2 ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 setMEMtoFAC::mem#2 ] )
|
[89] (byte*) setMEMtoFAC::mem#2 ← phi( main::@4/(const byte[]) main::f_127#0 main::@7/(const byte[]) main::f_i#0 ) [ setMEMtoFAC::mem#2 ] ( main:2::setMEMtoFAC:9 [ setMEMtoFAC::mem#2 ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 setMEMtoFAC::mem#2 ] )
|
||||||
[91] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#2 [ prepareMEM::mem#1 ] ( main:2::setMEMtoFAC:9 [ prepareMEM::mem#1 ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#1 ] )
|
[90] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#2 [ prepareMEM::mem#1 ] ( main:2::setMEMtoFAC:9 [ prepareMEM::mem#1 ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#1 ] )
|
||||||
[92] call prepareMEM param-assignment [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[91] call prepareMEM param-assignment [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:setMEMtoFAC::@1
|
to:setMEMtoFAC::@1
|
||||||
setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC
|
setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC
|
||||||
asm { ldx$feldy$ffjsr$bbd4 }
|
asm { ldx$feldy$ffjsr$bbd4 }
|
||||||
to:setMEMtoFAC::@return
|
to:setMEMtoFAC::@return
|
||||||
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1
|
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1
|
||||||
[94] return [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
[93] return [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||||
to:@return
|
to:@return
|
||||||
divFACby10: scope:[divFACby10] from main::@3
|
divFACby10: scope:[divFACby10] from main::@3
|
||||||
asm { jsr$bafe }
|
asm { jsr$bafe }
|
||||||
to:divFACby10::@return
|
to:divFACby10::@return
|
||||||
divFACby10::@return: scope:[divFACby10] from divFACby10
|
divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||||
[96] return [ ] ( main:2::divFACby10:7 [ ] )
|
[95] return [ ] ( main:2::divFACby10:7 [ ] )
|
||||||
to:@return
|
to:@return
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -20,10 +20,9 @@
|
|||||||
(word()) getFAC()
|
(word()) getFAC()
|
||||||
(label) getFAC::@return
|
(label) getFAC::@return
|
||||||
(word) getFAC::return
|
(word) getFAC::return
|
||||||
(word) getFAC::return#0 return zp ZP_WORD:9 4.333333333333333
|
(word) getFAC::return#0 return zp ZP_WORD:7 4.333333333333333
|
||||||
(word) getFAC::return#2 return zp ZP_WORD:9 22.0
|
(word) getFAC::return#2 return zp ZP_WORD:7 22.0
|
||||||
(word) getFAC::w
|
(word) getFAC::w
|
||||||
(word) getFAC::w#1 w zp ZP_WORD:9 4.0
|
|
||||||
(byte*) line_cursor
|
(byte*) line_cursor
|
||||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 46.42857142857143
|
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 46.42857142857143
|
||||||
(byte*) line_cursor#13 line_cursor zp ZP_WORD:3 0.5416666666666666
|
(byte*) line_cursor#13 line_cursor zp ZP_WORD:3 0.5416666666666666
|
||||||
@@ -96,13 +95,13 @@
|
|||||||
(label) print_word::@1
|
(label) print_word::@1
|
||||||
(label) print_word::@return
|
(label) print_word::@return
|
||||||
(word) print_word::w
|
(word) print_word::w
|
||||||
(word) print_word::w#0 w zp ZP_WORD:9 5.0
|
(word) print_word::w#0 w zp ZP_WORD:7 5.0
|
||||||
(void()) setFAC((word) setFAC::w)
|
(void()) setFAC((word) setFAC::w)
|
||||||
(label) setFAC::@1
|
(label) setFAC::@1
|
||||||
(label) setFAC::@return
|
(label) setFAC::@return
|
||||||
(word) setFAC::w
|
(word) setFAC::w
|
||||||
(word) setFAC::w#1 w zp ZP_WORD:9 22.0
|
(word) setFAC::w#1 w zp ZP_WORD:7 22.0
|
||||||
(word) setFAC::w#3 w zp ZP_WORD:9 13.0
|
(word) setFAC::w#3 w zp ZP_WORD:7 13.0
|
||||||
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
||||||
(label) setMEMtoFAC::@1
|
(label) setMEMtoFAC::@1
|
||||||
(label) setMEMtoFAC::@return
|
(label) setMEMtoFAC::@return
|
||||||
@@ -116,8 +115,7 @@ zp ZP_WORD:3 [ line_cursor#6 line_cursor#13 line_cursor#1 ]
|
|||||||
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||||
zp ZP_WORD:5 [ char_cursor#23 char_cursor#31 char_cursor#32 char_cursor#48 char_cursor#10 ]
|
zp ZP_WORD:5 [ char_cursor#23 char_cursor#31 char_cursor#32 char_cursor#48 char_cursor#10 ]
|
||||||
zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 setMEMtoFAC::mem#2 ]
|
zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 getFAC::return#2 print_word::w#0 getFAC::return#0 ]
|
||||||
zp ZP_WORD:9 [ setFAC::w#3 setFAC::w#1 getFAC::return#2 print_word::w#0 getFAC::w#1 getFAC::return#0 ]
|
|
||||||
reg byte y [ print_byte::$0 ]
|
reg byte y [ print_byte::$0 ]
|
||||||
reg byte a [ print_byte::$3 ]
|
reg byte a [ print_byte::$3 ]
|
||||||
reg byte a [ prepareMEM::$0 ]
|
reg byte a [ prepareMEM::$0 ]
|
||||||
|
@@ -41,7 +41,7 @@ main: {
|
|||||||
anim: {
|
anim: {
|
||||||
.label _3 = 5
|
.label _3 = 5
|
||||||
.label xidx = 4
|
.label xidx = 4
|
||||||
.label x = $e
|
.label x = 8
|
||||||
.label x_msb = 5
|
.label x_msb = 5
|
||||||
.label j2 = 6
|
.label j2 = 6
|
||||||
.label j = 7
|
.label j = 7
|
||||||
@@ -193,7 +193,7 @@ clear_screen: {
|
|||||||
}
|
}
|
||||||
gen_sintab: {
|
gen_sintab: {
|
||||||
.const f_2pi = $e2e5
|
.const f_2pi = $e2e5
|
||||||
.label _23 = $e
|
.label _23 = $c
|
||||||
.label i = 2
|
.label i = 2
|
||||||
.label min = 2
|
.label min = 2
|
||||||
.label length = 3
|
.label length = 3
|
||||||
@@ -325,15 +325,12 @@ progress_inc: {
|
|||||||
progress_chars: .byte $20, $65, $74, $75, $61, $f6, $e7, $ea, $e0
|
progress_chars: .byte $20, $65, $74, $75, $61, $f6, $e7, $ea, $e0
|
||||||
}
|
}
|
||||||
getFAC: {
|
getFAC: {
|
||||||
.label w = $e
|
.label return = $c
|
||||||
.label return = $e
|
|
||||||
jsr $b1aa
|
jsr $b1aa
|
||||||
sty $fe
|
sty $fe
|
||||||
sta $ff
|
sta $ff
|
||||||
lda memLo
|
lda memLo
|
||||||
sta w
|
sta return
|
||||||
lda #0
|
|
||||||
sta w+1
|
|
||||||
lda memHi
|
lda memHi
|
||||||
sta return+1
|
sta return+1
|
||||||
rts
|
rts
|
||||||
@@ -375,11 +372,7 @@ divMEMbyFAC: {
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
setFAC: {
|
setFAC: {
|
||||||
.label w = $e
|
.label w = $c
|
||||||
lda w
|
|
||||||
sta prepareMEM.mem
|
|
||||||
lda w+1
|
|
||||||
sta prepareMEM.mem+1
|
|
||||||
jsr prepareMEM
|
jsr prepareMEM
|
||||||
ldy $fe
|
ldy $fe
|
||||||
lda $ff
|
lda $ff
|
||||||
@@ -439,8 +432,8 @@ gen_sprites: {
|
|||||||
cml: .text "camelot"
|
cml: .text "camelot"
|
||||||
}
|
}
|
||||||
gen_chargen_sprite: {
|
gen_chargen_sprite: {
|
||||||
.label _0 = $e
|
.label _0 = $c
|
||||||
.label _1 = $e
|
.label _1 = $c
|
||||||
.label sprite = $a
|
.label sprite = $a
|
||||||
.label chargen = $c
|
.label chargen = $c
|
||||||
.label bits = 4
|
.label bits = 4
|
||||||
@@ -458,12 +451,12 @@ gen_chargen_sprite: {
|
|||||||
rol _1+1
|
rol _1+1
|
||||||
asl _1
|
asl _1
|
||||||
rol _1+1
|
rol _1+1
|
||||||
lda #<CHARGEN
|
lda chargen
|
||||||
clc
|
clc
|
||||||
adc _1
|
adc #<CHARGEN
|
||||||
sta chargen
|
sta chargen
|
||||||
lda #>CHARGEN
|
lda chargen+1
|
||||||
adc _1+1
|
adc #>CHARGEN
|
||||||
sta chargen+1
|
sta chargen+1
|
||||||
sei
|
sei
|
||||||
lda #$32
|
lda #$32
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -57,7 +57,7 @@
|
|||||||
(byte) anim::j2#2 j2 zp ZP_BYTE:6 67.33333333333333
|
(byte) anim::j2#2 j2 zp ZP_BYTE:6 67.33333333333333
|
||||||
(byte) anim::j2#3 j2 zp ZP_BYTE:6 22.444444444444443
|
(byte) anim::j2#3 j2 zp ZP_BYTE:6 22.444444444444443
|
||||||
(word) anim::x
|
(word) anim::x
|
||||||
(word) anim::x#0 x zp ZP_WORD:14 75.75
|
(word) anim::x#0 x zp ZP_WORD:8 75.75
|
||||||
(byte) anim::x_msb
|
(byte) anim::x_msb
|
||||||
(byte) anim::x_msb#1 x_msb zp ZP_BYTE:5 12.0
|
(byte) anim::x_msb#1 x_msb zp ZP_BYTE:5 12.0
|
||||||
(byte) anim::x_msb#2 x_msb zp ZP_BYTE:5 67.33333333333333
|
(byte) anim::x_msb#2 x_msb zp ZP_BYTE:5 67.33333333333333
|
||||||
@@ -85,8 +85,8 @@
|
|||||||
(byte*) divMEMbyFAC::mem
|
(byte*) divMEMbyFAC::mem
|
||||||
(byte*) divMEMbyFAC::mem#2 mem zp ZP_WORD:12 2.0
|
(byte*) divMEMbyFAC::mem#2 mem zp ZP_WORD:12 2.0
|
||||||
(void()) gen_chargen_sprite((byte) gen_chargen_sprite::ch , (byte*) gen_chargen_sprite::sprite)
|
(void()) gen_chargen_sprite((byte) gen_chargen_sprite::ch , (byte*) gen_chargen_sprite::sprite)
|
||||||
(word~) gen_chargen_sprite::$0 $0 zp ZP_WORD:14 4.0
|
(word~) gen_chargen_sprite::$0 $0 zp ZP_WORD:12 4.0
|
||||||
(word~) gen_chargen_sprite::$1 $1 zp ZP_WORD:14 4.0
|
(word~) gen_chargen_sprite::$1 $1 zp ZP_WORD:12 4.0
|
||||||
(byte~) gen_chargen_sprite::$4 reg byte a 2002.0
|
(byte~) gen_chargen_sprite::$4 reg byte a 2002.0
|
||||||
(byte~) gen_chargen_sprite::$7 reg byte a 20002.0
|
(byte~) gen_chargen_sprite::$7 reg byte a 20002.0
|
||||||
(label) gen_chargen_sprite::@1
|
(label) gen_chargen_sprite::@1
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
(byte) gen_chargen_sprite::y#1 y zp ZP_BYTE:3 151.5
|
(byte) gen_chargen_sprite::y#1 y zp ZP_BYTE:3 151.5
|
||||||
(byte) gen_chargen_sprite::y#2 y zp ZP_BYTE:3 13.173913043478262
|
(byte) gen_chargen_sprite::y#2 y zp ZP_BYTE:3 13.173913043478262
|
||||||
(void()) gen_sintab((byte*) gen_sintab::sintab , (byte) gen_sintab::length , (byte) gen_sintab::min , (byte) gen_sintab::max)
|
(void()) gen_sintab((byte*) gen_sintab::sintab , (byte) gen_sintab::length , (byte) gen_sintab::min , (byte) gen_sintab::max)
|
||||||
(word~) gen_sintab::$23 $23 zp ZP_WORD:14 22.0
|
(word~) gen_sintab::$23 $23 zp ZP_WORD:12 22.0
|
||||||
(byte~) gen_sintab::$24 reg byte a 22.0
|
(byte~) gen_sintab::$24 reg byte a 22.0
|
||||||
(label) gen_sintab::@1
|
(label) gen_sintab::@1
|
||||||
(label) gen_sintab::@10
|
(label) gen_sintab::@10
|
||||||
@@ -196,10 +196,9 @@
|
|||||||
(word()) getFAC()
|
(word()) getFAC()
|
||||||
(label) getFAC::@return
|
(label) getFAC::@return
|
||||||
(word) getFAC::return
|
(word) getFAC::return
|
||||||
(word) getFAC::return#0 return zp ZP_WORD:14 4.333333333333333
|
(word) getFAC::return#0 return zp ZP_WORD:12 4.333333333333333
|
||||||
(word) getFAC::return#2 return zp ZP_WORD:14 22.0
|
(word) getFAC::return#2 return zp ZP_WORD:12 22.0
|
||||||
(word) getFAC::w
|
(word) getFAC::w
|
||||||
(word) getFAC::w#1 w zp ZP_WORD:14 4.0
|
|
||||||
(void()) init()
|
(void()) init()
|
||||||
(label) init::@1
|
(label) init::@1
|
||||||
(label) init::@2
|
(label) init::@2
|
||||||
@@ -285,11 +284,11 @@
|
|||||||
(label) setFAC::@1
|
(label) setFAC::@1
|
||||||
(label) setFAC::@return
|
(label) setFAC::@return
|
||||||
(word) setFAC::w
|
(word) setFAC::w
|
||||||
(word) setFAC::w#0 w zp ZP_WORD:14 4.0
|
(word) setFAC::w#0 w zp ZP_WORD:12 4.0
|
||||||
(word) setFAC::w#1 w zp ZP_WORD:14 4.0
|
(word) setFAC::w#1 w zp ZP_WORD:12 4.0
|
||||||
(word) setFAC::w#3 w zp ZP_WORD:14 22.0
|
(word) setFAC::w#3 w zp ZP_WORD:12 22.0
|
||||||
(word) setFAC::w#4 w zp ZP_WORD:14 22.0
|
(word) setFAC::w#4 w zp ZP_WORD:12 22.0
|
||||||
(word) setFAC::w#5 w zp ZP_WORD:14 28.0
|
(word) setFAC::w#5 w zp ZP_WORD:12 28.0
|
||||||
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
||||||
(label) setMEMtoFAC::@1
|
(label) setMEMtoFAC::@1
|
||||||
(label) setMEMtoFAC::@return
|
(label) setMEMtoFAC::@return
|
||||||
@@ -326,11 +325,10 @@ zp ZP_BYTE:6 [ anim::j2#3 anim::j2#2 gen_chargen_sprite::c#3 ]
|
|||||||
reg byte y [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ]
|
reg byte y [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ]
|
||||||
zp ZP_BYTE:7 [ anim::j#2 anim::j#1 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ]
|
zp ZP_BYTE:7 [ anim::j#2 anim::j#1 gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ]
|
||||||
reg byte x [ init::i#2 init::i#1 ]
|
reg byte x [ init::i#2 init::i#1 ]
|
||||||
zp ZP_WORD:8 [ clear_screen::sc#2 clear_screen::sc#1 gen_sintab::sintab#12 gen_sprites::spr#2 gen_sprites::spr#1 ]
|
zp ZP_WORD:8 [ clear_screen::sc#2 clear_screen::sc#1 gen_sintab::sintab#12 gen_sprites::spr#2 gen_sprites::spr#1 anim::x#0 ]
|
||||||
reg byte x [ gen_sintab::max#2 ]
|
reg byte x [ gen_sintab::max#2 ]
|
||||||
zp ZP_WORD:10 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ]
|
zp ZP_WORD:10 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ]
|
||||||
zp ZP_WORD:12 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 divMEMbyFAC::mem#2 setMEMtoFAC::mem#5 gen_chargen_sprite::chargen#0 ]
|
zp ZP_WORD:12 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 divMEMbyFAC::mem#2 setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 setMEMtoFAC::mem#5 getFAC::return#2 gen_sintab::$23 getFAC::return#0 gen_chargen_sprite::$0 gen_chargen_sprite::$1 gen_chargen_sprite::chargen#0 ]
|
||||||
zp ZP_WORD:14 [ setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 anim::x#0 getFAC::return#2 gen_sintab::$23 getFAC::w#1 getFAC::return#0 gen_chargen_sprite::$0 gen_chargen_sprite::$1 ]
|
|
||||||
reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ]
|
reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ]
|
||||||
reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ]
|
reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ]
|
||||||
reg byte y [ place_sprites::j#2 place_sprites::j#1 ]
|
reg byte y [ place_sprites::j#2 place_sprites::j#1 ]
|
||||||
|
Reference in New Issue
Block a user