mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-12-19 15:29:48 +00:00
Optimizing zeropage coalesce to minimize moving values around. Closes #80
This commit is contained in:
parent
45302103fa
commit
b502c26140
@ -2,6 +2,9 @@ package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.model.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Coalesces zero page registers where their live ranges do not overlap.
|
||||
* A final step done after all other register optimizations and before ASM generation.
|
||||
@ -23,28 +26,73 @@ public class Pass4ZeroPageCoalesce extends Pass2Base {
|
||||
}
|
||||
|
||||
/**
|
||||
* Find two equivalence classes that can be coalesced into one - and perform the coalescence.
|
||||
* Find the best two equivalence classes that can be coalesced into one - and perform the coalescence.
|
||||
*
|
||||
* @param liveRangeEquivalenceClassSet The set of live range equivalence classes
|
||||
* @return true if any classes were coalesced. False otherwise.
|
||||
*/
|
||||
private boolean coalesce(LiveRangeEquivalenceClassSet liveRangeEquivalenceClassSet) {
|
||||
for(LiveRangeEquivalenceClass myEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
||||
double maxScore = Double.MIN_VALUE;
|
||||
LiveRangeEquivalenceClass maxThis = null;
|
||||
LiveRangeEquivalenceClass maxOther = null;
|
||||
|
||||
for(LiveRangeEquivalenceClass thisEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
||||
for(LiveRangeEquivalenceClass otherEquivalenceClass : liveRangeEquivalenceClassSet.getEquivalenceClasses()) {
|
||||
if(!myEquivalenceClass.equals(otherEquivalenceClass)) {
|
||||
if(canCoalesce(myEquivalenceClass, otherEquivalenceClass)) {
|
||||
getLog().append("Coalescing zero page register [ " + myEquivalenceClass + " ] with [ " + otherEquivalenceClass + " ]");
|
||||
liveRangeEquivalenceClassSet.consolidate(myEquivalenceClass, otherEquivalenceClass);
|
||||
// Reset the program register allocation
|
||||
getProgram().getLiveRangeEquivalenceClassSet().storeRegisterAllocation();
|
||||
return true;
|
||||
if(!thisEquivalenceClass.equals(otherEquivalenceClass)) {
|
||||
if(canCoalesce(thisEquivalenceClass, otherEquivalenceClass)) {
|
||||
double coalesceScore = getCoalesceScore(thisEquivalenceClass, otherEquivalenceClass);
|
||||
if(coalesceScore>maxScore) {
|
||||
maxScore = coalesceScore;
|
||||
maxThis = thisEquivalenceClass;
|
||||
maxOther = otherEquivalenceClass;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(maxOther!=null) {
|
||||
getLog().append("Coalescing zero page register [ " + maxThis+ " ] with [ " + maxOther + " ]");
|
||||
liveRangeEquivalenceClassSet.consolidate(maxThis, maxOther);
|
||||
// Reset the program register allocation
|
||||
getProgram().getLiveRangeEquivalenceClassSet().storeRegisterAllocation();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private double getCoalesceScore(LiveRangeEquivalenceClass thisEquivalenceClass, LiveRangeEquivalenceClass otherEquivalenceClass) {
|
||||
double score = 0.0;
|
||||
List<VariableRef> thisClassVars = thisEquivalenceClass.getVariables();
|
||||
List<VariableRef> otherClassVars = otherEquivalenceClass.getVariables();
|
||||
VariableReferenceInfos variableReferenceInfos = getProgram().getVariableReferenceInfos();
|
||||
for(ControlFlowBlock block : getProgram().getGraph().getAllBlocks()) {
|
||||
for(Statement statement : block.getStatements()) {
|
||||
Collection<VariableRef> definedVars = variableReferenceInfos.getDefinedVars(statement);
|
||||
Collection<VariableRef> usedVars = variableReferenceInfos.getUsedVars(statement);
|
||||
if(definedVars!=null && definedVars.size()>0) {
|
||||
for(VariableRef definedVar : definedVars) {
|
||||
if(thisClassVars.contains(definedVar)) {
|
||||
for(VariableRef usedVar : usedVars) {
|
||||
if(otherClassVars.contains(usedVar)) {
|
||||
score += 1.0;
|
||||
}
|
||||
}
|
||||
} else if(otherClassVars.contains(definedVar)) {
|
||||
for(VariableRef usedVar : usedVars) {
|
||||
if(thisClassVars.contains(usedVar)) {
|
||||
score += 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return score;
|
||||
}
|
||||
|
||||
private boolean canCoalesce(LiveRangeEquivalenceClass myEquivalenceClass, LiveRangeEquivalenceClass otherEquivalenceClass) {
|
||||
VariableRef myVariableRef = myEquivalenceClass.getVariables().get(0);
|
||||
Variable myVariable = getProgram().getSymbolInfos().getVariable(myVariableRef);
|
||||
|
@ -48,11 +48,13 @@ lines: {
|
||||
rts
|
||||
}
|
||||
line: {
|
||||
.label x0 = 3
|
||||
.label x1 = 4
|
||||
.label x0 = 8
|
||||
.label x1 = $14
|
||||
.label y0 = 5
|
||||
.label xd = 7
|
||||
.label xd = 3
|
||||
.label yd = $a
|
||||
.label yd_1 = 4
|
||||
.label yd_10 = 4
|
||||
lda x0
|
||||
cmp x1
|
||||
bcs b1
|
||||
@ -67,18 +69,12 @@ line: {
|
||||
tya
|
||||
sec
|
||||
sbc y0
|
||||
sta yd
|
||||
sta yd_1
|
||||
cmp xd
|
||||
bcs b3
|
||||
ldx x0
|
||||
lda y0
|
||||
sta line_xdyi.y
|
||||
lda x1
|
||||
sta line_xdyi.x1
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
lda yd
|
||||
sta line_xdyi.yd
|
||||
jsr line_xdyi
|
||||
breturn:
|
||||
rts
|
||||
@ -87,10 +83,6 @@ line: {
|
||||
sta line_ydxi.y
|
||||
ldx x0
|
||||
sty line_ydxi.y1
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
lda xd
|
||||
sta line_ydxi.xd
|
||||
jsr line_ydxi
|
||||
jmp breturn
|
||||
b2:
|
||||
@ -102,23 +94,13 @@ line: {
|
||||
cmp xd
|
||||
bcs b6
|
||||
ldx x0
|
||||
lda y0
|
||||
sta line_xdyd.y
|
||||
lda x1
|
||||
sta line_xdyd.x1
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
lda yd
|
||||
sta line_xdyd.yd
|
||||
jsr line_xdyd
|
||||
jmp breturn
|
||||
b6:
|
||||
sty line_ydxd.y
|
||||
ldx x1
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
lda xd
|
||||
sta line_ydxd.xd
|
||||
jsr line_ydxd
|
||||
jmp breturn
|
||||
b1:
|
||||
@ -138,12 +120,6 @@ line: {
|
||||
bcs b10
|
||||
ldx x1
|
||||
sty line_xdyd.y
|
||||
lda x0
|
||||
sta line_xdyd.x1
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
lda yd
|
||||
sta line_xdyd.yd
|
||||
jsr line_xdyd
|
||||
jmp breturn
|
||||
b10:
|
||||
@ -151,10 +127,6 @@ line: {
|
||||
sta line_ydxd.y
|
||||
ldx x0
|
||||
sty line_ydxd.y1
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
lda xd
|
||||
sta line_ydxd.xd
|
||||
jsr line_ydxd
|
||||
jmp breturn
|
||||
b9:
|
||||
@ -162,26 +134,16 @@ line: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc y0
|
||||
sta yd
|
||||
sta yd_10
|
||||
cmp xd
|
||||
bcs b13
|
||||
ldx x1
|
||||
sty line_xdyi.y
|
||||
lda x0
|
||||
sta line_xdyi.x1
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
lda yd
|
||||
sta line_xdyi.yd
|
||||
jsr line_xdyi
|
||||
jmp breturn
|
||||
b13:
|
||||
sty line_ydxi.y
|
||||
ldx x1
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
lda xd
|
||||
sta line_ydxi.xd
|
||||
jsr line_ydxi
|
||||
jmp breturn
|
||||
}
|
||||
@ -218,9 +180,9 @@ line_ydxi: {
|
||||
rts
|
||||
}
|
||||
plot: {
|
||||
.label _0 = 8
|
||||
.label plotter_x = 8
|
||||
.label plotter_y = $b
|
||||
.label _0 = $15
|
||||
.label plotter_x = $15
|
||||
.label plotter_y = $17
|
||||
lda plot_xhi,x
|
||||
sta plotter_x+1
|
||||
lda plot_xlo,x
|
||||
@ -243,12 +205,12 @@ plot: {
|
||||
rts
|
||||
}
|
||||
line_xdyi: {
|
||||
.label _6 = $a
|
||||
.label y = 6
|
||||
.label x1 = 5
|
||||
.label xd = 4
|
||||
.label yd = 3
|
||||
.label e = 7
|
||||
.label _6 = $19
|
||||
.label y = 5
|
||||
.label x1 = 8
|
||||
.label xd = 3
|
||||
.label yd = 4
|
||||
.label e = 9
|
||||
lda yd
|
||||
lsr
|
||||
sta e
|
||||
@ -277,11 +239,11 @@ line_xdyi: {
|
||||
rts
|
||||
}
|
||||
line_ydxd: {
|
||||
.label y = 6
|
||||
.label y = $b
|
||||
.label y1 = 5
|
||||
.label yd = 4
|
||||
.label yd = $a
|
||||
.label xd = 3
|
||||
.label e = 7
|
||||
.label e = $c
|
||||
lda xd
|
||||
lsr
|
||||
sta e
|
||||
@ -309,12 +271,12 @@ line_ydxd: {
|
||||
rts
|
||||
}
|
||||
line_xdyd: {
|
||||
.label _6 = $a
|
||||
.label y = 6
|
||||
.label x1 = 5
|
||||
.label xd = 4
|
||||
.label yd = 3
|
||||
.label e = 7
|
||||
.label _6 = $1a
|
||||
.label y = 5
|
||||
.label x1 = 8
|
||||
.label xd = 3
|
||||
.label yd = $a
|
||||
.label e = $d
|
||||
lda yd
|
||||
lsr
|
||||
sta e
|
||||
@ -343,8 +305,8 @@ line_xdyd: {
|
||||
rts
|
||||
}
|
||||
init_plot_tables: {
|
||||
.label _6 = 2
|
||||
.label yoffs = 8
|
||||
.label _6 = $1b
|
||||
.label yoffs = $e
|
||||
ldy #$80
|
||||
ldx #0
|
||||
b1:
|
||||
@ -396,8 +358,8 @@ init_plot_tables: {
|
||||
rts
|
||||
}
|
||||
init_screen: {
|
||||
.label b = 8
|
||||
.label c = 8
|
||||
.label b = $10
|
||||
.label c = $12
|
||||
lda #<BITMAP
|
||||
sta b
|
||||
lda #>BITMAP
|
||||
|
@ -5561,41 +5561,41 @@ Attempting to uplift remaining variables inzp ZP_BYTE:42 [ line::xd#1 ]
|
||||
Uplifting [line] best 268790 combination zp ZP_BYTE:42 [ line::xd#1 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:45 [ line::xd#0 ]
|
||||
Uplifting [line] best 268790 combination zp ZP_BYTE:45 [ line::xd#0 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] ] with [ zp ZP_BYTE:60 [ init_plot_tables::$6 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 ] ] with [ zp ZP_BYTE:11 [ line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 ] ] with [ zp ZP_BYTE:17 [ line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 ] ] with [ zp ZP_BYTE:23 [ line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 ] ] with [ zp ZP_BYTE:38 [ line::x0#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 ] ] with [ zp ZP_BYTE:12 [ line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 ] ] with [ zp ZP_BYTE:18 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 ] ] with [ zp ZP_BYTE:24 [ line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 ] ] with [ zp ZP_BYTE:39 [ line::x1#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 ] ] with [ zp ZP_BYTE:13 [ line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 ] ] with [ zp ZP_BYTE:19 [ line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 ] ] with [ zp ZP_BYTE:25 [ line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 ] ] with [ zp ZP_BYTE:40 [ line::y0#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:7 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 ] ] with [ zp ZP_BYTE:15 [ line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:7 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 ] ] with [ zp ZP_BYTE:21 [ line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:7 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 ] ] with [ zp ZP_BYTE:27 [ line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:8 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 ] ] with [ zp ZP_BYTE:16 [ line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:8 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 ] ] with [ zp ZP_BYTE:22 [ line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:8 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 ] ] with [ zp ZP_BYTE:28 [ line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:8 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 ] ] with [ zp ZP_BYTE:42 [ line::xd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:8 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 line::xd#1 ] ] with [ zp ZP_BYTE:45 [ line::xd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:32 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] ] with [ zp ZP_WORD:34 [ init_screen::b#2 init_screen::b#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:32 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ] ] with [ zp ZP_WORD:36 [ init_screen::c#2 init_screen::c#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:32 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 ] ] with [ zp ZP_WORD:49 [ plot::plotter_x#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:32 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#0 ] ] with [ zp ZP_WORD:53 [ plot::$0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:43 [ line::yd#1 ] ] with [ zp ZP_BYTE:44 [ line::yd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:43 [ line::yd#1 line::yd#0 ] ] with [ zp ZP_BYTE:46 [ line::yd#3 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:43 [ line::yd#1 line::yd#0 line::yd#3 ] ] with [ zp ZP_BYTE:47 [ line::yd#10 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:43 [ line::yd#1 line::yd#0 line::yd#3 line::yd#10 ] ] with [ zp ZP_BYTE:56 [ line_xdyi::$6 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:43 [ line::yd#1 line::yd#0 line::yd#3 line::yd#10 line_xdyi::$6 ] ] with [ zp ZP_BYTE:58 [ line_xdyd::$6 ] ]
|
||||
Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ]
|
||||
Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 line::xd#1 line::xd#0 ]
|
||||
Allocated (was zp ZP_WORD:32) zp ZP_WORD:8 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#0 plot::$0 ]
|
||||
Allocated (was zp ZP_BYTE:43) zp ZP_BYTE:10 [ line::yd#1 line::yd#0 line::yd#3 line::yd#10 line_xdyi::$6 line_xdyd::$6 ]
|
||||
Allocated (was zp ZP_WORD:51) zp ZP_WORD:11 [ plot::plotter_y#0 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 ] ] with [ zp ZP_BYTE:42 [ line::xd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line::xd#1 ] ] with [ zp ZP_BYTE:12 [ line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line::xd#1 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 ] ] with [ zp ZP_BYTE:45 [ line::xd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line::xd#1 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line::xd#0 ] ] with [ zp ZP_BYTE:17 [ line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line::xd#1 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line::xd#0 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 ] ] with [ zp ZP_BYTE:24 [ line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 ] ] with [ zp ZP_BYTE:43 [ line::yd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line::yd#1 ] ] with [ zp ZP_BYTE:11 [ line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line::yd#1 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 ] ] with [ zp ZP_BYTE:47 [ line::yd#10 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 ] ] with [ zp ZP_BYTE:40 [ line::y0#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line::y0#0 ] ] with [ zp ZP_BYTE:15 [ line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line::y0#0 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 ] ] with [ zp ZP_BYTE:19 [ line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line::y0#0 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 ] ] with [ zp ZP_BYTE:27 [ line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:13 [ line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 ] ] with [ zp ZP_BYTE:38 [ line::x0#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:13 [ line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line::x0#0 ] ] with [ zp ZP_BYTE:25 [ line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:18 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 ] ] with [ zp ZP_BYTE:44 [ line::yd#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:18 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line::yd#0 ] ] with [ zp ZP_BYTE:23 [ line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:18 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line::yd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 ] ] with [ zp ZP_BYTE:46 [ line::yd#3 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:49 [ plot::plotter_x#0 ] ] with [ zp ZP_WORD:53 [ plot::$0 ] ]
|
||||
Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 ]
|
||||
Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 ]
|
||||
Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:8 [ line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line::x0#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 ]
|
||||
Allocated (was zp ZP_BYTE:16) zp ZP_BYTE:9 [ line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 ]
|
||||
Allocated (was zp ZP_BYTE:18) zp ZP_BYTE:10 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line::yd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 line::yd#3 ]
|
||||
Allocated (was zp ZP_BYTE:21) zp ZP_BYTE:11 [ line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 ]
|
||||
Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:12 [ line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 ]
|
||||
Allocated (was zp ZP_BYTE:28) zp ZP_BYTE:13 [ line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 ]
|
||||
Allocated (was zp ZP_WORD:32) zp ZP_WORD:14 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ]
|
||||
Allocated (was zp ZP_WORD:34) zp ZP_WORD:16 [ init_screen::b#2 init_screen::b#1 ]
|
||||
Allocated (was zp ZP_WORD:36) zp ZP_WORD:18 [ init_screen::c#2 init_screen::c#1 ]
|
||||
Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:20 [ line::x1#0 ]
|
||||
Allocated (was zp ZP_WORD:49) zp ZP_WORD:21 [ plot::plotter_x#0 plot::$0 ]
|
||||
Allocated (was zp ZP_WORD:51) zp ZP_WORD:23 [ plot::plotter_y#0 ]
|
||||
Allocated (was zp ZP_BYTE:56) zp ZP_BYTE:25 [ line_xdyi::$6 ]
|
||||
Allocated (was zp ZP_BYTE:58) zp ZP_BYTE:26 [ line_xdyd::$6 ]
|
||||
Allocated (was zp ZP_BYTE:60) zp ZP_BYTE:27 [ init_plot_tables::$6 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -5724,11 +5724,13 @@ lines: {
|
||||
}
|
||||
//SEG43 line
|
||||
line: {
|
||||
.label x0 = 3
|
||||
.label x1 = 4
|
||||
.label x0 = 8
|
||||
.label x1 = $14
|
||||
.label y0 = 5
|
||||
.label xd = 7
|
||||
.label xd = 3
|
||||
.label yd = $a
|
||||
.label yd_1 = 4
|
||||
.label yd_10 = 4
|
||||
//SEG44 [25] if((byte) line::x0#0>=(byte) line::x1#0) goto line::@1 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ) -- vbuz1_ge_vbuz2_then_la1
|
||||
lda x0
|
||||
cmp x1
|
||||
@ -5753,9 +5755,9 @@ line: {
|
||||
tya
|
||||
sec
|
||||
sbc y0
|
||||
sta yd
|
||||
sta yd_1
|
||||
//SEG50 [29] if((byte) line::yd#1>=(byte) line::xd#1) goto line::@3 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ) -- vbuz1_ge_vbuz2_then_la1
|
||||
lda yd
|
||||
lda yd_1
|
||||
cmp xd
|
||||
bcs b3
|
||||
jmp b17
|
||||
@ -5763,18 +5765,15 @@ line: {
|
||||
b17:
|
||||
//SEG52 [30] (byte) line_xdyi::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] ) -- vbuxx=vbuz1
|
||||
ldx x0
|
||||
//SEG53 [31] (byte) line_xdyi::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ) -- vbuz1=vbuz2
|
||||
lda y0
|
||||
sta line_xdyi.y
|
||||
//SEG53 [31] (byte) line_xdyi::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] )
|
||||
// (byte) line_xdyi::y#0 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG54 [32] (byte) line_xdyi::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] ) -- vbuz1=vbuz2
|
||||
lda x1
|
||||
sta line_xdyi.x1
|
||||
//SEG55 [33] (byte) line_xdyi::xd#0 ← (byte) line::xd#1 [ line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
//SEG56 [34] (byte) line_xdyi::yd#0 ← (byte) line::yd#1 [ line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyi.yd
|
||||
//SEG55 [33] (byte) line_xdyi::xd#0 ← (byte) line::xd#1 [ line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] )
|
||||
// (byte) line_xdyi::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG56 [34] (byte) line_xdyi::yd#0 ← (byte) line::yd#1 [ line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] )
|
||||
// (byte) line_xdyi::yd#0 = (byte) line::yd#1 // register copy zp ZP_BYTE:4
|
||||
//SEG57 [35] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG58 [109] phi from line::@17 to line_xdyi [phi:line::@17->line_xdyi]
|
||||
line_xdyi_from_b17:
|
||||
@ -5798,12 +5797,10 @@ line: {
|
||||
ldx x0
|
||||
//SEG69 [39] (byte) line_ydxi::y1#0 ← (byte) line::y1#0 [ line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] ) -- vbuz1=vbuyy
|
||||
sty line_ydxi.y1
|
||||
//SEG70 [40] (byte) line_ydxi::yd#0 ← (byte) line::yd#1 [ line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
//SEG71 [41] (byte) line_ydxi::xd#0 ← (byte) line::xd#1 [ line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxi.xd
|
||||
//SEG70 [40] (byte) line_ydxi::yd#0 ← (byte) line::yd#1 [ line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] )
|
||||
// (byte) line_ydxi::yd#0 = (byte) line::yd#1 // register copy zp ZP_BYTE:4
|
||||
//SEG71 [41] (byte) line_ydxi::xd#0 ← (byte) line::xd#1 [ line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] )
|
||||
// (byte) line_ydxi::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG72 [42] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG73 [87] phi from line::@3 to line_ydxi [phi:line::@3->line_ydxi]
|
||||
line_ydxi_from_b3:
|
||||
@ -5831,18 +5828,15 @@ line: {
|
||||
b20:
|
||||
//SEG83 [45] (byte) line_xdyd::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] ) -- vbuxx=vbuz1
|
||||
ldx x0
|
||||
//SEG84 [46] (byte) line_xdyd::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ) -- vbuz1=vbuz2
|
||||
lda y0
|
||||
sta line_xdyd.y
|
||||
//SEG84 [46] (byte) line_xdyd::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] )
|
||||
// (byte) line_xdyd::y#0 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG85 [47] (byte) line_xdyd::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] ) -- vbuz1=vbuz2
|
||||
lda x1
|
||||
sta line_xdyd.x1
|
||||
//SEG86 [48] (byte) line_xdyd::xd#0 ← (byte) line::xd#1 [ line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
//SEG87 [49] (byte) line_xdyd::yd#0 ← (byte) line::yd#0 [ line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyd.yd
|
||||
//SEG86 [48] (byte) line_xdyd::xd#0 ← (byte) line::xd#1 [ line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] )
|
||||
// (byte) line_xdyd::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG87 [49] (byte) line_xdyd::yd#0 ← (byte) line::yd#0 [ line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] )
|
||||
// (byte) line_xdyd::yd#0 = (byte) line::yd#0 // register copy zp ZP_BYTE:10
|
||||
//SEG88 [50] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG89 [139] phi from line::@20 to line_xdyd [phi:line::@20->line_xdyd]
|
||||
line_xdyd_from_b20:
|
||||
@ -5861,12 +5855,10 @@ line: {
|
||||
ldx x1
|
||||
//SEG98 [53] (byte) line_ydxd::y1#0 ← (byte) line::y0#0 [ line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] )
|
||||
// (byte) line_ydxd::y1#0 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG99 [54] (byte) line_ydxd::yd#0 ← (byte) line::yd#0 [ line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
//SEG100 [55] (byte) line_ydxd::xd#0 ← (byte) line::xd#1 [ line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxd.xd
|
||||
//SEG99 [54] (byte) line_ydxd::yd#0 ← (byte) line::yd#0 [ line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] )
|
||||
// (byte) line_ydxd::yd#0 = (byte) line::yd#0 // register copy zp ZP_BYTE:10
|
||||
//SEG100 [55] (byte) line_ydxd::xd#0 ← (byte) line::xd#1 [ line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] )
|
||||
// (byte) line_ydxd::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG101 [56] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG102 [124] phi from line::@6 to line_ydxd [phi:line::@6->line_ydxd]
|
||||
line_ydxd_from_b6:
|
||||
@ -5908,15 +5900,12 @@ line: {
|
||||
ldx x1
|
||||
//SEG116 [62] (byte) line_xdyd::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] ) -- vbuz1=vbuyy
|
||||
sty line_xdyd.y
|
||||
//SEG117 [63] (byte) line_xdyd::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ) -- vbuz1=vbuz2
|
||||
lda x0
|
||||
sta line_xdyd.x1
|
||||
//SEG118 [64] (byte) line_xdyd::xd#1 ← (byte) line::xd#0 [ line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
//SEG119 [65] (byte) line_xdyd::yd#1 ← (byte) line::yd#3 [ line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyd.yd
|
||||
//SEG117 [63] (byte) line_xdyd::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] )
|
||||
// (byte) line_xdyd::x1#1 = (byte) line::x0#0 // register copy zp ZP_BYTE:8
|
||||
//SEG118 [64] (byte) line_xdyd::xd#1 ← (byte) line::xd#0 [ line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] )
|
||||
// (byte) line_xdyd::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG119 [65] (byte) line_xdyd::yd#1 ← (byte) line::yd#3 [ line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] )
|
||||
// (byte) line_xdyd::yd#1 = (byte) line::yd#3 // register copy zp ZP_BYTE:10
|
||||
//SEG120 [66] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG121 [139] phi from line::@24 to line_xdyd [phi:line::@24->line_xdyd]
|
||||
line_xdyd_from_b24:
|
||||
@ -5936,12 +5925,10 @@ line: {
|
||||
ldx x0
|
||||
//SEG130 [69] (byte) line_ydxd::y1#1 ← (byte) line::y1#0 [ line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] ) -- vbuz1=vbuyy
|
||||
sty line_ydxd.y1
|
||||
//SEG131 [70] (byte) line_ydxd::yd#1 ← (byte) line::yd#3 [ line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
//SEG132 [71] (byte) line_ydxd::xd#1 ← (byte) line::xd#0 [ line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxd.xd
|
||||
//SEG131 [70] (byte) line_ydxd::yd#1 ← (byte) line::yd#3 [ line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] )
|
||||
// (byte) line_ydxd::yd#1 = (byte) line::yd#3 // register copy zp ZP_BYTE:10
|
||||
//SEG132 [71] (byte) line_ydxd::xd#1 ← (byte) line::xd#0 [ line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] )
|
||||
// (byte) line_ydxd::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG133 [72] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG134 [124] phi from line::@10 to line_ydxd [phi:line::@10->line_ydxd]
|
||||
line_ydxd_from_b10:
|
||||
@ -5959,9 +5946,9 @@ line: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc y0
|
||||
sta yd
|
||||
sta yd_10
|
||||
//SEG142 [74] if((byte) line::yd#10>=(byte) line::xd#0) goto line::@13 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ) -- vbuz1_ge_vbuz2_then_la1
|
||||
lda yd
|
||||
lda yd_10
|
||||
cmp xd
|
||||
bcs b13
|
||||
jmp b27
|
||||
@ -5971,15 +5958,12 @@ line: {
|
||||
ldx x1
|
||||
//SEG145 [76] (byte) line_xdyi::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] ) -- vbuz1=vbuyy
|
||||
sty line_xdyi.y
|
||||
//SEG146 [77] (byte) line_xdyi::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ) -- vbuz1=vbuz2
|
||||
lda x0
|
||||
sta line_xdyi.x1
|
||||
//SEG147 [78] (byte) line_xdyi::xd#1 ← (byte) line::xd#0 [ line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
//SEG148 [79] (byte) line_xdyi::yd#1 ← (byte) line::yd#10 [ line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyi.yd
|
||||
//SEG146 [77] (byte) line_xdyi::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] )
|
||||
// (byte) line_xdyi::x1#1 = (byte) line::x0#0 // register copy zp ZP_BYTE:8
|
||||
//SEG147 [78] (byte) line_xdyi::xd#1 ← (byte) line::xd#0 [ line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] )
|
||||
// (byte) line_xdyi::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG148 [79] (byte) line_xdyi::yd#1 ← (byte) line::yd#10 [ line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] )
|
||||
// (byte) line_xdyi::yd#1 = (byte) line::yd#10 // register copy zp ZP_BYTE:4
|
||||
//SEG149 [80] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG150 [109] phi from line::@27 to line_xdyi [phi:line::@27->line_xdyi]
|
||||
line_xdyi_from_b27:
|
||||
@ -5998,12 +5982,10 @@ line: {
|
||||
ldx x1
|
||||
//SEG159 [83] (byte) line_ydxi::y1#1 ← (byte) line::y0#0 [ line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] )
|
||||
// (byte) line_ydxi::y1#1 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG160 [84] (byte) line_ydxi::yd#1 ← (byte) line::yd#10 [ line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
//SEG161 [85] (byte) line_ydxi::xd#1 ← (byte) line::xd#0 [ line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxi.xd
|
||||
//SEG160 [84] (byte) line_ydxi::yd#1 ← (byte) line::yd#10 [ line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] )
|
||||
// (byte) line_ydxi::yd#1 = (byte) line::yd#10 // register copy zp ZP_BYTE:4
|
||||
//SEG161 [85] (byte) line_ydxi::xd#1 ← (byte) line::xd#0 [ line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] )
|
||||
// (byte) line_ydxi::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG162 [86] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG163 [87] phi from line::@13 to line_ydxi [phi:line::@13->line_ydxi]
|
||||
line_ydxi_from_b13:
|
||||
@ -6091,9 +6073,9 @@ line_ydxi: {
|
||||
}
|
||||
//SEG197 plot
|
||||
plot: {
|
||||
.label _0 = 8
|
||||
.label plotter_x = 8
|
||||
.label plotter_y = $b
|
||||
.label _0 = $15
|
||||
.label plotter_x = $15
|
||||
.label plotter_y = $17
|
||||
//SEG198 [103] (word) plot::plotter_x#0 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#4) w= *((const byte[256]) plot_xlo#0 + (byte) plot::x#4) [ plot::x#4 plot::y#4 plot::plotter_x#0 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyi:35::plot:114 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyi:80::plot:114 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_ydxd:56::plot:129 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_ydxd:72::plot:129 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyd:50::plot:144 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyd:66::plot:144 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] ) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
||||
lda plot_xhi,x
|
||||
sta plotter_x+1
|
||||
@ -6127,12 +6109,12 @@ plot: {
|
||||
}
|
||||
//SEG205 line_xdyi
|
||||
line_xdyi: {
|
||||
.label _6 = $a
|
||||
.label y = 6
|
||||
.label x1 = 5
|
||||
.label xd = 4
|
||||
.label yd = 3
|
||||
.label e = 7
|
||||
.label _6 = $19
|
||||
.label y = 5
|
||||
.label x1 = 8
|
||||
.label xd = 3
|
||||
.label yd = 4
|
||||
.label e = 9
|
||||
//SEG206 [110] (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] ) -- vbuz1=vbuz2_ror_1
|
||||
lda yd
|
||||
lsr
|
||||
@ -6203,11 +6185,11 @@ line_xdyi: {
|
||||
}
|
||||
//SEG233 line_ydxd
|
||||
line_ydxd: {
|
||||
.label y = 6
|
||||
.label y = $b
|
||||
.label y1 = 5
|
||||
.label yd = 4
|
||||
.label yd = $a
|
||||
.label xd = 3
|
||||
.label e = 7
|
||||
.label e = $c
|
||||
//SEG234 [125] (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#7 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#7 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#7 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] ) -- vbuz1=vbuz2_ror_1
|
||||
lda xd
|
||||
lsr
|
||||
@ -6277,12 +6259,12 @@ line_ydxd: {
|
||||
}
|
||||
//SEG261 line_xdyd
|
||||
line_xdyd: {
|
||||
.label _6 = $a
|
||||
.label y = 6
|
||||
.label x1 = 5
|
||||
.label xd = 4
|
||||
.label yd = 3
|
||||
.label e = 7
|
||||
.label _6 = $1a
|
||||
.label y = 5
|
||||
.label x1 = 8
|
||||
.label xd = 3
|
||||
.label yd = $a
|
||||
.label e = $d
|
||||
//SEG262 [140] (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] ) -- vbuz1=vbuz2_ror_1
|
||||
lda yd
|
||||
lsr
|
||||
@ -6353,8 +6335,8 @@ line_xdyd: {
|
||||
}
|
||||
//SEG289 init_plot_tables
|
||||
init_plot_tables: {
|
||||
.label _6 = 2
|
||||
.label yoffs = 8
|
||||
.label _6 = $1b
|
||||
.label yoffs = $e
|
||||
//SEG290 [155] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1]
|
||||
b1_from_init_plot_tables:
|
||||
//SEG291 [155] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1
|
||||
@ -6476,8 +6458,8 @@ init_plot_tables: {
|
||||
}
|
||||
//SEG336 init_screen
|
||||
init_screen: {
|
||||
.label b = 8
|
||||
.label c = 8
|
||||
.label b = $10
|
||||
.label c = $12
|
||||
//SEG337 [181] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
||||
b1_from_init_screen:
|
||||
//SEG338 [181] phi (byte*) init_screen::b#2 = (const byte*) BITMAP#0 [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
||||
@ -6605,10 +6587,10 @@ Succesful ASM optimization Pass5NextJumpElimination
|
||||
Removing instruction lda #0
|
||||
Removing instruction ldy l
|
||||
Removing instruction ldy l
|
||||
Removing instruction lda yd_1
|
||||
Removing instruction lda yd
|
||||
Removing instruction lda yd
|
||||
Removing instruction lda yd
|
||||
Removing instruction lda yd
|
||||
Removing instruction lda yd_10
|
||||
Removing instruction ldy #0
|
||||
Removing instruction lda #>0
|
||||
Replacing instruction ldx #0 with TAX
|
||||
@ -6756,7 +6738,7 @@ FINAL SYMBOL TABLE
|
||||
(void()) init_plot_tables()
|
||||
(byte~) init_plot_tables::$0 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$10 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:2 11.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:27 11.0
|
||||
(byte~) init_plot_tables::$7 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$8 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$9 reg byte a 22.0
|
||||
@ -6778,19 +6760,19 @@ FINAL SYMBOL TABLE
|
||||
(byte) init_plot_tables::y#1 reg byte x 16.5
|
||||
(byte) init_plot_tables::y#2 reg byte x 6.0
|
||||
(byte*) init_plot_tables::yoffs
|
||||
(byte*) init_plot_tables::yoffs#1 yoffs zp ZP_WORD:8 22.0
|
||||
(byte*) init_plot_tables::yoffs#2 yoffs zp ZP_WORD:8 6.111111111111112
|
||||
(byte*) init_plot_tables::yoffs#4 yoffs zp ZP_WORD:8 11.0
|
||||
(byte*) init_plot_tables::yoffs#1 yoffs zp ZP_WORD:14 22.0
|
||||
(byte*) init_plot_tables::yoffs#2 yoffs zp ZP_WORD:14 6.111111111111112
|
||||
(byte*) init_plot_tables::yoffs#4 yoffs zp ZP_WORD:14 11.0
|
||||
(void()) init_screen()
|
||||
(label) init_screen::@1
|
||||
(label) init_screen::@2
|
||||
(label) init_screen::@return
|
||||
(byte*) init_screen::b
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:16 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:16 16.5
|
||||
(byte*) init_screen::c
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:18 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:18 16.5
|
||||
(void()) line((byte) line::x0 , (byte) line::x1 , (byte) line::y0 , (byte) line::y1)
|
||||
(label) line::@1
|
||||
(label) line::@10
|
||||
@ -6808,34 +6790,34 @@ FINAL SYMBOL TABLE
|
||||
(label) line::@9
|
||||
(label) line::@return
|
||||
(byte) line::x0
|
||||
(byte) line::x0#0 x0 zp ZP_BYTE:3 5.173913043478264
|
||||
(byte) line::x0#0 x0 zp ZP_BYTE:8 5.173913043478264
|
||||
(byte) line::x1
|
||||
(byte) line::x1#0 x1 zp ZP_BYTE:4 5.409090909090908
|
||||
(byte) line::x1#0 x1 zp ZP_BYTE:20 5.409090909090908
|
||||
(byte) line::xd
|
||||
(byte) line::xd#0 xd zp ZP_BYTE:7 0.7
|
||||
(byte) line::xd#1 xd zp ZP_BYTE:7 0.7
|
||||
(byte) line::xd#0 xd zp ZP_BYTE:3 0.7
|
||||
(byte) line::xd#1 xd zp ZP_BYTE:3 0.7
|
||||
(byte) line::y0
|
||||
(byte) line::y0#0 y0 zp ZP_BYTE:5 5.952380952380948
|
||||
(byte) line::y1
|
||||
(byte) line::y1#0 reg byte y 6.249999999999996
|
||||
(byte) line::yd
|
||||
(byte) line::yd#0 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#1 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#10 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#1 yd#1 zp ZP_BYTE:4 0.8888888888888888
|
||||
(byte) line::yd#10 yd#10 zp ZP_BYTE:4 0.8888888888888888
|
||||
(byte) line::yd#3 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(void()) line_xdyd((byte) line_xdyd::x , (byte) line_xdyd::y , (byte) line_xdyd::x1 , (byte) line_xdyd::xd , (byte) line_xdyd::yd)
|
||||
(byte/word~) line_xdyd::$6 $6 zp ZP_BYTE:10 2002.0
|
||||
(byte/word~) line_xdyd::$6 $6 zp ZP_BYTE:26 2002.0
|
||||
(label) line_xdyd::@1
|
||||
(label) line_xdyd::@2
|
||||
(label) line_xdyd::@3
|
||||
(label) line_xdyd::@5
|
||||
(label) line_xdyd::@return
|
||||
(byte) line_xdyd::e
|
||||
(byte) line_xdyd::e#0 e zp ZP_BYTE:7 4.0
|
||||
(byte) line_xdyd::e#1 e zp ZP_BYTE:7 1334.6666666666667
|
||||
(byte) line_xdyd::e#2 e zp ZP_BYTE:7 2002.0
|
||||
(byte) line_xdyd::e#3 e zp ZP_BYTE:7 400.79999999999995
|
||||
(byte) line_xdyd::e#6 e zp ZP_BYTE:7 1001.0
|
||||
(byte) line_xdyd::e#0 e zp ZP_BYTE:13 4.0
|
||||
(byte) line_xdyd::e#1 e zp ZP_BYTE:13 1334.6666666666667
|
||||
(byte) line_xdyd::e#2 e zp ZP_BYTE:13 2002.0
|
||||
(byte) line_xdyd::e#3 e zp ZP_BYTE:13 400.79999999999995
|
||||
(byte) line_xdyd::e#6 e zp ZP_BYTE:13 1001.0
|
||||
(byte) line_xdyd::x
|
||||
(byte) line_xdyd::x#0 reg byte x 0.8
|
||||
(byte) line_xdyd::x#1 reg byte x 0.8
|
||||
@ -6843,37 +6825,37 @@ FINAL SYMBOL TABLE
|
||||
(byte) line_xdyd::x#3 reg byte x 751.25
|
||||
(byte) line_xdyd::x#6 reg byte x 3.0
|
||||
(byte) line_xdyd::x1
|
||||
(byte) line_xdyd::x1#0 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyd::x1#1 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyd::x1#6 x1 zp ZP_BYTE:5 71.78571428571429
|
||||
(byte) line_xdyd::x1#0 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyd::x1#1 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyd::x1#6 x1 zp ZP_BYTE:8 71.78571428571429
|
||||
(byte) line_xdyd::xd
|
||||
(byte) line_xdyd::xd#0 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyd::xd#1 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyd::xd#5 xd zp ZP_BYTE:4 143.28571428571428
|
||||
(byte) line_xdyd::xd#0 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyd::xd#1 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyd::xd#5 xd zp ZP_BYTE:3 143.28571428571428
|
||||
(byte) line_xdyd::y
|
||||
(byte) line_xdyd::y#0 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyd::y#1 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyd::y#2 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyd::y#3 y zp ZP_BYTE:6 572.2857142857142
|
||||
(byte) line_xdyd::y#5 y zp ZP_BYTE:6 3.0
|
||||
(byte) line_xdyd::y#6 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyd::y#0 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyd::y#1 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyd::y#2 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyd::y#3 y zp ZP_BYTE:5 572.2857142857142
|
||||
(byte) line_xdyd::y#5 y zp ZP_BYTE:5 3.0
|
||||
(byte) line_xdyd::y#6 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyd::yd
|
||||
(byte) line_xdyd::yd#0 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyd::yd#1 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyd::yd#2 yd zp ZP_BYTE:3 71.92857142857143
|
||||
(byte) line_xdyd::yd#0 yd zp ZP_BYTE:10 4.0
|
||||
(byte) line_xdyd::yd#1 yd zp ZP_BYTE:10 4.0
|
||||
(byte) line_xdyd::yd#2 yd zp ZP_BYTE:10 71.92857142857143
|
||||
(void()) line_xdyi((byte) line_xdyi::x , (byte) line_xdyi::y , (byte) line_xdyi::x1 , (byte) line_xdyi::xd , (byte) line_xdyi::yd)
|
||||
(byte/word~) line_xdyi::$6 $6 zp ZP_BYTE:10 2002.0
|
||||
(byte/word~) line_xdyi::$6 $6 zp ZP_BYTE:25 2002.0
|
||||
(label) line_xdyi::@1
|
||||
(label) line_xdyi::@2
|
||||
(label) line_xdyi::@3
|
||||
(label) line_xdyi::@5
|
||||
(label) line_xdyi::@return
|
||||
(byte) line_xdyi::e
|
||||
(byte) line_xdyi::e#0 e zp ZP_BYTE:7 4.0
|
||||
(byte) line_xdyi::e#1 e zp ZP_BYTE:7 1334.6666666666667
|
||||
(byte) line_xdyi::e#2 e zp ZP_BYTE:7 2002.0
|
||||
(byte) line_xdyi::e#3 e zp ZP_BYTE:7 400.79999999999995
|
||||
(byte) line_xdyi::e#6 e zp ZP_BYTE:7 1001.0
|
||||
(byte) line_xdyi::e#0 e zp ZP_BYTE:9 4.0
|
||||
(byte) line_xdyi::e#1 e zp ZP_BYTE:9 1334.6666666666667
|
||||
(byte) line_xdyi::e#2 e zp ZP_BYTE:9 2002.0
|
||||
(byte) line_xdyi::e#3 e zp ZP_BYTE:9 400.79999999999995
|
||||
(byte) line_xdyi::e#6 e zp ZP_BYTE:9 1001.0
|
||||
(byte) line_xdyi::x
|
||||
(byte) line_xdyi::x#0 reg byte x 0.8
|
||||
(byte) line_xdyi::x#1 reg byte x 0.8
|
||||
@ -6881,24 +6863,24 @@ FINAL SYMBOL TABLE
|
||||
(byte) line_xdyi::x#3 reg byte x 751.25
|
||||
(byte) line_xdyi::x#6 reg byte x 3.0
|
||||
(byte) line_xdyi::x1
|
||||
(byte) line_xdyi::x1#0 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyi::x1#1 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyi::x1#6 x1 zp ZP_BYTE:5 71.78571428571429
|
||||
(byte) line_xdyi::x1#0 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyi::x1#1 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyi::x1#6 x1 zp ZP_BYTE:8 71.78571428571429
|
||||
(byte) line_xdyi::xd
|
||||
(byte) line_xdyi::xd#0 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyi::xd#1 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyi::xd#5 xd zp ZP_BYTE:4 143.28571428571428
|
||||
(byte) line_xdyi::xd#0 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyi::xd#1 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyi::xd#5 xd zp ZP_BYTE:3 143.28571428571428
|
||||
(byte) line_xdyi::y
|
||||
(byte) line_xdyi::y#0 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyi::y#1 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyi::y#2 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyi::y#3 y zp ZP_BYTE:6 572.2857142857142
|
||||
(byte) line_xdyi::y#5 y zp ZP_BYTE:6 3.0
|
||||
(byte) line_xdyi::y#6 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyi::y#0 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyi::y#1 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyi::y#2 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyi::y#3 y zp ZP_BYTE:5 572.2857142857142
|
||||
(byte) line_xdyi::y#5 y zp ZP_BYTE:5 3.0
|
||||
(byte) line_xdyi::y#6 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyi::yd
|
||||
(byte) line_xdyi::yd#0 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyi::yd#1 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyi::yd#2 yd zp ZP_BYTE:3 71.92857142857143
|
||||
(byte) line_xdyi::yd#0 yd zp ZP_BYTE:4 4.0
|
||||
(byte) line_xdyi::yd#1 yd zp ZP_BYTE:4 4.0
|
||||
(byte) line_xdyi::yd#2 yd zp ZP_BYTE:4 71.92857142857143
|
||||
(void()) line_ydxd((byte) line_ydxd::y , (byte) line_ydxd::x , (byte) line_ydxd::y1 , (byte) line_ydxd::yd , (byte) line_ydxd::xd)
|
||||
(byte/word~) line_ydxd::$6 reg byte y 2002.0
|
||||
(label) line_ydxd::@1
|
||||
@ -6907,11 +6889,11 @@ FINAL SYMBOL TABLE
|
||||
(label) line_ydxd::@5
|
||||
(label) line_ydxd::@return
|
||||
(byte) line_ydxd::e
|
||||
(byte) line_ydxd::e#0 e zp ZP_BYTE:7 4.0
|
||||
(byte) line_ydxd::e#1 e zp ZP_BYTE:7 1334.6666666666667
|
||||
(byte) line_ydxd::e#2 e zp ZP_BYTE:7 2002.0
|
||||
(byte) line_ydxd::e#3 e zp ZP_BYTE:7 400.79999999999995
|
||||
(byte) line_ydxd::e#6 e zp ZP_BYTE:7 1001.0
|
||||
(byte) line_ydxd::e#0 e zp ZP_BYTE:12 4.0
|
||||
(byte) line_ydxd::e#1 e zp ZP_BYTE:12 1334.6666666666667
|
||||
(byte) line_ydxd::e#2 e zp ZP_BYTE:12 2002.0
|
||||
(byte) line_ydxd::e#3 e zp ZP_BYTE:12 400.79999999999995
|
||||
(byte) line_ydxd::e#6 e zp ZP_BYTE:12 1001.0
|
||||
(byte) line_ydxd::x
|
||||
(byte) line_ydxd::x#0 reg byte x 1.0
|
||||
(byte) line_ydxd::x#1 reg byte x 1.0
|
||||
@ -6924,19 +6906,19 @@ FINAL SYMBOL TABLE
|
||||
(byte) line_ydxd::xd#1 xd zp ZP_BYTE:3 4.0
|
||||
(byte) line_ydxd::xd#2 xd zp ZP_BYTE:3 71.92857142857143
|
||||
(byte) line_ydxd::y
|
||||
(byte) line_ydxd::y#0 y zp ZP_BYTE:6 0.8
|
||||
(byte) line_ydxd::y#1 y zp ZP_BYTE:6 0.8
|
||||
(byte) line_ydxd::y#2 y zp ZP_BYTE:6 751.25
|
||||
(byte) line_ydxd::y#3 y zp ZP_BYTE:6 375.375
|
||||
(byte) line_ydxd::y#7 y zp ZP_BYTE:6 3.0
|
||||
(byte) line_ydxd::y#0 y zp ZP_BYTE:11 0.8
|
||||
(byte) line_ydxd::y#1 y zp ZP_BYTE:11 0.8
|
||||
(byte) line_ydxd::y#2 y zp ZP_BYTE:11 751.25
|
||||
(byte) line_ydxd::y#3 y zp ZP_BYTE:11 375.375
|
||||
(byte) line_ydxd::y#7 y zp ZP_BYTE:11 3.0
|
||||
(byte) line_ydxd::y1
|
||||
(byte) line_ydxd::y1#0 y1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_ydxd::y1#1 y1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_ydxd::y1#6 y1 zp ZP_BYTE:5 71.78571428571429
|
||||
(byte) line_ydxd::yd
|
||||
(byte) line_ydxd::yd#0 yd zp ZP_BYTE:4 2.0
|
||||
(byte) line_ydxd::yd#1 yd zp ZP_BYTE:4 2.0
|
||||
(byte) line_ydxd::yd#5 yd zp ZP_BYTE:4 143.28571428571428
|
||||
(byte) line_ydxd::yd#0 yd zp ZP_BYTE:10 2.0
|
||||
(byte) line_ydxd::yd#1 yd zp ZP_BYTE:10 2.0
|
||||
(byte) line_ydxd::yd#5 yd zp ZP_BYTE:10 143.28571428571428
|
||||
(void()) line_ydxi((byte) line_ydxi::y , (byte) line_ydxi::x , (byte) line_ydxi::y1 , (byte) line_ydxi::yd , (byte) line_ydxi::xd)
|
||||
(byte/word~) line_ydxi::$6 reg byte y 2002.0
|
||||
(label) line_ydxi::@1
|
||||
@ -6994,14 +6976,14 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@5
|
||||
(label) main::@return
|
||||
(void()) plot((byte) plot::x , (byte) plot::y)
|
||||
(word~) plot::$0 $0 zp ZP_WORD:8 1.0
|
||||
(word~) plot::$0 $0 zp ZP_WORD:21 1.0
|
||||
(byte~) plot::$1 reg byte a 4.0
|
||||
(label) plot::@return
|
||||
(byte*) plot::plotter
|
||||
(word) plot::plotter_x
|
||||
(word) plot::plotter_x#0 plotter_x zp ZP_WORD:8 2.0
|
||||
(word) plot::plotter_x#0 plotter_x zp ZP_WORD:21 2.0
|
||||
(word) plot::plotter_y
|
||||
(word) plot::plotter_y#0 plotter_y zp ZP_WORD:11 4.0
|
||||
(word) plot::plotter_y#0 plotter_y zp ZP_WORD:23 4.0
|
||||
(byte) plot::x
|
||||
(byte) plot::x#0 reg byte x 1001.0
|
||||
(byte) plot::x#1 reg byte x 1001.0
|
||||
@ -7025,29 +7007,41 @@ FINAL SYMBOL TABLE
|
||||
(byte[256]) plot_ylo
|
||||
(const byte[256]) plot_ylo#0 plot_ylo = { fill( 256, 0) }
|
||||
|
||||
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 init_plot_tables::$6 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 line::x0#0 ]
|
||||
zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 line::x1#0 ]
|
||||
zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 line::y0#0 ]
|
||||
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line::xd#1 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line::xd#0 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 ]
|
||||
zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line::yd#1 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line::yd#10 ]
|
||||
zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line::y0#0 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ]
|
||||
reg byte x [ line_ydxi::x#3 line_ydxi::x#5 line_ydxi::x#1 line_ydxi::x#0 line_ydxi::x#6 line_ydxi::x#2 ]
|
||||
zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ]
|
||||
zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 line::xd#1 line::xd#0 ]
|
||||
zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 ]
|
||||
zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 ]
|
||||
reg byte x [ plot::x#4 plot::x#1 plot::x#0 plot::x#3 plot::x#2 ]
|
||||
reg byte y [ plot::y#4 plot::y#1 plot::y#0 plot::y#3 plot::y#2 ]
|
||||
zp ZP_BYTE:8 [ line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line::x0#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 ]
|
||||
reg byte x [ line_xdyi::x#3 line_xdyi::x#6 line_xdyi::x#0 line_xdyi::x#1 line_xdyi::x#2 ]
|
||||
zp ZP_BYTE:9 [ line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 ]
|
||||
zp ZP_BYTE:10 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line::yd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 line::yd#3 ]
|
||||
reg byte x [ line_ydxd::x#3 line_ydxd::x#5 line_ydxd::x#1 line_ydxd::x#0 line_ydxd::x#6 line_ydxd::x#2 ]
|
||||
zp ZP_BYTE:11 [ line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 ]
|
||||
zp ZP_BYTE:12 [ line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 ]
|
||||
reg byte x [ line_xdyd::x#3 line_xdyd::x#6 line_xdyd::x#0 line_xdyd::x#1 line_xdyd::x#2 ]
|
||||
zp ZP_BYTE:13 [ line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 ]
|
||||
reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
|
||||
reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
|
||||
reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
|
||||
zp ZP_WORD:8 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#0 plot::$0 ]
|
||||
zp ZP_WORD:14 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ]
|
||||
zp ZP_WORD:16 [ init_screen::b#2 init_screen::b#1 ]
|
||||
zp ZP_WORD:18 [ init_screen::c#2 init_screen::c#1 ]
|
||||
zp ZP_BYTE:20 [ line::x1#0 ]
|
||||
reg byte y [ line::y1#0 ]
|
||||
zp ZP_BYTE:10 [ line::yd#1 line::yd#0 line::yd#3 line::yd#10 line_xdyi::$6 line_xdyd::$6 ]
|
||||
reg byte y [ line_ydxi::$6 ]
|
||||
zp ZP_WORD:11 [ plot::plotter_y#0 ]
|
||||
zp ZP_WORD:21 [ plot::plotter_x#0 plot::$0 ]
|
||||
zp ZP_WORD:23 [ plot::plotter_y#0 ]
|
||||
reg byte a [ plot::$1 ]
|
||||
zp ZP_BYTE:25 [ line_xdyi::$6 ]
|
||||
reg byte y [ line_ydxd::$6 ]
|
||||
zp ZP_BYTE:26 [ line_xdyd::$6 ]
|
||||
reg byte a [ init_plot_tables::$0 ]
|
||||
zp ZP_BYTE:27 [ init_plot_tables::$6 ]
|
||||
reg byte a [ init_plot_tables::$7 ]
|
||||
reg byte a [ init_plot_tables::$8 ]
|
||||
reg byte a [ init_plot_tables::$9 ]
|
||||
@ -7055,7 +7049,7 @@ reg byte a [ init_plot_tables::$10 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 218375
|
||||
Score: 218255
|
||||
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -7151,11 +7145,13 @@ lines: {
|
||||
}
|
||||
//SEG43 line
|
||||
line: {
|
||||
.label x0 = 3
|
||||
.label x1 = 4
|
||||
.label x0 = 8
|
||||
.label x1 = $14
|
||||
.label y0 = 5
|
||||
.label xd = 7
|
||||
.label xd = 3
|
||||
.label yd = $a
|
||||
.label yd_1 = 4
|
||||
.label yd_10 = 4
|
||||
//SEG44 [25] if((byte) line::x0#0>=(byte) line::x1#0) goto line::@1 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ) -- vbuz1_ge_vbuz2_then_la1
|
||||
lda x0
|
||||
cmp x1
|
||||
@ -7176,25 +7172,22 @@ line: {
|
||||
tya
|
||||
sec
|
||||
sbc y0
|
||||
sta yd
|
||||
sta yd_1
|
||||
//SEG50 [29] if((byte) line::yd#1>=(byte) line::xd#1) goto line::@3 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ) -- vbuz1_ge_vbuz2_then_la1
|
||||
cmp xd
|
||||
bcs b3
|
||||
//SEG51 line::@17
|
||||
//SEG52 [30] (byte) line_xdyi::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] ) -- vbuxx=vbuz1
|
||||
ldx x0
|
||||
//SEG53 [31] (byte) line_xdyi::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ) -- vbuz1=vbuz2
|
||||
lda y0
|
||||
sta line_xdyi.y
|
||||
//SEG53 [31] (byte) line_xdyi::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] )
|
||||
// (byte) line_xdyi::y#0 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG54 [32] (byte) line_xdyi::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] ) -- vbuz1=vbuz2
|
||||
lda x1
|
||||
sta line_xdyi.x1
|
||||
//SEG55 [33] (byte) line_xdyi::xd#0 ← (byte) line::xd#1 [ line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
//SEG56 [34] (byte) line_xdyi::yd#0 ← (byte) line::yd#1 [ line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyi.yd
|
||||
//SEG55 [33] (byte) line_xdyi::xd#0 ← (byte) line::xd#1 [ line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] )
|
||||
// (byte) line_xdyi::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG56 [34] (byte) line_xdyi::yd#0 ← (byte) line::yd#1 [ line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] )
|
||||
// (byte) line_xdyi::yd#0 = (byte) line::yd#1 // register copy zp ZP_BYTE:4
|
||||
//SEG57 [35] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG58 [109] phi from line::@17 to line_xdyi [phi:line::@17->line_xdyi]
|
||||
//SEG59 [109] phi (byte) line_xdyi::x1#6 = (byte) line_xdyi::x1#0 [phi:line::@17->line_xdyi#0] -- register_copy
|
||||
@ -7216,12 +7209,10 @@ line: {
|
||||
ldx x0
|
||||
//SEG69 [39] (byte) line_ydxi::y1#0 ← (byte) line::y1#0 [ line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] ) -- vbuz1=vbuyy
|
||||
sty line_ydxi.y1
|
||||
//SEG70 [40] (byte) line_ydxi::yd#0 ← (byte) line::yd#1 [ line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
//SEG71 [41] (byte) line_ydxi::xd#0 ← (byte) line::xd#1 [ line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxi.xd
|
||||
//SEG70 [40] (byte) line_ydxi::yd#0 ← (byte) line::yd#1 [ line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] )
|
||||
// (byte) line_ydxi::yd#0 = (byte) line::yd#1 // register copy zp ZP_BYTE:4
|
||||
//SEG71 [41] (byte) line_ydxi::xd#0 ← (byte) line::xd#1 [ line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] )
|
||||
// (byte) line_ydxi::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG72 [42] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG73 [87] phi from line::@3 to line_ydxi [phi:line::@3->line_ydxi]
|
||||
//SEG74 [87] phi (byte) line_ydxi::y1#6 = (byte) line_ydxi::y1#0 [phi:line::@3->line_ydxi#0] -- register_copy
|
||||
@ -7245,18 +7236,15 @@ line: {
|
||||
//SEG82 line::@20
|
||||
//SEG83 [45] (byte) line_xdyd::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] ) -- vbuxx=vbuz1
|
||||
ldx x0
|
||||
//SEG84 [46] (byte) line_xdyd::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ) -- vbuz1=vbuz2
|
||||
lda y0
|
||||
sta line_xdyd.y
|
||||
//SEG84 [46] (byte) line_xdyd::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] )
|
||||
// (byte) line_xdyd::y#0 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG85 [47] (byte) line_xdyd::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] ) -- vbuz1=vbuz2
|
||||
lda x1
|
||||
sta line_xdyd.x1
|
||||
//SEG86 [48] (byte) line_xdyd::xd#0 ← (byte) line::xd#1 [ line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
//SEG87 [49] (byte) line_xdyd::yd#0 ← (byte) line::yd#0 [ line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyd.yd
|
||||
//SEG86 [48] (byte) line_xdyd::xd#0 ← (byte) line::xd#1 [ line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] )
|
||||
// (byte) line_xdyd::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG87 [49] (byte) line_xdyd::yd#0 ← (byte) line::yd#0 [ line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] )
|
||||
// (byte) line_xdyd::yd#0 = (byte) line::yd#0 // register copy zp ZP_BYTE:10
|
||||
//SEG88 [50] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG89 [139] phi from line::@20 to line_xdyd [phi:line::@20->line_xdyd]
|
||||
//SEG90 [139] phi (byte) line_xdyd::x1#6 = (byte) line_xdyd::x1#0 [phi:line::@20->line_xdyd#0] -- register_copy
|
||||
@ -7274,12 +7262,10 @@ line: {
|
||||
ldx x1
|
||||
//SEG98 [53] (byte) line_ydxd::y1#0 ← (byte) line::y0#0 [ line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] )
|
||||
// (byte) line_ydxd::y1#0 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG99 [54] (byte) line_ydxd::yd#0 ← (byte) line::yd#0 [ line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
//SEG100 [55] (byte) line_ydxd::xd#0 ← (byte) line::xd#1 [ line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxd.xd
|
||||
//SEG99 [54] (byte) line_ydxd::yd#0 ← (byte) line::yd#0 [ line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] )
|
||||
// (byte) line_ydxd::yd#0 = (byte) line::yd#0 // register copy zp ZP_BYTE:10
|
||||
//SEG100 [55] (byte) line_ydxd::xd#0 ← (byte) line::xd#1 [ line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] )
|
||||
// (byte) line_ydxd::xd#0 = (byte) line::xd#1 // register copy zp ZP_BYTE:3
|
||||
//SEG101 [56] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG102 [124] phi from line::@6 to line_ydxd [phi:line::@6->line_ydxd]
|
||||
//SEG103 [124] phi (byte) line_ydxd::y1#6 = (byte) line_ydxd::y1#0 [phi:line::@6->line_ydxd#0] -- register_copy
|
||||
@ -7315,15 +7301,12 @@ line: {
|
||||
ldx x1
|
||||
//SEG116 [62] (byte) line_xdyd::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] ) -- vbuz1=vbuyy
|
||||
sty line_xdyd.y
|
||||
//SEG117 [63] (byte) line_xdyd::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ) -- vbuz1=vbuz2
|
||||
lda x0
|
||||
sta line_xdyd.x1
|
||||
//SEG118 [64] (byte) line_xdyd::xd#1 ← (byte) line::xd#0 [ line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
//SEG119 [65] (byte) line_xdyd::yd#1 ← (byte) line::yd#3 [ line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyd.yd
|
||||
//SEG117 [63] (byte) line_xdyd::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] )
|
||||
// (byte) line_xdyd::x1#1 = (byte) line::x0#0 // register copy zp ZP_BYTE:8
|
||||
//SEG118 [64] (byte) line_xdyd::xd#1 ← (byte) line::xd#0 [ line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] )
|
||||
// (byte) line_xdyd::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG119 [65] (byte) line_xdyd::yd#1 ← (byte) line::yd#3 [ line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] )
|
||||
// (byte) line_xdyd::yd#1 = (byte) line::yd#3 // register copy zp ZP_BYTE:10
|
||||
//SEG120 [66] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG121 [139] phi from line::@24 to line_xdyd [phi:line::@24->line_xdyd]
|
||||
//SEG122 [139] phi (byte) line_xdyd::x1#6 = (byte) line_xdyd::x1#1 [phi:line::@24->line_xdyd#0] -- register_copy
|
||||
@ -7342,12 +7325,10 @@ line: {
|
||||
ldx x0
|
||||
//SEG130 [69] (byte) line_ydxd::y1#1 ← (byte) line::y1#0 [ line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] ) -- vbuz1=vbuyy
|
||||
sty line_ydxd.y1
|
||||
//SEG131 [70] (byte) line_ydxd::yd#1 ← (byte) line::yd#3 [ line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
//SEG132 [71] (byte) line_ydxd::xd#1 ← (byte) line::xd#0 [ line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxd.xd
|
||||
//SEG131 [70] (byte) line_ydxd::yd#1 ← (byte) line::yd#3 [ line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] )
|
||||
// (byte) line_ydxd::yd#1 = (byte) line::yd#3 // register copy zp ZP_BYTE:10
|
||||
//SEG132 [71] (byte) line_ydxd::xd#1 ← (byte) line::xd#0 [ line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] )
|
||||
// (byte) line_ydxd::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG133 [72] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG134 [124] phi from line::@10 to line_ydxd [phi:line::@10->line_ydxd]
|
||||
//SEG135 [124] phi (byte) line_ydxd::y1#6 = (byte) line_ydxd::y1#1 [phi:line::@10->line_ydxd#0] -- register_copy
|
||||
@ -7364,7 +7345,7 @@ line: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc y0
|
||||
sta yd
|
||||
sta yd_10
|
||||
//SEG142 [74] if((byte) line::yd#10>=(byte) line::xd#0) goto line::@13 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ) -- vbuz1_ge_vbuz2_then_la1
|
||||
cmp xd
|
||||
bcs b13
|
||||
@ -7373,15 +7354,12 @@ line: {
|
||||
ldx x1
|
||||
//SEG145 [76] (byte) line_xdyi::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] ) -- vbuz1=vbuyy
|
||||
sty line_xdyi.y
|
||||
//SEG146 [77] (byte) line_xdyi::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ) -- vbuz1=vbuz2
|
||||
lda x0
|
||||
sta line_xdyi.x1
|
||||
//SEG147 [78] (byte) line_xdyi::xd#1 ← (byte) line::xd#0 [ line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
//SEG148 [79] (byte) line_xdyi::yd#1 ← (byte) line::yd#10 [ line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_xdyi.yd
|
||||
//SEG146 [77] (byte) line_xdyi::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] )
|
||||
// (byte) line_xdyi::x1#1 = (byte) line::x0#0 // register copy zp ZP_BYTE:8
|
||||
//SEG147 [78] (byte) line_xdyi::xd#1 ← (byte) line::xd#0 [ line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] )
|
||||
// (byte) line_xdyi::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG148 [79] (byte) line_xdyi::yd#1 ← (byte) line::yd#10 [ line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] )
|
||||
// (byte) line_xdyi::yd#1 = (byte) line::yd#10 // register copy zp ZP_BYTE:4
|
||||
//SEG149 [80] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG150 [109] phi from line::@27 to line_xdyi [phi:line::@27->line_xdyi]
|
||||
//SEG151 [109] phi (byte) line_xdyi::x1#6 = (byte) line_xdyi::x1#1 [phi:line::@27->line_xdyi#0] -- register_copy
|
||||
@ -7399,12 +7377,10 @@ line: {
|
||||
ldx x1
|
||||
//SEG159 [83] (byte) line_ydxi::y1#1 ← (byte) line::y0#0 [ line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] )
|
||||
// (byte) line_ydxi::y1#1 = (byte) line::y0#0 // register copy zp ZP_BYTE:5
|
||||
//SEG160 [84] (byte) line_ydxi::yd#1 ← (byte) line::yd#10 [ line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ) -- vbuz1=vbuz2
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
//SEG161 [85] (byte) line_ydxi::xd#1 ← (byte) line::xd#0 [ line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ) -- vbuz1=vbuz2
|
||||
lda xd
|
||||
sta line_ydxi.xd
|
||||
//SEG160 [84] (byte) line_ydxi::yd#1 ← (byte) line::yd#10 [ line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] )
|
||||
// (byte) line_ydxi::yd#1 = (byte) line::yd#10 // register copy zp ZP_BYTE:4
|
||||
//SEG161 [85] (byte) line_ydxi::xd#1 ← (byte) line::xd#0 [ line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] )
|
||||
// (byte) line_ydxi::xd#1 = (byte) line::xd#0 // register copy zp ZP_BYTE:3
|
||||
//SEG162 [86] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
//SEG163 [87] phi from line::@13 to line_ydxi [phi:line::@13->line_ydxi]
|
||||
//SEG164 [87] phi (byte) line_ydxi::y1#6 = (byte) line_ydxi::y1#1 [phi:line::@13->line_ydxi#0] -- register_copy
|
||||
@ -7478,9 +7454,9 @@ line_ydxi: {
|
||||
}
|
||||
//SEG197 plot
|
||||
plot: {
|
||||
.label _0 = 8
|
||||
.label plotter_x = 8
|
||||
.label plotter_y = $b
|
||||
.label _0 = $15
|
||||
.label plotter_x = $15
|
||||
.label plotter_y = $17
|
||||
//SEG198 [103] (word) plot::plotter_x#0 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#4) w= *((const byte[256]) plot_xlo#0 + (byte) plot::x#4) [ plot::x#4 plot::y#4 plot::plotter_x#0 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyi:35::plot:114 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyi:80::plot:114 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_ydxd:56::plot:129 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_ydxd:72::plot:129 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyd:50::plot:144 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] main:2::lines:12::line:21::line_xdyd:66::plot:144 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#0 ] ) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
||||
lda plot_xhi,x
|
||||
sta plotter_x+1
|
||||
@ -7511,12 +7487,12 @@ plot: {
|
||||
}
|
||||
//SEG205 line_xdyi
|
||||
line_xdyi: {
|
||||
.label _6 = $a
|
||||
.label y = 6
|
||||
.label x1 = 5
|
||||
.label xd = 4
|
||||
.label yd = 3
|
||||
.label e = 7
|
||||
.label _6 = $19
|
||||
.label y = 5
|
||||
.label x1 = 8
|
||||
.label xd = 3
|
||||
.label yd = 4
|
||||
.label e = 9
|
||||
//SEG206 [110] (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] ) -- vbuz1=vbuz2_ror_1
|
||||
lda yd
|
||||
lsr
|
||||
@ -7574,11 +7550,11 @@ line_xdyi: {
|
||||
}
|
||||
//SEG233 line_ydxd
|
||||
line_ydxd: {
|
||||
.label y = 6
|
||||
.label y = $b
|
||||
.label y1 = 5
|
||||
.label yd = 4
|
||||
.label yd = $a
|
||||
.label xd = 3
|
||||
.label e = 7
|
||||
.label e = $c
|
||||
//SEG234 [125] (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#7 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#7 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#7 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] ) -- vbuz1=vbuz2_ror_1
|
||||
lda xd
|
||||
lsr
|
||||
@ -7635,12 +7611,12 @@ line_ydxd: {
|
||||
}
|
||||
//SEG261 line_xdyd
|
||||
line_xdyd: {
|
||||
.label _6 = $a
|
||||
.label y = 6
|
||||
.label x1 = 5
|
||||
.label xd = 4
|
||||
.label yd = 3
|
||||
.label e = 7
|
||||
.label _6 = $1a
|
||||
.label y = 5
|
||||
.label x1 = 8
|
||||
.label xd = 3
|
||||
.label yd = $a
|
||||
.label e = $d
|
||||
//SEG262 [140] (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] ) -- vbuz1=vbuz2_ror_1
|
||||
lda yd
|
||||
lsr
|
||||
@ -7698,8 +7674,8 @@ line_xdyd: {
|
||||
}
|
||||
//SEG289 init_plot_tables
|
||||
init_plot_tables: {
|
||||
.label _6 = 2
|
||||
.label yoffs = 8
|
||||
.label _6 = $1b
|
||||
.label yoffs = $e
|
||||
//SEG290 [155] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1]
|
||||
//SEG291 [155] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1
|
||||
ldy #$80
|
||||
@ -7798,8 +7774,8 @@ init_plot_tables: {
|
||||
}
|
||||
//SEG336 init_screen
|
||||
init_screen: {
|
||||
.label b = 8
|
||||
.label c = 8
|
||||
.label b = $10
|
||||
.label c = $12
|
||||
//SEG337 [181] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
||||
//SEG338 [181] phi (byte*) init_screen::b#2 = (const byte*) BITMAP#0 [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
||||
lda #<BITMAP
|
||||
|
@ -22,7 +22,7 @@
|
||||
(void()) init_plot_tables()
|
||||
(byte~) init_plot_tables::$0 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$10 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:2 11.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:27 11.0
|
||||
(byte~) init_plot_tables::$7 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$8 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$9 reg byte a 22.0
|
||||
@ -44,19 +44,19 @@
|
||||
(byte) init_plot_tables::y#1 reg byte x 16.5
|
||||
(byte) init_plot_tables::y#2 reg byte x 6.0
|
||||
(byte*) init_plot_tables::yoffs
|
||||
(byte*) init_plot_tables::yoffs#1 yoffs zp ZP_WORD:8 22.0
|
||||
(byte*) init_plot_tables::yoffs#2 yoffs zp ZP_WORD:8 6.111111111111112
|
||||
(byte*) init_plot_tables::yoffs#4 yoffs zp ZP_WORD:8 11.0
|
||||
(byte*) init_plot_tables::yoffs#1 yoffs zp ZP_WORD:14 22.0
|
||||
(byte*) init_plot_tables::yoffs#2 yoffs zp ZP_WORD:14 6.111111111111112
|
||||
(byte*) init_plot_tables::yoffs#4 yoffs zp ZP_WORD:14 11.0
|
||||
(void()) init_screen()
|
||||
(label) init_screen::@1
|
||||
(label) init_screen::@2
|
||||
(label) init_screen::@return
|
||||
(byte*) init_screen::b
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:16 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:16 16.5
|
||||
(byte*) init_screen::c
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:8 16.5
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:18 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:18 16.5
|
||||
(void()) line((byte) line::x0 , (byte) line::x1 , (byte) line::y0 , (byte) line::y1)
|
||||
(label) line::@1
|
||||
(label) line::@10
|
||||
@ -74,34 +74,34 @@
|
||||
(label) line::@9
|
||||
(label) line::@return
|
||||
(byte) line::x0
|
||||
(byte) line::x0#0 x0 zp ZP_BYTE:3 5.173913043478264
|
||||
(byte) line::x0#0 x0 zp ZP_BYTE:8 5.173913043478264
|
||||
(byte) line::x1
|
||||
(byte) line::x1#0 x1 zp ZP_BYTE:4 5.409090909090908
|
||||
(byte) line::x1#0 x1 zp ZP_BYTE:20 5.409090909090908
|
||||
(byte) line::xd
|
||||
(byte) line::xd#0 xd zp ZP_BYTE:7 0.7
|
||||
(byte) line::xd#1 xd zp ZP_BYTE:7 0.7
|
||||
(byte) line::xd#0 xd zp ZP_BYTE:3 0.7
|
||||
(byte) line::xd#1 xd zp ZP_BYTE:3 0.7
|
||||
(byte) line::y0
|
||||
(byte) line::y0#0 y0 zp ZP_BYTE:5 5.952380952380948
|
||||
(byte) line::y1
|
||||
(byte) line::y1#0 reg byte y 6.249999999999996
|
||||
(byte) line::yd
|
||||
(byte) line::yd#0 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#1 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#10 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#1 yd#1 zp ZP_BYTE:4 0.8888888888888888
|
||||
(byte) line::yd#10 yd#10 zp ZP_BYTE:4 0.8888888888888888
|
||||
(byte) line::yd#3 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(void()) line_xdyd((byte) line_xdyd::x , (byte) line_xdyd::y , (byte) line_xdyd::x1 , (byte) line_xdyd::xd , (byte) line_xdyd::yd)
|
||||
(byte/word~) line_xdyd::$6 $6 zp ZP_BYTE:10 2002.0
|
||||
(byte/word~) line_xdyd::$6 $6 zp ZP_BYTE:26 2002.0
|
||||
(label) line_xdyd::@1
|
||||
(label) line_xdyd::@2
|
||||
(label) line_xdyd::@3
|
||||
(label) line_xdyd::@5
|
||||
(label) line_xdyd::@return
|
||||
(byte) line_xdyd::e
|
||||
(byte) line_xdyd::e#0 e zp ZP_BYTE:7 4.0
|
||||
(byte) line_xdyd::e#1 e zp ZP_BYTE:7 1334.6666666666667
|
||||
(byte) line_xdyd::e#2 e zp ZP_BYTE:7 2002.0
|
||||
(byte) line_xdyd::e#3 e zp ZP_BYTE:7 400.79999999999995
|
||||
(byte) line_xdyd::e#6 e zp ZP_BYTE:7 1001.0
|
||||
(byte) line_xdyd::e#0 e zp ZP_BYTE:13 4.0
|
||||
(byte) line_xdyd::e#1 e zp ZP_BYTE:13 1334.6666666666667
|
||||
(byte) line_xdyd::e#2 e zp ZP_BYTE:13 2002.0
|
||||
(byte) line_xdyd::e#3 e zp ZP_BYTE:13 400.79999999999995
|
||||
(byte) line_xdyd::e#6 e zp ZP_BYTE:13 1001.0
|
||||
(byte) line_xdyd::x
|
||||
(byte) line_xdyd::x#0 reg byte x 0.8
|
||||
(byte) line_xdyd::x#1 reg byte x 0.8
|
||||
@ -109,37 +109,37 @@
|
||||
(byte) line_xdyd::x#3 reg byte x 751.25
|
||||
(byte) line_xdyd::x#6 reg byte x 3.0
|
||||
(byte) line_xdyd::x1
|
||||
(byte) line_xdyd::x1#0 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyd::x1#1 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyd::x1#6 x1 zp ZP_BYTE:5 71.78571428571429
|
||||
(byte) line_xdyd::x1#0 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyd::x1#1 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyd::x1#6 x1 zp ZP_BYTE:8 71.78571428571429
|
||||
(byte) line_xdyd::xd
|
||||
(byte) line_xdyd::xd#0 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyd::xd#1 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyd::xd#5 xd zp ZP_BYTE:4 143.28571428571428
|
||||
(byte) line_xdyd::xd#0 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyd::xd#1 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyd::xd#5 xd zp ZP_BYTE:3 143.28571428571428
|
||||
(byte) line_xdyd::y
|
||||
(byte) line_xdyd::y#0 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyd::y#1 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyd::y#2 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyd::y#3 y zp ZP_BYTE:6 572.2857142857142
|
||||
(byte) line_xdyd::y#5 y zp ZP_BYTE:6 3.0
|
||||
(byte) line_xdyd::y#6 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyd::y#0 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyd::y#1 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyd::y#2 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyd::y#3 y zp ZP_BYTE:5 572.2857142857142
|
||||
(byte) line_xdyd::y#5 y zp ZP_BYTE:5 3.0
|
||||
(byte) line_xdyd::y#6 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyd::yd
|
||||
(byte) line_xdyd::yd#0 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyd::yd#1 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyd::yd#2 yd zp ZP_BYTE:3 71.92857142857143
|
||||
(byte) line_xdyd::yd#0 yd zp ZP_BYTE:10 4.0
|
||||
(byte) line_xdyd::yd#1 yd zp ZP_BYTE:10 4.0
|
||||
(byte) line_xdyd::yd#2 yd zp ZP_BYTE:10 71.92857142857143
|
||||
(void()) line_xdyi((byte) line_xdyi::x , (byte) line_xdyi::y , (byte) line_xdyi::x1 , (byte) line_xdyi::xd , (byte) line_xdyi::yd)
|
||||
(byte/word~) line_xdyi::$6 $6 zp ZP_BYTE:10 2002.0
|
||||
(byte/word~) line_xdyi::$6 $6 zp ZP_BYTE:25 2002.0
|
||||
(label) line_xdyi::@1
|
||||
(label) line_xdyi::@2
|
||||
(label) line_xdyi::@3
|
||||
(label) line_xdyi::@5
|
||||
(label) line_xdyi::@return
|
||||
(byte) line_xdyi::e
|
||||
(byte) line_xdyi::e#0 e zp ZP_BYTE:7 4.0
|
||||
(byte) line_xdyi::e#1 e zp ZP_BYTE:7 1334.6666666666667
|
||||
(byte) line_xdyi::e#2 e zp ZP_BYTE:7 2002.0
|
||||
(byte) line_xdyi::e#3 e zp ZP_BYTE:7 400.79999999999995
|
||||
(byte) line_xdyi::e#6 e zp ZP_BYTE:7 1001.0
|
||||
(byte) line_xdyi::e#0 e zp ZP_BYTE:9 4.0
|
||||
(byte) line_xdyi::e#1 e zp ZP_BYTE:9 1334.6666666666667
|
||||
(byte) line_xdyi::e#2 e zp ZP_BYTE:9 2002.0
|
||||
(byte) line_xdyi::e#3 e zp ZP_BYTE:9 400.79999999999995
|
||||
(byte) line_xdyi::e#6 e zp ZP_BYTE:9 1001.0
|
||||
(byte) line_xdyi::x
|
||||
(byte) line_xdyi::x#0 reg byte x 0.8
|
||||
(byte) line_xdyi::x#1 reg byte x 0.8
|
||||
@ -147,24 +147,24 @@
|
||||
(byte) line_xdyi::x#3 reg byte x 751.25
|
||||
(byte) line_xdyi::x#6 reg byte x 3.0
|
||||
(byte) line_xdyi::x1
|
||||
(byte) line_xdyi::x1#0 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyi::x1#1 x1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_xdyi::x1#6 x1 zp ZP_BYTE:5 71.78571428571429
|
||||
(byte) line_xdyi::x1#0 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyi::x1#1 x1 zp ZP_BYTE:8 1.3333333333333333
|
||||
(byte) line_xdyi::x1#6 x1 zp ZP_BYTE:8 71.78571428571429
|
||||
(byte) line_xdyi::xd
|
||||
(byte) line_xdyi::xd#0 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyi::xd#1 xd zp ZP_BYTE:4 2.0
|
||||
(byte) line_xdyi::xd#5 xd zp ZP_BYTE:4 143.28571428571428
|
||||
(byte) line_xdyi::xd#0 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyi::xd#1 xd zp ZP_BYTE:3 2.0
|
||||
(byte) line_xdyi::xd#5 xd zp ZP_BYTE:3 143.28571428571428
|
||||
(byte) line_xdyi::y
|
||||
(byte) line_xdyi::y#0 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyi::y#1 y zp ZP_BYTE:6 1.0
|
||||
(byte) line_xdyi::y#2 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyi::y#3 y zp ZP_BYTE:6 572.2857142857142
|
||||
(byte) line_xdyi::y#5 y zp ZP_BYTE:6 3.0
|
||||
(byte) line_xdyi::y#6 y zp ZP_BYTE:6 1001.0
|
||||
(byte) line_xdyi::y#0 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyi::y#1 y zp ZP_BYTE:5 1.0
|
||||
(byte) line_xdyi::y#2 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyi::y#3 y zp ZP_BYTE:5 572.2857142857142
|
||||
(byte) line_xdyi::y#5 y zp ZP_BYTE:5 3.0
|
||||
(byte) line_xdyi::y#6 y zp ZP_BYTE:5 1001.0
|
||||
(byte) line_xdyi::yd
|
||||
(byte) line_xdyi::yd#0 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyi::yd#1 yd zp ZP_BYTE:3 4.0
|
||||
(byte) line_xdyi::yd#2 yd zp ZP_BYTE:3 71.92857142857143
|
||||
(byte) line_xdyi::yd#0 yd zp ZP_BYTE:4 4.0
|
||||
(byte) line_xdyi::yd#1 yd zp ZP_BYTE:4 4.0
|
||||
(byte) line_xdyi::yd#2 yd zp ZP_BYTE:4 71.92857142857143
|
||||
(void()) line_ydxd((byte) line_ydxd::y , (byte) line_ydxd::x , (byte) line_ydxd::y1 , (byte) line_ydxd::yd , (byte) line_ydxd::xd)
|
||||
(byte/word~) line_ydxd::$6 reg byte y 2002.0
|
||||
(label) line_ydxd::@1
|
||||
@ -173,11 +173,11 @@
|
||||
(label) line_ydxd::@5
|
||||
(label) line_ydxd::@return
|
||||
(byte) line_ydxd::e
|
||||
(byte) line_ydxd::e#0 e zp ZP_BYTE:7 4.0
|
||||
(byte) line_ydxd::e#1 e zp ZP_BYTE:7 1334.6666666666667
|
||||
(byte) line_ydxd::e#2 e zp ZP_BYTE:7 2002.0
|
||||
(byte) line_ydxd::e#3 e zp ZP_BYTE:7 400.79999999999995
|
||||
(byte) line_ydxd::e#6 e zp ZP_BYTE:7 1001.0
|
||||
(byte) line_ydxd::e#0 e zp ZP_BYTE:12 4.0
|
||||
(byte) line_ydxd::e#1 e zp ZP_BYTE:12 1334.6666666666667
|
||||
(byte) line_ydxd::e#2 e zp ZP_BYTE:12 2002.0
|
||||
(byte) line_ydxd::e#3 e zp ZP_BYTE:12 400.79999999999995
|
||||
(byte) line_ydxd::e#6 e zp ZP_BYTE:12 1001.0
|
||||
(byte) line_ydxd::x
|
||||
(byte) line_ydxd::x#0 reg byte x 1.0
|
||||
(byte) line_ydxd::x#1 reg byte x 1.0
|
||||
@ -190,19 +190,19 @@
|
||||
(byte) line_ydxd::xd#1 xd zp ZP_BYTE:3 4.0
|
||||
(byte) line_ydxd::xd#2 xd zp ZP_BYTE:3 71.92857142857143
|
||||
(byte) line_ydxd::y
|
||||
(byte) line_ydxd::y#0 y zp ZP_BYTE:6 0.8
|
||||
(byte) line_ydxd::y#1 y zp ZP_BYTE:6 0.8
|
||||
(byte) line_ydxd::y#2 y zp ZP_BYTE:6 751.25
|
||||
(byte) line_ydxd::y#3 y zp ZP_BYTE:6 375.375
|
||||
(byte) line_ydxd::y#7 y zp ZP_BYTE:6 3.0
|
||||
(byte) line_ydxd::y#0 y zp ZP_BYTE:11 0.8
|
||||
(byte) line_ydxd::y#1 y zp ZP_BYTE:11 0.8
|
||||
(byte) line_ydxd::y#2 y zp ZP_BYTE:11 751.25
|
||||
(byte) line_ydxd::y#3 y zp ZP_BYTE:11 375.375
|
||||
(byte) line_ydxd::y#7 y zp ZP_BYTE:11 3.0
|
||||
(byte) line_ydxd::y1
|
||||
(byte) line_ydxd::y1#0 y1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_ydxd::y1#1 y1 zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) line_ydxd::y1#6 y1 zp ZP_BYTE:5 71.78571428571429
|
||||
(byte) line_ydxd::yd
|
||||
(byte) line_ydxd::yd#0 yd zp ZP_BYTE:4 2.0
|
||||
(byte) line_ydxd::yd#1 yd zp ZP_BYTE:4 2.0
|
||||
(byte) line_ydxd::yd#5 yd zp ZP_BYTE:4 143.28571428571428
|
||||
(byte) line_ydxd::yd#0 yd zp ZP_BYTE:10 2.0
|
||||
(byte) line_ydxd::yd#1 yd zp ZP_BYTE:10 2.0
|
||||
(byte) line_ydxd::yd#5 yd zp ZP_BYTE:10 143.28571428571428
|
||||
(void()) line_ydxi((byte) line_ydxi::y , (byte) line_ydxi::x , (byte) line_ydxi::y1 , (byte) line_ydxi::yd , (byte) line_ydxi::xd)
|
||||
(byte/word~) line_ydxi::$6 reg byte y 2002.0
|
||||
(label) line_ydxi::@1
|
||||
@ -260,14 +260,14 @@
|
||||
(label) main::@5
|
||||
(label) main::@return
|
||||
(void()) plot((byte) plot::x , (byte) plot::y)
|
||||
(word~) plot::$0 $0 zp ZP_WORD:8 1.0
|
||||
(word~) plot::$0 $0 zp ZP_WORD:21 1.0
|
||||
(byte~) plot::$1 reg byte a 4.0
|
||||
(label) plot::@return
|
||||
(byte*) plot::plotter
|
||||
(word) plot::plotter_x
|
||||
(word) plot::plotter_x#0 plotter_x zp ZP_WORD:8 2.0
|
||||
(word) plot::plotter_x#0 plotter_x zp ZP_WORD:21 2.0
|
||||
(word) plot::plotter_y
|
||||
(word) plot::plotter_y#0 plotter_y zp ZP_WORD:11 4.0
|
||||
(word) plot::plotter_y#0 plotter_y zp ZP_WORD:23 4.0
|
||||
(byte) plot::x
|
||||
(byte) plot::x#0 reg byte x 1001.0
|
||||
(byte) plot::x#1 reg byte x 1001.0
|
||||
@ -291,29 +291,41 @@
|
||||
(byte[256]) plot_ylo
|
||||
(const byte[256]) plot_ylo#0 plot_ylo = { fill( 256, 0) }
|
||||
|
||||
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 init_plot_tables::$6 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 line::x0#0 ]
|
||||
zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 line::x1#0 ]
|
||||
zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 line::y0#0 ]
|
||||
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line::xd#1 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line::xd#0 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 ]
|
||||
zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line::yd#1 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line::yd#10 ]
|
||||
zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line::y0#0 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ]
|
||||
reg byte x [ line_ydxi::x#3 line_ydxi::x#5 line_ydxi::x#1 line_ydxi::x#0 line_ydxi::x#6 line_ydxi::x#2 ]
|
||||
zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ]
|
||||
zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 line::xd#1 line::xd#0 ]
|
||||
zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 ]
|
||||
zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 ]
|
||||
reg byte x [ plot::x#4 plot::x#1 plot::x#0 plot::x#3 plot::x#2 ]
|
||||
reg byte y [ plot::y#4 plot::y#1 plot::y#0 plot::y#3 plot::y#2 ]
|
||||
zp ZP_BYTE:8 [ line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line::x0#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 ]
|
||||
reg byte x [ line_xdyi::x#3 line_xdyi::x#6 line_xdyi::x#0 line_xdyi::x#1 line_xdyi::x#2 ]
|
||||
zp ZP_BYTE:9 [ line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 ]
|
||||
zp ZP_BYTE:10 [ line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line::yd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 line::yd#3 ]
|
||||
reg byte x [ line_ydxd::x#3 line_ydxd::x#5 line_ydxd::x#1 line_ydxd::x#0 line_ydxd::x#6 line_ydxd::x#2 ]
|
||||
zp ZP_BYTE:11 [ line_ydxd::y#2 line_ydxd::y#7 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#3 ]
|
||||
zp ZP_BYTE:12 [ line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 ]
|
||||
reg byte x [ line_xdyd::x#3 line_xdyd::x#6 line_xdyd::x#0 line_xdyd::x#1 line_xdyd::x#2 ]
|
||||
zp ZP_BYTE:13 [ line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 ]
|
||||
reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
|
||||
reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
|
||||
reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
|
||||
zp ZP_WORD:8 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#0 plot::$0 ]
|
||||
zp ZP_WORD:14 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ]
|
||||
zp ZP_WORD:16 [ init_screen::b#2 init_screen::b#1 ]
|
||||
zp ZP_WORD:18 [ init_screen::c#2 init_screen::c#1 ]
|
||||
zp ZP_BYTE:20 [ line::x1#0 ]
|
||||
reg byte y [ line::y1#0 ]
|
||||
zp ZP_BYTE:10 [ line::yd#1 line::yd#0 line::yd#3 line::yd#10 line_xdyi::$6 line_xdyd::$6 ]
|
||||
reg byte y [ line_ydxi::$6 ]
|
||||
zp ZP_WORD:11 [ plot::plotter_y#0 ]
|
||||
zp ZP_WORD:21 [ plot::plotter_x#0 plot::$0 ]
|
||||
zp ZP_WORD:23 [ plot::plotter_y#0 ]
|
||||
reg byte a [ plot::$1 ]
|
||||
zp ZP_BYTE:25 [ line_xdyi::$6 ]
|
||||
reg byte y [ line_ydxd::$6 ]
|
||||
zp ZP_BYTE:26 [ line_xdyd::$6 ]
|
||||
reg byte a [ init_plot_tables::$0 ]
|
||||
zp ZP_BYTE:27 [ init_plot_tables::$6 ]
|
||||
reg byte a [ init_plot_tables::$7 ]
|
||||
reg byte a [ init_plot_tables::$8 ]
|
||||
reg byte a [ init_plot_tables::$9 ]
|
||||
|
@ -46,11 +46,11 @@ plots: {
|
||||
rts
|
||||
}
|
||||
plot: {
|
||||
.label x = 4
|
||||
.label y = 5
|
||||
.label plotter_x = 2
|
||||
.label plotter_y = 6
|
||||
.label plotter = 2
|
||||
.label x = 8
|
||||
.label y = 9
|
||||
.label plotter_x = $a
|
||||
.label plotter_y = $c
|
||||
.label plotter = $a
|
||||
ldy x
|
||||
lda plot_xhi,y
|
||||
sta plotter_x+1
|
||||
@ -81,7 +81,7 @@ plot: {
|
||||
rts
|
||||
}
|
||||
init_plot_tables: {
|
||||
.label _6 = 4
|
||||
.label _6 = $e
|
||||
.label yoffs = 2
|
||||
ldy #$80
|
||||
ldx #0
|
||||
@ -134,8 +134,8 @@ init_plot_tables: {
|
||||
rts
|
||||
}
|
||||
init_screen: {
|
||||
.label b = 2
|
||||
.label c = 2
|
||||
.label b = 4
|
||||
.label c = 6
|
||||
lda #<BITMAP
|
||||
sta b
|
||||
lda #>BITMAP
|
||||
|
@ -2266,17 +2266,17 @@ Attempting to uplift remaining variables inzp ZP_BYTE:30 [ init_plot_tables::$6
|
||||
Uplifting [init_plot_tables] best 8251 combination zp ZP_BYTE:30 [ init_plot_tables::$6 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:12 [ plot::x#0 ]
|
||||
Uplifting [plot] best 8251 combination zp ZP_BYTE:12 [ plot::x#0 ]
|
||||
Coalescing zero page register [ zp ZP_WORD:6 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] ] with [ zp ZP_WORD:8 [ init_screen::b#2 init_screen::b#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:6 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 ] ] with [ zp ZP_WORD:10 [ init_screen::c#2 init_screen::c#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:6 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 ] ] with [ zp ZP_WORD:15 [ plot::plotter_x#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:6 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 ] ] with [ zp ZP_WORD:18 [ plot::plotter_x#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:6 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 plot::plotter_x#2 ] ] with [ zp ZP_WORD:26 [ plot::plotter#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:12 [ plot::x#0 ] ] with [ zp ZP_BYTE:30 [ init_plot_tables::$6 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:15 [ plot::plotter_x#1 ] ] with [ zp ZP_WORD:18 [ plot::plotter_x#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:15 [ plot::plotter_x#1 plot::plotter_x#2 ] ] with [ zp ZP_WORD:26 [ plot::plotter#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:21 [ plot::plotter_y#1 ] ] with [ zp ZP_WORD:24 [ plot::plotter_y#2 ] ]
|
||||
Allocated (was zp ZP_WORD:6) zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
Allocated (was zp ZP_BYTE:12) zp ZP_BYTE:4 [ plot::x#0 init_plot_tables::$6 ]
|
||||
Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:5 [ plot::y#0 ]
|
||||
Allocated (was zp ZP_WORD:21) zp ZP_WORD:6 [ plot::plotter_y#1 plot::plotter_y#2 ]
|
||||
Allocated (was zp ZP_WORD:6) zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ]
|
||||
Allocated (was zp ZP_WORD:8) zp ZP_WORD:4 [ init_screen::b#2 init_screen::b#1 ]
|
||||
Allocated (was zp ZP_WORD:10) zp ZP_WORD:6 [ init_screen::c#2 init_screen::c#1 ]
|
||||
Allocated (was zp ZP_BYTE:12) zp ZP_BYTE:8 [ plot::x#0 ]
|
||||
Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:9 [ plot::y#0 ]
|
||||
Allocated (was zp ZP_WORD:15) zp ZP_WORD:10 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
Allocated (was zp ZP_WORD:21) zp ZP_WORD:12 [ plot::plotter_y#1 plot::plotter_y#2 ]
|
||||
Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:14 [ init_plot_tables::$6 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -2402,11 +2402,11 @@ plots: {
|
||||
}
|
||||
//SEG44 plot
|
||||
plot: {
|
||||
.label x = 4
|
||||
.label y = 5
|
||||
.label plotter_x = 2
|
||||
.label plotter_y = 6
|
||||
.label plotter = 2
|
||||
.label x = 8
|
||||
.label y = 9
|
||||
.label plotter_x = $a
|
||||
.label plotter_y = $c
|
||||
.label plotter = $a
|
||||
//SEG45 [25] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) [ plot::x#0 plot::y#0 plot::$6 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::$6 ] ) -- vbuaa=pbuc1_derefidx_vbuz1
|
||||
ldy x
|
||||
lda plot_xhi,y
|
||||
@ -2455,7 +2455,7 @@ plot: {
|
||||
}
|
||||
//SEG58 init_plot_tables
|
||||
init_plot_tables: {
|
||||
.label _6 = 4
|
||||
.label _6 = $e
|
||||
.label yoffs = 2
|
||||
//SEG59 [38] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1]
|
||||
b1_from_init_plot_tables:
|
||||
@ -2578,8 +2578,8 @@ init_plot_tables: {
|
||||
}
|
||||
//SEG105 init_screen
|
||||
init_screen: {
|
||||
.label b = 2
|
||||
.label c = 2
|
||||
.label b = 4
|
||||
.label c = 6
|
||||
//SEG106 [64] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
||||
b1_from_init_screen:
|
||||
//SEG107 [64] phi (byte*) init_screen::b#2 = (const byte*) BITMAP#0 [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
||||
@ -2771,7 +2771,7 @@ FINAL SYMBOL TABLE
|
||||
(void()) init_plot_tables()
|
||||
(byte~) init_plot_tables::$0 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$10 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:4 11.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:14 11.0
|
||||
(byte~) init_plot_tables::$7 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$8 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$9 reg byte a 22.0
|
||||
@ -2801,11 +2801,11 @@ FINAL SYMBOL TABLE
|
||||
(label) init_screen::@2
|
||||
(label) init_screen::@return
|
||||
(byte*) init_screen::b
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:4 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:4 16.5
|
||||
(byte*) init_screen::c
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:6 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:6 16.5
|
||||
(void()) main()
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -2820,17 +2820,17 @@ FINAL SYMBOL TABLE
|
||||
(byte~) plot::$9 reg byte a 4.0
|
||||
(label) plot::@return
|
||||
(byte*) plot::plotter
|
||||
(byte*) plot::plotter#0 plotter zp ZP_WORD:2 3.0
|
||||
(byte*) plot::plotter#0 plotter zp ZP_WORD:10 3.0
|
||||
(byte*) plot::plotter_x
|
||||
(byte*) plot::plotter_x#1 plotter_x zp ZP_WORD:2 2.0
|
||||
(byte*) plot::plotter_x#2 plotter_x zp ZP_WORD:2 0.8
|
||||
(byte*) plot::plotter_x#1 plotter_x zp ZP_WORD:10 2.0
|
||||
(byte*) plot::plotter_x#2 plotter_x zp ZP_WORD:10 0.8
|
||||
(word) plot::plotter_y
|
||||
(word) plot::plotter_y#1 plotter_y zp ZP_WORD:6 2.0
|
||||
(word) plot::plotter_y#2 plotter_y zp ZP_WORD:6 4.0
|
||||
(word) plot::plotter_y#1 plotter_y zp ZP_WORD:12 2.0
|
||||
(word) plot::plotter_y#2 plotter_y zp ZP_WORD:12 4.0
|
||||
(byte) plot::x
|
||||
(byte) plot::x#0 x zp ZP_BYTE:4 9.727272727272727
|
||||
(byte) plot::x#0 x zp ZP_BYTE:8 9.727272727272727
|
||||
(byte) plot::y
|
||||
(byte) plot::y#0 y zp ZP_BYTE:5 15.000000000000002
|
||||
(byte) plot::y#0 y zp ZP_BYTE:9 15.000000000000002
|
||||
(byte[256]) plot_bit
|
||||
(const byte[256]) plot_bit#0 plot_bit = { fill( 256, 0) }
|
||||
(byte[256]) plot_xhi
|
||||
@ -2859,16 +2859,20 @@ reg byte x [ plots::i#2 plots::i#1 ]
|
||||
reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
|
||||
reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
|
||||
reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
|
||||
zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
zp ZP_BYTE:4 [ plot::x#0 init_plot_tables::$6 ]
|
||||
zp ZP_BYTE:5 [ plot::y#0 ]
|
||||
zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ]
|
||||
zp ZP_WORD:4 [ init_screen::b#2 init_screen::b#1 ]
|
||||
zp ZP_WORD:6 [ init_screen::c#2 init_screen::c#1 ]
|
||||
zp ZP_BYTE:8 [ plot::x#0 ]
|
||||
zp ZP_BYTE:9 [ plot::y#0 ]
|
||||
reg byte a [ plot::$6 ]
|
||||
zp ZP_WORD:10 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
reg byte a [ plot::$7 ]
|
||||
reg byte a [ plot::$8 ]
|
||||
zp ZP_WORD:6 [ plot::plotter_y#1 plot::plotter_y#2 ]
|
||||
zp ZP_WORD:12 [ plot::plotter_y#1 plot::plotter_y#2 ]
|
||||
reg byte a [ plot::$9 ]
|
||||
reg byte a [ plot::$5 ]
|
||||
reg byte a [ init_plot_tables::$0 ]
|
||||
zp ZP_BYTE:14 [ init_plot_tables::$6 ]
|
||||
reg byte a [ init_plot_tables::$7 ]
|
||||
reg byte a [ init_plot_tables::$8 ]
|
||||
reg byte a [ init_plot_tables::$9 ]
|
||||
@ -2971,11 +2975,11 @@ plots: {
|
||||
}
|
||||
//SEG44 plot
|
||||
plot: {
|
||||
.label x = 4
|
||||
.label y = 5
|
||||
.label plotter_x = 2
|
||||
.label plotter_y = 6
|
||||
.label plotter = 2
|
||||
.label x = 8
|
||||
.label y = 9
|
||||
.label plotter_x = $a
|
||||
.label plotter_y = $c
|
||||
.label plotter = $a
|
||||
//SEG45 [25] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) [ plot::x#0 plot::y#0 plot::$6 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::$6 ] ) -- vbuaa=pbuc1_derefidx_vbuz1
|
||||
ldy x
|
||||
lda plot_xhi,y
|
||||
@ -3020,7 +3024,7 @@ plot: {
|
||||
}
|
||||
//SEG58 init_plot_tables
|
||||
init_plot_tables: {
|
||||
.label _6 = 4
|
||||
.label _6 = $e
|
||||
.label yoffs = 2
|
||||
//SEG59 [38] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1]
|
||||
//SEG60 [38] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1
|
||||
@ -3120,8 +3124,8 @@ init_plot_tables: {
|
||||
}
|
||||
//SEG105 init_screen
|
||||
init_screen: {
|
||||
.label b = 2
|
||||
.label c = 2
|
||||
.label b = 4
|
||||
.label c = 6
|
||||
//SEG106 [64] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
||||
//SEG107 [64] phi (byte*) init_screen::b#2 = (const byte*) BITMAP#0 [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
||||
lda #<BITMAP
|
||||
|
@ -24,7 +24,7 @@
|
||||
(void()) init_plot_tables()
|
||||
(byte~) init_plot_tables::$0 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$10 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:4 11.0
|
||||
(byte~) init_plot_tables::$6 $6 zp ZP_BYTE:14 11.0
|
||||
(byte~) init_plot_tables::$7 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$8 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$9 reg byte a 22.0
|
||||
@ -54,11 +54,11 @@
|
||||
(label) init_screen::@2
|
||||
(label) init_screen::@return
|
||||
(byte*) init_screen::b
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::b#1 b zp ZP_WORD:4 16.5
|
||||
(byte*) init_screen::b#2 b zp ZP_WORD:4 16.5
|
||||
(byte*) init_screen::c
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:2 16.5
|
||||
(byte*) init_screen::c#1 c zp ZP_WORD:6 16.5
|
||||
(byte*) init_screen::c#2 c zp ZP_WORD:6 16.5
|
||||
(void()) main()
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -73,17 +73,17 @@
|
||||
(byte~) plot::$9 reg byte a 4.0
|
||||
(label) plot::@return
|
||||
(byte*) plot::plotter
|
||||
(byte*) plot::plotter#0 plotter zp ZP_WORD:2 3.0
|
||||
(byte*) plot::plotter#0 plotter zp ZP_WORD:10 3.0
|
||||
(byte*) plot::plotter_x
|
||||
(byte*) plot::plotter_x#1 plotter_x zp ZP_WORD:2 2.0
|
||||
(byte*) plot::plotter_x#2 plotter_x zp ZP_WORD:2 0.8
|
||||
(byte*) plot::plotter_x#1 plotter_x zp ZP_WORD:10 2.0
|
||||
(byte*) plot::plotter_x#2 plotter_x zp ZP_WORD:10 0.8
|
||||
(word) plot::plotter_y
|
||||
(word) plot::plotter_y#1 plotter_y zp ZP_WORD:6 2.0
|
||||
(word) plot::plotter_y#2 plotter_y zp ZP_WORD:6 4.0
|
||||
(word) plot::plotter_y#1 plotter_y zp ZP_WORD:12 2.0
|
||||
(word) plot::plotter_y#2 plotter_y zp ZP_WORD:12 4.0
|
||||
(byte) plot::x
|
||||
(byte) plot::x#0 x zp ZP_BYTE:4 9.727272727272727
|
||||
(byte) plot::x#0 x zp ZP_BYTE:8 9.727272727272727
|
||||
(byte) plot::y
|
||||
(byte) plot::y#0 y zp ZP_BYTE:5 15.000000000000002
|
||||
(byte) plot::y#0 y zp ZP_BYTE:9 15.000000000000002
|
||||
(byte[256]) plot_bit
|
||||
(const byte[256]) plot_bit#0 plot_bit = { fill( 256, 0) }
|
||||
(byte[256]) plot_xhi
|
||||
@ -112,16 +112,20 @@ reg byte x [ plots::i#2 plots::i#1 ]
|
||||
reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
|
||||
reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
|
||||
reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
|
||||
zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
zp ZP_BYTE:4 [ plot::x#0 init_plot_tables::$6 ]
|
||||
zp ZP_BYTE:5 [ plot::y#0 ]
|
||||
zp ZP_WORD:2 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ]
|
||||
zp ZP_WORD:4 [ init_screen::b#2 init_screen::b#1 ]
|
||||
zp ZP_WORD:6 [ init_screen::c#2 init_screen::c#1 ]
|
||||
zp ZP_BYTE:8 [ plot::x#0 ]
|
||||
zp ZP_BYTE:9 [ plot::y#0 ]
|
||||
reg byte a [ plot::$6 ]
|
||||
zp ZP_WORD:10 [ plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
reg byte a [ plot::$7 ]
|
||||
reg byte a [ plot::$8 ]
|
||||
zp ZP_WORD:6 [ plot::plotter_y#1 plot::plotter_y#2 ]
|
||||
zp ZP_WORD:12 [ plot::plotter_y#1 plot::plotter_y#2 ]
|
||||
reg byte a [ plot::$9 ]
|
||||
reg byte a [ plot::$5 ]
|
||||
reg byte a [ init_plot_tables::$0 ]
|
||||
zp ZP_BYTE:14 [ init_plot_tables::$6 ]
|
||||
reg byte a [ init_plot_tables::$7 ]
|
||||
reg byte a [ init_plot_tables::$8 ]
|
||||
reg byte a [ init_plot_tables::$9 ]
|
||||
|
@ -4,7 +4,7 @@
|
||||
.label BGCOL = $d021
|
||||
.const GREEN = 5
|
||||
.const RED = 2
|
||||
.label char_cursor = 2
|
||||
.label char_cursor = 5
|
||||
.label line_cursor = 7
|
||||
jsr main
|
||||
main: {
|
||||
@ -71,10 +71,6 @@ test_sbytes: {
|
||||
assert_sbyte: {
|
||||
.label msg = 2
|
||||
.label c = 4
|
||||
lda msg
|
||||
sta print_str.str
|
||||
lda msg+1
|
||||
sta print_str.str+1
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda line_cursor+1
|
||||
@ -109,7 +105,7 @@ assert_sbyte: {
|
||||
str2: .text "fail!@"
|
||||
}
|
||||
print_str: {
|
||||
.label str = 5
|
||||
.label str = 2
|
||||
b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
@ -199,8 +195,8 @@ test_bytes: {
|
||||
msg2: .text "0+2-4=254@"
|
||||
}
|
||||
assert_byte: {
|
||||
.label msg = 5
|
||||
.label c = 4
|
||||
.label msg = 2
|
||||
.label c = 9
|
||||
jsr print_str
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
@ -231,7 +227,7 @@ assert_byte: {
|
||||
str2: .text "fail!@"
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
.label sc = $a
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
|
@ -2991,13 +2991,13 @@ Attempting to uplift remaining variables inzp ZP_BYTE:15 [ assert_byte::c#3 ]
|
||||
Uplifting [assert_byte] best 2175 combination zp ZP_BYTE:15 [ assert_byte::c#3 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ assert_sbyte::c#5 ]
|
||||
Uplifting [assert_sbyte] best 2175 combination zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
|
||||
Coalescing zero page register [ zp ZP_WORD:2 [ assert_sbyte::msg#5 ] ] with [ zp ZP_WORD:6 [ char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:2 [ assert_sbyte::msg#5 char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 ] ] with [ zp ZP_WORD:16 [ print_cls::sc#2 print_cls::sc#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ assert_sbyte::c#5 ] ] with [ zp ZP_BYTE:15 [ assert_byte::c#3 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:8 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:12 [ assert_byte::msg#3 ] ]
|
||||
Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ assert_sbyte::c#5 assert_byte::c#3 ]
|
||||
Allocated (was zp ZP_WORD:8) zp ZP_WORD:5 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ]
|
||||
Coalescing zero page register [ zp ZP_WORD:2 [ assert_sbyte::msg#5 ] ] with [ zp ZP_WORD:8 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:2 [ assert_sbyte::msg#5 print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:12 [ assert_byte::msg#3 ] ]
|
||||
Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ assert_sbyte::c#5 ]
|
||||
Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 ]
|
||||
Allocated (was zp ZP_WORD:10) zp ZP_WORD:7 [ line_cursor#21 line_cursor#42 line_cursor#45 line_cursor#1 ]
|
||||
Allocated (was zp ZP_BYTE:15) zp ZP_BYTE:9 [ assert_byte::c#3 ]
|
||||
Allocated (was zp ZP_WORD:16) zp ZP_WORD:10 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -3008,7 +3008,7 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label BGCOL = $d021
|
||||
.const GREEN = 5
|
||||
.const RED = 2
|
||||
.label char_cursor = 2
|
||||
.label char_cursor = 5
|
||||
.label line_cursor = 7
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
@ -3169,11 +3169,8 @@ test_sbytes: {
|
||||
assert_sbyte: {
|
||||
.label msg = 2
|
||||
.label c = 4
|
||||
//SEG59 [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ) -- pbuz1=pbuz2
|
||||
lda msg
|
||||
sta print_str.str
|
||||
lda msg+1
|
||||
sta print_str.str+1
|
||||
//SEG59 [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] )
|
||||
// (byte*) print_str::str#5 = (byte*) assert_sbyte::msg#5 // register copy zp ZP_WORD:2
|
||||
//SEG60 [24] (byte*~) char_cursor#82 ← (byte*) line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] ) -- pbuz1=pbuz2
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
@ -3260,7 +3257,7 @@ assert_sbyte: {
|
||||
}
|
||||
//SEG92 print_str
|
||||
print_str: {
|
||||
.label str = 5
|
||||
.label str = 2
|
||||
//SEG93 [37] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1]
|
||||
b1_from_print_str:
|
||||
b1_from_b2:
|
||||
@ -3418,10 +3415,10 @@ test_bytes: {
|
||||
}
|
||||
//SEG140 assert_byte
|
||||
assert_byte: {
|
||||
.label msg = 5
|
||||
.label c = 4
|
||||
.label msg = 2
|
||||
.label c = 9
|
||||
//SEG141 [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] )
|
||||
// (byte*) print_str::str#1 = (byte*) assert_byte::msg#3 // register copy zp ZP_WORD:5
|
||||
// (byte*) print_str::str#1 = (byte*) assert_byte::msg#3 // register copy zp ZP_WORD:2
|
||||
//SEG142 [57] call print_str param-assignment [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] )
|
||||
//SEG143 [36] phi from assert_byte to print_str [phi:assert_byte->print_str]
|
||||
print_str_from_assert_byte:
|
||||
@ -3503,7 +3500,7 @@ assert_byte: {
|
||||
}
|
||||
//SEG173 print_cls
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
.label sc = $a
|
||||
//SEG174 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
b1_from_print_cls:
|
||||
//SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
@ -3678,9 +3675,9 @@ FINAL SYMBOL TABLE
|
||||
(byte) assert_byte::b
|
||||
(byte) assert_byte::b#3 reg byte x 0.4
|
||||
(byte) assert_byte::c
|
||||
(byte) assert_byte::c#3 c zp ZP_BYTE:4 0.4
|
||||
(byte) assert_byte::c#3 c zp ZP_BYTE:9 0.4
|
||||
(byte*) assert_byte::msg
|
||||
(byte*) assert_byte::msg#3 msg zp ZP_WORD:5 2.0
|
||||
(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0
|
||||
(const string) assert_byte::str str = (string) " @"
|
||||
(const string) assert_byte::str1 str1 = (string) "ok@"
|
||||
(const string) assert_byte::str2 str2 = (string) "fail!@"
|
||||
@ -3701,13 +3698,13 @@ FINAL SYMBOL TABLE
|
||||
(const string) assert_sbyte::str1 str1 = (string) "ok@"
|
||||
(const string) assert_sbyte::str2 str2 = (string) "fail!@"
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:2 11.0
|
||||
(byte*) char_cursor#2 char_cursor zp ZP_WORD:2 2.230769230769231
|
||||
(byte*) char_cursor#65 char_cursor zp ZP_WORD:2 3.0
|
||||
(byte*) char_cursor#75 char_cursor zp ZP_WORD:2 18.0
|
||||
(byte*~) char_cursor#82 char_cursor zp ZP_WORD:2 4.0
|
||||
(byte*~) char_cursor#88 char_cursor zp ZP_WORD:2 4.0
|
||||
(byte*~) char_cursor#89 char_cursor zp ZP_WORD:2 4.0
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:5 11.0
|
||||
(byte*) char_cursor#2 char_cursor zp ZP_WORD:5 2.230769230769231
|
||||
(byte*) char_cursor#65 char_cursor zp ZP_WORD:5 3.0
|
||||
(byte*) char_cursor#75 char_cursor zp ZP_WORD:5 18.0
|
||||
(byte*~) char_cursor#82 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*~) char_cursor#88 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*~) char_cursor#89 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:7 1.2500000000000002
|
||||
(byte*) line_cursor#21 line_cursor zp ZP_WORD:7 24.0
|
||||
@ -3721,8 +3718,8 @@ FINAL SYMBOL TABLE
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:10 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:10 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -3731,11 +3728,11 @@ FINAL SYMBOL TABLE
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:5 22.0
|
||||
(byte*) print_str::str#1 str zp ZP_WORD:5 4.0
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:5 11.5
|
||||
(byte*) print_str::str#11 str zp ZP_WORD:5 6.0
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:5 2.0
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:2 22.0
|
||||
(byte*) print_str::str#1 str zp ZP_WORD:2 4.0
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:2 11.5
|
||||
(byte*) print_str::str#11 str zp ZP_WORD:2 6.0
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:2 2.0
|
||||
(void()) test_bytes()
|
||||
(label) test_bytes::@1
|
||||
(label) test_bytes::@2
|
||||
@ -3771,16 +3768,18 @@ FINAL SYMBOL TABLE
|
||||
(const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@"
|
||||
(const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@"
|
||||
|
||||
zp ZP_WORD:2 [ assert_sbyte::msg#5 char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:2 [ assert_sbyte::msg#5 print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ]
|
||||
reg byte x [ assert_sbyte::b#5 ]
|
||||
zp ZP_BYTE:4 [ assert_sbyte::c#5 assert_byte::c#3 ]
|
||||
zp ZP_WORD:5 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ]
|
||||
zp ZP_BYTE:4 [ assert_sbyte::c#5 ]
|
||||
zp ZP_WORD:5 [ char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 ]
|
||||
zp ZP_WORD:7 [ line_cursor#21 line_cursor#42 line_cursor#45 line_cursor#1 ]
|
||||
reg byte x [ assert_byte::b#3 ]
|
||||
zp ZP_BYTE:9 [ assert_byte::c#3 ]
|
||||
zp ZP_WORD:10 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 1858
|
||||
Score: 1846
|
||||
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -3790,7 +3789,7 @@ Score: 1858
|
||||
.label BGCOL = $d021
|
||||
.const GREEN = 5
|
||||
.const RED = 2
|
||||
.label char_cursor = 2
|
||||
.label char_cursor = 5
|
||||
.label line_cursor = 7
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @13 [phi:@begin->@13]
|
||||
@ -3914,11 +3913,8 @@ test_sbytes: {
|
||||
assert_sbyte: {
|
||||
.label msg = 2
|
||||
.label c = 4
|
||||
//SEG59 [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ) -- pbuz1=pbuz2
|
||||
lda msg
|
||||
sta print_str.str
|
||||
lda msg+1
|
||||
sta print_str.str+1
|
||||
//SEG59 [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] )
|
||||
// (byte*) print_str::str#5 = (byte*) assert_sbyte::msg#5 // register copy zp ZP_WORD:2
|
||||
//SEG60 [24] (byte*~) char_cursor#82 ← (byte*) line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] ) -- pbuz1=pbuz2
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
@ -3986,7 +3982,7 @@ assert_sbyte: {
|
||||
}
|
||||
//SEG92 print_str
|
||||
print_str: {
|
||||
.label str = 5
|
||||
.label str = 2
|
||||
//SEG93 [37] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1]
|
||||
//SEG94 [37] phi (byte*) char_cursor#2 = (byte*) char_cursor#75 [phi:print_str/print_str::@2->print_str::@1#0] -- register_copy
|
||||
//SEG95 [37] phi (byte*) print_str::str#10 = (byte*) print_str::str#11 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||
@ -4124,10 +4120,10 @@ test_bytes: {
|
||||
}
|
||||
//SEG140 assert_byte
|
||||
assert_byte: {
|
||||
.label msg = 5
|
||||
.label c = 4
|
||||
.label msg = 2
|
||||
.label c = 9
|
||||
//SEG141 [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] )
|
||||
// (byte*) print_str::str#1 = (byte*) assert_byte::msg#3 // register copy zp ZP_WORD:5
|
||||
// (byte*) print_str::str#1 = (byte*) assert_byte::msg#3 // register copy zp ZP_WORD:2
|
||||
//SEG142 [57] call print_str param-assignment [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] )
|
||||
//SEG143 [36] phi from assert_byte to print_str [phi:assert_byte->print_str]
|
||||
//SEG144 [36] phi (byte*) char_cursor#75 = (byte*) char_cursor#65 [phi:assert_byte->print_str#0] -- register_copy
|
||||
@ -4190,7 +4186,7 @@ assert_byte: {
|
||||
}
|
||||
//SEG173 print_cls
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
.label sc = $a
|
||||
//SEG174 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
//SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
lda #<$400
|
||||
|
@ -17,9 +17,9 @@
|
||||
(byte) assert_byte::b
|
||||
(byte) assert_byte::b#3 reg byte x 0.4
|
||||
(byte) assert_byte::c
|
||||
(byte) assert_byte::c#3 c zp ZP_BYTE:4 0.4
|
||||
(byte) assert_byte::c#3 c zp ZP_BYTE:9 0.4
|
||||
(byte*) assert_byte::msg
|
||||
(byte*) assert_byte::msg#3 msg zp ZP_WORD:5 2.0
|
||||
(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0
|
||||
(const string) assert_byte::str str = (string) " @"
|
||||
(const string) assert_byte::str1 str1 = (string) "ok@"
|
||||
(const string) assert_byte::str2 str2 = (string) "fail!@"
|
||||
@ -40,13 +40,13 @@
|
||||
(const string) assert_sbyte::str1 str1 = (string) "ok@"
|
||||
(const string) assert_sbyte::str2 str2 = (string) "fail!@"
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:2 11.0
|
||||
(byte*) char_cursor#2 char_cursor zp ZP_WORD:2 2.230769230769231
|
||||
(byte*) char_cursor#65 char_cursor zp ZP_WORD:2 3.0
|
||||
(byte*) char_cursor#75 char_cursor zp ZP_WORD:2 18.0
|
||||
(byte*~) char_cursor#82 char_cursor zp ZP_WORD:2 4.0
|
||||
(byte*~) char_cursor#88 char_cursor zp ZP_WORD:2 4.0
|
||||
(byte*~) char_cursor#89 char_cursor zp ZP_WORD:2 4.0
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:5 11.0
|
||||
(byte*) char_cursor#2 char_cursor zp ZP_WORD:5 2.230769230769231
|
||||
(byte*) char_cursor#65 char_cursor zp ZP_WORD:5 3.0
|
||||
(byte*) char_cursor#75 char_cursor zp ZP_WORD:5 18.0
|
||||
(byte*~) char_cursor#82 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*~) char_cursor#88 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*~) char_cursor#89 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:7 1.2500000000000002
|
||||
(byte*) line_cursor#21 line_cursor zp ZP_WORD:7 24.0
|
||||
@ -60,8 +60,8 @@
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:10 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:10 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -70,11 +70,11 @@
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:5 22.0
|
||||
(byte*) print_str::str#1 str zp ZP_WORD:5 4.0
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:5 11.5
|
||||
(byte*) print_str::str#11 str zp ZP_WORD:5 6.0
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:5 2.0
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:2 22.0
|
||||
(byte*) print_str::str#1 str zp ZP_WORD:2 4.0
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:2 11.5
|
||||
(byte*) print_str::str#11 str zp ZP_WORD:2 6.0
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:2 2.0
|
||||
(void()) test_bytes()
|
||||
(label) test_bytes::@1
|
||||
(label) test_bytes::@2
|
||||
@ -110,9 +110,11 @@
|
||||
(const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@"
|
||||
(const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@"
|
||||
|
||||
zp ZP_WORD:2 [ assert_sbyte::msg#5 char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:2 [ assert_sbyte::msg#5 print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ]
|
||||
reg byte x [ assert_sbyte::b#5 ]
|
||||
zp ZP_BYTE:4 [ assert_sbyte::c#5 assert_byte::c#3 ]
|
||||
zp ZP_WORD:5 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ]
|
||||
zp ZP_BYTE:4 [ assert_sbyte::c#5 ]
|
||||
zp ZP_WORD:5 [ char_cursor#75 char_cursor#65 char_cursor#2 char_cursor#82 char_cursor#1 char_cursor#88 char_cursor#89 ]
|
||||
zp ZP_WORD:7 [ line_cursor#21 line_cursor#42 line_cursor#45 line_cursor#1 ]
|
||||
reg byte x [ assert_byte::b#3 ]
|
||||
zp ZP_BYTE:9 [ assert_byte::c#3 ]
|
||||
zp ZP_WORD:10 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
@ -3,7 +3,7 @@
|
||||
.pc = $80d "Program"
|
||||
.label char_cursor = 7
|
||||
.label line_cursor = 3
|
||||
.label rem16u = 9
|
||||
.label rem16u = $b
|
||||
jsr main
|
||||
main: {
|
||||
jsr print_cls
|
||||
@ -12,9 +12,9 @@ main: {
|
||||
rts
|
||||
}
|
||||
test_16u: {
|
||||
.label dividend = $d
|
||||
.label divisor = $f
|
||||
.label res = $11
|
||||
.label dividend = 5
|
||||
.label divisor = $16
|
||||
.label res = $f
|
||||
.label i = 2
|
||||
lda #0
|
||||
sta rem16u
|
||||
@ -35,18 +35,6 @@ test_16u: {
|
||||
lda dividend+1
|
||||
sta div16u.dividend+1
|
||||
jsr div16u
|
||||
lda div16u.return_1
|
||||
sta div16u.return
|
||||
lda div16u.return_1+1
|
||||
sta div16u.return+1
|
||||
lda div16u.return
|
||||
sta res
|
||||
lda div16u.return+1
|
||||
sta res+1
|
||||
lda dividend
|
||||
sta print_word.w
|
||||
lda dividend+1
|
||||
sta print_word.w+1
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda line_cursor+1
|
||||
@ -152,7 +140,7 @@ print_char: {
|
||||
rts
|
||||
}
|
||||
print_str: {
|
||||
.label str = 5
|
||||
.label str = 9
|
||||
b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
@ -174,12 +162,11 @@ print_str: {
|
||||
jmp b1
|
||||
}
|
||||
div16u: {
|
||||
.label dividend = 5
|
||||
.label divisor = $f
|
||||
.label return = 5
|
||||
.label rem = 9
|
||||
.label quotient = 7
|
||||
.label return_1 = 7
|
||||
.label dividend = $d
|
||||
.label divisor = $16
|
||||
.label return = $f
|
||||
.label rem = $b
|
||||
.label quotient = $f
|
||||
ldx #0
|
||||
txa
|
||||
sta quotient
|
||||
@ -229,10 +216,10 @@ div16u: {
|
||||
}
|
||||
test_8u: {
|
||||
.label rem = $ff
|
||||
.label dividend = $13
|
||||
.label divisor = $14
|
||||
.label res = $b
|
||||
.label i = 2
|
||||
.label dividend = $18
|
||||
.label divisor = $19
|
||||
.label res = $1a
|
||||
.label i = $11
|
||||
lda #<$400
|
||||
sta line_cursor
|
||||
lda #>$400
|
||||
@ -296,10 +283,10 @@ test_8u: {
|
||||
divisors: .byte 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
div8u: {
|
||||
.label dividend = $b
|
||||
.label divisor = $14
|
||||
.label quotient = $c
|
||||
.label return = $c
|
||||
.label dividend = $12
|
||||
.label divisor = $19
|
||||
.label quotient = $13
|
||||
.label return = $13
|
||||
ldx #0
|
||||
txa
|
||||
sta quotient
|
||||
@ -331,7 +318,7 @@ div8u: {
|
||||
rts
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 3
|
||||
.label sc = $14
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
|
@ -4384,24 +4384,24 @@ Attempting to uplift remaining variables inzp ZP_BYTE:42 [ test_8u::divisor#0 ]
|
||||
Uplifting [test_8u] best 38374 combination zp ZP_BYTE:42 [ test_8u::divisor#0 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:45 [ test_8u::res#0 ]
|
||||
Uplifting [test_8u] best 38374 combination zp ZP_BYTE:45 [ test_8u::res#0 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:2 [ test_16u::i#10 test_16u::i#1 ] ] with [ zp ZP_BYTE:20 [ test_8u::i#10 test_8u::i#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:3 [ line_cursor#11 line_cursor#22 line_cursor#1 line_cursor#25 ] ] with [ zp ZP_WORD:25 [ print_cls::sc#2 print_cls::sc#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 ] ] with [ zp ZP_WORD:11 [ print_str::str#7 print_str::str#9 print_str::str#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 print_str::str#7 print_str::str#9 print_str::str#0 ] ] with [ zp ZP_WORD:15 [ div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 print_str::str#7 print_str::str#9 print_str::str#0 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 ] ] with [ zp ZP_WORD:33 [ div16u::return#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 ] ] with [ zp ZP_WORD:17 [ div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:22 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ] ] with [ zp ZP_BYTE:45 [ test_8u::res#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 ] ] with [ zp ZP_WORD:27 [ test_16u::dividend#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:17 [ div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 ] ] with [ zp ZP_WORD:33 [ div16u::return#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:17 [ div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 div16u::return#0 ] ] with [ zp ZP_WORD:35 [ test_16u::res#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:29 [ test_16u::divisor#0 ] ] with [ zp ZP_WORD:31 [ div16u::divisor#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:42 [ test_8u::divisor#0 ] ] with [ zp ZP_BYTE:43 [ div8u::divisor#0 ] ]
|
||||
Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 ]
|
||||
Allocated (was zp ZP_WORD:13) zp ZP_WORD:9 [ div16u::rem#4 rem16u#16 div16u::rem#8 div16u::rem#5 div16u::rem#1 div16u::rem#2 div16u::rem#3 ]
|
||||
Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:11 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 test_8u::res#0 ]
|
||||
Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:12 [ div8u::quotient#3 div8u::return#1 div8u::quotient#1 div8u::quotient#2 ]
|
||||
Allocated (was zp ZP_WORD:27) zp ZP_WORD:13 [ test_16u::dividend#0 ]
|
||||
Allocated (was zp ZP_WORD:29) zp ZP_WORD:15 [ test_16u::divisor#0 div16u::divisor#0 ]
|
||||
Allocated (was zp ZP_WORD:35) zp ZP_WORD:17 [ test_16u::res#0 ]
|
||||
Allocated (was zp ZP_BYTE:41) zp ZP_BYTE:19 [ test_8u::dividend#0 ]
|
||||
Allocated (was zp ZP_BYTE:42) zp ZP_BYTE:20 [ test_8u::divisor#0 div8u::divisor#0 ]
|
||||
Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 ]
|
||||
Allocated (was zp ZP_WORD:11) zp ZP_WORD:9 [ print_str::str#7 print_str::str#9 print_str::str#0 ]
|
||||
Allocated (was zp ZP_WORD:13) zp ZP_WORD:11 [ div16u::rem#4 rem16u#16 div16u::rem#8 div16u::rem#5 div16u::rem#1 div16u::rem#2 div16u::rem#3 ]
|
||||
Allocated (was zp ZP_WORD:15) zp ZP_WORD:13 [ div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 ]
|
||||
Allocated (was zp ZP_WORD:17) zp ZP_WORD:15 [ div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 div16u::return#0 test_16u::res#0 ]
|
||||
Allocated (was zp ZP_BYTE:20) zp ZP_BYTE:17 [ test_8u::i#10 test_8u::i#1 ]
|
||||
Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:18 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ]
|
||||
Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:19 [ div8u::quotient#3 div8u::return#1 div8u::quotient#1 div8u::quotient#2 ]
|
||||
Allocated (was zp ZP_WORD:25) zp ZP_WORD:20 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
Allocated (was zp ZP_WORD:29) zp ZP_WORD:22 [ test_16u::divisor#0 div16u::divisor#0 ]
|
||||
Allocated (was zp ZP_BYTE:41) zp ZP_BYTE:24 [ test_8u::dividend#0 ]
|
||||
Allocated (was zp ZP_BYTE:42) zp ZP_BYTE:25 [ test_8u::divisor#0 div8u::divisor#0 ]
|
||||
Allocated (was zp ZP_BYTE:45) zp ZP_BYTE:26 [ test_8u::res#0 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -4411,7 +4411,7 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG1 Global Constants & labels
|
||||
.label char_cursor = 7
|
||||
.label line_cursor = 3
|
||||
.label rem16u = 9
|
||||
.label rem16u = $b
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @13 [phi:@begin->@13]
|
||||
@ -4460,9 +4460,9 @@ main: {
|
||||
}
|
||||
//SEG22 test_16u
|
||||
test_16u: {
|
||||
.label dividend = $d
|
||||
.label divisor = $f
|
||||
.label res = $11
|
||||
.label dividend = 5
|
||||
.label divisor = $16
|
||||
.label res = $f
|
||||
.label i = 2
|
||||
//SEG23 [12] phi from test_16u to test_16u::@1 [phi:test_16u->test_16u::@1]
|
||||
b1_from_test_16u:
|
||||
@ -4500,29 +4500,20 @@ test_16u: {
|
||||
lda dividend+1
|
||||
sta div16u.dividend+1
|
||||
//SEG33 [16] (word) div16u::divisor#0 ← (word) test_16u::divisor#0 [ test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#0 div16u::divisor#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#0 div16u::divisor#0 line_cursor#1 ] )
|
||||
// (word) div16u::divisor#0 = (word) test_16u::divisor#0 // register copy zp ZP_WORD:15
|
||||
// (word) div16u::divisor#0 = (word) test_16u::divisor#0 // register copy zp ZP_WORD:22
|
||||
//SEG34 [17] call div16u param-assignment [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#1 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#1 line_cursor#1 ] )
|
||||
//SEG35 [70] phi from test_16u::@1 to div16u [phi:test_16u::@1->div16u]
|
||||
div16u_from_b1:
|
||||
jsr div16u
|
||||
//SEG36 [18] (word) div16u::return#0 ← (word) div16u::return#1 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] ) -- vwuz1=vwuz2
|
||||
lda div16u.return_1
|
||||
sta div16u.return
|
||||
lda div16u.return_1+1
|
||||
sta div16u.return+1
|
||||
//SEG36 [18] (word) div16u::return#0 ← (word) div16u::return#1 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] )
|
||||
// (word) div16u::return#0 = (word) div16u::return#1 // register copy zp ZP_WORD:15
|
||||
jmp b3
|
||||
//SEG37 test_16u::@3
|
||||
b3:
|
||||
//SEG38 [19] (word) test_16u::res#0 ← (word) div16u::return#0 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] ) -- vwuz1=vwuz2
|
||||
lda div16u.return
|
||||
sta res
|
||||
lda div16u.return+1
|
||||
sta res+1
|
||||
//SEG39 [20] (word) print_word::w#0 ← (word) test_16u::dividend#0 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] ) -- vwuz1=vwuz2
|
||||
lda dividend
|
||||
sta print_word.w
|
||||
lda dividend+1
|
||||
sta print_word.w+1
|
||||
//SEG38 [19] (word) test_16u::res#0 ← (word) div16u::return#0 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] )
|
||||
// (word) test_16u::res#0 = (word) div16u::return#0 // register copy zp ZP_WORD:15
|
||||
//SEG39 [20] (word) print_word::w#0 ← (word) test_16u::dividend#0 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] )
|
||||
// (word) print_word::w#0 = (word) test_16u::dividend#0 // register copy zp ZP_WORD:5
|
||||
//SEG40 [21] (byte*~) char_cursor#84 ← (byte*) line_cursor#1 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 char_cursor#84 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 char_cursor#84 line_cursor#1 ] ) -- pbuz1=pbuz2
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
@ -4770,7 +4761,7 @@ print_char: {
|
||||
}
|
||||
//SEG131 print_str
|
||||
print_str: {
|
||||
.label str = 5
|
||||
.label str = 9
|
||||
//SEG132 [64] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1]
|
||||
b1_from_print_str:
|
||||
b1_from_b2:
|
||||
@ -4810,12 +4801,11 @@ print_str: {
|
||||
}
|
||||
//SEG143 div16u
|
||||
div16u: {
|
||||
.label dividend = 5
|
||||
.label divisor = $f
|
||||
.label return = 5
|
||||
.label rem = 9
|
||||
.label quotient = 7
|
||||
.label return_1 = 7
|
||||
.label dividend = $d
|
||||
.label divisor = $16
|
||||
.label return = $f
|
||||
.label rem = $b
|
||||
.label quotient = $f
|
||||
//SEG144 [71] phi from div16u to div16u::@1 [phi:div16u->div16u::@1]
|
||||
b1_from_div16u:
|
||||
//SEG145 [71] phi (byte) div16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div16u->div16u::@1#0] -- vbuxx=vbuc1
|
||||
@ -4919,10 +4909,10 @@ div16u: {
|
||||
//SEG178 test_8u
|
||||
test_8u: {
|
||||
.label rem = $ff
|
||||
.label dividend = $13
|
||||
.label divisor = $14
|
||||
.label res = $b
|
||||
.label i = 2
|
||||
.label dividend = $18
|
||||
.label divisor = $19
|
||||
.label res = $1a
|
||||
.label i = $11
|
||||
//SEG179 [88] phi from test_8u to test_8u::@1 [phi:test_8u->test_8u::@1]
|
||||
b1_from_test_8u:
|
||||
//SEG180 [88] phi (byte*) line_cursor#25 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1
|
||||
@ -4953,7 +4943,7 @@ test_8u: {
|
||||
lda dividend
|
||||
sta div8u.dividend
|
||||
//SEG187 [92] (byte) div8u::divisor#0 ← (byte) test_8u::divisor#0 [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#0 div8u::divisor#0 ] ( main:2::test_8u:7 [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#0 div8u::divisor#0 ] )
|
||||
// (byte) div8u::divisor#0 = (byte) test_8u::divisor#0 // register copy zp ZP_BYTE:20
|
||||
// (byte) div8u::divisor#0 = (byte) test_8u::divisor#0 // register copy zp ZP_BYTE:25
|
||||
//SEG188 [93] call div8u param-assignment [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#1 ] ( main:2::test_8u:7 [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#1 ] )
|
||||
//SEG189 [116] phi from test_8u::@1 to div8u [phi:test_8u::@1->div8u]
|
||||
div8u_from_b1:
|
||||
@ -5093,10 +5083,10 @@ test_8u: {
|
||||
}
|
||||
//SEG247 div8u
|
||||
div8u: {
|
||||
.label dividend = $b
|
||||
.label divisor = $14
|
||||
.label quotient = $c
|
||||
.label return = $c
|
||||
.label dividend = $12
|
||||
.label divisor = $19
|
||||
.label quotient = $13
|
||||
.label return = $13
|
||||
//SEG248 [117] phi from div8u to div8u::@1 [phi:div8u->div8u::@1]
|
||||
b1_from_div8u:
|
||||
//SEG249 [117] phi (byte) div8u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div8u->div8u::@1#0] -- vbuxx=vbuc1
|
||||
@ -5182,7 +5172,7 @@ div8u: {
|
||||
}
|
||||
//SEG283 print_cls
|
||||
print_cls: {
|
||||
.label sc = 3
|
||||
.label sc = $14
|
||||
//SEG284 [134] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
b1_from_print_cls:
|
||||
//SEG285 [134] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
@ -5432,28 +5422,28 @@ FINAL SYMBOL TABLE
|
||||
(label) div16u::@5
|
||||
(label) div16u::@return
|
||||
(word) div16u::dividend
|
||||
(word) div16u::dividend#0 dividend zp ZP_WORD:5 4.333333333333333
|
||||
(word) div16u::dividend#1 dividend zp ZP_WORD:5 25.25
|
||||
(word) div16u::dividend#2 dividend zp ZP_WORD:5 43.57142857142858
|
||||
(word) div16u::dividend#0 dividend zp ZP_WORD:13 4.333333333333333
|
||||
(word) div16u::dividend#1 dividend zp ZP_WORD:13 25.25
|
||||
(word) div16u::dividend#2 dividend zp ZP_WORD:13 43.57142857142858
|
||||
(word) div16u::divisor
|
||||
(word) div16u::divisor#0 divisor zp ZP_WORD:15 12.529411764705884
|
||||
(word) div16u::divisor#0 divisor zp ZP_WORD:22 12.529411764705884
|
||||
(byte) div16u::i
|
||||
(byte) div16u::i#1 reg byte x 151.5
|
||||
(byte) div16u::i#2 reg byte x 15.538461538461538
|
||||
(word) div16u::quotient
|
||||
(word) div16u::quotient#1 quotient zp ZP_WORD:7 151.5
|
||||
(word) div16u::quotient#2 quotient zp ZP_WORD:7 101.0
|
||||
(word) div16u::quotient#3 quotient zp ZP_WORD:7 25.25
|
||||
(word) div16u::quotient#1 quotient zp ZP_WORD:15 151.5
|
||||
(word) div16u::quotient#2 quotient zp ZP_WORD:15 101.0
|
||||
(word) div16u::quotient#3 quotient zp ZP_WORD:15 25.25
|
||||
(word) div16u::rem
|
||||
(word) div16u::rem#1 rem zp ZP_WORD:9 75.75
|
||||
(word) div16u::rem#2 rem zp ZP_WORD:9 202.0
|
||||
(word) div16u::rem#3 rem zp ZP_WORD:9 202.0
|
||||
(word) div16u::rem#4 rem zp ZP_WORD:9 202.0
|
||||
(word) div16u::rem#5 rem zp ZP_WORD:9 101.0
|
||||
(word) div16u::rem#8 rem zp ZP_WORD:9 12.5
|
||||
(word) div16u::rem#1 rem zp ZP_WORD:11 75.75
|
||||
(word) div16u::rem#2 rem zp ZP_WORD:11 202.0
|
||||
(word) div16u::rem#3 rem zp ZP_WORD:11 202.0
|
||||
(word) div16u::rem#4 rem zp ZP_WORD:11 202.0
|
||||
(word) div16u::rem#5 rem zp ZP_WORD:11 101.0
|
||||
(word) div16u::rem#8 rem zp ZP_WORD:11 12.5
|
||||
(word) div16u::return
|
||||
(word) div16u::return#0 return zp ZP_WORD:5 22.0
|
||||
(word) div16u::return#1 return#1 zp ZP_WORD:7 62.8
|
||||
(word) div16u::return#0 return zp ZP_WORD:15 22.0
|
||||
(word) div16u::return#1 return zp ZP_WORD:15 62.8
|
||||
(byte()) div8u((byte) div8u::dividend , (byte) div8u::divisor , (byte*) div8u::remainder)
|
||||
(byte~) div8u::$1 reg byte a 202.0
|
||||
(label) div8u::@1
|
||||
@ -5464,18 +5454,18 @@ FINAL SYMBOL TABLE
|
||||
(label) div8u::@6
|
||||
(label) div8u::@return
|
||||
(byte) div8u::dividend
|
||||
(byte) div8u::dividend#0 dividend zp ZP_BYTE:11 4.333333333333333
|
||||
(byte) div8u::dividend#1 dividend zp ZP_BYTE:11 25.25
|
||||
(byte) div8u::dividend#2 dividend zp ZP_BYTE:11 50.83333333333333
|
||||
(byte) div8u::dividend#0 dividend zp ZP_BYTE:18 4.333333333333333
|
||||
(byte) div8u::dividend#1 dividend zp ZP_BYTE:18 25.25
|
||||
(byte) div8u::dividend#2 dividend zp ZP_BYTE:18 50.83333333333333
|
||||
(byte) div8u::divisor
|
||||
(byte) div8u::divisor#0 divisor zp ZP_BYTE:20 13.3125
|
||||
(byte) div8u::divisor#0 divisor zp ZP_BYTE:25 13.3125
|
||||
(byte) div8u::i
|
||||
(byte) div8u::i#1 reg byte x 151.5
|
||||
(byte) div8u::i#2 reg byte x 16.833333333333332
|
||||
(byte) div8u::quotient
|
||||
(byte) div8u::quotient#1 quotient zp ZP_BYTE:12 151.5
|
||||
(byte) div8u::quotient#2 quotient zp ZP_BYTE:12 101.0
|
||||
(byte) div8u::quotient#3 quotient zp ZP_BYTE:12 28.857142857142858
|
||||
(byte) div8u::quotient#1 quotient zp ZP_BYTE:19 151.5
|
||||
(byte) div8u::quotient#2 quotient zp ZP_BYTE:19 101.0
|
||||
(byte) div8u::quotient#3 quotient zp ZP_BYTE:19 28.857142857142858
|
||||
(byte) div8u::rem
|
||||
(byte) div8u::rem#1 reg byte y 101.0
|
||||
(byte) div8u::rem#2 reg byte y 202.0
|
||||
@ -5486,7 +5476,7 @@ FINAL SYMBOL TABLE
|
||||
(byte*) div8u::remainder
|
||||
(byte) div8u::return
|
||||
(byte) div8u::return#0 reg byte a 22.0
|
||||
(byte) div8u::return#1 return zp ZP_BYTE:12 52.33333333333333
|
||||
(byte) div8u::return#1 return zp ZP_BYTE:19 52.33333333333333
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 9.131578947368421
|
||||
(byte*) line_cursor#11 line_cursor zp ZP_WORD:3 204.0
|
||||
@ -5521,8 +5511,8 @@ FINAL SYMBOL TABLE
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:3 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:3 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:20 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:20 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -5531,9 +5521,9 @@ FINAL SYMBOL TABLE
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:5 202.0
|
||||
(byte*) print_str::str#7 str zp ZP_WORD:5 101.5
|
||||
(byte*) print_str::str#9 str zp ZP_WORD:5 2.0
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:9 202.0
|
||||
(byte*) print_str::str#7 str zp ZP_WORD:9 101.5
|
||||
(byte*) print_str::str#9 str zp ZP_WORD:9 2.0
|
||||
(void()) print_word((word) print_word::w)
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
@ -5544,7 +5534,7 @@ FINAL SYMBOL TABLE
|
||||
(word) print_word::w#3 w zp ZP_WORD:5 22.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:5 15.999999999999998
|
||||
(word) rem16u
|
||||
(word) rem16u#16 rem16u zp ZP_WORD:9 110.0
|
||||
(word) rem16u#16 rem16u zp ZP_WORD:11 110.0
|
||||
(void()) test_16u()
|
||||
(label) test_16u::@1
|
||||
(label) test_16u::@10
|
||||
@ -5558,18 +5548,18 @@ FINAL SYMBOL TABLE
|
||||
(label) test_16u::@9
|
||||
(label) test_16u::@return
|
||||
(word) test_16u::dividend
|
||||
(word) test_16u::dividend#0 dividend zp ZP_WORD:13 4.714285714285714
|
||||
(word) test_16u::dividend#0 dividend zp ZP_WORD:5 4.714285714285714
|
||||
(word[]) test_16u::dividends
|
||||
(const word[]) test_16u::dividends#0 dividends = { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 }
|
||||
(word) test_16u::divisor
|
||||
(word) test_16u::divisor#0 divisor zp ZP_WORD:15 3.0
|
||||
(word) test_16u::divisor#0 divisor zp ZP_WORD:22 3.0
|
||||
(word[]) test_16u::divisors
|
||||
(const word[]) test_16u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 }
|
||||
(byte) test_16u::i
|
||||
(byte) test_16u::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) test_16u::i#10 i zp ZP_BYTE:2 1.76
|
||||
(word) test_16u::res
|
||||
(word) test_16u::res#0 res zp ZP_WORD:17 2.2
|
||||
(word) test_16u::res#0 res zp ZP_WORD:15 2.2
|
||||
(const string) test_16u::str str = (string) " / @"
|
||||
(const string) test_16u::str1 str1 = (string) " = @"
|
||||
(const string) test_16u::str2 str2 = (string) " @"
|
||||
@ -5587,51 +5577,55 @@ FINAL SYMBOL TABLE
|
||||
(label) test_8u::@9
|
||||
(label) test_8u::@return
|
||||
(byte) test_8u::dividend
|
||||
(byte) test_8u::dividend#0 dividend zp ZP_BYTE:19 4.714285714285714
|
||||
(byte) test_8u::dividend#0 dividend zp ZP_BYTE:24 4.714285714285714
|
||||
(byte[]) test_8u::dividends
|
||||
(const byte[]) test_8u::dividends#0 dividends = { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 }
|
||||
(byte) test_8u::divisor
|
||||
(byte) test_8u::divisor#0 divisor zp ZP_BYTE:20 3.3000000000000003
|
||||
(byte) test_8u::divisor#0 divisor zp ZP_BYTE:25 3.3000000000000003
|
||||
(byte[]) test_8u::divisors
|
||||
(const byte[]) test_8u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 }
|
||||
(byte) test_8u::i
|
||||
(byte) test_8u::i#1 i zp ZP_BYTE:2 11.0
|
||||
(byte) test_8u::i#10 i zp ZP_BYTE:2 1.8333333333333333
|
||||
(byte) test_8u::i#1 i zp ZP_BYTE:17 11.0
|
||||
(byte) test_8u::i#10 i zp ZP_BYTE:17 1.8333333333333333
|
||||
(byte*) test_8u::rem
|
||||
(const byte*) test_8u::rem#0 rem = ((byte*))(byte/word/signed word/dword/signed dword) 255
|
||||
(byte) test_8u::res
|
||||
(byte) test_8u::res#0 res zp ZP_BYTE:11 2.4444444444444446
|
||||
(byte) test_8u::res#0 res zp ZP_BYTE:26 2.4444444444444446
|
||||
(const string) test_8u::str str = (string) " / @"
|
||||
(const string) test_8u::str1 str1 = (string) " = @"
|
||||
(const string) test_8u::str2 str2 = (string) " @"
|
||||
|
||||
zp ZP_BYTE:2 [ test_16u::i#10 test_16u::i#1 test_8u::i#10 test_8u::i#1 ]
|
||||
zp ZP_WORD:3 [ line_cursor#11 line_cursor#22 line_cursor#1 line_cursor#25 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 print_str::str#7 print_str::str#9 print_str::str#0 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16u::return#0 ]
|
||||
zp ZP_BYTE:2 [ test_16u::i#10 test_16u::i#1 ]
|
||||
zp ZP_WORD:3 [ line_cursor#11 line_cursor#22 line_cursor#1 line_cursor#25 ]
|
||||
zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 test_16u::dividend#0 ]
|
||||
reg byte x [ print_byte::b#6 print_byte::b#0 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 ]
|
||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
zp ZP_WORD:7 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 ]
|
||||
zp ZP_WORD:9 [ div16u::rem#4 rem16u#16 div16u::rem#8 div16u::rem#5 div16u::rem#1 div16u::rem#2 div16u::rem#3 ]
|
||||
zp ZP_WORD:7 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 ]
|
||||
zp ZP_WORD:9 [ print_str::str#7 print_str::str#9 print_str::str#0 ]
|
||||
zp ZP_WORD:11 [ div16u::rem#4 rem16u#16 div16u::rem#8 div16u::rem#5 div16u::rem#1 div16u::rem#2 div16u::rem#3 ]
|
||||
zp ZP_WORD:13 [ div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 ]
|
||||
zp ZP_WORD:15 [ div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 div16u::return#0 test_16u::res#0 ]
|
||||
reg byte x [ div16u::i#2 div16u::i#1 ]
|
||||
zp ZP_BYTE:17 [ test_8u::i#10 test_8u::i#1 ]
|
||||
reg byte y [ div8u::rem#4 div8u::rem#8 div8u::rem#5 div8u::rem#1 div8u::rem#2 div8u::rem#3 ]
|
||||
zp ZP_BYTE:11 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 test_8u::res#0 ]
|
||||
zp ZP_BYTE:12 [ div8u::quotient#3 div8u::return#1 div8u::quotient#1 div8u::quotient#2 ]
|
||||
zp ZP_BYTE:18 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ]
|
||||
zp ZP_BYTE:19 [ div8u::quotient#3 div8u::return#1 div8u::quotient#1 div8u::quotient#2 ]
|
||||
reg byte x [ div8u::i#2 div8u::i#1 ]
|
||||
zp ZP_WORD:13 [ test_16u::dividend#0 ]
|
||||
zp ZP_WORD:15 [ test_16u::divisor#0 div16u::divisor#0 ]
|
||||
zp ZP_WORD:17 [ test_16u::res#0 ]
|
||||
zp ZP_WORD:20 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:22 [ test_16u::divisor#0 div16u::divisor#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ div16u::$1 ]
|
||||
reg byte a [ div16u::$2 ]
|
||||
zp ZP_BYTE:19 [ test_8u::dividend#0 ]
|
||||
zp ZP_BYTE:20 [ test_8u::divisor#0 div8u::divisor#0 ]
|
||||
zp ZP_BYTE:24 [ test_8u::dividend#0 ]
|
||||
zp ZP_BYTE:25 [ test_8u::divisor#0 div8u::divisor#0 ]
|
||||
reg byte a [ div8u::return#0 ]
|
||||
zp ZP_BYTE:26 [ test_8u::res#0 ]
|
||||
reg byte a [ div8u::$1 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 31267
|
||||
Score: 30907
|
||||
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -5640,7 +5634,7 @@ Score: 31267
|
||||
//SEG1 Global Constants & labels
|
||||
.label char_cursor = 7
|
||||
.label line_cursor = 3
|
||||
.label rem16u = 9
|
||||
.label rem16u = $b
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @13 [phi:@begin->@13]
|
||||
//SEG4 @13
|
||||
@ -5670,9 +5664,9 @@ main: {
|
||||
}
|
||||
//SEG22 test_16u
|
||||
test_16u: {
|
||||
.label dividend = $d
|
||||
.label divisor = $f
|
||||
.label res = $11
|
||||
.label dividend = 5
|
||||
.label divisor = $16
|
||||
.label res = $f
|
||||
.label i = 2
|
||||
//SEG23 [12] phi from test_16u to test_16u::@1 [phi:test_16u->test_16u::@1]
|
||||
//SEG24 [12] phi (word) rem16u#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_16u->test_16u::@1#0] -- vwuz1=vbuc1
|
||||
@ -5703,26 +5697,17 @@ test_16u: {
|
||||
lda dividend+1
|
||||
sta div16u.dividend+1
|
||||
//SEG33 [16] (word) div16u::divisor#0 ← (word) test_16u::divisor#0 [ test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#0 div16u::divisor#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#0 div16u::divisor#0 line_cursor#1 ] )
|
||||
// (word) div16u::divisor#0 = (word) test_16u::divisor#0 // register copy zp ZP_WORD:15
|
||||
// (word) div16u::divisor#0 = (word) test_16u::divisor#0 // register copy zp ZP_WORD:22
|
||||
//SEG34 [17] call div16u param-assignment [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#1 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#1 line_cursor#1 ] )
|
||||
//SEG35 [70] phi from test_16u::@1 to div16u [phi:test_16u::@1->div16u]
|
||||
jsr div16u
|
||||
//SEG36 [18] (word) div16u::return#0 ← (word) div16u::return#1 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] ) -- vwuz1=vwuz2
|
||||
lda div16u.return_1
|
||||
sta div16u.return
|
||||
lda div16u.return_1+1
|
||||
sta div16u.return+1
|
||||
//SEG36 [18] (word) div16u::return#0 ← (word) div16u::return#1 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 line_cursor#1 ] )
|
||||
// (word) div16u::return#0 = (word) div16u::return#1 // register copy zp ZP_WORD:15
|
||||
//SEG37 test_16u::@3
|
||||
//SEG38 [19] (word) test_16u::res#0 ← (word) div16u::return#0 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] ) -- vwuz1=vwuz2
|
||||
lda div16u.return
|
||||
sta res
|
||||
lda div16u.return+1
|
||||
sta res+1
|
||||
//SEG39 [20] (word) print_word::w#0 ← (word) test_16u::dividend#0 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] ) -- vwuz1=vwuz2
|
||||
lda dividend
|
||||
sta print_word.w
|
||||
lda dividend+1
|
||||
sta print_word.w+1
|
||||
//SEG38 [19] (word) test_16u::res#0 ← (word) div16u::return#0 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 line_cursor#1 ] )
|
||||
// (word) test_16u::res#0 = (word) div16u::return#0 // register copy zp ZP_WORD:15
|
||||
//SEG39 [20] (word) print_word::w#0 ← (word) test_16u::dividend#0 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 line_cursor#1 ] )
|
||||
// (word) print_word::w#0 = (word) test_16u::dividend#0 // register copy zp ZP_WORD:5
|
||||
//SEG40 [21] (byte*~) char_cursor#84 ← (byte*) line_cursor#1 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 char_cursor#84 line_cursor#1 ] ( main:2::test_16u:9 [ test_16u::i#10 div16u::rem#8 test_16u::divisor#0 test_16u::res#0 print_word::w#0 char_cursor#84 line_cursor#1 ] ) -- pbuz1=pbuz2
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
@ -5920,7 +5905,7 @@ print_char: {
|
||||
}
|
||||
//SEG131 print_str
|
||||
print_str: {
|
||||
.label str = 5
|
||||
.label str = 9
|
||||
//SEG132 [64] phi from print_str print_str::@2 to print_str::@1 [phi:print_str/print_str::@2->print_str::@1]
|
||||
//SEG133 [64] phi (byte*) char_cursor#2 = (byte*) char_cursor#11 [phi:print_str/print_str::@2->print_str::@1#0] -- register_copy
|
||||
//SEG134 [64] phi (byte*) print_str::str#7 = (byte*) print_str::str#9 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||
@ -5954,12 +5939,11 @@ print_str: {
|
||||
}
|
||||
//SEG143 div16u
|
||||
div16u: {
|
||||
.label dividend = 5
|
||||
.label divisor = $f
|
||||
.label return = 5
|
||||
.label rem = 9
|
||||
.label quotient = 7
|
||||
.label return_1 = 7
|
||||
.label dividend = $d
|
||||
.label divisor = $16
|
||||
.label return = $f
|
||||
.label rem = $b
|
||||
.label quotient = $f
|
||||
//SEG144 [71] phi from div16u to div16u::@1 [phi:div16u->div16u::@1]
|
||||
//SEG145 [71] phi (byte) div16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div16u->div16u::@1#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
@ -6044,10 +6028,10 @@ div16u: {
|
||||
//SEG178 test_8u
|
||||
test_8u: {
|
||||
.label rem = $ff
|
||||
.label dividend = $13
|
||||
.label divisor = $14
|
||||
.label res = $b
|
||||
.label i = 2
|
||||
.label dividend = $18
|
||||
.label divisor = $19
|
||||
.label res = $1a
|
||||
.label i = $11
|
||||
//SEG179 [88] phi from test_8u to test_8u::@1 [phi:test_8u->test_8u::@1]
|
||||
//SEG180 [88] phi (byte*) line_cursor#25 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1
|
||||
lda #<$400
|
||||
@ -6075,7 +6059,7 @@ test_8u: {
|
||||
lda dividend
|
||||
sta div8u.dividend
|
||||
//SEG187 [92] (byte) div8u::divisor#0 ← (byte) test_8u::divisor#0 [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#0 div8u::divisor#0 ] ( main:2::test_8u:7 [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#0 div8u::divisor#0 ] )
|
||||
// (byte) div8u::divisor#0 = (byte) test_8u::divisor#0 // register copy zp ZP_BYTE:20
|
||||
// (byte) div8u::divisor#0 = (byte) test_8u::divisor#0 // register copy zp ZP_BYTE:25
|
||||
//SEG188 [93] call div8u param-assignment [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#1 ] ( main:2::test_8u:7 [ line_cursor#25 char_cursor#75 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#1 ] )
|
||||
//SEG189 [116] phi from test_8u::@1 to div8u [phi:test_8u::@1->div8u]
|
||||
jsr div8u
|
||||
@ -6181,10 +6165,10 @@ test_8u: {
|
||||
}
|
||||
//SEG247 div8u
|
||||
div8u: {
|
||||
.label dividend = $b
|
||||
.label divisor = $14
|
||||
.label quotient = $c
|
||||
.label return = $c
|
||||
.label dividend = $12
|
||||
.label divisor = $19
|
||||
.label quotient = $13
|
||||
.label return = $13
|
||||
//SEG248 [117] phi from div8u to div8u::@1 [phi:div8u->div8u::@1]
|
||||
//SEG249 [117] phi (byte) div8u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div8u->div8u::@1#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
@ -6252,7 +6236,7 @@ div8u: {
|
||||
}
|
||||
//SEG283 print_cls
|
||||
print_cls: {
|
||||
.label sc = 3
|
||||
.label sc = $14
|
||||
//SEG284 [134] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
//SEG285 [134] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
lda #<$400
|
||||
|
@ -21,28 +21,28 @@
|
||||
(label) div16u::@5
|
||||
(label) div16u::@return
|
||||
(word) div16u::dividend
|
||||
(word) div16u::dividend#0 dividend zp ZP_WORD:5 4.333333333333333
|
||||
(word) div16u::dividend#1 dividend zp ZP_WORD:5 25.25
|
||||
(word) div16u::dividend#2 dividend zp ZP_WORD:5 43.57142857142858
|
||||
(word) div16u::dividend#0 dividend zp ZP_WORD:13 4.333333333333333
|
||||
(word) div16u::dividend#1 dividend zp ZP_WORD:13 25.25
|
||||
(word) div16u::dividend#2 dividend zp ZP_WORD:13 43.57142857142858
|
||||
(word) div16u::divisor
|
||||
(word) div16u::divisor#0 divisor zp ZP_WORD:15 12.529411764705884
|
||||
(word) div16u::divisor#0 divisor zp ZP_WORD:22 12.529411764705884
|
||||
(byte) div16u::i
|
||||
(byte) div16u::i#1 reg byte x 151.5
|
||||
(byte) div16u::i#2 reg byte x 15.538461538461538
|
||||
(word) div16u::quotient
|
||||
(word) div16u::quotient#1 quotient zp ZP_WORD:7 151.5
|
||||
(word) div16u::quotient#2 quotient zp ZP_WORD:7 101.0
|
||||
(word) div16u::quotient#3 quotient zp ZP_WORD:7 25.25
|
||||
(word) div16u::quotient#1 quotient zp ZP_WORD:15 151.5
|
||||
(word) div16u::quotient#2 quotient zp ZP_WORD:15 101.0
|
||||
(word) div16u::quotient#3 quotient zp ZP_WORD:15 25.25
|
||||
(word) div16u::rem
|
||||
(word) div16u::rem#1 rem zp ZP_WORD:9 75.75
|
||||
(word) div16u::rem#2 rem zp ZP_WORD:9 202.0
|
||||
(word) div16u::rem#3 rem zp ZP_WORD:9 202.0
|
||||
(word) div16u::rem#4 rem zp ZP_WORD:9 202.0
|
||||
(word) div16u::rem#5 rem zp ZP_WORD:9 101.0
|
||||
(word) div16u::rem#8 rem zp ZP_WORD:9 12.5
|
||||
(word) div16u::rem#1 rem zp ZP_WORD:11 75.75
|
||||
(word) div16u::rem#2 rem zp ZP_WORD:11 202.0
|
||||
(word) div16u::rem#3 rem zp ZP_WORD:11 202.0
|
||||
(word) div16u::rem#4 rem zp ZP_WORD:11 202.0
|
||||
(word) div16u::rem#5 rem zp ZP_WORD:11 101.0
|
||||
(word) div16u::rem#8 rem zp ZP_WORD:11 12.5
|
||||
(word) div16u::return
|
||||
(word) div16u::return#0 return zp ZP_WORD:5 22.0
|
||||
(word) div16u::return#1 return#1 zp ZP_WORD:7 62.8
|
||||
(word) div16u::return#0 return zp ZP_WORD:15 22.0
|
||||
(word) div16u::return#1 return zp ZP_WORD:15 62.8
|
||||
(byte()) div8u((byte) div8u::dividend , (byte) div8u::divisor , (byte*) div8u::remainder)
|
||||
(byte~) div8u::$1 reg byte a 202.0
|
||||
(label) div8u::@1
|
||||
@ -53,18 +53,18 @@
|
||||
(label) div8u::@6
|
||||
(label) div8u::@return
|
||||
(byte) div8u::dividend
|
||||
(byte) div8u::dividend#0 dividend zp ZP_BYTE:11 4.333333333333333
|
||||
(byte) div8u::dividend#1 dividend zp ZP_BYTE:11 25.25
|
||||
(byte) div8u::dividend#2 dividend zp ZP_BYTE:11 50.83333333333333
|
||||
(byte) div8u::dividend#0 dividend zp ZP_BYTE:18 4.333333333333333
|
||||
(byte) div8u::dividend#1 dividend zp ZP_BYTE:18 25.25
|
||||
(byte) div8u::dividend#2 dividend zp ZP_BYTE:18 50.83333333333333
|
||||
(byte) div8u::divisor
|
||||
(byte) div8u::divisor#0 divisor zp ZP_BYTE:20 13.3125
|
||||
(byte) div8u::divisor#0 divisor zp ZP_BYTE:25 13.3125
|
||||
(byte) div8u::i
|
||||
(byte) div8u::i#1 reg byte x 151.5
|
||||
(byte) div8u::i#2 reg byte x 16.833333333333332
|
||||
(byte) div8u::quotient
|
||||
(byte) div8u::quotient#1 quotient zp ZP_BYTE:12 151.5
|
||||
(byte) div8u::quotient#2 quotient zp ZP_BYTE:12 101.0
|
||||
(byte) div8u::quotient#3 quotient zp ZP_BYTE:12 28.857142857142858
|
||||
(byte) div8u::quotient#1 quotient zp ZP_BYTE:19 151.5
|
||||
(byte) div8u::quotient#2 quotient zp ZP_BYTE:19 101.0
|
||||
(byte) div8u::quotient#3 quotient zp ZP_BYTE:19 28.857142857142858
|
||||
(byte) div8u::rem
|
||||
(byte) div8u::rem#1 reg byte y 101.0
|
||||
(byte) div8u::rem#2 reg byte y 202.0
|
||||
@ -75,7 +75,7 @@
|
||||
(byte*) div8u::remainder
|
||||
(byte) div8u::return
|
||||
(byte) div8u::return#0 reg byte a 22.0
|
||||
(byte) div8u::return#1 return zp ZP_BYTE:12 52.33333333333333
|
||||
(byte) div8u::return#1 return zp ZP_BYTE:19 52.33333333333333
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 9.131578947368421
|
||||
(byte*) line_cursor#11 line_cursor zp ZP_WORD:3 204.0
|
||||
@ -110,8 +110,8 @@
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:3 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:3 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:20 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:20 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -120,9 +120,9 @@
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:5 202.0
|
||||
(byte*) print_str::str#7 str zp ZP_WORD:5 101.5
|
||||
(byte*) print_str::str#9 str zp ZP_WORD:5 2.0
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:9 202.0
|
||||
(byte*) print_str::str#7 str zp ZP_WORD:9 101.5
|
||||
(byte*) print_str::str#9 str zp ZP_WORD:9 2.0
|
||||
(void()) print_word((word) print_word::w)
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
@ -133,7 +133,7 @@
|
||||
(word) print_word::w#3 w zp ZP_WORD:5 22.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:5 15.999999999999998
|
||||
(word) rem16u
|
||||
(word) rem16u#16 rem16u zp ZP_WORD:9 110.0
|
||||
(word) rem16u#16 rem16u zp ZP_WORD:11 110.0
|
||||
(void()) test_16u()
|
||||
(label) test_16u::@1
|
||||
(label) test_16u::@10
|
||||
@ -147,18 +147,18 @@
|
||||
(label) test_16u::@9
|
||||
(label) test_16u::@return
|
||||
(word) test_16u::dividend
|
||||
(word) test_16u::dividend#0 dividend zp ZP_WORD:13 4.714285714285714
|
||||
(word) test_16u::dividend#0 dividend zp ZP_WORD:5 4.714285714285714
|
||||
(word[]) test_16u::dividends
|
||||
(const word[]) test_16u::dividends#0 dividends = { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 }
|
||||
(word) test_16u::divisor
|
||||
(word) test_16u::divisor#0 divisor zp ZP_WORD:15 3.0
|
||||
(word) test_16u::divisor#0 divisor zp ZP_WORD:22 3.0
|
||||
(word[]) test_16u::divisors
|
||||
(const word[]) test_16u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 }
|
||||
(byte) test_16u::i
|
||||
(byte) test_16u::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) test_16u::i#10 i zp ZP_BYTE:2 1.76
|
||||
(word) test_16u::res
|
||||
(word) test_16u::res#0 res zp ZP_WORD:17 2.2
|
||||
(word) test_16u::res#0 res zp ZP_WORD:15 2.2
|
||||
(const string) test_16u::str str = (string) " / @"
|
||||
(const string) test_16u::str1 str1 = (string) " = @"
|
||||
(const string) test_16u::str2 str2 = (string) " @"
|
||||
@ -176,44 +176,48 @@
|
||||
(label) test_8u::@9
|
||||
(label) test_8u::@return
|
||||
(byte) test_8u::dividend
|
||||
(byte) test_8u::dividend#0 dividend zp ZP_BYTE:19 4.714285714285714
|
||||
(byte) test_8u::dividend#0 dividend zp ZP_BYTE:24 4.714285714285714
|
||||
(byte[]) test_8u::dividends
|
||||
(const byte[]) test_8u::dividends#0 dividends = { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 }
|
||||
(byte) test_8u::divisor
|
||||
(byte) test_8u::divisor#0 divisor zp ZP_BYTE:20 3.3000000000000003
|
||||
(byte) test_8u::divisor#0 divisor zp ZP_BYTE:25 3.3000000000000003
|
||||
(byte[]) test_8u::divisors
|
||||
(const byte[]) test_8u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 }
|
||||
(byte) test_8u::i
|
||||
(byte) test_8u::i#1 i zp ZP_BYTE:2 11.0
|
||||
(byte) test_8u::i#10 i zp ZP_BYTE:2 1.8333333333333333
|
||||
(byte) test_8u::i#1 i zp ZP_BYTE:17 11.0
|
||||
(byte) test_8u::i#10 i zp ZP_BYTE:17 1.8333333333333333
|
||||
(byte*) test_8u::rem
|
||||
(const byte*) test_8u::rem#0 rem = ((byte*))(byte/word/signed word/dword/signed dword) 255
|
||||
(byte) test_8u::res
|
||||
(byte) test_8u::res#0 res zp ZP_BYTE:11 2.4444444444444446
|
||||
(byte) test_8u::res#0 res zp ZP_BYTE:26 2.4444444444444446
|
||||
(const string) test_8u::str str = (string) " / @"
|
||||
(const string) test_8u::str1 str1 = (string) " = @"
|
||||
(const string) test_8u::str2 str2 = (string) " @"
|
||||
|
||||
zp ZP_BYTE:2 [ test_16u::i#10 test_16u::i#1 test_8u::i#10 test_8u::i#1 ]
|
||||
zp ZP_WORD:3 [ line_cursor#11 line_cursor#22 line_cursor#1 line_cursor#25 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 print_str::str#7 print_str::str#9 print_str::str#0 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16u::return#0 ]
|
||||
zp ZP_BYTE:2 [ test_16u::i#10 test_16u::i#1 ]
|
||||
zp ZP_WORD:3 [ line_cursor#11 line_cursor#22 line_cursor#1 line_cursor#25 ]
|
||||
zp ZP_WORD:5 [ print_word::w#4 print_word::w#0 print_word::w#1 print_word::w#2 print_word::w#3 test_16u::dividend#0 ]
|
||||
reg byte x [ print_byte::b#6 print_byte::b#0 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 ]
|
||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
zp ZP_WORD:7 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 ]
|
||||
zp ZP_WORD:9 [ div16u::rem#4 rem16u#16 div16u::rem#8 div16u::rem#5 div16u::rem#1 div16u::rem#2 div16u::rem#3 ]
|
||||
zp ZP_WORD:7 [ char_cursor#45 char_cursor#72 char_cursor#71 char_cursor#84 char_cursor#2 char_cursor#11 char_cursor#75 char_cursor#1 char_cursor#98 ]
|
||||
zp ZP_WORD:9 [ print_str::str#7 print_str::str#9 print_str::str#0 ]
|
||||
zp ZP_WORD:11 [ div16u::rem#4 rem16u#16 div16u::rem#8 div16u::rem#5 div16u::rem#1 div16u::rem#2 div16u::rem#3 ]
|
||||
zp ZP_WORD:13 [ div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 ]
|
||||
zp ZP_WORD:15 [ div16u::quotient#3 div16u::return#1 div16u::quotient#1 div16u::quotient#2 div16u::return#0 test_16u::res#0 ]
|
||||
reg byte x [ div16u::i#2 div16u::i#1 ]
|
||||
zp ZP_BYTE:17 [ test_8u::i#10 test_8u::i#1 ]
|
||||
reg byte y [ div8u::rem#4 div8u::rem#8 div8u::rem#5 div8u::rem#1 div8u::rem#2 div8u::rem#3 ]
|
||||
zp ZP_BYTE:11 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 test_8u::res#0 ]
|
||||
zp ZP_BYTE:12 [ div8u::quotient#3 div8u::return#1 div8u::quotient#1 div8u::quotient#2 ]
|
||||
zp ZP_BYTE:18 [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ]
|
||||
zp ZP_BYTE:19 [ div8u::quotient#3 div8u::return#1 div8u::quotient#1 div8u::quotient#2 ]
|
||||
reg byte x [ div8u::i#2 div8u::i#1 ]
|
||||
zp ZP_WORD:13 [ test_16u::dividend#0 ]
|
||||
zp ZP_WORD:15 [ test_16u::divisor#0 div16u::divisor#0 ]
|
||||
zp ZP_WORD:17 [ test_16u::res#0 ]
|
||||
zp ZP_WORD:20 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:22 [ test_16u::divisor#0 div16u::divisor#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ div16u::$1 ]
|
||||
reg byte a [ div16u::$2 ]
|
||||
zp ZP_BYTE:19 [ test_8u::dividend#0 ]
|
||||
zp ZP_BYTE:20 [ test_8u::divisor#0 div8u::divisor#0 ]
|
||||
zp ZP_BYTE:24 [ test_8u::dividend#0 ]
|
||||
zp ZP_BYTE:25 [ test_8u::divisor#0 div8u::divisor#0 ]
|
||||
reg byte a [ div8u::return#0 ]
|
||||
zp ZP_BYTE:26 [ test_8u::res#0 ]
|
||||
reg byte a [ div8u::$1 ]
|
||||
|
@ -55,8 +55,8 @@ plot: {
|
||||
rts
|
||||
}
|
||||
flip: {
|
||||
.label c = 5
|
||||
.label r = 4
|
||||
.label c = 6
|
||||
.label r = 5
|
||||
lda #$10
|
||||
sta r
|
||||
ldx #$f
|
||||
|
@ -1523,10 +1523,10 @@ Attempting to uplift remaining variables inzp ZP_BYTE:5 [ plot::y#4 plot::y#1 ]
|
||||
Uplifting [plot] best 119922 combination zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:8 [ flip::r#4 flip::r#1 ]
|
||||
Uplifting [flip] best 119922 combination zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] ] with [ zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] ]
|
||||
Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ plot::line#4 plot::line#1 ]
|
||||
Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ plot::y#4 plot::y#1 flip::r#4 flip::r#1 ]
|
||||
Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:5 [ flip::c#2 flip::c#1 ]
|
||||
Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ plot::y#4 plot::y#1 ]
|
||||
Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:5 [ flip::r#4 flip::r#1 ]
|
||||
Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:6 [ flip::c#2 flip::c#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -1693,8 +1693,8 @@ plot: {
|
||||
}
|
||||
//SEG63 flip
|
||||
flip: {
|
||||
.label c = 5
|
||||
.label r = 4
|
||||
.label c = 6
|
||||
.label r = 5
|
||||
//SEG64 [29] phi from flip to flip::@1 [phi:flip->flip::@1]
|
||||
b1_from_flip:
|
||||
//SEG65 [29] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip->flip::@1#0] -- vbuz1=vbuc1
|
||||
@ -1914,8 +1914,8 @@ FINAL SYMBOL TABLE
|
||||
(label) flip::@4
|
||||
(label) flip::@return
|
||||
(byte) flip::c
|
||||
(byte) flip::c#1 c zp ZP_BYTE:5 1501.5
|
||||
(byte) flip::c#2 c zp ZP_BYTE:5 500.5
|
||||
(byte) flip::c#1 c zp ZP_BYTE:6 1501.5
|
||||
(byte) flip::c#2 c zp ZP_BYTE:6 500.5
|
||||
(byte) flip::dstIdx
|
||||
(byte) flip::dstIdx#1 reg byte x 701.0
|
||||
(byte) flip::dstIdx#2 reg byte x 67.33333333333333
|
||||
@ -1925,8 +1925,8 @@ FINAL SYMBOL TABLE
|
||||
(byte) flip::i#1 reg byte x 151.5
|
||||
(byte) flip::i#2 reg byte x 202.0
|
||||
(byte) flip::r
|
||||
(byte) flip::r#1 r zp ZP_BYTE:4 151.5
|
||||
(byte) flip::r#4 r zp ZP_BYTE:4 25.25
|
||||
(byte) flip::r#1 r zp ZP_BYTE:5 151.5
|
||||
(byte) flip::r#4 r zp ZP_BYTE:5 25.25
|
||||
(byte) flip::srcIdx
|
||||
(byte) flip::srcIdx#1 reg byte y 300.42857142857144
|
||||
(byte) flip::srcIdx#2 reg byte y 1552.0
|
||||
@ -1969,12 +1969,13 @@ FINAL SYMBOL TABLE
|
||||
|
||||
reg byte x [ main::c#4 main::c#1 ]
|
||||
zp ZP_WORD:2 [ plot::line#4 plot::line#1 ]
|
||||
zp ZP_BYTE:4 [ plot::y#4 plot::y#1 flip::r#4 flip::r#1 ]
|
||||
zp ZP_BYTE:4 [ plot::y#4 plot::y#1 ]
|
||||
reg byte x [ plot::i#2 plot::i#3 plot::i#1 ]
|
||||
reg byte y [ plot::x#2 plot::x#1 ]
|
||||
zp ZP_BYTE:5 [ flip::r#4 flip::r#1 ]
|
||||
reg byte y [ flip::srcIdx#2 flip::srcIdx#3 flip::srcIdx#1 ]
|
||||
reg byte x [ flip::dstIdx#3 flip::dstIdx#5 flip::dstIdx#2 flip::dstIdx#1 ]
|
||||
zp ZP_BYTE:5 [ flip::c#2 flip::c#1 ]
|
||||
zp ZP_BYTE:6 [ flip::c#2 flip::c#1 ]
|
||||
reg byte x [ flip::i#2 flip::i#1 ]
|
||||
reg byte x [ prepare::i#2 prepare::i#1 ]
|
||||
|
||||
@ -2103,8 +2104,8 @@ plot: {
|
||||
}
|
||||
//SEG63 flip
|
||||
flip: {
|
||||
.label c = 5
|
||||
.label r = 4
|
||||
.label c = 6
|
||||
.label r = 5
|
||||
//SEG64 [29] phi from flip to flip::@1 [phi:flip->flip::@1]
|
||||
//SEG65 [29] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip->flip::@1#0] -- vbuz1=vbuc1
|
||||
lda #$10
|
||||
|
@ -16,8 +16,8 @@
|
||||
(label) flip::@4
|
||||
(label) flip::@return
|
||||
(byte) flip::c
|
||||
(byte) flip::c#1 c zp ZP_BYTE:5 1501.5
|
||||
(byte) flip::c#2 c zp ZP_BYTE:5 500.5
|
||||
(byte) flip::c#1 c zp ZP_BYTE:6 1501.5
|
||||
(byte) flip::c#2 c zp ZP_BYTE:6 500.5
|
||||
(byte) flip::dstIdx
|
||||
(byte) flip::dstIdx#1 reg byte x 701.0
|
||||
(byte) flip::dstIdx#2 reg byte x 67.33333333333333
|
||||
@ -27,8 +27,8 @@
|
||||
(byte) flip::i#1 reg byte x 151.5
|
||||
(byte) flip::i#2 reg byte x 202.0
|
||||
(byte) flip::r
|
||||
(byte) flip::r#1 r zp ZP_BYTE:4 151.5
|
||||
(byte) flip::r#4 r zp ZP_BYTE:4 25.25
|
||||
(byte) flip::r#1 r zp ZP_BYTE:5 151.5
|
||||
(byte) flip::r#4 r zp ZP_BYTE:5 25.25
|
||||
(byte) flip::srcIdx
|
||||
(byte) flip::srcIdx#1 reg byte y 300.42857142857144
|
||||
(byte) flip::srcIdx#2 reg byte y 1552.0
|
||||
@ -71,11 +71,12 @@
|
||||
|
||||
reg byte x [ main::c#4 main::c#1 ]
|
||||
zp ZP_WORD:2 [ plot::line#4 plot::line#1 ]
|
||||
zp ZP_BYTE:4 [ plot::y#4 plot::y#1 flip::r#4 flip::r#1 ]
|
||||
zp ZP_BYTE:4 [ plot::y#4 plot::y#1 ]
|
||||
reg byte x [ plot::i#2 plot::i#3 plot::i#1 ]
|
||||
reg byte y [ plot::x#2 plot::x#1 ]
|
||||
zp ZP_BYTE:5 [ flip::r#4 flip::r#1 ]
|
||||
reg byte y [ flip::srcIdx#2 flip::srcIdx#3 flip::srcIdx#1 ]
|
||||
reg byte x [ flip::dstIdx#3 flip::dstIdx#5 flip::dstIdx#2 flip::dstIdx#1 ]
|
||||
zp ZP_BYTE:5 [ flip::c#2 flip::c#1 ]
|
||||
zp ZP_BYTE:6 [ flip::c#2 flip::c#1 ]
|
||||
reg byte x [ flip::i#2 flip::i#1 ]
|
||||
reg byte x [ prepare::i#2 prepare::i#1 ]
|
||||
|
@ -9,9 +9,9 @@
|
||||
jsr main
|
||||
main: {
|
||||
.label _1 = 8
|
||||
.label _11 = 8
|
||||
.label _21 = 8
|
||||
.label _30 = 8
|
||||
.label _11 = 9
|
||||
.label _21 = $a
|
||||
.label _30 = $b
|
||||
.label chargen1 = 6
|
||||
.label charset4 = 4
|
||||
.label chargen = 2
|
||||
|
@ -1820,11 +1820,11 @@ Attempting to uplift remaining variables inzp ZP_BYTE:20 [ main::$11 ]
|
||||
Uplifting [main] best 3563 combination zp ZP_BYTE:20 [ main::$11 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:27 [ main::$21 ]
|
||||
Uplifting [main] best 3563 combination zp ZP_BYTE:27 [ main::$21 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:13 [ main::$1 ] ] with [ zp ZP_BYTE:20 [ main::$11 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:13 [ main::$1 main::$11 ] ] with [ zp ZP_BYTE:27 [ main::$21 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:13 [ main::$1 main::$11 main::$21 ] ] with [ zp ZP_BYTE:33 [ main::$30 ] ]
|
||||
Allocated (was zp ZP_WORD:11) zp ZP_WORD:6 [ main::chargen1#0 ]
|
||||
Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:8 [ main::$1 main::$11 main::$21 main::$30 ]
|
||||
Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:8 [ main::$1 ]
|
||||
Allocated (was zp ZP_BYTE:20) zp ZP_BYTE:9 [ main::$11 ]
|
||||
Allocated (was zp ZP_BYTE:27) zp ZP_BYTE:10 [ main::$21 ]
|
||||
Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:11 [ main::$30 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -1854,9 +1854,9 @@ bend:
|
||||
//SEG8 main
|
||||
main: {
|
||||
.label _1 = 8
|
||||
.label _11 = 8
|
||||
.label _21 = 8
|
||||
.label _30 = 8
|
||||
.label _11 = 9
|
||||
.label _21 = $a
|
||||
.label _30 = $b
|
||||
.label chargen1 = 6
|
||||
.label charset4 = 4
|
||||
.label chargen = 2
|
||||
@ -2192,20 +2192,20 @@ FINAL SYMBOL TABLE
|
||||
(const byte[]) bits_count#0 bits_count = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 }
|
||||
(void()) main()
|
||||
(byte~) main::$1 $1 zp ZP_BYTE:8 7.333333333333333
|
||||
(byte~) main::$11 $11 zp ZP_BYTE:8 7.333333333333333
|
||||
(byte~) main::$11 $11 zp ZP_BYTE:9 7.333333333333333
|
||||
(byte~) main::$12 reg byte a 22.0
|
||||
(byte~) main::$13 reg byte a 22.0
|
||||
(byte~) main::$14 reg byte a 22.0
|
||||
(byte~) main::$15 reg byte a 22.0
|
||||
(byte~) main::$2 reg byte a 22.0
|
||||
(byte~) main::$20 reg byte a 22.0
|
||||
(byte~) main::$21 $21 zp ZP_BYTE:8 7.333333333333333
|
||||
(byte~) main::$21 $21 zp ZP_BYTE:10 7.333333333333333
|
||||
(byte~) main::$22 reg byte a 22.0
|
||||
(byte~) main::$23 reg byte a 22.0
|
||||
(byte~) main::$24 reg byte a 22.0
|
||||
(byte~) main::$29 reg byte a 22.0
|
||||
(byte~) main::$3 reg byte a 22.0
|
||||
(byte~) main::$30 $30 zp ZP_BYTE:8 11.0
|
||||
(byte~) main::$30 $30 zp ZP_BYTE:11 11.0
|
||||
(byte~) main::$31 reg byte a 22.0
|
||||
(byte~) main::$32 reg byte a 22.0
|
||||
(byte~) main::$4 reg byte a 22.0
|
||||
@ -2261,24 +2261,27 @@ reg byte x [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ]
|
||||
reg byte x [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ]
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_WORD:6 [ main::chargen1#0 ]
|
||||
zp ZP_BYTE:8 [ main::$1 main::$11 main::$21 main::$30 ]
|
||||
zp ZP_BYTE:8 [ main::$1 ]
|
||||
reg byte a [ main::$2 ]
|
||||
reg byte a [ main::$3 ]
|
||||
reg byte a [ main::$4 ]
|
||||
reg byte a [ main::$5 ]
|
||||
reg byte a [ main::$6 ]
|
||||
reg byte a [ main::bits#0 ]
|
||||
zp ZP_BYTE:9 [ main::$11 ]
|
||||
reg byte a [ main::$12 ]
|
||||
reg byte a [ main::$13 ]
|
||||
reg byte a [ main::$14 ]
|
||||
reg byte a [ main::$15 ]
|
||||
reg byte a [ main::bits#1 ]
|
||||
reg byte a [ main::$20 ]
|
||||
zp ZP_BYTE:10 [ main::$21 ]
|
||||
reg byte a [ main::$22 ]
|
||||
reg byte a [ main::$23 ]
|
||||
reg byte a [ main::$24 ]
|
||||
reg byte a [ main::bits#2 ]
|
||||
reg byte a [ main::$29 ]
|
||||
zp ZP_BYTE:11 [ main::$30 ]
|
||||
reg byte a [ main::$31 ]
|
||||
reg byte a [ main::$32 ]
|
||||
reg byte a [ main::bits#3 ]
|
||||
@ -2308,9 +2311,9 @@ Score: 3054
|
||||
//SEG8 main
|
||||
main: {
|
||||
.label _1 = 8
|
||||
.label _11 = 8
|
||||
.label _21 = 8
|
||||
.label _30 = 8
|
||||
.label _11 = 9
|
||||
.label _21 = $a
|
||||
.label _30 = $b
|
||||
.label chargen1 = 6
|
||||
.label charset4 = 4
|
||||
.label chargen = 2
|
||||
|
@ -15,20 +15,20 @@
|
||||
(const byte[]) bits_count#0 bits_count = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 }
|
||||
(void()) main()
|
||||
(byte~) main::$1 $1 zp ZP_BYTE:8 7.333333333333333
|
||||
(byte~) main::$11 $11 zp ZP_BYTE:8 7.333333333333333
|
||||
(byte~) main::$11 $11 zp ZP_BYTE:9 7.333333333333333
|
||||
(byte~) main::$12 reg byte a 22.0
|
||||
(byte~) main::$13 reg byte a 22.0
|
||||
(byte~) main::$14 reg byte a 22.0
|
||||
(byte~) main::$15 reg byte a 22.0
|
||||
(byte~) main::$2 reg byte a 22.0
|
||||
(byte~) main::$20 reg byte a 22.0
|
||||
(byte~) main::$21 $21 zp ZP_BYTE:8 7.333333333333333
|
||||
(byte~) main::$21 $21 zp ZP_BYTE:10 7.333333333333333
|
||||
(byte~) main::$22 reg byte a 22.0
|
||||
(byte~) main::$23 reg byte a 22.0
|
||||
(byte~) main::$24 reg byte a 22.0
|
||||
(byte~) main::$29 reg byte a 22.0
|
||||
(byte~) main::$3 reg byte a 22.0
|
||||
(byte~) main::$30 $30 zp ZP_BYTE:8 11.0
|
||||
(byte~) main::$30 $30 zp ZP_BYTE:11 11.0
|
||||
(byte~) main::$31 reg byte a 22.0
|
||||
(byte~) main::$32 reg byte a 22.0
|
||||
(byte~) main::$4 reg byte a 22.0
|
||||
@ -84,24 +84,27 @@ reg byte x [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ]
|
||||
reg byte x [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ]
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_WORD:6 [ main::chargen1#0 ]
|
||||
zp ZP_BYTE:8 [ main::$1 main::$11 main::$21 main::$30 ]
|
||||
zp ZP_BYTE:8 [ main::$1 ]
|
||||
reg byte a [ main::$2 ]
|
||||
reg byte a [ main::$3 ]
|
||||
reg byte a [ main::$4 ]
|
||||
reg byte a [ main::$5 ]
|
||||
reg byte a [ main::$6 ]
|
||||
reg byte a [ main::bits#0 ]
|
||||
zp ZP_BYTE:9 [ main::$11 ]
|
||||
reg byte a [ main::$12 ]
|
||||
reg byte a [ main::$13 ]
|
||||
reg byte a [ main::$14 ]
|
||||
reg byte a [ main::$15 ]
|
||||
reg byte a [ main::bits#1 ]
|
||||
reg byte a [ main::$20 ]
|
||||
zp ZP_BYTE:10 [ main::$21 ]
|
||||
reg byte a [ main::$22 ]
|
||||
reg byte a [ main::$23 ]
|
||||
reg byte a [ main::$24 ]
|
||||
reg byte a [ main::bits#2 ]
|
||||
reg byte a [ main::$29 ]
|
||||
zp ZP_BYTE:11 [ main::$30 ]
|
||||
reg byte a [ main::$31 ]
|
||||
reg byte a [ main::$32 ]
|
||||
reg byte a [ main::bits#3 ]
|
||||
|
@ -79,7 +79,7 @@ print_str: {
|
||||
jmp b1
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
.label sc = 8
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
|
@ -1237,10 +1237,10 @@ Uplifting [print_str] best 12807 combination zp ZP_WORD:5 [ print_str::str#2 pri
|
||||
Uplifting [print_cls] best 12807 combination zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
Uplifting [main] best 12717 combination reg byte x [ main::i#2 main::i#1 ]
|
||||
Uplifting [print_ln] best 12717 combination
|
||||
Coalescing zero page register [ zp ZP_WORD:3 [ line_cursor#6 line_cursor#13 line_cursor#1 ] ] with [ zp ZP_WORD:9 [ print_cls::sc#2 print_cls::sc#1 ] ]
|
||||
Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ line_cursor#6 line_cursor#13 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ line_cursor#6 line_cursor#13 line_cursor#1 ]
|
||||
Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ]
|
||||
Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ char_cursor#10 char_cursor#19 char_cursor#25 char_cursor#1 ]
|
||||
Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -1415,7 +1415,7 @@ print_str: {
|
||||
}
|
||||
//SEG58 print_cls
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
.label sc = 8
|
||||
//SEG59 [28] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
b1_from_print_cls:
|
||||
//SEG60 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
@ -1529,8 +1529,8 @@ FINAL SYMBOL TABLE
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:8 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:8 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -1545,9 +1545,10 @@ FINAL SYMBOL TABLE
|
||||
(const string) txt#0 txt = (string) "camelot@"
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_WORD:2 [ line_cursor#6 line_cursor#13 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:2 [ line_cursor#6 line_cursor#13 line_cursor#1 ]
|
||||
zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ]
|
||||
zp ZP_WORD:6 [ char_cursor#10 char_cursor#19 char_cursor#25 char_cursor#1 ]
|
||||
zp ZP_WORD:8 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
@ -1693,7 +1694,7 @@ print_str: {
|
||||
}
|
||||
//SEG58 print_cls
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
.label sc = 8
|
||||
//SEG59 [28] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
//SEG60 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
lda #<$400
|
||||
|
@ -23,8 +23,8 @@
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:8 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:8 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -39,6 +39,7 @@
|
||||
(const string) txt#0 txt = (string) "camelot@"
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_WORD:2 [ line_cursor#6 line_cursor#13 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:2 [ line_cursor#6 line_cursor#13 line_cursor#1 ]
|
||||
zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ]
|
||||
zp ZP_WORD:6 [ char_cursor#10 char_cursor#19 char_cursor#25 char_cursor#1 ]
|
||||
zp ZP_WORD:8 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
@ -7,8 +7,8 @@ main: {
|
||||
.label BGCOL = $d020
|
||||
.label sc2 = screen+$51
|
||||
.label _2 = 2
|
||||
.label _9 = 2
|
||||
.label _11 = 4
|
||||
.label _9 = 4
|
||||
.label _11 = 6
|
||||
ldx #0
|
||||
b1:
|
||||
txa
|
||||
|
@ -644,9 +644,9 @@ Uplift Scope []
|
||||
|
||||
Uplifting [main] best 1165 combination reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] zp ZP_WORD:4 [ main::$2 ] zp ZP_WORD:8 [ main::$11 ] zp ZP_WORD:6 [ main::$9 ]
|
||||
Uplifting [] best 1165 combination
|
||||
Coalescing zero page register [ zp ZP_WORD:4 [ main::$2 ] ] with [ zp ZP_WORD:6 [ main::$9 ] ]
|
||||
Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ main::$2 main::$9 ]
|
||||
Allocated (was zp ZP_WORD:8) zp ZP_WORD:4 [ main::$11 ]
|
||||
Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ main::$2 ]
|
||||
Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ main::$9 ]
|
||||
Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ main::$11 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -676,8 +676,8 @@ main: {
|
||||
.label BGCOL = $d020
|
||||
.label sc2 = screen+$51
|
||||
.label _2 = 2
|
||||
.label _9 = 2
|
||||
.label _11 = 4
|
||||
.label _9 = 4
|
||||
.label _11 = 6
|
||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||
b1_from_main:
|
||||
//SEG11 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
||||
@ -805,9 +805,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(byte*~) main::$11 $11 zp ZP_WORD:4 22.0
|
||||
(byte*~) main::$11 $11 zp ZP_WORD:6 22.0
|
||||
(byte*~) main::$2 $2 zp ZP_WORD:2 22.0
|
||||
(byte*~) main::$9 $9 zp ZP_WORD:2 11.0
|
||||
(byte*~) main::$9 $9 zp ZP_WORD:4 11.0
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -828,8 +828,9 @@ FINAL SYMBOL TABLE
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::j#2 main::j#1 ]
|
||||
zp ZP_WORD:2 [ main::$2 main::$9 ]
|
||||
zp ZP_WORD:4 [ main::$11 ]
|
||||
zp ZP_WORD:2 [ main::$2 ]
|
||||
zp ZP_WORD:4 [ main::$9 ]
|
||||
zp ZP_WORD:6 [ main::$11 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
@ -854,8 +855,8 @@ main: {
|
||||
.label BGCOL = $d020
|
||||
.label sc2 = screen+$51
|
||||
.label _2 = 2
|
||||
.label _9 = 2
|
||||
.label _11 = 4
|
||||
.label _9 = 4
|
||||
.label _11 = 6
|
||||
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
|
||||
//SEG11 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
|
@ -2,9 +2,9 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(byte*~) main::$11 $11 zp ZP_WORD:4 22.0
|
||||
(byte*~) main::$11 $11 zp ZP_WORD:6 22.0
|
||||
(byte*~) main::$2 $2 zp ZP_WORD:2 22.0
|
||||
(byte*~) main::$9 $9 zp ZP_WORD:2 11.0
|
||||
(byte*~) main::$9 $9 zp ZP_WORD:4 11.0
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -25,5 +25,6 @@
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::j#2 main::j#1 ]
|
||||
zp ZP_WORD:2 [ main::$2 main::$9 ]
|
||||
zp ZP_WORD:4 [ main::$11 ]
|
||||
zp ZP_WORD:2 [ main::$2 ]
|
||||
zp ZP_WORD:4 [ main::$9 ]
|
||||
zp ZP_WORD:6 [ main::$11 ]
|
||||
|
@ -33,7 +33,7 @@ lvaluevar: {
|
||||
jmp b1
|
||||
}
|
||||
rvaluevar: {
|
||||
.label screen = 2
|
||||
.label screen = 4
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
|
@ -1089,8 +1089,8 @@ Uplifting [rvalue] best 1530 combination reg byte x [ rvalue::i#2 rvalue::i#1 ]
|
||||
Uplifting [lvalue] best 1410 combination reg byte x [ lvalue::i#2 lvalue::i#1 ]
|
||||
Uplifting [main] best 1410 combination
|
||||
Uplifting [] best 1410 combination
|
||||
Coalescing zero page register [ zp ZP_WORD:3 [ lvaluevar::screen#2 lvaluevar::screen#1 ] ] with [ zp ZP_WORD:6 [ rvaluevar::screen#2 rvaluevar::screen#1 ] ]
|
||||
Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 rvaluevar::screen#2 rvaluevar::screen#1 ]
|
||||
Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 ]
|
||||
Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ rvaluevar::screen#2 rvaluevar::screen#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -1196,7 +1196,7 @@ lvaluevar: {
|
||||
}
|
||||
//SEG40 rvaluevar
|
||||
rvaluevar: {
|
||||
.label screen = 2
|
||||
.label screen = 4
|
||||
//SEG41 [21] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
b1_from_rvaluevar:
|
||||
//SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1
|
||||
@ -1390,12 +1390,13 @@ FINAL SYMBOL TABLE
|
||||
(byte) rvaluevar::i#1 reg byte x 22.0
|
||||
(byte) rvaluevar::i#2 reg byte x 11.0
|
||||
(byte*) rvaluevar::screen
|
||||
(byte*) rvaluevar::screen#1 screen zp ZP_WORD:2 11.0
|
||||
(byte*) rvaluevar::screen#2 screen zp ZP_WORD:2 11.0
|
||||
(byte*) rvaluevar::screen#1 screen zp ZP_WORD:4 11.0
|
||||
(byte*) rvaluevar::screen#2 screen zp ZP_WORD:4 11.0
|
||||
|
||||
reg byte x [ lvaluevar::i#2 lvaluevar::i#1 ]
|
||||
zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 rvaluevar::screen#2 rvaluevar::screen#1 ]
|
||||
zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 ]
|
||||
reg byte x [ rvaluevar::i#2 rvaluevar::i#1 ]
|
||||
zp ZP_WORD:4 [ rvaluevar::screen#2 rvaluevar::screen#1 ]
|
||||
reg byte x [ rvalue::i#2 rvalue::i#1 ]
|
||||
reg byte x [ lvalue::i#2 lvalue::i#1 ]
|
||||
|
||||
@ -1479,7 +1480,7 @@ lvaluevar: {
|
||||
}
|
||||
//SEG40 rvaluevar
|
||||
rvaluevar: {
|
||||
.label screen = 2
|
||||
.label screen = 4
|
||||
//SEG41 [21] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
//SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1
|
||||
lda #<$400
|
||||
|
@ -44,11 +44,12 @@
|
||||
(byte) rvaluevar::i#1 reg byte x 22.0
|
||||
(byte) rvaluevar::i#2 reg byte x 11.0
|
||||
(byte*) rvaluevar::screen
|
||||
(byte*) rvaluevar::screen#1 screen zp ZP_WORD:2 11.0
|
||||
(byte*) rvaluevar::screen#2 screen zp ZP_WORD:2 11.0
|
||||
(byte*) rvaluevar::screen#1 screen zp ZP_WORD:4 11.0
|
||||
(byte*) rvaluevar::screen#2 screen zp ZP_WORD:4 11.0
|
||||
|
||||
reg byte x [ lvaluevar::i#2 lvaluevar::i#1 ]
|
||||
zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 rvaluevar::screen#2 rvaluevar::screen#1 ]
|
||||
zp ZP_WORD:2 [ lvaluevar::screen#2 lvaluevar::screen#1 ]
|
||||
reg byte x [ rvaluevar::i#2 rvaluevar::i#1 ]
|
||||
zp ZP_WORD:4 [ rvaluevar::screen#2 rvaluevar::screen#1 ]
|
||||
reg byte x [ rvalue::i#2 rvalue::i#1 ]
|
||||
reg byte x [ lvalue::i#2 lvalue::i#1 ]
|
||||
|
@ -58,7 +58,7 @@ main: {
|
||||
}
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 2
|
||||
.label cursor = 4
|
||||
lda #<SCREEN
|
||||
sta cursor
|
||||
lda #>SCREEN
|
||||
|
@ -1266,8 +1266,8 @@ Uplift Scope []
|
||||
Uplifting [main] best 8620 combination reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::c#2 main::c#0 main::c#1 ] zp ZP_WORD:5 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ] reg byte x [ main::scroll#7 main::scroll#10 main::scroll#1 ]
|
||||
Uplifting [fillscreen] best 8620 combination zp ZP_WORD:7 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
Uplifting [] best 8620 combination
|
||||
Coalescing zero page register [ zp ZP_WORD:5 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ] ] with [ zp ZP_WORD:7 [ fillscreen::cursor#2 fillscreen::cursor#1 ] ]
|
||||
Allocated (was zp ZP_WORD:5) zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
Allocated (was zp ZP_WORD:5) zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ]
|
||||
Allocated (was zp ZP_WORD:7) zp ZP_WORD:4 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -1429,7 +1429,7 @@ main: {
|
||||
//SEG61 fillscreen
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 2
|
||||
.label cursor = 4
|
||||
//SEG62 [28] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
|
||||
b1_from_fillscreen:
|
||||
//SEG63 [28] phi (byte*) fillscreen::cursor#2 = (const byte*) SCREEN#0 [phi:fillscreen->fillscreen::@1#0] -- pbuz1=pbuc1
|
||||
@ -1550,8 +1550,8 @@ FINAL SYMBOL TABLE
|
||||
(label) fillscreen::@1
|
||||
(label) fillscreen::@return
|
||||
(byte*) fillscreen::cursor
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:2 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:2 16.5
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:4 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:4 16.5
|
||||
(byte) fillscreen::fill
|
||||
(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32
|
||||
(byte*) fillscreen::screen
|
||||
@ -1587,7 +1587,8 @@ FINAL SYMBOL TABLE
|
||||
reg byte x [ main::scroll#7 main::scroll#10 main::scroll#1 ]
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::c#2 main::c#0 main::c#1 ]
|
||||
zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ]
|
||||
zp ZP_WORD:4 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
@ -1715,7 +1716,7 @@ main: {
|
||||
//SEG61 fillscreen
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 2
|
||||
.label cursor = 4
|
||||
//SEG62 [28] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
|
||||
//SEG63 [28] phi (byte*) fillscreen::cursor#2 = (const byte*) SCREEN#0 [phi:fillscreen->fillscreen::@1#0] -- pbuz1=pbuc1
|
||||
lda #<SCREEN
|
||||
|
@ -15,8 +15,8 @@
|
||||
(label) fillscreen::@1
|
||||
(label) fillscreen::@return
|
||||
(byte*) fillscreen::cursor
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:2 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:2 16.5
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:4 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:4 16.5
|
||||
(byte) fillscreen::fill
|
||||
(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32
|
||||
(byte*) fillscreen::screen
|
||||
@ -52,4 +52,5 @@
|
||||
reg byte x [ main::scroll#7 main::scroll#10 main::scroll#1 ]
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::c#2 main::c#0 main::c#1 ]
|
||||
zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ]
|
||||
zp ZP_WORD:4 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
|
@ -155,7 +155,7 @@ next_char: {
|
||||
}
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 3
|
||||
.label cursor = 9
|
||||
lda #<SCREEN
|
||||
sta cursor
|
||||
lda #>SCREEN
|
||||
|
@ -3159,13 +3159,13 @@ Uplifting [main] best 24678 combination
|
||||
Uplifting [scroll_soft] best 24678 combination
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||
Uplifting [] best 24678 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 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 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] ] 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 scroll_bit::$4 ] ] with [ zp ZP_WORD:18 [ scroll_bit::c#0 ] ]
|
||||
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 scroll_bit::c#0 scroll_bit::$4 ]
|
||||
Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 scroll_bit::c#0 ]
|
||||
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:14) zp ZP_WORD:9 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -3539,7 +3539,7 @@ next_char: {
|
||||
//SEG140 fillscreen
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 3
|
||||
.label cursor = 9
|
||||
//SEG141 [67] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
|
||||
b1_from_fillscreen:
|
||||
//SEG142 [67] phi (byte*) fillscreen::cursor#2 = (const byte*) SCREEN#0 [phi:fillscreen->fillscreen::@1#0] -- pbuz1=pbuc1
|
||||
@ -3711,8 +3711,8 @@ FINAL SYMBOL TABLE
|
||||
(label) fillscreen::@1
|
||||
(label) fillscreen::@return
|
||||
(byte*) fillscreen::cursor
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:3 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:3 16.5
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:9 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:9 16.5
|
||||
(byte) fillscreen::fill
|
||||
(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32
|
||||
(byte*) fillscreen::screen
|
||||
@ -3780,13 +3780,14 @@ FINAL SYMBOL TABLE
|
||||
|
||||
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_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 ]
|
||||
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 scroll_bit::c#0 ]
|
||||
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
||||
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||
reg byte a [ scroll_bit::b#2 ]
|
||||
reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
|
||||
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 ]
|
||||
zp ZP_WORD:9 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
reg byte a [ next_char::return#0 ]
|
||||
reg byte a [ scroll_bit::$3 ]
|
||||
reg byte a [ scroll_bit::bits#0 ]
|
||||
@ -4096,7 +4097,7 @@ next_char: {
|
||||
//SEG140 fillscreen
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 3
|
||||
.label cursor = 9
|
||||
//SEG141 [67] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
|
||||
//SEG142 [67] phi (byte*) fillscreen::cursor#2 = (const byte*) SCREEN#0 [phi:fillscreen->fillscreen::@1#0] -- pbuz1=pbuc1
|
||||
lda #<SCREEN
|
||||
|
@ -29,8 +29,8 @@
|
||||
(label) fillscreen::@1
|
||||
(label) fillscreen::@return
|
||||
(byte*) fillscreen::cursor
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:3 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:3 16.5
|
||||
(byte*) fillscreen::cursor#1 cursor zp ZP_WORD:9 16.5
|
||||
(byte*) fillscreen::cursor#2 cursor zp ZP_WORD:9 16.5
|
||||
(byte) fillscreen::fill
|
||||
(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32
|
||||
(byte*) fillscreen::screen
|
||||
@ -98,13 +98,14 @@
|
||||
|
||||
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_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 ]
|
||||
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 scroll_bit::c#0 ]
|
||||
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
||||
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||
reg byte a [ scroll_bit::b#2 ]
|
||||
reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
|
||||
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 ]
|
||||
zp ZP_WORD:9 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
reg byte a [ next_char::return#0 ]
|
||||
reg byte a [ scroll_bit::$3 ]
|
||||
reg byte a [ scroll_bit::bits#0 ]
|
||||
|
@ -50,10 +50,10 @@ main: {
|
||||
jmp b2
|
||||
}
|
||||
anim: {
|
||||
.label _10 = $c
|
||||
.label _12 = $e
|
||||
.label sprite_x = $c
|
||||
.label sprite_y = $e
|
||||
.label _10 = $e
|
||||
.label _12 = $10
|
||||
.label sprite_x = $e
|
||||
.label sprite_y = $10
|
||||
lda ypos+1
|
||||
bpl b1
|
||||
sec
|
||||
@ -171,7 +171,7 @@ anim: {
|
||||
rts
|
||||
}
|
||||
init: {
|
||||
.label sc = 2
|
||||
.label sc = $c
|
||||
lda #1
|
||||
sta SPRITES_ENABLE
|
||||
lda #0
|
||||
|
@ -2005,11 +2005,10 @@ Uplifting [init] best 8154 combination zp ZP_WORD:12 [ init::sc#2 init::sc#1 ] r
|
||||
Uplifting [] best 8154 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 8136 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 8136 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:19 [ anim::$12 ] ] with [ zp ZP_WORD:21 [ anim::sprite_y#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:14 [ anim::$12 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:19) zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -2124,10 +2123,10 @@ main: {
|
||||
}
|
||||
//SEG33 anim
|
||||
anim: {
|
||||
.label _10 = $c
|
||||
.label _12 = $e
|
||||
.label sprite_x = $c
|
||||
.label sprite_y = $e
|
||||
.label _10 = $e
|
||||
.label _12 = $10
|
||||
.label sprite_x = $e
|
||||
.label sprite_y = $10
|
||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word/dword/signed dword) 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
|
||||
bpl b1_from_anim
|
||||
@ -2305,7 +2304,7 @@ anim: {
|
||||
}
|
||||
//SEG75 init
|
||||
init: {
|
||||
.label sc = 2
|
||||
.label sc = $c
|
||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #1
|
||||
sta SPRITES_ENABLE
|
||||
@ -2491,8 +2490,8 @@ FINAL SYMBOL TABLE
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(void()) anim()
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:12 4.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:14 4.0
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:14 4.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:16 4.0
|
||||
(byte~) anim::$14 reg byte a 4.0
|
||||
(byte~) anim::$15 reg byte a 4.0
|
||||
(byte~) anim::$16 reg byte a 4.0
|
||||
@ -2502,9 +2501,9 @@ FINAL SYMBOL TABLE
|
||||
(label) anim::@5
|
||||
(label) anim::@return
|
||||
(signed word) anim::sprite_x
|
||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:12 0.8571428571428571
|
||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:14 0.8571428571428571
|
||||
(signed word) anim::sprite_y
|
||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:14 1.3333333333333333
|
||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:16 1.3333333333333333
|
||||
(signed word) g
|
||||
(const signed word) g#0 g = -(byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(void()) init()
|
||||
@ -2515,8 +2514,8 @@ FINAL SYMBOL TABLE
|
||||
(byte) init::i#1 reg byte x 16.5
|
||||
(byte) init::i#2 reg byte x 16.5
|
||||
(byte*) init::sc
|
||||
(byte*) init::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) init::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte*) init::sc#1 sc zp ZP_WORD:12 16.5
|
||||
(byte*) init::sc#2 sc zp ZP_WORD:12 16.5
|
||||
(void()) main()
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -2545,14 +2544,15 @@ FINAL SYMBOL TABLE
|
||||
(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
|
||||
|
||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 init::sc#2 init::sc#1 ]
|
||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
||||
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:8 [ xpos#9 xpos#12 xpos#10 ]
|
||||
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 ]
|
||||
zp ZP_WORD:12 [ anim::$10 anim::sprite_x#0 ]
|
||||
zp ZP_WORD:14 [ anim::$12 anim::sprite_y#0 ]
|
||||
zp ZP_WORD:14 [ anim::$10 anim::sprite_x#0 ]
|
||||
zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
||||
reg byte a [ anim::$14 ]
|
||||
reg byte a [ anim::$15 ]
|
||||
reg byte a [ anim::$16 ]
|
||||
@ -2647,10 +2647,10 @@ main: {
|
||||
}
|
||||
//SEG33 anim
|
||||
anim: {
|
||||
.label _10 = $c
|
||||
.label _12 = $e
|
||||
.label sprite_x = $c
|
||||
.label sprite_y = $e
|
||||
.label _10 = $e
|
||||
.label _12 = $10
|
||||
.label sprite_x = $e
|
||||
.label sprite_y = $10
|
||||
//SEG34 [12] if((signed word) ypos#13>=(byte/signed byte/word/signed word/dword/signed dword) 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
|
||||
bpl b1
|
||||
@ -2810,7 +2810,7 @@ anim: {
|
||||
}
|
||||
//SEG75 init
|
||||
init: {
|
||||
.label sc = 2
|
||||
.label sc = $c
|
||||
//SEG76 [34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::init:5 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #1
|
||||
sta SPRITES_ENABLE
|
||||
|
@ -26,8 +26,8 @@
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(void()) anim()
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:12 4.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:14 4.0
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:14 4.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:16 4.0
|
||||
(byte~) anim::$14 reg byte a 4.0
|
||||
(byte~) anim::$15 reg byte a 4.0
|
||||
(byte~) anim::$16 reg byte a 4.0
|
||||
@ -37,9 +37,9 @@
|
||||
(label) anim::@5
|
||||
(label) anim::@return
|
||||
(signed word) anim::sprite_x
|
||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:12 0.8571428571428571
|
||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:14 0.8571428571428571
|
||||
(signed word) anim::sprite_y
|
||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:14 1.3333333333333333
|
||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:16 1.3333333333333333
|
||||
(signed word) g
|
||||
(const signed word) g#0 g = -(byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(void()) init()
|
||||
@ -50,8 +50,8 @@
|
||||
(byte) init::i#1 reg byte x 16.5
|
||||
(byte) init::i#2 reg byte x 16.5
|
||||
(byte*) init::sc
|
||||
(byte*) init::sc#1 sc zp ZP_WORD:2 16.5
|
||||
(byte*) init::sc#2 sc zp ZP_WORD:2 16.5
|
||||
(byte*) init::sc#1 sc zp ZP_WORD:12 16.5
|
||||
(byte*) init::sc#2 sc zp ZP_WORD:12 16.5
|
||||
(void()) main()
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -80,14 +80,15 @@
|
||||
(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
|
||||
|
||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 init::sc#2 init::sc#1 ]
|
||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
||||
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:8 [ xpos#9 xpos#12 xpos#10 ]
|
||||
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 ]
|
||||
zp ZP_WORD:12 [ anim::$10 anim::sprite_x#0 ]
|
||||
zp ZP_WORD:14 [ anim::$12 anim::sprite_y#0 ]
|
||||
zp ZP_WORD:14 [ anim::$10 anim::sprite_x#0 ]
|
||||
zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
||||
reg byte a [ anim::$14 ]
|
||||
reg byte a [ anim::$15 ]
|
||||
reg byte a [ anim::$16 ]
|
||||
|
@ -96,7 +96,7 @@ print_ln: {
|
||||
rts
|
||||
}
|
||||
print_word: {
|
||||
.label w = 7
|
||||
.label w = 9
|
||||
lda w+1
|
||||
tax
|
||||
jsr print_byte
|
||||
@ -132,7 +132,7 @@ print_char: {
|
||||
rts
|
||||
}
|
||||
getFAC: {
|
||||
.label return = 7
|
||||
.label return = 9
|
||||
jsr $b1aa
|
||||
sty $fe
|
||||
sta $ff
|
||||
|
@ -3274,11 +3274,11 @@ Uplifting [main] best 6281 combination zp ZP_BYTE:2 [ main::i#10 main::i#1 ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] ] with [ zp ZP_WORD:11 [ mulFACbyMEM::mem#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 ] ] with [ zp ZP_WORD:13 [ setFAC::w#3 setFAC::w#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 ] ] with [ zp ZP_WORD:15 [ setMEMtoFAC::mem#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 ] ] with [ zp ZP_WORD:17 [ getFAC::return#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 getFAC::return#2 ] ] with [ zp ZP_WORD:19 [ print_word::w#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 getFAC::return#2 print_word::w#0 ] ] with [ zp ZP_WORD:23 [ getFAC::return#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:17 [ getFAC::return#2 ] ] with [ zp ZP_WORD:19 [ print_word::w#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:17 [ getFAC::return#2 print_word::w#0 ] ] with [ zp ZP_WORD:23 [ getFAC::return#0 ] ]
|
||||
Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ char_cursor#23 char_cursor#31 char_cursor#32 char_cursor#48 char_cursor#10 ]
|
||||
Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 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 ]
|
||||
Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 ]
|
||||
Allocated (was zp ZP_WORD:17) zp ZP_WORD:9 [ getFAC::return#2 print_word::w#0 getFAC::return#0 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -3457,12 +3457,12 @@ main: {
|
||||
//SEG63 [28] call getFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
jsr getFAC
|
||||
//SEG64 [29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] )
|
||||
// (word) getFAC::return#2 = (word) getFAC::return#0 // register copy zp ZP_WORD:7
|
||||
// (word) getFAC::return#2 = (word) getFAC::return#0 // register copy zp ZP_WORD:9
|
||||
jmp b14
|
||||
//SEG65 main::@14
|
||||
b14:
|
||||
//SEG66 [30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] )
|
||||
// (word) print_word::w#0 = (word) getFAC::return#2 // register copy zp ZP_WORD:7
|
||||
// (word) print_word::w#0 = (word) getFAC::return#2 // register copy zp ZP_WORD:9
|
||||
//SEG67 [31] call print_word param-assignment [ main::i#10 line_cursor#13 char_cursor#10 ] ( main:2 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
jsr print_word
|
||||
//SEG68 [32] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
|
||||
@ -3538,7 +3538,7 @@ print_ln: {
|
||||
}
|
||||
//SEG91 print_word
|
||||
print_word: {
|
||||
.label w = 7
|
||||
.label w = 9
|
||||
//SEG92 [43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 char_cursor#32 print_word::w#0 print_byte::b#0 ] ) -- vbuxx=_hi_vwuz1
|
||||
lda w+1
|
||||
tax
|
||||
@ -3623,7 +3623,7 @@ print_char: {
|
||||
}
|
||||
//SEG126 getFAC
|
||||
getFAC: {
|
||||
.label return = 7
|
||||
.label return = 9
|
||||
//SEG127 asm { jsr$b1aa sty$fe sta$ff }
|
||||
jsr $b1aa
|
||||
sty $fe
|
||||
@ -3936,8 +3936,8 @@ FINAL SYMBOL TABLE
|
||||
(word()) getFAC()
|
||||
(label) getFAC::@return
|
||||
(word) getFAC::return
|
||||
(word) getFAC::return#0 return zp ZP_WORD:7 4.333333333333333
|
||||
(word) getFAC::return#2 return zp ZP_WORD:7 22.0
|
||||
(word) getFAC::return#0 return zp ZP_WORD:9 4.333333333333333
|
||||
(word) getFAC::return#2 return zp ZP_WORD:9 22.0
|
||||
(word) getFAC::w
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 46.42857142857143
|
||||
@ -4011,7 +4011,7 @@ FINAL SYMBOL TABLE
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word) print_word::w#0 w zp ZP_WORD:7 5.0
|
||||
(word) print_word::w#0 w zp ZP_WORD:9 5.0
|
||||
(void()) setFAC((word) setFAC::w)
|
||||
(label) setFAC::@1
|
||||
(label) setFAC::@return
|
||||
@ -4031,7 +4031,8 @@ 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 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:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 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:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 ]
|
||||
zp ZP_WORD:9 [ getFAC::return#2 print_word::w#0 getFAC::return#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ prepareMEM::$0 ]
|
||||
@ -4168,10 +4169,10 @@ main: {
|
||||
//SEG63 [28] call getFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
jsr getFAC
|
||||
//SEG64 [29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] )
|
||||
// (word) getFAC::return#2 = (word) getFAC::return#0 // register copy zp ZP_WORD:7
|
||||
// (word) getFAC::return#2 = (word) getFAC::return#0 // register copy zp ZP_WORD:9
|
||||
//SEG65 main::@14
|
||||
//SEG66 [30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] )
|
||||
// (word) print_word::w#0 = (word) getFAC::return#2 // register copy zp ZP_WORD:7
|
||||
// (word) print_word::w#0 = (word) getFAC::return#2 // register copy zp ZP_WORD:9
|
||||
//SEG67 [31] call print_word param-assignment [ main::i#10 line_cursor#13 char_cursor#10 ] ( main:2 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
jsr print_word
|
||||
//SEG68 [32] phi from main::@14 to main::@15 [phi:main::@14->main::@15]
|
||||
@ -4233,7 +4234,7 @@ print_ln: {
|
||||
}
|
||||
//SEG91 print_word
|
||||
print_word: {
|
||||
.label w = 7
|
||||
.label w = 9
|
||||
//SEG92 [43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 char_cursor#32 print_word::w#0 print_byte::b#0 ] ) -- vbuxx=_hi_vwuz1
|
||||
lda w+1
|
||||
tax
|
||||
@ -4304,7 +4305,7 @@ print_char: {
|
||||
}
|
||||
//SEG126 getFAC
|
||||
getFAC: {
|
||||
.label return = 7
|
||||
.label return = 9
|
||||
//SEG127 asm { jsr$b1aa sty$fe sta$ff }
|
||||
jsr $b1aa
|
||||
sty $fe
|
||||
|
@ -20,8 +20,8 @@
|
||||
(word()) getFAC()
|
||||
(label) getFAC::@return
|
||||
(word) getFAC::return
|
||||
(word) getFAC::return#0 return zp ZP_WORD:7 4.333333333333333
|
||||
(word) getFAC::return#2 return zp ZP_WORD:7 22.0
|
||||
(word) getFAC::return#0 return zp ZP_WORD:9 4.333333333333333
|
||||
(word) getFAC::return#2 return zp ZP_WORD:9 22.0
|
||||
(word) getFAC::w
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 46.42857142857143
|
||||
@ -95,7 +95,7 @@
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word) print_word::w#0 w zp ZP_WORD:7 5.0
|
||||
(word) print_word::w#0 w zp ZP_WORD:9 5.0
|
||||
(void()) setFAC((word) setFAC::w)
|
||||
(label) setFAC::@1
|
||||
(label) setFAC::@return
|
||||
@ -115,7 +115,8 @@ 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 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:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 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:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 ]
|
||||
zp ZP_WORD:9 [ getFAC::return#2 print_word::w#0 getFAC::return#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ prepareMEM::$0 ]
|
||||
|
@ -19,8 +19,8 @@
|
||||
.const sinlen_x = $dd
|
||||
.const sinlen_y = $c5
|
||||
.label sprites = $2000
|
||||
.label progress_idx = 4
|
||||
.label progress_cursor = $a
|
||||
.label progress_idx = $f
|
||||
.label progress_cursor = $10
|
||||
.label sin_idx_x = 2
|
||||
.label sin_idx_y = 3
|
||||
jsr main
|
||||
@ -39,7 +39,7 @@ main: {
|
||||
anim: {
|
||||
.label xidx = 4
|
||||
.label yidx = 6
|
||||
.label x = 8
|
||||
.label x = $21
|
||||
.label x_msb = 5
|
||||
.label j = 7
|
||||
inc BORDERCOL
|
||||
@ -188,11 +188,11 @@ clear_screen: {
|
||||
}
|
||||
gen_sintab: {
|
||||
.label f_2pi = $e2e5
|
||||
.label _23 = $c
|
||||
.label i = 2
|
||||
.label min = 2
|
||||
.label length = 3
|
||||
.label sintab = 8
|
||||
.label _23 = $23
|
||||
.label i = $e
|
||||
.label min = $a
|
||||
.label length = $b
|
||||
.label sintab = $c
|
||||
txa
|
||||
sta setFAC.w
|
||||
lda #0
|
||||
@ -320,7 +320,7 @@ progress_inc: {
|
||||
progress_chars: .byte $20, $65, $74, $75, $61, $f6, $e7, $ea, $e0
|
||||
}
|
||||
getFAC: {
|
||||
.label return = $c
|
||||
.label return = $23
|
||||
jsr $b1aa
|
||||
sty $fe
|
||||
sta $ff
|
||||
@ -331,7 +331,7 @@ getFAC: {
|
||||
rts
|
||||
}
|
||||
addMEMtoFAC: {
|
||||
.label mem = $c
|
||||
.label mem = $12
|
||||
jsr prepareMEM
|
||||
lda $fe
|
||||
ldy $ff
|
||||
@ -339,7 +339,7 @@ addMEMtoFAC: {
|
||||
rts
|
||||
}
|
||||
prepareMEM: {
|
||||
.label mem = $c
|
||||
.label mem = $12
|
||||
lda mem
|
||||
sta memLo
|
||||
lda mem+1
|
||||
@ -347,7 +347,7 @@ prepareMEM: {
|
||||
rts
|
||||
}
|
||||
mulFACbyMEM: {
|
||||
.label mem = $c
|
||||
.label mem = $12
|
||||
jsr prepareMEM
|
||||
lda $fe
|
||||
ldy $ff
|
||||
@ -359,7 +359,7 @@ sinFAC: {
|
||||
rts
|
||||
}
|
||||
divMEMbyFAC: {
|
||||
.label mem = $c
|
||||
.label mem = $12
|
||||
jsr prepareMEM
|
||||
lda $fe
|
||||
ldy $ff
|
||||
@ -367,7 +367,7 @@ divMEMbyFAC: {
|
||||
rts
|
||||
}
|
||||
setFAC: {
|
||||
.label w = $c
|
||||
.label w = $12
|
||||
jsr prepareMEM
|
||||
ldy $fe
|
||||
lda $ff
|
||||
@ -375,7 +375,7 @@ setFAC: {
|
||||
rts
|
||||
}
|
||||
setMEMtoFAC: {
|
||||
.label mem = $c
|
||||
.label mem = $12
|
||||
jsr prepareMEM
|
||||
ldx $fe
|
||||
ldy $ff
|
||||
@ -391,12 +391,12 @@ setARGtoFAC: {
|
||||
rts
|
||||
}
|
||||
progress_init: {
|
||||
.label line = $a
|
||||
.label line = $10
|
||||
rts
|
||||
}
|
||||
gen_sprites: {
|
||||
.label spr = 8
|
||||
.label i = 2
|
||||
.label spr = $15
|
||||
.label i = $14
|
||||
lda #<sprites
|
||||
sta spr
|
||||
lda #>sprites
|
||||
@ -426,15 +426,15 @@ gen_sprites: {
|
||||
cml: .text "camelot"
|
||||
}
|
||||
gen_chargen_sprite: {
|
||||
.label _0 = $c
|
||||
.label _1 = $c
|
||||
.label sprite = $a
|
||||
.label chargen = $c
|
||||
.label bits = 4
|
||||
.label s_gen = 7
|
||||
.label x = 5
|
||||
.label y = 3
|
||||
.label c = 6
|
||||
.label _0 = $25
|
||||
.label _1 = $25
|
||||
.label sprite = $1c
|
||||
.label chargen = $25
|
||||
.label bits = $18
|
||||
.label s_gen = $1b
|
||||
.label x = $19
|
||||
.label y = $17
|
||||
.label c = $1a
|
||||
tya
|
||||
sta _0
|
||||
lda #0
|
||||
@ -526,9 +526,9 @@ gen_chargen_sprite: {
|
||||
}
|
||||
place_sprites: {
|
||||
.label sprites_ptr = SCREEN+$3f8
|
||||
.label spr_id = 2
|
||||
.label spr_x = 3
|
||||
.label col = 4
|
||||
.label spr_id = $1e
|
||||
.label spr_x = $1f
|
||||
.label col = $20
|
||||
lda #$7f
|
||||
sta SPRITES_ENABLE
|
||||
sta SPRITES_EXPAND_X
|
||||
|
File diff suppressed because one or more lines are too long
@ -31,7 +31,7 @@
|
||||
(label) addMEMtoFAC::@1
|
||||
(label) addMEMtoFAC::@return
|
||||
(byte*) addMEMtoFAC::mem
|
||||
(byte*) addMEMtoFAC::mem#2 mem zp ZP_WORD:12 2.0
|
||||
(byte*) addMEMtoFAC::mem#2 mem zp ZP_WORD:18 2.0
|
||||
(void()) anim()
|
||||
(byte~) anim::$2 reg byte a 101.0
|
||||
(byte~) anim::$3 reg byte alu 202.0
|
||||
@ -54,7 +54,7 @@
|
||||
(byte) anim::j2#1 reg byte x 67.33333333333333
|
||||
(byte) anim::j2#2 reg byte x 25.25
|
||||
(word) anim::x
|
||||
(word) anim::x#0 x zp ZP_WORD:8 75.75
|
||||
(word) anim::x#0 x zp ZP_WORD:33 75.75
|
||||
(byte) anim::x_msb
|
||||
(byte) anim::x_msb#1 x_msb zp ZP_BYTE:5 13.6
|
||||
(byte) anim::x_msb#2 x_msb zp ZP_BYTE:5 101.0
|
||||
@ -80,10 +80,10 @@
|
||||
(label) divMEMbyFAC::@1
|
||||
(label) divMEMbyFAC::@return
|
||||
(byte*) divMEMbyFAC::mem
|
||||
(byte*) divMEMbyFAC::mem#2 mem zp ZP_WORD:12 2.0
|
||||
(byte*) divMEMbyFAC::mem#2 mem zp ZP_WORD:18 2.0
|
||||
(void()) gen_chargen_sprite((byte) gen_chargen_sprite::ch , (byte*) gen_chargen_sprite::sprite)
|
||||
(word~) gen_chargen_sprite::$0 $0 zp ZP_WORD:12 4.0
|
||||
(word~) gen_chargen_sprite::$1 $1 zp ZP_WORD:12 4.0
|
||||
(word~) gen_chargen_sprite::$0 $0 zp ZP_WORD:37 4.0
|
||||
(word~) gen_chargen_sprite::$1 $1 zp ZP_WORD:37 4.0
|
||||
(byte~) gen_chargen_sprite::$3 reg byte a 2002.0
|
||||
(byte~) gen_chargen_sprite::$6 reg byte a 20002.0
|
||||
(label) gen_chargen_sprite::@1
|
||||
@ -101,41 +101,41 @@
|
||||
(byte) gen_chargen_sprite::b#1 reg byte x 15001.5
|
||||
(byte) gen_chargen_sprite::b#2 reg byte x 2000.2
|
||||
(byte) gen_chargen_sprite::bits
|
||||
(byte) gen_chargen_sprite::bits#0 bits zp ZP_BYTE:4 202.0
|
||||
(byte) gen_chargen_sprite::bits#1 bits zp ZP_BYTE:4 667.3333333333334
|
||||
(byte) gen_chargen_sprite::bits#2 bits zp ZP_BYTE:4 182.58823529411765
|
||||
(byte) gen_chargen_sprite::bits#0 bits zp ZP_BYTE:24 202.0
|
||||
(byte) gen_chargen_sprite::bits#1 bits zp ZP_BYTE:24 667.3333333333334
|
||||
(byte) gen_chargen_sprite::bits#2 bits zp ZP_BYTE:24 182.58823529411765
|
||||
(byte) gen_chargen_sprite::c
|
||||
(byte) gen_chargen_sprite::c#3 c zp ZP_BYTE:6 769.3076923076923
|
||||
(byte) gen_chargen_sprite::c#3 c zp ZP_BYTE:26 769.3076923076923
|
||||
(byte) gen_chargen_sprite::ch
|
||||
(byte) gen_chargen_sprite::ch#0 reg byte y 6.5
|
||||
(byte*) gen_chargen_sprite::chargen
|
||||
(byte*) gen_chargen_sprite::chargen#0 chargen zp ZP_WORD:12 3.678571428571429
|
||||
(byte*) gen_chargen_sprite::chargen#0 chargen zp ZP_WORD:37 3.678571428571429
|
||||
(byte) gen_chargen_sprite::s_gen
|
||||
(byte) gen_chargen_sprite::s_gen#1 s_gen zp ZP_BYTE:7 10001.0
|
||||
(byte) gen_chargen_sprite::s_gen#3 s_gen zp ZP_BYTE:7 21003.0
|
||||
(byte) gen_chargen_sprite::s_gen#5 s_gen zp ZP_BYTE:7 400.4
|
||||
(byte) gen_chargen_sprite::s_gen#6 s_gen zp ZP_BYTE:7 3500.5
|
||||
(byte) gen_chargen_sprite::s_gen#1 s_gen zp ZP_BYTE:27 10001.0
|
||||
(byte) gen_chargen_sprite::s_gen#3 s_gen zp ZP_BYTE:27 21003.0
|
||||
(byte) gen_chargen_sprite::s_gen#5 s_gen zp ZP_BYTE:27 400.4
|
||||
(byte) gen_chargen_sprite::s_gen#6 s_gen zp ZP_BYTE:27 3500.5
|
||||
(byte) gen_chargen_sprite::s_gen_cnt
|
||||
(byte) gen_chargen_sprite::s_gen_cnt#1 reg byte y 15001.5
|
||||
(byte) gen_chargen_sprite::s_gen_cnt#3 reg byte y 7001.0
|
||||
(byte) gen_chargen_sprite::s_gen_cnt#4 reg byte y 400.4
|
||||
(byte) gen_chargen_sprite::s_gen_cnt#5 reg byte y 3500.5
|
||||
(byte*) gen_chargen_sprite::sprite
|
||||
(byte*) gen_chargen_sprite::sprite#0 sprite zp ZP_WORD:10 2.1666666666666665
|
||||
(byte*) gen_chargen_sprite::sprite#1 sprite zp ZP_WORD:10 20002.0
|
||||
(byte*) gen_chargen_sprite::sprite#10 sprite zp ZP_WORD:10 420.59999999999997
|
||||
(byte*) gen_chargen_sprite::sprite#11 sprite zp ZP_WORD:10 102.0
|
||||
(byte*) gen_chargen_sprite::sprite#2 sprite zp ZP_WORD:10 67.33333333333333
|
||||
(byte*) gen_chargen_sprite::sprite#3 sprite zp ZP_WORD:10 7625.875
|
||||
(byte*) gen_chargen_sprite::sprite#4 sprite zp ZP_WORD:10 5184.166666666666
|
||||
(byte*) gen_chargen_sprite::sprite#0 sprite zp ZP_WORD:28 2.1666666666666665
|
||||
(byte*) gen_chargen_sprite::sprite#1 sprite zp ZP_WORD:28 20002.0
|
||||
(byte*) gen_chargen_sprite::sprite#10 sprite zp ZP_WORD:28 420.59999999999997
|
||||
(byte*) gen_chargen_sprite::sprite#11 sprite zp ZP_WORD:28 102.0
|
||||
(byte*) gen_chargen_sprite::sprite#2 sprite zp ZP_WORD:28 67.33333333333333
|
||||
(byte*) gen_chargen_sprite::sprite#3 sprite zp ZP_WORD:28 7625.875
|
||||
(byte*) gen_chargen_sprite::sprite#4 sprite zp ZP_WORD:28 5184.166666666666
|
||||
(byte) gen_chargen_sprite::x
|
||||
(byte) gen_chargen_sprite::x#1 x zp ZP_BYTE:5 1501.5
|
||||
(byte) gen_chargen_sprite::x#6 x zp ZP_BYTE:5 111.22222222222223
|
||||
(byte) gen_chargen_sprite::x#1 x zp ZP_BYTE:25 1501.5
|
||||
(byte) gen_chargen_sprite::x#6 x zp ZP_BYTE:25 111.22222222222223
|
||||
(byte) gen_chargen_sprite::y
|
||||
(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#1 y zp ZP_BYTE:23 151.5
|
||||
(byte) gen_chargen_sprite::y#2 y zp ZP_BYTE:23 13.173913043478262
|
||||
(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:12 22.0
|
||||
(word~) gen_sintab::$23 $23 zp ZP_WORD:35 22.0
|
||||
(byte~) gen_sintab::$24 reg byte a 22.0
|
||||
(label) gen_sintab::@1
|
||||
(label) gen_sintab::@10
|
||||
@ -168,16 +168,16 @@
|
||||
(byte[]) gen_sintab::f_min
|
||||
(const byte[]) gen_sintab::f_min#0 f_min = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
(byte) gen_sintab::i
|
||||
(byte) gen_sintab::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) gen_sintab::i#10 i zp ZP_BYTE:2 1.8333333333333333
|
||||
(byte) gen_sintab::i#1 i zp ZP_BYTE:14 16.5
|
||||
(byte) gen_sintab::i#10 i zp ZP_BYTE:14 1.8333333333333333
|
||||
(byte) gen_sintab::length
|
||||
(byte) gen_sintab::length#10 length zp ZP_BYTE:3 0.44
|
||||
(byte) gen_sintab::length#10 length zp ZP_BYTE:11 0.44
|
||||
(byte) gen_sintab::max
|
||||
(byte) gen_sintab::max#2 reg byte x 2.0
|
||||
(byte) gen_sintab::min
|
||||
(byte) gen_sintab::min#2 min zp ZP_BYTE:2 0.3333333333333333
|
||||
(byte) gen_sintab::min#2 min zp ZP_BYTE:10 0.3333333333333333
|
||||
(byte*) gen_sintab::sintab
|
||||
(byte*) gen_sintab::sintab#12 sintab zp ZP_WORD:8 0.22
|
||||
(byte*) gen_sintab::sintab#12 sintab zp ZP_WORD:12 0.22
|
||||
(void()) gen_sprites()
|
||||
(label) gen_sprites::@1
|
||||
(label) gen_sprites::@3
|
||||
@ -185,16 +185,16 @@
|
||||
(byte[]) gen_sprites::cml
|
||||
(const string) gen_sprites::cml#0 cml = (string) "camelot"
|
||||
(byte) gen_sprites::i
|
||||
(byte) gen_sprites::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) gen_sprites::i#2 i zp ZP_BYTE:2 6.6000000000000005
|
||||
(byte) gen_sprites::i#1 i zp ZP_BYTE:20 16.5
|
||||
(byte) gen_sprites::i#2 i zp ZP_BYTE:20 6.6000000000000005
|
||||
(byte*) gen_sprites::spr
|
||||
(byte*) gen_sprites::spr#1 spr zp ZP_WORD:8 7.333333333333333
|
||||
(byte*) gen_sprites::spr#2 spr zp ZP_WORD:8 8.25
|
||||
(byte*) gen_sprites::spr#1 spr zp ZP_WORD:21 7.333333333333333
|
||||
(byte*) gen_sprites::spr#2 spr zp ZP_WORD:21 8.25
|
||||
(word()) getFAC()
|
||||
(label) getFAC::@return
|
||||
(word) getFAC::return
|
||||
(word) getFAC::return#0 return zp ZP_WORD:12 4.333333333333333
|
||||
(word) getFAC::return#2 return zp ZP_WORD:12 22.0
|
||||
(word) getFAC::return#0 return zp ZP_WORD:35 4.333333333333333
|
||||
(word) getFAC::return#2 return zp ZP_WORD:35 22.0
|
||||
(word) getFAC::w
|
||||
(void()) init()
|
||||
(label) init::@1
|
||||
@ -222,13 +222,13 @@
|
||||
(label) mulFACbyMEM::@1
|
||||
(label) mulFACbyMEM::@return
|
||||
(byte*) mulFACbyMEM::mem
|
||||
(byte*) mulFACbyMEM::mem#2 mem zp ZP_WORD:12 2.0
|
||||
(byte*) mulFACbyMEM::mem#2 mem zp ZP_WORD:18 2.0
|
||||
(void()) place_sprites()
|
||||
(label) place_sprites::@1
|
||||
(label) place_sprites::@return
|
||||
(byte) place_sprites::col
|
||||
(byte) place_sprites::col#1 col zp ZP_BYTE:4 4.4
|
||||
(byte) place_sprites::col#2 col zp ZP_BYTE:4 4.714285714285714
|
||||
(byte) place_sprites::col#1 col zp ZP_BYTE:32 4.4
|
||||
(byte) place_sprites::col#2 col zp ZP_BYTE:32 4.714285714285714
|
||||
(byte) place_sprites::j
|
||||
(byte) place_sprites::j#1 reg byte y 16.5
|
||||
(byte) place_sprites::j#2 reg byte y 4.4
|
||||
@ -237,11 +237,11 @@
|
||||
(byte) place_sprites::j2#2 reg byte x 7.333333333333333
|
||||
(byte) place_sprites::j2#3 reg byte x 5.5
|
||||
(byte) place_sprites::spr_id
|
||||
(byte) place_sprites::spr_id#1 spr_id zp ZP_BYTE:2 2.2
|
||||
(byte) place_sprites::spr_id#2 spr_id zp ZP_BYTE:2 16.5
|
||||
(byte) place_sprites::spr_id#1 spr_id zp ZP_BYTE:30 2.2
|
||||
(byte) place_sprites::spr_id#2 spr_id zp ZP_BYTE:30 16.5
|
||||
(byte) place_sprites::spr_x
|
||||
(byte) place_sprites::spr_x#1 spr_x zp ZP_BYTE:3 3.6666666666666665
|
||||
(byte) place_sprites::spr_x#2 spr_x zp ZP_BYTE:3 5.5
|
||||
(byte) place_sprites::spr_x#1 spr_x zp ZP_BYTE:31 3.6666666666666665
|
||||
(byte) place_sprites::spr_x#2 spr_x zp ZP_BYTE:31 5.5
|
||||
(byte*) place_sprites::sprites_ptr
|
||||
(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016
|
||||
(void()) prepareMEM((byte*) prepareMEM::mem)
|
||||
@ -249,20 +249,20 @@
|
||||
(byte~) prepareMEM::$1 reg byte a 4.0
|
||||
(label) prepareMEM::@return
|
||||
(byte*) prepareMEM::mem
|
||||
(byte*) prepareMEM::mem#1 mem zp ZP_WORD:12 4.0
|
||||
(byte*) prepareMEM::mem#2 mem zp ZP_WORD:12 4.0
|
||||
(byte*) prepareMEM::mem#3 mem zp ZP_WORD:12 4.0
|
||||
(byte*) prepareMEM::mem#4 mem zp ZP_WORD:12 4.0
|
||||
(byte*) prepareMEM::mem#5 mem zp ZP_WORD:12 4.666666666666666
|
||||
(byte*~) prepareMEM::mem#9 mem zp ZP_WORD:12 4.0
|
||||
(byte*) prepareMEM::mem#1 mem zp ZP_WORD:18 4.0
|
||||
(byte*) prepareMEM::mem#2 mem zp ZP_WORD:18 4.0
|
||||
(byte*) prepareMEM::mem#3 mem zp ZP_WORD:18 4.0
|
||||
(byte*) prepareMEM::mem#4 mem zp ZP_WORD:18 4.0
|
||||
(byte*) prepareMEM::mem#5 mem zp ZP_WORD:18 4.666666666666666
|
||||
(byte*~) prepareMEM::mem#9 mem zp ZP_WORD:18 4.0
|
||||
(byte*) progress_cursor
|
||||
(byte*) progress_cursor#10 progress_cursor zp ZP_WORD:10 4.0
|
||||
(byte*) progress_cursor#11 progress_cursor zp ZP_WORD:10 2.8333333333333335
|
||||
(byte*) progress_cursor#34 progress_cursor zp ZP_WORD:10 0.7307692307692306
|
||||
(byte*) progress_cursor#10 progress_cursor zp ZP_WORD:16 4.0
|
||||
(byte*) progress_cursor#11 progress_cursor zp ZP_WORD:16 2.8333333333333335
|
||||
(byte*) progress_cursor#34 progress_cursor zp ZP_WORD:16 0.7307692307692306
|
||||
(byte) progress_idx
|
||||
(byte) progress_idx#10 progress_idx zp ZP_BYTE:4 3.0
|
||||
(byte) progress_idx#12 progress_idx zp ZP_BYTE:4 2.5
|
||||
(byte) progress_idx#34 progress_idx zp ZP_BYTE:4 0.5652173913043479
|
||||
(byte) progress_idx#10 progress_idx zp ZP_BYTE:15 3.0
|
||||
(byte) progress_idx#12 progress_idx zp ZP_BYTE:15 2.5
|
||||
(byte) progress_idx#34 progress_idx zp ZP_BYTE:15 0.5652173913043479
|
||||
(void()) progress_inc()
|
||||
(label) progress_inc::@1
|
||||
(label) progress_inc::@2
|
||||
@ -272,23 +272,23 @@
|
||||
(void()) progress_init((byte*) progress_init::line)
|
||||
(label) progress_init::@return
|
||||
(byte*) progress_init::line
|
||||
(byte*) progress_init::line#2 line zp ZP_WORD:10 0.06666666666666667
|
||||
(byte*) progress_init::line#2 line zp ZP_WORD:16 0.06666666666666667
|
||||
(void()) setARGtoFAC()
|
||||
(label) setARGtoFAC::@return
|
||||
(void()) setFAC((word) setFAC::w)
|
||||
(label) setFAC::@1
|
||||
(label) setFAC::@return
|
||||
(word) setFAC::w
|
||||
(word) setFAC::w#0 w zp ZP_WORD:12 4.0
|
||||
(word) setFAC::w#1 w zp ZP_WORD:12 4.0
|
||||
(word) setFAC::w#3 w zp ZP_WORD:12 22.0
|
||||
(word) setFAC::w#4 w zp ZP_WORD:12 22.0
|
||||
(word) setFAC::w#5 w zp ZP_WORD:12 26.0
|
||||
(word) setFAC::w#0 w zp ZP_WORD:18 4.0
|
||||
(word) setFAC::w#1 w zp ZP_WORD:18 4.0
|
||||
(word) setFAC::w#3 w zp ZP_WORD:18 22.0
|
||||
(word) setFAC::w#4 w zp ZP_WORD:18 22.0
|
||||
(word) setFAC::w#5 w zp ZP_WORD:18 26.0
|
||||
(void()) setMEMtoFAC((byte*) setMEMtoFAC::mem)
|
||||
(label) setMEMtoFAC::@1
|
||||
(label) setMEMtoFAC::@return
|
||||
(byte*) setMEMtoFAC::mem
|
||||
(byte*) setMEMtoFAC::mem#5 mem zp ZP_WORD:12 2.0
|
||||
(byte*) setMEMtoFAC::mem#5 mem zp ZP_WORD:18 2.0
|
||||
(void()) sinFAC()
|
||||
(label) sinFAC::@return
|
||||
(byte) sin_idx_x
|
||||
@ -312,29 +312,48 @@
|
||||
(void()) subFACfromARG()
|
||||
(label) subFACfromARG::@return
|
||||
|
||||
zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 gen_sintab::min#2 gen_sintab::i#10 gen_sintab::i#1 gen_sprites::i#2 gen_sprites::i#1 place_sprites::spr_id#2 place_sprites::spr_id#1 ]
|
||||
zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 gen_sintab::length#10 gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 place_sprites::spr_x#2 place_sprites::spr_x#1 ]
|
||||
zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 progress_idx#34 progress_idx#12 progress_idx#10 gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 place_sprites::col#2 place_sprites::col#1 ]
|
||||
zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ]
|
||||
zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ]
|
||||
zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ]
|
||||
zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ]
|
||||
zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ]
|
||||
reg byte x [ anim::j2#2 anim::j2#1 ]
|
||||
zp ZP_BYTE:6 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 gen_chargen_sprite::c#3 ]
|
||||
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:6 [ 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 ]
|
||||
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 anim::x#0 ]
|
||||
zp ZP_WORD:8 [ clear_screen::sc#2 clear_screen::sc#1 ]
|
||||
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:12 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#9 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_BYTE:10 [ gen_sintab::min#2 ]
|
||||
zp ZP_BYTE:11 [ gen_sintab::length#10 ]
|
||||
zp ZP_WORD:12 [ gen_sintab::sintab#12 ]
|
||||
zp ZP_BYTE:14 [ gen_sintab::i#10 gen_sintab::i#1 ]
|
||||
zp ZP_BYTE:15 [ progress_idx#34 progress_idx#12 progress_idx#10 ]
|
||||
zp ZP_WORD:16 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 ]
|
||||
zp ZP_WORD:18 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#9 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 ]
|
||||
zp ZP_BYTE:20 [ gen_sprites::i#2 gen_sprites::i#1 ]
|
||||
zp ZP_WORD:21 [ gen_sprites::spr#2 gen_sprites::spr#1 ]
|
||||
zp ZP_BYTE:23 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ]
|
||||
zp ZP_BYTE:24 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ]
|
||||
zp ZP_BYTE:25 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ]
|
||||
zp ZP_BYTE:26 [ gen_chargen_sprite::c#3 ]
|
||||
zp ZP_BYTE:27 [ 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 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 ]
|
||||
zp ZP_WORD:28 [ 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_BYTE:30 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ]
|
||||
reg byte y [ place_sprites::j#2 place_sprites::j#1 ]
|
||||
zp ZP_BYTE:31 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ]
|
||||
reg byte x [ place_sprites::j2#3 place_sprites::j2#2 ]
|
||||
zp ZP_BYTE:32 [ place_sprites::col#2 place_sprites::col#1 ]
|
||||
zp ZP_WORD:33 [ anim::x#0 ]
|
||||
reg byte a [ anim::$2 ]
|
||||
reg byte alu [ anim::$3 ]
|
||||
reg byte a [ anim::$5 ]
|
||||
zp ZP_WORD:35 [ getFAC::return#2 gen_sintab::$23 getFAC::return#0 ]
|
||||
reg byte a [ gen_sintab::$24 ]
|
||||
reg byte a [ prepareMEM::$0 ]
|
||||
reg byte a [ prepareMEM::$1 ]
|
||||
reg byte y [ gen_chargen_sprite::ch#0 ]
|
||||
zp ZP_WORD:37 [ gen_chargen_sprite::$0 gen_chargen_sprite::$1 gen_chargen_sprite::chargen#0 ]
|
||||
reg byte a [ gen_chargen_sprite::$3 ]
|
||||
reg byte a [ gen_chargen_sprite::$6 ]
|
||||
reg byte x [ place_sprites::j2#1 ]
|
||||
|
@ -5,7 +5,7 @@
|
||||
.label line_cursor = 4
|
||||
jsr main
|
||||
main: {
|
||||
.label b = $c
|
||||
.label b = $e
|
||||
.label a = 2
|
||||
.label i = 3
|
||||
jsr print_cls
|
||||
@ -485,7 +485,7 @@ print_str: {
|
||||
jmp b1
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 4
|
||||
.label sc = $c
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
|
@ -8850,14 +8850,14 @@ Uplifting [main] best 20013 combination reg byte x [ main::r#59 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:39 [ main::b#0 ]
|
||||
Uplifting [main] best 20013 combination zp ZP_BYTE:39 [ main::b#0 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:2 [ main::a#10 main::a#1 ] ] with [ zp ZP_BYTE:26 [ printu::a#20 printu::a#8 printu::a#9 printu::a#10 printu::a#11 printu::a#12 printu::a#13 printu::a#14 printu::a#15 printu::a#16 printu::a#17 printu::a#0 printu::a#18 printu::a#19 printu::a#1 printu::a#2 printu::a#3 printu::a#4 printu::a#5 printu::a#6 printu::a#7 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:24 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 ] ] with [ zp ZP_WORD:37 [ print_cls::sc#2 print_cls::sc#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:27 [ printu::op#20 ] ] with [ zp ZP_WORD:35 [ print_str::str#2 print_str::str#1 print_str::str#0 ] ]
|
||||
Allocated (was zp ZP_WORD:24) zp ZP_WORD:4 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
Allocated (was zp ZP_WORD:24) zp ZP_WORD:4 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 ]
|
||||
Allocated (was zp ZP_WORD:27) zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 ]
|
||||
Allocated (was zp ZP_BYTE:29) zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ]
|
||||
Allocated (was zp ZP_WORD:32) zp ZP_WORD:9 [ char_cursor#51 char_cursor#89 char_cursor#90 char_cursor#138 char_cursor#52 char_cursor#142 char_cursor#146 char_cursor#114 char_cursor#137 char_cursor#154 char_cursor#2 char_cursor#1 ]
|
||||
Allocated (was zp ZP_BYTE:34) zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:12 [ main::b#0 ]
|
||||
Allocated (was zp ZP_WORD:37) zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:14 [ main::b#0 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -8885,7 +8885,7 @@ bend_from_b10:
|
||||
bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
.label b = $c
|
||||
.label b = $e
|
||||
.label a = 2
|
||||
.label i = 3
|
||||
//SEG10 [5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
@ -10136,7 +10136,7 @@ print_str: {
|
||||
}
|
||||
//SEG513 print_cls
|
||||
print_cls: {
|
||||
.label sc = 4
|
||||
.label sc = $c
|
||||
//SEG514 [201] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
b1_from_print_cls:
|
||||
//SEG515 [201] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
@ -10544,7 +10544,7 @@ FINAL SYMBOL TABLE
|
||||
(byte) main::a#1 a zp ZP_BYTE:2 5.5
|
||||
(byte) main::a#10 a zp ZP_BYTE:2 3.860927152317884
|
||||
(byte) main::b
|
||||
(byte) main::b#0 b zp ZP_BYTE:12 0.9758064516129035
|
||||
(byte) main::b#0 b zp ZP_BYTE:14 0.9758064516129035
|
||||
(byte[5]) main::cs
|
||||
(const byte[5]) main::cs#0 cs = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 }
|
||||
(byte) main::i
|
||||
@ -10613,8 +10613,8 @@ FINAL SYMBOL TABLE
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:12 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:12 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -10719,14 +10719,15 @@ reg byte x [ main::r#56 ]
|
||||
reg byte x [ main::r#57 ]
|
||||
reg byte x [ main::r#58 ]
|
||||
reg byte x [ main::r#59 ]
|
||||
zp ZP_WORD:4 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:4 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 ]
|
||||
zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 ]
|
||||
zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ]
|
||||
reg byte x [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ]
|
||||
reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ]
|
||||
zp ZP_WORD:9 [ char_cursor#51 char_cursor#89 char_cursor#90 char_cursor#138 char_cursor#52 char_cursor#142 char_cursor#146 char_cursor#114 char_cursor#137 char_cursor#154 char_cursor#2 char_cursor#1 ]
|
||||
zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
zp ZP_BYTE:12 [ main::b#0 ]
|
||||
zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_BYTE:14 [ main::b#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
|
||||
@ -10751,7 +10752,7 @@ Score: 15772
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
.label b = $c
|
||||
.label b = $e
|
||||
.label a = 2
|
||||
.label i = 3
|
||||
//SEG10 [5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
@ -11776,7 +11777,7 @@ print_str: {
|
||||
}
|
||||
//SEG513 print_cls
|
||||
print_cls: {
|
||||
.label sc = 4
|
||||
.label sc = $c
|
||||
//SEG514 [201] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1]
|
||||
//SEG515 [201] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1
|
||||
lda #<$400
|
||||
|
@ -93,7 +93,7 @@
|
||||
(byte) main::a#1 a zp ZP_BYTE:2 5.5
|
||||
(byte) main::a#10 a zp ZP_BYTE:2 3.860927152317884
|
||||
(byte) main::b
|
||||
(byte) main::b#0 b zp ZP_BYTE:12 0.9758064516129035
|
||||
(byte) main::b#0 b zp ZP_BYTE:14 0.9758064516129035
|
||||
(byte[5]) main::cs
|
||||
(const byte[5]) main::cs#0 cs = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 }
|
||||
(byte) main::i
|
||||
@ -162,8 +162,8 @@
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:12 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:12 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -268,13 +268,14 @@ reg byte x [ main::r#56 ]
|
||||
reg byte x [ main::r#57 ]
|
||||
reg byte x [ main::r#58 ]
|
||||
reg byte x [ main::r#59 ]
|
||||
zp ZP_WORD:4 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:4 [ line_cursor#10 line_cursor#20 line_cursor#21 line_cursor#1 ]
|
||||
zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 ]
|
||||
zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ]
|
||||
reg byte x [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ]
|
||||
reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ]
|
||||
zp ZP_WORD:9 [ char_cursor#51 char_cursor#89 char_cursor#90 char_cursor#138 char_cursor#52 char_cursor#142 char_cursor#146 char_cursor#114 char_cursor#137 char_cursor#154 char_cursor#2 char_cursor#1 ]
|
||||
zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
zp ZP_BYTE:12 [ main::b#0 ]
|
||||
zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_BYTE:14 [ main::b#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
|
@ -2,7 +2,7 @@
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.label BGCOL = $d021
|
||||
.label char_cursor = 8
|
||||
.label char_cursor = $a
|
||||
.label line_cursor = 4
|
||||
jsr main
|
||||
main: {
|
||||
@ -18,7 +18,7 @@ main: {
|
||||
}
|
||||
signed_multiply_results_compare: {
|
||||
.label ms = 8
|
||||
.label ma = 6
|
||||
.label ma = $c
|
||||
.label b = 3
|
||||
.label a = 2
|
||||
lda #-$80
|
||||
@ -29,10 +29,6 @@ signed_multiply_results_compare: {
|
||||
b2:
|
||||
ldx b
|
||||
jsr slow_signed_multiply
|
||||
lda slow_signed_multiply.return
|
||||
sta ms
|
||||
lda slow_signed_multiply.return+1
|
||||
sta ms+1
|
||||
ldy a
|
||||
jsr signed_multiply
|
||||
lda ms
|
||||
@ -45,16 +41,6 @@ signed_multiply_results_compare: {
|
||||
lda #2
|
||||
sta BGCOL
|
||||
ldx a
|
||||
lda b
|
||||
sta signed_multiply_error.b
|
||||
lda ms
|
||||
sta signed_multiply_error.ms
|
||||
lda ms+1
|
||||
sta signed_multiply_error.ms+1
|
||||
lda ma
|
||||
sta signed_multiply_error.ma
|
||||
lda ma+1
|
||||
sta signed_multiply_error.ma+1
|
||||
jsr signed_multiply_error
|
||||
breturn:
|
||||
rts
|
||||
@ -122,8 +108,8 @@ print_str: {
|
||||
jmp b1
|
||||
}
|
||||
signed_multiply_error: {
|
||||
.label b = 2
|
||||
.label ms = $a
|
||||
.label b = 3
|
||||
.label ms = 8
|
||||
.label ma = $c
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
@ -147,10 +133,6 @@ signed_multiply_error: {
|
||||
lda #>str2
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda ms
|
||||
sta print_sword.w
|
||||
lda ms+1
|
||||
sta print_sword.w+1
|
||||
jsr print_sword
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
@ -170,7 +152,7 @@ signed_multiply_error: {
|
||||
str3: .text " / fast asm:@"
|
||||
}
|
||||
print_sword: {
|
||||
.label w = 6
|
||||
.label w = 8
|
||||
lda w+1
|
||||
bpl b1
|
||||
lda #'-'
|
||||
@ -189,7 +171,7 @@ print_sword: {
|
||||
rts
|
||||
}
|
||||
print_word: {
|
||||
.label w = 6
|
||||
.label w = 8
|
||||
lda w+1
|
||||
tax
|
||||
jsr print_byte
|
||||
@ -239,9 +221,9 @@ print_sbyte: {
|
||||
rts
|
||||
}
|
||||
signed_multiply: {
|
||||
.label m = 6
|
||||
.label m = $c
|
||||
.label b = 3
|
||||
.label return = 6
|
||||
.label return = $c
|
||||
tya
|
||||
ldx b
|
||||
jsr multiply
|
||||
@ -266,7 +248,7 @@ signed_multiply: {
|
||||
multiply: {
|
||||
.label memA = $fe
|
||||
.label memB = $ff
|
||||
.label return = 6
|
||||
.label return = $c
|
||||
sta memA
|
||||
stx memB
|
||||
sta sm1+1
|
||||
@ -292,8 +274,8 @@ multiply: {
|
||||
rts
|
||||
}
|
||||
slow_signed_multiply: {
|
||||
.label m = 6
|
||||
.label return = 6
|
||||
.label m = 8
|
||||
.label return = 8
|
||||
.label a = 2
|
||||
lda a
|
||||
cmp #0
|
||||
@ -356,10 +338,10 @@ slow_signed_multiply: {
|
||||
jmp b3
|
||||
}
|
||||
multiply_results_compare: {
|
||||
.label ms = $a
|
||||
.label ma = 6
|
||||
.label b = 3
|
||||
.label a = 2
|
||||
.label ms = 8
|
||||
.label ma = $c
|
||||
.label b = $f
|
||||
.label a = $e
|
||||
lda #0
|
||||
sta a
|
||||
b1:
|
||||
@ -368,10 +350,6 @@ multiply_results_compare: {
|
||||
b2:
|
||||
ldx b
|
||||
jsr slow_multiply
|
||||
lda slow_multiply.return
|
||||
sta ms
|
||||
lda slow_multiply.return+1
|
||||
sta ms+1
|
||||
lda a
|
||||
ldx b
|
||||
jsr multiply
|
||||
@ -385,12 +363,6 @@ multiply_results_compare: {
|
||||
lda #2
|
||||
sta BGCOL
|
||||
ldx a
|
||||
lda b
|
||||
sta multiply_error.b
|
||||
lda ma
|
||||
sta multiply_error.ma
|
||||
lda ma+1
|
||||
sta multiply_error.ma+1
|
||||
jsr multiply_error
|
||||
breturn:
|
||||
rts
|
||||
@ -411,8 +383,8 @@ multiply_results_compare: {
|
||||
str: .text "multiply results match!@"
|
||||
}
|
||||
multiply_error: {
|
||||
.label b = 2
|
||||
.label ms = $a
|
||||
.label b = $f
|
||||
.label ms = 8
|
||||
.label ma = $c
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
@ -432,10 +404,6 @@ multiply_error: {
|
||||
lda #>str2
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda ms
|
||||
sta print_word.w
|
||||
lda ms+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
@ -455,9 +423,9 @@ multiply_error: {
|
||||
str3: .text " / fast asm:@"
|
||||
}
|
||||
slow_multiply: {
|
||||
.label return = 6
|
||||
.label m = 6
|
||||
.label a = 2
|
||||
.label return = 8
|
||||
.label m = 8
|
||||
.label a = $e
|
||||
lda a
|
||||
beq b3
|
||||
ldy #0
|
||||
@ -484,8 +452,8 @@ slow_multiply: {
|
||||
rts
|
||||
}
|
||||
multiply_tables_compare: {
|
||||
.label asm_sqr = $a
|
||||
.label kc_sqr = 4
|
||||
.label asm_sqr = 8
|
||||
.label kc_sqr = $10
|
||||
lda #<asm_mul_sqr1_lo
|
||||
sta asm_sqr
|
||||
lda #>asm_mul_sqr1_lo
|
||||
@ -510,10 +478,6 @@ multiply_tables_compare: {
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda asm_sqr
|
||||
sta print_word.w
|
||||
lda asm_sqr+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
@ -622,13 +586,13 @@ init_multiply_asm: {
|
||||
rts
|
||||
}
|
||||
init_multiply: {
|
||||
.label sqr1_hi = 6
|
||||
.label sqr = 8
|
||||
.label sqr1_lo = 4
|
||||
.label x_2 = 2
|
||||
.label sqr2_hi = 6
|
||||
.label sqr2_lo = 4
|
||||
.label dir = 2
|
||||
.label sqr1_hi = $14
|
||||
.label sqr = $17
|
||||
.label sqr1_lo = $12
|
||||
.label x_2 = $16
|
||||
.label sqr2_hi = $1b
|
||||
.label sqr2_lo = $19
|
||||
.label dir = $1d
|
||||
lda #0
|
||||
sta x_2
|
||||
lda #<mul_sqr1_hi+1
|
||||
@ -728,7 +692,7 @@ init_multiply: {
|
||||
rts
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 4
|
||||
.label sc = $1e
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -12,20 +12,20 @@
|
||||
(byte[512]) asm_mul_sqr2_lo
|
||||
(const byte[512]) asm_mul_sqr2_lo#0 asm_mul_sqr2_lo = { fill( 512, 0) }
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:8 11.0
|
||||
(byte*) char_cursor#117 char_cursor zp ZP_WORD:8 1.6944444444444446
|
||||
(byte*) char_cursor#118 char_cursor zp ZP_WORD:8 5.25
|
||||
(byte*) char_cursor#119 char_cursor zp ZP_WORD:8 3.0
|
||||
(byte*) char_cursor#121 char_cursor zp ZP_WORD:8 3.0
|
||||
(byte*) char_cursor#123 char_cursor zp ZP_WORD:8 6.0
|
||||
(byte*) char_cursor#124 char_cursor zp ZP_WORD:8 3.9999999999999996
|
||||
(byte*) char_cursor#135 char_cursor zp ZP_WORD:8 24.0
|
||||
(byte*) char_cursor#17 char_cursor zp ZP_WORD:8 0.7894736842105261
|
||||
(byte*~) char_cursor#172 char_cursor zp ZP_WORD:8 4.0
|
||||
(byte*~) char_cursor#176 char_cursor zp ZP_WORD:8 4.0
|
||||
(byte*~) char_cursor#197 char_cursor zp ZP_WORD:8 4.0
|
||||
(byte*) char_cursor#27 char_cursor zp ZP_WORD:8 0.27586206896551724
|
||||
(byte*) char_cursor#75 char_cursor zp ZP_WORD:8 6.0
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:10 11.0
|
||||
(byte*) char_cursor#117 char_cursor zp ZP_WORD:10 1.6944444444444446
|
||||
(byte*) char_cursor#118 char_cursor zp ZP_WORD:10 5.25
|
||||
(byte*) char_cursor#119 char_cursor zp ZP_WORD:10 3.0
|
||||
(byte*) char_cursor#121 char_cursor zp ZP_WORD:10 3.0
|
||||
(byte*) char_cursor#123 char_cursor zp ZP_WORD:10 6.0
|
||||
(byte*) char_cursor#124 char_cursor zp ZP_WORD:10 3.9999999999999996
|
||||
(byte*) char_cursor#135 char_cursor zp ZP_WORD:10 24.0
|
||||
(byte*) char_cursor#17 char_cursor zp ZP_WORD:10 0.7894736842105261
|
||||
(byte*~) char_cursor#172 char_cursor zp ZP_WORD:10 4.0
|
||||
(byte*~) char_cursor#176 char_cursor zp ZP_WORD:10 4.0
|
||||
(byte*~) char_cursor#197 char_cursor zp ZP_WORD:10 4.0
|
||||
(byte*) char_cursor#27 char_cursor zp ZP_WORD:10 0.27586206896551724
|
||||
(byte*) char_cursor#75 char_cursor zp ZP_WORD:10 6.0
|
||||
(void()) init_multiply()
|
||||
(byte~) init_multiply::$2 reg byte a 22.0
|
||||
(byte~) init_multiply::$5 reg byte a 22.0
|
||||
@ -42,29 +42,29 @@
|
||||
(byte) init_multiply::c#1 reg byte x 2.357142857142857
|
||||
(byte) init_multiply::c#2 reg byte x 22.0
|
||||
(byte) init_multiply::dir
|
||||
(byte) init_multiply::dir#2 dir zp ZP_BYTE:2 4.714285714285714
|
||||
(byte) init_multiply::dir#3 dir zp ZP_BYTE:2 7.333333333333333
|
||||
(byte) init_multiply::dir#2 dir zp ZP_BYTE:29 4.714285714285714
|
||||
(byte) init_multiply::dir#3 dir zp ZP_BYTE:29 7.333333333333333
|
||||
(word) init_multiply::sqr
|
||||
(word) init_multiply::sqr#1 sqr zp ZP_WORD:8 7.333333333333333
|
||||
(word) init_multiply::sqr#2 sqr zp ZP_WORD:8 22.0
|
||||
(word) init_multiply::sqr#3 sqr zp ZP_WORD:8 9.166666666666666
|
||||
(word) init_multiply::sqr#4 sqr zp ZP_WORD:8 6.6000000000000005
|
||||
(word) init_multiply::sqr#1 sqr zp ZP_WORD:23 7.333333333333333
|
||||
(word) init_multiply::sqr#2 sqr zp ZP_WORD:23 22.0
|
||||
(word) init_multiply::sqr#3 sqr zp ZP_WORD:23 9.166666666666666
|
||||
(word) init_multiply::sqr#4 sqr zp ZP_WORD:23 6.6000000000000005
|
||||
(byte*) init_multiply::sqr1_hi
|
||||
(byte*) init_multiply::sqr1_hi#1 sqr1_hi zp ZP_WORD:6 5.5
|
||||
(byte*) init_multiply::sqr1_hi#2 sqr1_hi zp ZP_WORD:6 3.0
|
||||
(byte*) init_multiply::sqr1_hi#1 sqr1_hi zp ZP_WORD:20 5.5
|
||||
(byte*) init_multiply::sqr1_hi#2 sqr1_hi zp ZP_WORD:20 3.0
|
||||
(byte*) init_multiply::sqr1_lo
|
||||
(byte*) init_multiply::sqr1_lo#1 sqr1_lo zp ZP_WORD:4 16.5
|
||||
(byte*) init_multiply::sqr1_lo#2 sqr1_lo zp ZP_WORD:4 2.5384615384615383
|
||||
(byte*) init_multiply::sqr1_lo#1 sqr1_lo zp ZP_WORD:18 16.5
|
||||
(byte*) init_multiply::sqr1_lo#2 sqr1_lo zp ZP_WORD:18 2.5384615384615383
|
||||
(byte*) init_multiply::sqr2_hi
|
||||
(byte*) init_multiply::sqr2_hi#1 sqr2_hi zp ZP_WORD:6 3.142857142857143
|
||||
(byte*) init_multiply::sqr2_hi#2 sqr2_hi zp ZP_WORD:6 11.0
|
||||
(byte*) init_multiply::sqr2_hi#1 sqr2_hi zp ZP_WORD:27 3.142857142857143
|
||||
(byte*) init_multiply::sqr2_hi#2 sqr2_hi zp ZP_WORD:27 11.0
|
||||
(byte*) init_multiply::sqr2_lo
|
||||
(byte*) init_multiply::sqr2_lo#1 sqr2_lo zp ZP_WORD:4 16.5
|
||||
(byte*) init_multiply::sqr2_lo#2 sqr2_lo zp ZP_WORD:4 4.125
|
||||
(byte*) init_multiply::sqr2_lo#1 sqr2_lo zp ZP_WORD:25 16.5
|
||||
(byte*) init_multiply::sqr2_lo#2 sqr2_lo zp ZP_WORD:25 4.125
|
||||
(byte) init_multiply::x_2
|
||||
(byte) init_multiply::x_2#1 x_2 zp ZP_BYTE:2 11.0
|
||||
(byte) init_multiply::x_2#2 x_2 zp ZP_BYTE:2 4.888888888888889
|
||||
(byte) init_multiply::x_2#3 x_2 zp ZP_BYTE:2 8.25
|
||||
(byte) init_multiply::x_2#1 x_2 zp ZP_BYTE:22 11.0
|
||||
(byte) init_multiply::x_2#2 x_2 zp ZP_BYTE:22 4.888888888888889
|
||||
(byte) init_multiply::x_2#3 x_2 zp ZP_BYTE:22 8.25
|
||||
(byte) init_multiply::x_255
|
||||
(byte) init_multiply::x_255#1 reg byte x 5.5
|
||||
(byte) init_multiply::x_255#2 reg byte x 11.0
|
||||
@ -107,9 +107,9 @@
|
||||
(byte*) multiply::memB
|
||||
(const byte*) multiply::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) 255
|
||||
(word) multiply::return
|
||||
(word) multiply::return#0 return zp ZP_WORD:6 26.25
|
||||
(word) multiply::return#2 return zp ZP_WORD:6 4.0
|
||||
(word) multiply::return#3 return zp ZP_WORD:6 202.0
|
||||
(word) multiply::return#0 return zp ZP_WORD:12 26.25
|
||||
(word) multiply::return#2 return zp ZP_WORD:12 4.0
|
||||
(word) multiply::return#3 return zp ZP_WORD:12 202.0
|
||||
(void()) multiply_error((byte) multiply_error::a , (byte) multiply_error::b , (word) multiply_error::ms , (word) multiply_error::ma)
|
||||
(label) multiply_error::@1
|
||||
(label) multiply_error::@2
|
||||
@ -123,11 +123,11 @@
|
||||
(byte) multiply_error::a
|
||||
(byte) multiply_error::a#0 reg byte x 0.6666666666666666
|
||||
(byte) multiply_error::b
|
||||
(byte) multiply_error::b#0 b zp ZP_BYTE:2 0.4444444444444444
|
||||
(byte) multiply_error::b#0 b zp ZP_BYTE:15 0.4444444444444444
|
||||
(word) multiply_error::ma
|
||||
(word) multiply_error::ma#0 ma zp ZP_WORD:12 0.26666666666666666
|
||||
(word) multiply_error::ms
|
||||
(word) multiply_error::ms#0 ms zp ZP_WORD:10 0.3333333333333333
|
||||
(word) multiply_error::ms#0 ms zp ZP_WORD:8 0.3333333333333333
|
||||
(const string) multiply_error::str str = (string) "multiply mismatch @"
|
||||
(const string) multiply_error::str1 str1 = (string) "*@"
|
||||
(const string) multiply_error::str2 str2 = (string) " slow:@"
|
||||
@ -144,15 +144,15 @@
|
||||
(label) multiply_results_compare::@9
|
||||
(label) multiply_results_compare::@return
|
||||
(byte) multiply_results_compare::a
|
||||
(byte) multiply_results_compare::a#1 a zp ZP_BYTE:2 16.5
|
||||
(byte) multiply_results_compare::a#6 a zp ZP_BYTE:2 14.125
|
||||
(byte) multiply_results_compare::a#1 a zp ZP_BYTE:14 16.5
|
||||
(byte) multiply_results_compare::a#6 a zp ZP_BYTE:14 14.125
|
||||
(byte) multiply_results_compare::b
|
||||
(byte) multiply_results_compare::b#1 b zp ZP_BYTE:3 151.5
|
||||
(byte) multiply_results_compare::b#2 b zp ZP_BYTE:3 29.0
|
||||
(byte) multiply_results_compare::b#1 b zp ZP_BYTE:15 151.5
|
||||
(byte) multiply_results_compare::b#2 b zp ZP_BYTE:15 29.0
|
||||
(word) multiply_results_compare::ma
|
||||
(word) multiply_results_compare::ma#0 ma zp ZP_WORD:6 34.0
|
||||
(word) multiply_results_compare::ma#0 ma zp ZP_WORD:12 34.0
|
||||
(word) multiply_results_compare::ms
|
||||
(word) multiply_results_compare::ms#0 ms zp ZP_WORD:10 20.4
|
||||
(word) multiply_results_compare::ms#0 ms zp ZP_WORD:8 20.4
|
||||
(const string) multiply_results_compare::str str = (string) "multiply results match!@"
|
||||
(void()) multiply_tables_compare()
|
||||
(label) multiply_tables_compare::@1
|
||||
@ -165,11 +165,11 @@
|
||||
(label) multiply_tables_compare::@8
|
||||
(label) multiply_tables_compare::@return
|
||||
(byte*) multiply_tables_compare::asm_sqr
|
||||
(byte*) multiply_tables_compare::asm_sqr#1 asm_sqr zp ZP_WORD:10 7.333333333333333
|
||||
(byte*) multiply_tables_compare::asm_sqr#2 asm_sqr zp ZP_WORD:10 8.25
|
||||
(byte*) multiply_tables_compare::asm_sqr#1 asm_sqr zp ZP_WORD:8 7.333333333333333
|
||||
(byte*) multiply_tables_compare::asm_sqr#2 asm_sqr zp ZP_WORD:8 8.25
|
||||
(byte*) multiply_tables_compare::kc_sqr
|
||||
(byte*) multiply_tables_compare::kc_sqr#1 kc_sqr zp ZP_WORD:4 16.5
|
||||
(byte*) multiply_tables_compare::kc_sqr#2 kc_sqr zp ZP_WORD:4 3.666666666666667
|
||||
(byte*) multiply_tables_compare::kc_sqr#1 kc_sqr zp ZP_WORD:16 16.5
|
||||
(byte*) multiply_tables_compare::kc_sqr#2 kc_sqr zp ZP_WORD:16 3.666666666666667
|
||||
(const string) multiply_tables_compare::str str = (string) "multiply table mismatch at @"
|
||||
(const string) multiply_tables_compare::str1 str1 = (string) " / @"
|
||||
(const string) multiply_tables_compare::str2 str2 = (string) "multiply tables match!@"
|
||||
@ -197,8 +197,8 @@
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:30 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:30 16.5
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -227,21 +227,21 @@
|
||||
(label) print_sword::@4
|
||||
(label) print_sword::@return
|
||||
(signed word) print_sword::w
|
||||
(signed word) print_sword::w#0 w zp ZP_WORD:6 4.0
|
||||
(signed word) print_sword::w#1 w zp ZP_WORD:6 4.0
|
||||
(signed word) print_sword::w#2 w zp ZP_WORD:6 4.0
|
||||
(signed word) print_sword::w#3 w zp ZP_WORD:6 2.5
|
||||
(signed word) print_sword::w#4 w zp ZP_WORD:6 4.0
|
||||
(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0
|
||||
(signed word) print_sword::w#1 w zp ZP_WORD:8 4.0
|
||||
(signed word) print_sword::w#2 w zp ZP_WORD:8 4.0
|
||||
(signed word) print_sword::w#3 w zp ZP_WORD:8 2.5
|
||||
(signed word) print_sword::w#4 w zp ZP_WORD:8 4.0
|
||||
(void()) print_word((word) print_word::w)
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word~) print_word::w#10 w zp ZP_WORD:6 4.0
|
||||
(word~) print_word::w#11 w zp ZP_WORD:6 4.0
|
||||
(word) print_word::w#3 w zp ZP_WORD:6 4.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:6 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:6 4.666666666666666
|
||||
(word~) print_word::w#9 w zp ZP_WORD:6 4.0
|
||||
(word~) print_word::w#10 w zp ZP_WORD:8 4.0
|
||||
(word~) print_word::w#11 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#3 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:8 4.666666666666666
|
||||
(word~) print_word::w#9 w zp ZP_WORD:8 4.0
|
||||
(signed word()) signed_multiply((signed byte) signed_multiply::a , (signed byte) signed_multiply::b)
|
||||
(byte~) signed_multiply::$12 reg byte a 4.0
|
||||
(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 reg byte a 4.0
|
||||
@ -258,13 +258,13 @@
|
||||
(signed byte) signed_multiply::b
|
||||
(signed byte) signed_multiply::b#0 b zp ZP_BYTE:3 9.363636363636363
|
||||
(word) signed_multiply::m
|
||||
(word) signed_multiply::m#0 m zp ZP_WORD:6 2.0
|
||||
(word) signed_multiply::m#1 m zp ZP_WORD:6 4.0
|
||||
(word) signed_multiply::m#2 m zp ZP_WORD:6 4.0
|
||||
(word) signed_multiply::m#4 m zp ZP_WORD:6 1.3333333333333333
|
||||
(word) signed_multiply::m#5 m zp ZP_WORD:6 2.5
|
||||
(word) signed_multiply::m#0 m zp ZP_WORD:12 2.0
|
||||
(word) signed_multiply::m#1 m zp ZP_WORD:12 4.0
|
||||
(word) signed_multiply::m#2 m zp ZP_WORD:12 4.0
|
||||
(word) signed_multiply::m#4 m zp ZP_WORD:12 1.3333333333333333
|
||||
(word) signed_multiply::m#5 m zp ZP_WORD:12 2.5
|
||||
(signed word) signed_multiply::return
|
||||
(signed word) signed_multiply::return#2 return zp ZP_WORD:6 202.0
|
||||
(signed word) signed_multiply::return#2 return zp ZP_WORD:12 202.0
|
||||
(void()) signed_multiply_error((signed byte) signed_multiply_error::a , (signed byte) signed_multiply_error::b , (signed word) signed_multiply_error::ms , (signed word) signed_multiply_error::ma)
|
||||
(label) signed_multiply_error::@1
|
||||
(label) signed_multiply_error::@2
|
||||
@ -278,11 +278,11 @@
|
||||
(signed byte) signed_multiply_error::a
|
||||
(signed byte) signed_multiply_error::a#0 reg byte x 0.6666666666666666
|
||||
(signed byte) signed_multiply_error::b
|
||||
(signed byte) signed_multiply_error::b#0 b zp ZP_BYTE:2 0.4444444444444444
|
||||
(signed byte) signed_multiply_error::b#0 b zp ZP_BYTE:3 0.4444444444444444
|
||||
(signed word) signed_multiply_error::ma
|
||||
(signed word) signed_multiply_error::ma#0 ma zp ZP_WORD:12 0.26666666666666666
|
||||
(signed word) signed_multiply_error::ms
|
||||
(signed word) signed_multiply_error::ms#0 ms zp ZP_WORD:10 0.3333333333333333
|
||||
(signed word) signed_multiply_error::ms#0 ms zp ZP_WORD:8 0.3333333333333333
|
||||
(const string) signed_multiply_error::str str = (string) "signed multiply mismatch @"
|
||||
(const string) signed_multiply_error::str1 str1 = (string) "*@"
|
||||
(const string) signed_multiply_error::str2 str2 = (string) " slow:@"
|
||||
@ -305,7 +305,7 @@
|
||||
(signed byte) signed_multiply_results_compare::b#1 b zp ZP_BYTE:3 151.5
|
||||
(signed byte) signed_multiply_results_compare::b#2 b zp ZP_BYTE:3 29.0
|
||||
(signed word) signed_multiply_results_compare::ma
|
||||
(signed word) signed_multiply_results_compare::ma#0 ma zp ZP_WORD:6 34.0
|
||||
(signed word) signed_multiply_results_compare::ma#0 ma zp ZP_WORD:12 34.0
|
||||
(signed word) signed_multiply_results_compare::ms
|
||||
(signed word) signed_multiply_results_compare::ms#0 ms zp ZP_WORD:8 20.4
|
||||
(const string) signed_multiply_results_compare::str str = (string) "signed multiply results match!@"
|
||||
@ -314,18 +314,18 @@
|
||||
(label) slow_multiply::@2
|
||||
(label) slow_multiply::@return
|
||||
(byte) slow_multiply::a
|
||||
(byte) slow_multiply::a#0 a zp ZP_BYTE:2 157.71428571428572
|
||||
(byte) slow_multiply::a#0 a zp ZP_BYTE:14 157.71428571428572
|
||||
(byte) slow_multiply::b
|
||||
(byte) slow_multiply::b#0 reg byte x 183.66666666666669
|
||||
(byte) slow_multiply::i
|
||||
(byte) slow_multiply::i#1 reg byte y 1501.5
|
||||
(byte) slow_multiply::i#2 reg byte y 1001.0
|
||||
(word) slow_multiply::m
|
||||
(word) slow_multiply::m#1 m zp ZP_WORD:6 1001.0
|
||||
(word) slow_multiply::m#3 m zp ZP_WORD:6 2002.0
|
||||
(word) slow_multiply::m#1 m zp ZP_WORD:8 1001.0
|
||||
(word) slow_multiply::m#3 m zp ZP_WORD:8 2002.0
|
||||
(word) slow_multiply::return
|
||||
(word) slow_multiply::return#0 return zp ZP_WORD:6 367.33333333333337
|
||||
(word) slow_multiply::return#2 return zp ZP_WORD:6 202.0
|
||||
(word) slow_multiply::return#0 return zp ZP_WORD:8 367.33333333333337
|
||||
(word) slow_multiply::return#2 return zp ZP_WORD:8 202.0
|
||||
(signed word()) slow_signed_multiply((signed byte) slow_signed_multiply::a , (signed byte) slow_signed_multiply::b)
|
||||
(label) slow_signed_multiply::@1
|
||||
(label) slow_signed_multiply::@2
|
||||
@ -343,34 +343,45 @@
|
||||
(signed byte) slow_signed_multiply::j#1 reg byte y 1501.5
|
||||
(signed byte) slow_signed_multiply::j#2 reg byte y 1001.0
|
||||
(signed word) slow_signed_multiply::m
|
||||
(signed word) slow_signed_multiply::m#1 m zp ZP_WORD:6 1001.0
|
||||
(signed word) slow_signed_multiply::m#2 m zp ZP_WORD:6 1001.0
|
||||
(signed word) slow_signed_multiply::m#3 m zp ZP_WORD:6 2002.0
|
||||
(signed word) slow_signed_multiply::m#5 m zp ZP_WORD:6 2002.0
|
||||
(signed word) slow_signed_multiply::m#1 m zp ZP_WORD:8 1001.0
|
||||
(signed word) slow_signed_multiply::m#2 m zp ZP_WORD:8 1001.0
|
||||
(signed word) slow_signed_multiply::m#3 m zp ZP_WORD:8 2002.0
|
||||
(signed word) slow_signed_multiply::m#5 m zp ZP_WORD:8 2002.0
|
||||
(signed word) slow_signed_multiply::return
|
||||
(signed word) slow_signed_multiply::return#0 return zp ZP_WORD:6 701.0
|
||||
(signed word) slow_signed_multiply::return#2 return zp ZP_WORD:6 202.0
|
||||
(signed word) slow_signed_multiply::return#0 return zp ZP_WORD:8 701.0
|
||||
(signed word) slow_signed_multiply::return#2 return zp ZP_WORD:8 202.0
|
||||
|
||||
zp ZP_BYTE:2 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::a#1 multiply_results_compare::a#6 multiply_results_compare::a#1 init_multiply::x_2#3 init_multiply::x_2#2 init_multiply::x_2#1 init_multiply::dir#2 init_multiply::dir#3 slow_signed_multiply::a#0 signed_multiply_error::b#0 slow_multiply::a#0 multiply_error::b#0 ]
|
||||
zp ZP_BYTE:3 [ signed_multiply_results_compare::b#2 signed_multiply_results_compare::b#1 multiply_results_compare::b#2 multiply_results_compare::b#1 signed_multiply::b#0 ]
|
||||
zp ZP_WORD:4 [ line_cursor#20 line_cursor#40 line_cursor#27 line_cursor#1 multiply_tables_compare::kc_sqr#2 multiply_tables_compare::kc_sqr#1 init_multiply::sqr1_lo#2 init_multiply::sqr1_lo#1 init_multiply::sqr2_lo#2 init_multiply::sqr2_lo#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:6 [ print_str::str#14 print_str::str#16 print_str::str#0 print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#9 print_word::w#10 print_word::w#11 signed_multiply::m#4 signed_multiply::m#5 signed_multiply::m#1 signed_multiply::m#0 signed_multiply::m#2 slow_signed_multiply::m#5 slow_signed_multiply::return#0 slow_signed_multiply::m#3 slow_signed_multiply::m#1 slow_signed_multiply::m#2 slow_multiply::return#0 slow_multiply::m#3 slow_multiply::m#1 init_multiply::sqr1_hi#2 init_multiply::sqr1_hi#1 init_multiply::sqr2_hi#2 init_multiply::sqr2_hi#1 slow_signed_multiply::return#2 signed_multiply::return#2 signed_multiply_results_compare::ma#0 multiply::return#2 multiply::return#0 slow_multiply::return#2 multiply::return#3 multiply_results_compare::ma#0 ]
|
||||
zp ZP_BYTE:2 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::a#1 slow_signed_multiply::a#0 ]
|
||||
zp ZP_BYTE:3 [ signed_multiply_results_compare::b#2 signed_multiply_results_compare::b#1 signed_multiply::b#0 signed_multiply_error::b#0 ]
|
||||
zp ZP_WORD:4 [ line_cursor#20 line_cursor#40 line_cursor#27 line_cursor#1 ]
|
||||
zp ZP_WORD:6 [ print_str::str#14 print_str::str#16 print_str::str#0 ]
|
||||
zp ZP_WORD:8 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#9 print_word::w#10 print_word::w#11 multiply_tables_compare::asm_sqr#2 multiply_tables_compare::asm_sqr#1 signed_multiply_error::ms#0 signed_multiply_results_compare::ms#0 slow_signed_multiply::return#2 slow_signed_multiply::m#5 slow_signed_multiply::return#0 slow_signed_multiply::m#3 slow_signed_multiply::m#1 slow_signed_multiply::m#2 multiply_error::ms#0 multiply_results_compare::ms#0 slow_multiply::return#2 slow_multiply::return#0 slow_multiply::m#3 slow_multiply::m#1 ]
|
||||
reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ]
|
||||
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
|
||||
zp ZP_WORD:8 [ char_cursor#75 char_cursor#124 char_cursor#123 char_cursor#119 char_cursor#135 char_cursor#27 char_cursor#118 char_cursor#17 char_cursor#117 char_cursor#172 char_cursor#176 char_cursor#1 char_cursor#121 char_cursor#197 init_multiply::sqr#3 init_multiply::sqr#4 init_multiply::sqr#1 init_multiply::sqr#2 signed_multiply_results_compare::ms#0 ]
|
||||
zp ZP_WORD:10 [ char_cursor#75 char_cursor#124 char_cursor#123 char_cursor#119 char_cursor#135 char_cursor#27 char_cursor#118 char_cursor#17 char_cursor#117 char_cursor#172 char_cursor#176 char_cursor#1 char_cursor#121 char_cursor#197 ]
|
||||
reg byte x [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ]
|
||||
zp ZP_WORD:12 [ signed_multiply::m#4 signed_multiply::m#5 signed_multiply::m#1 signed_multiply::m#0 signed_multiply::m#2 signed_multiply::return#2 signed_multiply_results_compare::ma#0 signed_multiply_error::ma#0 multiply::return#2 multiply::return#0 multiply::return#3 multiply_results_compare::ma#0 multiply_error::ma#0 ]
|
||||
reg byte a [ multiply::a#2 multiply::a#1 multiply::a#4 ]
|
||||
reg byte x [ multiply::b#2 multiply::b#1 multiply::b#4 ]
|
||||
reg byte y [ slow_signed_multiply::i#2 slow_signed_multiply::i#1 ]
|
||||
reg byte y [ slow_signed_multiply::j#2 slow_signed_multiply::j#1 ]
|
||||
zp ZP_BYTE:14 [ multiply_results_compare::a#6 multiply_results_compare::a#1 slow_multiply::a#0 ]
|
||||
zp ZP_BYTE:15 [ multiply_results_compare::b#2 multiply_results_compare::b#1 multiply_error::b#0 ]
|
||||
reg byte y [ slow_multiply::i#2 slow_multiply::i#1 ]
|
||||
zp ZP_WORD:10 [ multiply_tables_compare::asm_sqr#2 multiply_tables_compare::asm_sqr#1 signed_multiply_error::ms#0 multiply_results_compare::ms#0 multiply_error::ms#0 ]
|
||||
zp ZP_WORD:16 [ multiply_tables_compare::kc_sqr#2 multiply_tables_compare::kc_sqr#1 ]
|
||||
reg byte x [ init_multiply::c#2 init_multiply::c#1 ]
|
||||
zp ZP_WORD:18 [ init_multiply::sqr1_lo#2 init_multiply::sqr1_lo#1 ]
|
||||
zp ZP_WORD:20 [ init_multiply::sqr1_hi#2 init_multiply::sqr1_hi#1 ]
|
||||
zp ZP_BYTE:22 [ init_multiply::x_2#3 init_multiply::x_2#2 init_multiply::x_2#1 ]
|
||||
zp ZP_WORD:23 [ init_multiply::sqr#3 init_multiply::sqr#4 init_multiply::sqr#1 init_multiply::sqr#2 ]
|
||||
reg byte x [ init_multiply::x_255#2 init_multiply::x_255#1 ]
|
||||
zp ZP_WORD:25 [ init_multiply::sqr2_lo#2 init_multiply::sqr2_lo#1 ]
|
||||
zp ZP_WORD:27 [ init_multiply::sqr2_hi#2 init_multiply::sqr2_hi#1 ]
|
||||
zp ZP_BYTE:29 [ init_multiply::dir#2 init_multiply::dir#3 ]
|
||||
zp ZP_WORD:30 [ print_cls::sc#2 print_cls::sc#1 ]
|
||||
reg byte x [ slow_signed_multiply::b#0 ]
|
||||
reg byte y [ signed_multiply::a#0 ]
|
||||
reg byte x [ signed_multiply_error::a#0 ]
|
||||
zp ZP_WORD:12 [ signed_multiply_error::ma#0 multiply_error::ma#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ signed_multiply::$6 ]
|
||||
|
@ -109,7 +109,7 @@ findcol: {
|
||||
.label x = 5
|
||||
.label y = 2
|
||||
.label xp = 7
|
||||
.label yp = 8
|
||||
.label yp = $a
|
||||
.label diff = 7
|
||||
.label mindiff = 6
|
||||
ldy #0
|
||||
@ -177,7 +177,7 @@ findcol: {
|
||||
jmp b5
|
||||
}
|
||||
initscreen: {
|
||||
.label screen = 3
|
||||
.label screen = 8
|
||||
lda #<SCREEN
|
||||
sta screen
|
||||
lda #>SCREEN
|
||||
|
@ -2600,13 +2600,13 @@ Attempting to uplift remaining variables inzp ZP_BYTE:20 [ findcol::x#0 ]
|
||||
Uplifting [findcol] best 1703953 combination zp ZP_BYTE:20 [ findcol::x#0 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ render::y#4 render::y#1 ]
|
||||
Uplifting [render] best 1703953 combination zp ZP_BYTE:2 [ render::y#4 render::y#1 ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:2 [ render::y#4 render::y#1 ] ] with [ zp ZP_BYTE:21 [ findcol::y#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_WORD:3 [ render::colline#5 render::colline#1 ] ] with [ zp ZP_WORD:11 [ initscreen::screen#2 initscreen::screen#1 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ render::x#2 render::x#1 ] ] with [ zp ZP_BYTE:20 [ findcol::x#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] ] with [ zp ZP_BYTE:24 [ findcol::xp#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:2 [ render::y#4 render::y#1 ] ] with [ zp ZP_BYTE:21 [ findcol::y#0 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:5 [ render::x#2 render::x#1 ] ] with [ zp ZP_BYTE:20 [ findcol::x#0 ] ]
|
||||
Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:7 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 findcol::xp#0 ]
|
||||
Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:8 [ findcol::yp#0 ]
|
||||
Allocated (was zp ZP_WORD:11) zp ZP_WORD:8 [ initscreen::screen#2 initscreen::screen#1 ]
|
||||
Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:10 [ findcol::yp#0 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -2869,7 +2869,7 @@ findcol: {
|
||||
.label x = 5
|
||||
.label y = 2
|
||||
.label xp = 7
|
||||
.label yp = 8
|
||||
.label yp = $a
|
||||
.label diff = 7
|
||||
.label mindiff = 6
|
||||
//SEG91 [54] phi from findcol to findcol::@1 [phi:findcol->findcol::@1]
|
||||
@ -3013,7 +3013,7 @@ findcol: {
|
||||
}
|
||||
//SEG143 initscreen
|
||||
initscreen: {
|
||||
.label screen = 3
|
||||
.label screen = 8
|
||||
//SEG144 [79] phi from initscreen to initscreen::@1 [phi:initscreen->initscreen::@1]
|
||||
b1_from_initscreen:
|
||||
//SEG145 [79] phi (byte*) initscreen::screen#2 = (const byte*) SCREEN#0 [phi:initscreen->initscreen::@1#0] -- pbuz1=pbuc1
|
||||
@ -3243,13 +3243,13 @@ FINAL SYMBOL TABLE
|
||||
(byte) findcol::y
|
||||
(byte) findcol::y#0 y zp ZP_BYTE:2 1708.5416666666665
|
||||
(byte) findcol::yp
|
||||
(byte) findcol::yp#0 yp zp ZP_BYTE:8 6250.625
|
||||
(byte) findcol::yp#0 yp zp ZP_BYTE:10 6250.625
|
||||
(void()) initscreen()
|
||||
(label) initscreen::@1
|
||||
(label) initscreen::@return
|
||||
(byte*) initscreen::screen
|
||||
(byte*) initscreen::screen#1 screen zp ZP_WORD:3 16.5
|
||||
(byte*) initscreen::screen#2 screen zp ZP_WORD:3 16.5
|
||||
(byte*) initscreen::screen#1 screen zp ZP_WORD:8 16.5
|
||||
(byte*) initscreen::screen#2 screen zp ZP_WORD:8 16.5
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@4
|
||||
@ -3276,13 +3276,14 @@ FINAL SYMBOL TABLE
|
||||
(byte) render::y#4 y zp ZP_BYTE:2 109.36363636363637
|
||||
|
||||
zp ZP_BYTE:2 [ render::y#4 render::y#1 findcol::y#0 ]
|
||||
zp ZP_WORD:3 [ render::colline#5 render::colline#1 initscreen::screen#2 initscreen::screen#1 ]
|
||||
zp ZP_WORD:3 [ render::colline#5 render::colline#1 ]
|
||||
zp ZP_BYTE:5 [ render::x#2 render::x#1 findcol::x#0 ]
|
||||
reg byte x [ findcol::i#10 findcol::i#1 ]
|
||||
zp ZP_BYTE:6 [ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
reg byte y [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
zp ZP_BYTE:7 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 findcol::xp#0 ]
|
||||
reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
zp ZP_WORD:8 [ initscreen::screen#2 initscreen::screen#1 ]
|
||||
reg byte x [ animate::$0 ]
|
||||
reg byte x [ animate::$3 ]
|
||||
reg byte x [ animate::$6 ]
|
||||
@ -3292,7 +3293,7 @@ reg byte a [ animate::$15 ]
|
||||
reg byte a [ animate::$18 ]
|
||||
reg byte a [ findcol::return#0 ]
|
||||
reg byte a [ render::col#0 ]
|
||||
zp ZP_BYTE:8 [ findcol::yp#0 ]
|
||||
zp ZP_BYTE:10 [ findcol::yp#0 ]
|
||||
reg byte a [ findcol::$10 ]
|
||||
reg byte a [ findcol::$12 ]
|
||||
|
||||
@ -3505,7 +3506,7 @@ findcol: {
|
||||
.label x = 5
|
||||
.label y = 2
|
||||
.label xp = 7
|
||||
.label yp = 8
|
||||
.label yp = $a
|
||||
.label diff = 7
|
||||
.label mindiff = 6
|
||||
//SEG91 [54] phi from findcol to findcol::@1 [phi:findcol->findcol::@1]
|
||||
@ -3626,7 +3627,7 @@ findcol: {
|
||||
}
|
||||
//SEG143 initscreen
|
||||
initscreen: {
|
||||
.label screen = 3
|
||||
.label screen = 8
|
||||
//SEG144 [79] phi from initscreen to initscreen::@1 [phi:initscreen->initscreen::@1]
|
||||
//SEG145 [79] phi (byte*) initscreen::screen#2 = (const byte*) SCREEN#0 [phi:initscreen->initscreen::@1#0] -- pbuz1=pbuc1
|
||||
lda #<SCREEN
|
||||
|
@ -78,13 +78,13 @@
|
||||
(byte) findcol::y
|
||||
(byte) findcol::y#0 y zp ZP_BYTE:2 1708.5416666666665
|
||||
(byte) findcol::yp
|
||||
(byte) findcol::yp#0 yp zp ZP_BYTE:8 6250.625
|
||||
(byte) findcol::yp#0 yp zp ZP_BYTE:10 6250.625
|
||||
(void()) initscreen()
|
||||
(label) initscreen::@1
|
||||
(label) initscreen::@return
|
||||
(byte*) initscreen::screen
|
||||
(byte*) initscreen::screen#1 screen zp ZP_WORD:3 16.5
|
||||
(byte*) initscreen::screen#2 screen zp ZP_WORD:3 16.5
|
||||
(byte*) initscreen::screen#1 screen zp ZP_WORD:8 16.5
|
||||
(byte*) initscreen::screen#2 screen zp ZP_WORD:8 16.5
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@4
|
||||
@ -111,13 +111,14 @@
|
||||
(byte) render::y#4 y zp ZP_BYTE:2 109.36363636363637
|
||||
|
||||
zp ZP_BYTE:2 [ render::y#4 render::y#1 findcol::y#0 ]
|
||||
zp ZP_WORD:3 [ render::colline#5 render::colline#1 initscreen::screen#2 initscreen::screen#1 ]
|
||||
zp ZP_WORD:3 [ render::colline#5 render::colline#1 ]
|
||||
zp ZP_BYTE:5 [ render::x#2 render::x#1 findcol::x#0 ]
|
||||
reg byte x [ findcol::i#10 findcol::i#1 ]
|
||||
zp ZP_BYTE:6 [ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
reg byte y [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
zp ZP_BYTE:7 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 findcol::xp#0 ]
|
||||
reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
zp ZP_WORD:8 [ initscreen::screen#2 initscreen::screen#1 ]
|
||||
reg byte x [ animate::$0 ]
|
||||
reg byte x [ animate::$3 ]
|
||||
reg byte x [ animate::$6 ]
|
||||
@ -127,6 +128,6 @@ reg byte a [ animate::$15 ]
|
||||
reg byte a [ animate::$18 ]
|
||||
reg byte a [ findcol::return#0 ]
|
||||
reg byte a [ render::col#0 ]
|
||||
zp ZP_BYTE:8 [ findcol::yp#0 ]
|
||||
zp ZP_BYTE:10 [ findcol::yp#0 ]
|
||||
reg byte a [ findcol::$10 ]
|
||||
reg byte a [ findcol::$12 ]
|
||||
|
Loading…
Reference in New Issue
Block a user