1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-23 13:31:12 +00:00

Added option for controlling uplift combinations.

This commit is contained in:
jespergravgaard 2018-09-26 22:01:15 +02:00
parent 44c32ba2e8
commit c70801ee85
13 changed files with 1185 additions and 999 deletions

View File

@ -24,10 +24,17 @@ public class Compiler {
private Program program;
/** The number of combinations to test when uplifting variables into registers. */
private int upliftCombinations = 100;
public Compiler() {
this.program = new Program();
}
public void setUpliftCombinations(int upliftCombinations) {
this.upliftCombinations = upliftCombinations;
}
public static void loadAndParseFile(String fileName, Program program, Path currentPath) {
try {
if(!fileName.endsWith(".kc")) {
@ -412,14 +419,14 @@ public class Compiler {
// Attempt uplifting registers through a lot of combinations
//getLog().setVerboseUplift(true);
new Pass4RegisterUpliftCombinations(program).performUplift(100);
new Pass4RegisterUpliftCombinations(program).performUplift(upliftCombinations);
//getLog().setVerboseUplift(true);
//new Pass4RegisterUpliftStatic(program).performUplift();
//getLog().setVerboseUplift(false);
// Attempt uplifting registers one at a time to catch remaining potential not realized by combination search
new Pass4RegisterUpliftRemains(program).performUplift(100);
new Pass4RegisterUpliftRemains(program).performUplift(upliftCombinations);
// Final register coalesce and finalization
new Pass4ZeroPageCoalesceAssignment(program).coalesce();

View File

@ -44,7 +44,10 @@ public class KickC implements Callable<Void> {
@CommandLine.Option(names = {"-e"}, description = "Execute the assembled prg file using VICE. Implicitly assembles the output.")
private boolean execute = false;
public static void main(String[] args) throws Exception {
@CommandLine.Option(names = {"-Ouplift" }, description = "Optimization Option. Number of combinations to test when uplifting variables to registers in a scope. By default 100 combinations are tested.")
private Integer optimizeUpliftCombinations = null;
public static void main(String[] args) {
CommandLine.call(new KickC(), args);
}
@ -56,7 +59,6 @@ public class KickC implements Callable<Void> {
Compiler compiler = new Compiler();
compiler.addImportPath(".");
if(libDir != null) {
for(Path libPath : libDir) {
compiler.addImportPath(libPath.toString());
@ -81,6 +83,10 @@ public class KickC implements Callable<Void> {
asmFileName = fileBaseName + ".asm";
}
if(optimizeUpliftCombinations!=null) {
compiler.setUpliftCombinations(optimizeUpliftCombinations);
}
System.out.println("Compiling " + kcFile);
Program program = compiler.compile(kcFile.toString());

View File

@ -134,7 +134,7 @@ public class TestPrograms {
@Test
public void testMultiplexer() throws IOException, URISyntaxException {
compileAndCompare("simple-multiplexer");
compileAndCompare("simple-multiplexer", 10);
}
@Test
@ -334,7 +334,7 @@ public class TestPrograms {
@Test
public void testC64DtvGfxExplorer() throws IOException, URISyntaxException {
compileAndCompare("c64dtv-gfxexplorer");
compileAndCompare("c64dtv-gfxexplorer", 10);
}
@Test
@ -359,7 +359,7 @@ public class TestPrograms {
@Test
public void testC64DtvGfxModes() throws IOException, URISyntaxException {
compileAndCompare("c64dtv-gfxmodes");
compileAndCompare("c64dtv-gfxmodes", 10);
}
@Test
@ -484,7 +484,7 @@ public class TestPrograms {
@Test
public void testComparisons() throws IOException, URISyntaxException {
compileAndCompare("test-comparisons");
compileAndCompare("test-comparisons", 10);
}
@Test
@ -1004,17 +1004,24 @@ public class TestPrograms {
fail("Expected compile error.");
}
private void compileAndCompare(String filename) throws IOException, URISyntaxException {
TestPrograms tester = new TestPrograms();
tester.testFile(filename);
tester.testFile(filename, null);
}
private void testFile(String fileName) throws IOException, URISyntaxException {
private void compileAndCompare(String filename, int upliftCombinations) throws IOException, URISyntaxException {
TestPrograms tester = new TestPrograms();
tester.testFile(filename, upliftCombinations);
}
private void testFile(String fileName, Integer upliftCombinations) throws IOException, URISyntaxException {
System.out.println("Testing output for " + fileName);
Compiler compiler = new Compiler();
compiler.addImportPath(stdlibPath);
compiler.addImportPath(testPath);
if(upliftCombinations!=null) {
compiler.setUpliftCombinations(upliftCombinations);
}
Program program = compiler.compile(fileName);
compileAsm(fileName, program);

View File

@ -491,7 +491,7 @@ keyboard_event_scan: {
sta keycode
sta row
b1:
ldy row
lda row
jsr keyboard_matrix_read
sta row_scan
ldy row
@ -604,6 +604,7 @@ keyboard_event_pressed: {
rts
}
keyboard_matrix_read: {
tay
lda keyboard_matrix_row_bitmask,y
sta CIA1_PORT_A
lda CIA1_PORT_B
@ -1861,7 +1862,7 @@ bitmap_line: {
.label yd = 7
.label x0 = 9
.label x1 = $12
.label y0 = $e
.label y0 = $f
lda x0
cmp x1
bcc b1
@ -1886,7 +1887,8 @@ bitmap_line: {
breturn:
rts
b3:
ldx x1
lda x1
sta bitmap_line_xdyi.x
sty bitmap_line_xdyi.y
jsr bitmap_line_xdyi
jmp breturn
@ -1904,7 +1906,8 @@ bitmap_line: {
jsr bitmap_line_ydxd
jmp breturn
b6:
ldx x1
lda x1
sta bitmap_line_xdyd.x
sty bitmap_line_xdyd.y
lda x0
sta bitmap_line_xdyd.x1
@ -1932,7 +1935,8 @@ bitmap_line: {
jsr bitmap_line_ydxd
jmp breturn
b10:
ldx x0
lda x0
sta bitmap_line_xdyd.x
jsr bitmap_line_xdyd
jmp breturn
b9:
@ -1949,26 +1953,28 @@ bitmap_line: {
jsr bitmap_line_ydxi
jmp breturn
b13:
ldx x0
lda x0
sta bitmap_line_xdyi.x
lda x1
sta bitmap_line_xdyi.x1
jsr bitmap_line_xdyi
jmp breturn
}
bitmap_line_xdyi: {
.label _6 = $12
.label y = $e
.label x = $e
.label y = $f
.label x1 = 9
.label xd = 8
.label yd = 7
.label e = $f
.label e = $12
lda yd
lsr
sta e
b1:
ldx x
ldy y
jsr bitmap_plot
inx
inc x
lda e
clc
adc yd
@ -1982,10 +1988,9 @@ bitmap_line_xdyi: {
sbc xd
sta e
b2:
ldy x1
iny
sty _6
cpx _6
ldx x1
inx
cpx x
bne b1
rts
}
@ -2015,8 +2020,8 @@ bitmap_plot: {
rts
}
bitmap_line_ydxi: {
.label y = $f
.label y1 = $e
.label y = $e
.label y1 = $f
.label yd = 7
.label xd = 8
.label e = 9
@ -2040,15 +2045,16 @@ bitmap_line_ydxi: {
sbc yd
sta e
b2:
ldy y1
iny
cpy y
lda y1
clc
adc #1
cmp y
bne b1
rts
}
bitmap_line_xdyd: {
.label _6 = $f
.label y = $e
.label x = $e
.label y = $f
.label x1 = $12
.label xd = 8
.label yd = 7
@ -2057,9 +2063,10 @@ bitmap_line_xdyd: {
lsr
sta e
b1:
ldx x
ldy y
jsr bitmap_plot
inx
inc x
lda e
clc
adc yd
@ -2073,16 +2080,15 @@ bitmap_line_xdyd: {
sbc xd
sta e
b2:
ldy x1
iny
sty _6
cpx _6
ldx x1
inx
cpx x
bne b1
rts
}
bitmap_line_ydxd: {
.label y = $f
.label y1 = $e
.label y = $e
.label y1 = $f
.label yd = 7
.label xd = 8
.label e = 9
@ -2106,9 +2112,10 @@ bitmap_line_ydxd: {
sbc yd
sta e
b2:
ldy y1
iny
cpy y
lda y1
clc
adc #1
cmp y
bne b1
rts
}

View File

@ -269,7 +269,7 @@
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::y0
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:14 1.6666666666666674
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:15 1.6666666666666674
(byte) bitmap_line::y1
(byte) bitmap_line::y1#0 reg byte y 1.7500000000000007
(byte) bitmap_line::yd
@ -278,7 +278,7 @@
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:7 0.8888888888888888
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 $6 zp ZP_BYTE:15 202.0
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 reg byte x 202.0
(label) bitmap_line_xdyd::@1
(label) bitmap_line_xdyd::@2
(label) bitmap_line_xdyd::@3
@ -291,11 +291,11 @@
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:9 40.8
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:9 101.0
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 reg byte x 0.8
(byte) bitmap_line_xdyd::x#1 reg byte x 0.8
(byte) bitmap_line_xdyd::x#2 reg byte x 37.875
(byte) bitmap_line_xdyd::x#3 reg byte x 76.25
(byte) bitmap_line_xdyd::x#6 reg byte x 3.0
(byte) bitmap_line_xdyd::x#0 x zp ZP_BYTE:14 0.8
(byte) bitmap_line_xdyd::x#1 x zp ZP_BYTE:14 0.8
(byte) bitmap_line_xdyd::x#2 x zp ZP_BYTE:14 37.875
(byte) bitmap_line_xdyd::x#3 x zp ZP_BYTE:14 76.25
(byte) bitmap_line_xdyd::x#6 x zp ZP_BYTE:14 3.0
(byte) bitmap_line_xdyd::x1
(byte) bitmap_line_xdyd::x1#0 x1 zp ZP_BYTE:18 1.3333333333333333
(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:18 1.3333333333333333
@ -305,35 +305,35 @@
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:8 14.714285714285715
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:14 58.00000000000001
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:15 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:15 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:15 101.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:15 58.00000000000001
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:15 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:15 101.0
(byte) bitmap_line_xdyd::yd
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:7 7.642857142857143
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 $6 zp ZP_BYTE:18 202.0
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 reg byte x 202.0
(label) bitmap_line_xdyi::@1
(label) bitmap_line_xdyi::@2
(label) bitmap_line_xdyi::@3
(label) bitmap_line_xdyi::@5
(label) bitmap_line_xdyi::@return
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:15 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:15 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:15 202.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:15 40.8
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:15 101.0
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:18 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:18 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:18 202.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:18 40.8
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:18 101.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#0 reg byte x 0.8
(byte) bitmap_line_xdyi::x#1 reg byte x 0.8
(byte) bitmap_line_xdyi::x#2 reg byte x 37.875
(byte) bitmap_line_xdyi::x#3 reg byte x 76.25
(byte) bitmap_line_xdyi::x#6 reg byte x 3.0
(byte) bitmap_line_xdyi::x#0 x zp ZP_BYTE:14 0.8
(byte) bitmap_line_xdyi::x#1 x zp ZP_BYTE:14 0.8
(byte) bitmap_line_xdyi::x#2 x zp ZP_BYTE:14 37.875
(byte) bitmap_line_xdyi::x#3 x zp ZP_BYTE:14 76.25
(byte) bitmap_line_xdyi::x#6 x zp ZP_BYTE:14 3.0
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:9 1.3333333333333333
@ -343,18 +343,18 @@
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:8 14.714285714285715
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:14 58.00000000000001
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:15 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:15 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:15 101.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:15 58.00000000000001
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:15 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:15 101.0
(byte) bitmap_line_xdyi::yd
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:7 7.642857142857143
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte y 202.0
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte a 202.0
(label) bitmap_line_ydxd::@1
(label) bitmap_line_ydxd::@2
(label) bitmap_line_ydxd::@3
@ -378,21 +378,21 @@
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:8 7.642857142857143
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:15 76.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:15 37.875
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:15 3.0
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:14 76.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:14 37.875
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_ydxd::y1
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:14 7.5
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:15 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:15 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:15 7.5
(byte) bitmap_line_ydxd::yd
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:7 14.714285714285715
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte y 202.0
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte a 202.0
(label) bitmap_line_ydxi::@1
(label) bitmap_line_ydxi::@2
(label) bitmap_line_ydxi::@3
@ -416,15 +416,15 @@
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:8 7.642857142857143
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:15 37.875
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:15 76.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:15 3.0
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:14 37.875
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:14 76.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_ydxi::y1
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:14 7.5
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:15 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:15 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:15 7.5
(byte) bitmap_line_ydxi::yd
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:7 2.0
@ -1252,7 +1252,7 @@
(byte) keyboard_matrix_read::return#2 reg byte a 20002.0
(byte) keyboard_matrix_read::row_pressed_bits
(byte) keyboard_matrix_read::rowid
(byte) keyboard_matrix_read::rowid#0 reg byte y 10003.0
(byte) keyboard_matrix_read::rowid#0 reg byte a 10003.0
(byte[8]) keyboard_matrix_row_bitmask
(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 }
(byte) keyboard_modifiers
@ -1395,9 +1395,9 @@ reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ]
reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ]
zp ZP_DWORD:10 [ get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$31 gfx_mode::plane_a#0 gfx_mode::$45 gfx_mode::plane_b#0 gfx_init_plane_fill::plane_addr#3 ]
reg byte y [ form_mode::i#2 form_mode::i#1 ]
zp ZP_BYTE:14 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
zp ZP_BYTE:14 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
reg byte x [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 ]
zp ZP_BYTE:15 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::$6 ]
zp ZP_BYTE:15 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ]
reg byte y [ apply_preset::i#2 apply_preset::i#1 ]
reg byte y [ form_control::return#2 ]
@ -1411,12 +1411,10 @@ reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ]
reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ]
reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ]
reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
zp ZP_BYTE:18 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 keyboard_event_scan::row_scan#0 ]
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:18 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 keyboard_event_scan::row_scan#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
@ -1460,7 +1458,7 @@ reg byte a [ gfx_mode::$81 ]
reg byte a [ gfx_mode::$82 ]
reg byte a [ keyboard_event_get::return#3 ]
reg byte a [ gfx_mode::keyboard_event#0 ]
reg byte y [ keyboard_matrix_read::rowid#0 ]
reg byte a [ keyboard_matrix_read::rowid#0 ]
reg byte a [ keyboard_matrix_read::return#2 ]
reg byte a [ keyboard_event_pressed::return#0 ]
reg byte a [ keyboard_event_scan::$14 ]
@ -1501,9 +1499,11 @@ reg byte a [ gfx_init_plane_horisontal::$5 ]
reg byte a [ gfx_init_plane_charset8::$5 ]
reg byte a [ gfx_init_plane_8bppchunky::c#0 ]
reg byte y [ bitmap_line::y1#0 ]
reg byte x [ bitmap_line_xdyi::$6 ]
reg byte a [ bitmap_plot::$1 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte y [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_line_ydxi::$6 ]
reg byte x [ bitmap_line_xdyd::$6 ]
reg byte a [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_init::$0 ]
reg byte a [ bitmap_init::$7 ]
reg byte a [ bitmap_init::$8 ]

View File

@ -1354,7 +1354,7 @@ bitmap_line: {
.label yd = 7
.label x0 = 9
.label x1 = $c
.label y0 = $a
.label y0 = $b
lda x0
cmp x1
bcc b1
@ -1379,7 +1379,8 @@ bitmap_line: {
breturn:
rts
b3:
ldx x1
lda x1
sta bitmap_line_xdyi.x
sty bitmap_line_xdyi.y
jsr bitmap_line_xdyi
jmp breturn
@ -1397,7 +1398,8 @@ bitmap_line: {
jsr bitmap_line_ydxd
jmp breturn
b6:
ldx x1
lda x1
sta bitmap_line_xdyd.x
sty bitmap_line_xdyd.y
lda x0
sta bitmap_line_xdyd.x1
@ -1425,7 +1427,8 @@ bitmap_line: {
jsr bitmap_line_ydxd
jmp breturn
b10:
ldx x0
lda x0
sta bitmap_line_xdyd.x
jsr bitmap_line_xdyd
jmp breturn
b9:
@ -1442,26 +1445,28 @@ bitmap_line: {
jsr bitmap_line_ydxi
jmp breturn
b13:
ldx x0
lda x0
sta bitmap_line_xdyi.x
lda x1
sta bitmap_line_xdyi.x1
jsr bitmap_line_xdyi
jmp breturn
}
bitmap_line_xdyi: {
.label _6 = $c
.label y = $a
.label x = $a
.label y = $b
.label x1 = 9
.label xd = 8
.label yd = 7
.label e = $b
.label e = $c
lda yd
lsr
sta e
b1:
ldx x
ldy y
jsr bitmap_plot
inx
inc x
lda e
clc
adc yd
@ -1475,10 +1480,9 @@ bitmap_line_xdyi: {
sbc xd
sta e
b2:
ldy x1
iny
sty _6
cpx _6
ldx x1
inx
cpx x
bne b1
rts
}
@ -1508,8 +1512,8 @@ bitmap_plot: {
rts
}
bitmap_line_ydxi: {
.label y = $b
.label y1 = $a
.label y = $a
.label y1 = $b
.label yd = 7
.label xd = 8
.label e = 9
@ -1533,15 +1537,16 @@ bitmap_line_ydxi: {
sbc yd
sta e
b2:
ldy y1
iny
cpy y
lda y1
clc
adc #1
cmp y
bne b1
rts
}
bitmap_line_xdyd: {
.label _6 = $b
.label y = $a
.label x = $a
.label y = $b
.label x1 = $c
.label xd = 8
.label yd = 7
@ -1550,9 +1555,10 @@ bitmap_line_xdyd: {
lsr
sta e
b1:
ldx x
ldy y
jsr bitmap_plot
inx
inc x
lda e
clc
adc yd
@ -1566,16 +1572,15 @@ bitmap_line_xdyd: {
sbc xd
sta e
b2:
ldy x1
iny
sty _6
cpx _6
ldx x1
inx
cpx x
bne b1
rts
}
bitmap_line_ydxd: {
.label y = $b
.label y1 = $a
.label y = $a
.label y1 = $b
.label yd = 7
.label xd = 8
.label e = 9
@ -1599,9 +1604,10 @@ bitmap_line_ydxd: {
sbc yd
sta e
b2:
ldy y1
iny
cpy y
lda y1
clc
adc #1
cmp y
bne b1
rts
}

File diff suppressed because it is too large Load Diff

View File

@ -223,7 +223,7 @@
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::y0
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:10 5.952380952380948
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:11 5.952380952380948
(byte) bitmap_line::y1
(byte) bitmap_line::y1#0 reg byte y 6.249999999999996
(byte) bitmap_line::yd
@ -232,7 +232,7 @@
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:7 0.8888888888888888
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 $6 zp ZP_BYTE:11 2002.0
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 reg byte x 2002.0
(label) bitmap_line_xdyd::@1
(label) bitmap_line_xdyd::@2
(label) bitmap_line_xdyd::@3
@ -245,11 +245,11 @@
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:9 400.79999999999995
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:9 1001.0
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 reg byte x 0.8
(byte) bitmap_line_xdyd::x#1 reg byte x 0.8
(byte) bitmap_line_xdyd::x#2 reg byte x 375.375
(byte) bitmap_line_xdyd::x#3 reg byte x 751.25
(byte) bitmap_line_xdyd::x#6 reg byte x 3.0
(byte) bitmap_line_xdyd::x#0 x zp ZP_BYTE:10 0.8
(byte) bitmap_line_xdyd::x#1 x zp ZP_BYTE:10 0.8
(byte) bitmap_line_xdyd::x#2 x zp ZP_BYTE:10 375.375
(byte) bitmap_line_xdyd::x#3 x zp ZP_BYTE:10 751.25
(byte) bitmap_line_xdyd::x#6 x zp ZP_BYTE:10 3.0
(byte) bitmap_line_xdyd::x1
(byte) bitmap_line_xdyd::x1#0 x1 zp ZP_BYTE:12 1.3333333333333333
(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:12 1.3333333333333333
@ -259,35 +259,35 @@
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:8 143.28571428571428
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:10 572.2857142857142
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:11 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:11 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:11 1001.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:11 572.2857142857142
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:11 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:11 1001.0
(byte) bitmap_line_xdyd::yd
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:7 71.92857142857143
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 $6 zp ZP_BYTE:12 2002.0
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 reg byte x 2002.0
(label) bitmap_line_xdyi::@1
(label) bitmap_line_xdyi::@2
(label) bitmap_line_xdyi::@3
(label) bitmap_line_xdyi::@5
(label) bitmap_line_xdyi::@return
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:11 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:11 1334.6666666666667
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:11 2002.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:11 400.79999999999995
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:11 1001.0
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:12 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:12 1334.6666666666667
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:12 2002.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:12 400.79999999999995
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:12 1001.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#0 reg byte x 0.8
(byte) bitmap_line_xdyi::x#1 reg byte x 0.8
(byte) bitmap_line_xdyi::x#2 reg byte x 375.375
(byte) bitmap_line_xdyi::x#3 reg byte x 751.25
(byte) bitmap_line_xdyi::x#6 reg byte x 3.0
(byte) bitmap_line_xdyi::x#0 x zp ZP_BYTE:10 0.8
(byte) bitmap_line_xdyi::x#1 x zp ZP_BYTE:10 0.8
(byte) bitmap_line_xdyi::x#2 x zp ZP_BYTE:10 375.375
(byte) bitmap_line_xdyi::x#3 x zp ZP_BYTE:10 751.25
(byte) bitmap_line_xdyi::x#6 x zp ZP_BYTE:10 3.0
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:9 1.3333333333333333
@ -297,18 +297,18 @@
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:8 143.28571428571428
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:10 572.2857142857142
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:11 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:11 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:11 1001.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:11 572.2857142857142
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:11 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:11 1001.0
(byte) bitmap_line_xdyi::yd
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:7 71.92857142857143
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte y 2002.0
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte a 2002.0
(label) bitmap_line_ydxd::@1
(label) bitmap_line_ydxd::@2
(label) bitmap_line_ydxd::@3
@ -332,21 +332,21 @@
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:8 71.92857142857143
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:11 751.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:11 375.375
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:11 3.0
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:10 751.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:10 375.375
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_ydxd::y1
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:10 71.78571428571429
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:11 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:11 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:11 71.78571428571429
(byte) bitmap_line_ydxd::yd
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:7 143.28571428571428
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte y 2002.0
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte a 2002.0
(label) bitmap_line_ydxi::@1
(label) bitmap_line_ydxi::@2
(label) bitmap_line_ydxi::@3
@ -370,15 +370,15 @@
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:8 71.92857142857143
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:11 375.375
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:11 751.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:11 3.0
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:10 375.375
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:10 751.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_ydxi::y1
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:10 71.78571428571429
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:11 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:11 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:11 71.78571428571429
(byte) bitmap_line_ydxi::yd
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:7 2.0
@ -1214,14 +1214,12 @@ reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ]
reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ]
reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ]
reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
zp ZP_BYTE:10 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
zp ZP_BYTE:11 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::$6 ]
zp ZP_BYTE:10 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
zp ZP_BYTE:11 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
zp ZP_BYTE:12 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 ]
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:12 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
@ -1312,9 +1310,11 @@ reg byte y [ mode_stdbitmap::col#0 ]
reg byte a [ mode_stdbitmap::$22 ]
reg byte a [ mode_stdbitmap::$23 ]
reg byte y [ bitmap_line::y1#0 ]
reg byte x [ bitmap_line_xdyi::$6 ]
reg byte a [ bitmap_plot::$1 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte y [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_line_ydxi::$6 ]
reg byte x [ bitmap_line_xdyd::$6 ]
reg byte a [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_init::$0 ]
reg byte a [ bitmap_init::$7 ]
reg byte a [ bitmap_init::$8 ]

View File

@ -40,17 +40,17 @@ loop: {
cmp #$ff
bne b4
inc BORDERCOL
ldx sin_idx
ldy #0
ldy sin_idx
ldx #0
b7:
lda YSIN,x
sta PLEX_YPOS,y
txa
lda YSIN,y
sta PLEX_YPOS,x
tya
clc
adc #8
tax
iny
cpy #PLEX_COUNT-1+1
tay
inx
cpx #PLEX_COUNT-1+1
bne b7
inc sin_idx
inc BORDERCOL

View File

@ -2872,34 +2872,50 @@ Uplift Scope [plexInit] 38.5: zp ZP_BYTE:17 [ plexInit::i#2 plexInit::i#1 ]
Uplift Scope [plexShowSprite] 4: zp ZP_BYTE:22 [ plexShowSprite::plexFreeAdd1_$0#0 ] 4: zp ZP_BYTE:23 [ plexShowSprite::plexFreeAdd1_$1#0 ] 4: zp ZP_BYTE:25 [ plexShowSprite::$3 ] 4: zp ZP_BYTE:26 [ plexShowSprite::$4 ] 4: zp ZP_BYTE:27 [ plexShowSprite::$6 ] 4: zp ZP_BYTE:28 [ plexShowSprite::$7 ] 3: zp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] 2: zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] 0.6: zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ]
Uplift Scope [main]
Uplifting [plexSort] best 81785 combination reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ] reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] reg byte x [ plexSort::s#2 ] zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ]
Limited combination testing to 100 combinations of 972 possible.
Uplifting [loop] best 79655 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] reg byte y [ loop::sy#2 loop::sy#1 ] reg byte x [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] reg byte a [ loop::$4 ] zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
Limited combination testing to 100 combinations of 1296 possible.
Uplifting [init] best 79365 combination reg byte x [ init::ss#2 init::ss#1 ] reg byte x [ init::sx#2 init::sx#1 ] reg byte a [ init::$6 ] zp ZP_WORD:14 [ init::xp#2 init::xp#1 ]
Uplifting [] best 79057 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] reg byte x [ plex_sprite_idx#44 plex_sprite_idx#15 ]
Uplifting [plexInit] best 78937 combination reg byte x [ plexInit::i#2 plexInit::i#1 ]
Uplifting [plexShowSprite] best 78917 combination reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ] reg byte a [ plexShowSprite::plexFreeAdd1_$1#0 ] reg byte a [ plexShowSprite::$3 ] reg byte a [ plexShowSprite::$4 ] zp ZP_BYTE:27 [ plexShowSprite::$6 ] zp ZP_BYTE:28 [ plexShowSprite::$7 ] zp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ]
Limited combination testing to 100 combinations of 147456 possible.
Uplifting [main] best 78917 combination
Uplifting [plexSort] best 82385 combination reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ] reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] zp ZP_BYTE:31 [ plexSort::s#2 ] zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ]
Limited combination testing to 10 combinations of 972 possible.
Uplifting [loop] best 81185 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] reg byte x [ loop::sy#2 loop::sy#1 ] zp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] zp ZP_BYTE:18 [ loop::$4 ] zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
Limited combination testing to 10 combinations of 1296 possible.
Uplifting [init] best 80935 combination reg byte x [ init::ss#2 init::ss#1 ] reg byte x [ init::sx#2 init::sx#1 ] zp ZP_BYTE:32 [ init::$6 ] zp ZP_WORD:14 [ init::xp#2 init::xp#1 ]
Limited combination testing to 10 combinations of 36 possible.
Uplifting [] best 80935 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] zp ZP_BYTE:6 [ plex_sprite_idx#44 plex_sprite_idx#15 ]
Limited combination testing to 10 combinations of 81 possible.
Uplifting [plexInit] best 80815 combination reg byte x [ plexInit::i#2 plexInit::i#1 ]
Uplifting [plexShowSprite] best 80805 combination reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ] reg byte a [ plexShowSprite::plexFreeAdd1_$1#0 ] zp ZP_BYTE:25 [ plexShowSprite::$3 ] zp ZP_BYTE:26 [ plexShowSprite::$4 ] zp ZP_BYTE:27 [ plexShowSprite::$6 ] zp ZP_BYTE:28 [ plexShowSprite::$7 ] zp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ]
Limited combination testing to 10 combinations of 147456 possible.
Uplifting [main] best 80805 combination
Attempting to uplift remaining variables inzp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ]
Uplifting [loop] best 78917 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ]
Uplifting [loop] best 80805 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
Uplifting [loop] best 80275 combination reg byte y [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:18 [ loop::$4 ]
Uplifting [loop] best 79875 combination reg byte a [ loop::$4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:31 [ plexSort::s#2 ]
Uplifting [plexSort] best 79275 combination reg byte x [ plexSort::s#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ]
Uplifting [plexSort] best 78917 combination zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ]
Uplifting [plexSort] best 79275 combination zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ]
Uplifting [loop] best 78917 combination zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ]
Uplifting [loop] best 79275 combination zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:30 [ plexSort::nxt_y#0 ]
Uplifting [plexSort] best 78917 combination zp ZP_BYTE:30 [ plexSort::nxt_y#0 ]
Uplifting [plexSort] best 79275 combination zp ZP_BYTE:30 [ plexSort::nxt_y#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:29 [ plexSort::nxt_idx#0 ]
Uplifting [plexSort] best 78917 combination zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ]
Uplifting [plexSort] best 79275 combination zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ]
Uplifting [] best 78917 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ]
Uplifting [] best 79275 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ]
Uplifting [] best 78917 combination zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ]
Uplifting [] best 79275 combination zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ]
Attempting to uplift remaining variables inzp ZP_BYTE:32 [ init::$6 ]
Uplifting [init] best 79235 combination reg byte a [ init::$6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ]
Uplifting [] best 78917 combination zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ]
Uplifting [] best 79235 combination zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:6 [ plex_sprite_idx#44 plex_sprite_idx#15 ]
Uplifting [] best 78927 combination reg byte x [ plex_sprite_idx#44 plex_sprite_idx#15 ]
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
Uplifting [loop] best 78917 combination zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
Uplifting [loop] best 78927 combination zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:25 [ plexShowSprite::$3 ]
Uplifting [plexShowSprite] best 78921 combination reg byte a [ plexShowSprite::$3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:26 [ plexShowSprite::$4 ]
Uplifting [plexShowSprite] best 78917 combination reg byte a [ plexShowSprite::$4 ]
Attempting to uplift remaining variables inzp ZP_BYTE:27 [ plexShowSprite::$6 ]
Uplifting [plexShowSprite] best 78911 combination reg byte a [ plexShowSprite::$6 ]
Attempting to uplift remaining variables inzp ZP_BYTE:28 [ plexShowSprite::$7 ]
@ -3014,12 +3030,12 @@ loop: {
b6:
//SEG27 [14] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ loop::sin_idx#6 ] ( main:4::loop:9 [ loop::sin_idx#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1
inc BORDERCOL
//SEG28 [15] (byte~) loop::y_idx#3 ← (byte) loop::sin_idx#6 [ loop::sin_idx#6 loop::y_idx#3 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#3 ] ) -- vbuxx=vbuz1
ldx sin_idx
//SEG28 [15] (byte~) loop::y_idx#3 ← (byte) loop::sin_idx#6 [ loop::sin_idx#6 loop::y_idx#3 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#3 ] ) -- vbuyy=vbuz1
ldy sin_idx
//SEG29 [16] phi from loop::@6 to loop::@7 [phi:loop::@6->loop::@7]
b7_from_b6:
//SEG30 [16] phi (byte) loop::sy#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:loop::@6->loop::@7#0] -- vbuyy=vbuc1
ldy #0
//SEG30 [16] phi (byte) loop::sy#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:loop::@6->loop::@7#0] -- vbuxx=vbuc1
ldx #0
//SEG31 [16] phi (byte) loop::y_idx#2 = (byte~) loop::y_idx#3 [phi:loop::@6->loop::@7#1] -- register_copy
jmp b7
//SEG32 [16] phi from loop::@7 to loop::@7 [phi:loop::@7->loop::@7]
@ -3029,18 +3045,18 @@ loop: {
jmp b7
//SEG35 loop::@7
b7:
//SEG36 [17] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2) [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx
lda YSIN,x
sta PLEX_YPOS,y
//SEG37 [18] (byte) loop::y_idx#1 ← (byte) loop::y_idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ) -- vbuxx=vbuxx_plus_vbuc1
txa
//SEG36 [17] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2) [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy
lda YSIN,y
sta PLEX_YPOS,x
//SEG37 [18] (byte) loop::y_idx#1 ← (byte) loop::y_idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ) -- vbuyy=vbuyy_plus_vbuc1
tya
clc
adc #8
tax
//SEG38 [19] (byte) loop::sy#1 ← ++ (byte) loop::sy#2 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuyy=_inc_vbuyy
iny
//SEG39 [20] if((byte) loop::sy#1!=(const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto loop::@7 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuyy_neq_vbuc1_then_la1
cpy #PLEX_COUNT-1+1
tay
//SEG38 [19] (byte) loop::sy#1 ← ++ (byte) loop::sy#2 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG39 [20] if((byte) loop::sy#1!=(const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto loop::@7 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuxx_neq_vbuc1_then_la1
cpx #PLEX_COUNT-1+1
bne b7_from_b7
jmp b20
//SEG40 loop::@20
@ -3710,12 +3726,12 @@ FINAL SYMBOL TABLE
(byte) loop::ss#1 ss zp ZP_BYTE:6 151.5
(byte) loop::ss#6 ss zp ZP_BYTE:6 33.666666666666664
(byte) loop::sy
(byte) loop::sy#1 reg byte y 151.5
(byte) loop::sy#2 reg byte y 101.0
(byte) loop::sy#1 reg byte x 151.5
(byte) loop::sy#2 reg byte x 101.0
(byte) loop::y_idx
(byte) loop::y_idx#1 reg byte x 67.33333333333333
(byte) loop::y_idx#2 reg byte x 157.0
(byte~) loop::y_idx#3 reg byte x 22.0
(byte) loop::y_idx#1 reg byte y 67.33333333333333
(byte) loop::y_idx#2 reg byte y 157.0
(byte~) loop::y_idx#3 reg byte y 22.0
(void()) main()
(label) main::@1
(label) main::@return
@ -3794,8 +3810,8 @@ FINAL SYMBOL TABLE
(byte) plex_sprite_msb#44 plex_sprite_msb zp ZP_BYTE:5 4.458333333333332
zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
reg byte x [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
reg byte y [ loop::sy#2 loop::sy#1 ]
reg byte y [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
reg byte x [ loop::sy#2 loop::sy#1 ]
zp ZP_BYTE:3 [ plex_free_next#17 plex_free_next#13 plexSort::m#2 plexSort::m#1 ]
reg byte x [ plex_sprite_idx#44 plex_sprite_idx#15 ]
zp ZP_BYTE:4 [ plex_show_idx#44 plex_show_idx#15 plexSort::nxt_idx#0 ]
@ -3894,29 +3910,29 @@ loop: {
//SEG26 loop::@6
//SEG27 [14] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ loop::sin_idx#6 ] ( main:4::loop:9 [ loop::sin_idx#6 ] ) -- _deref_pbuc1=_inc__deref_pbuc1
inc BORDERCOL
//SEG28 [15] (byte~) loop::y_idx#3 ← (byte) loop::sin_idx#6 [ loop::sin_idx#6 loop::y_idx#3 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#3 ] ) -- vbuxx=vbuz1
ldx sin_idx
//SEG28 [15] (byte~) loop::y_idx#3 ← (byte) loop::sin_idx#6 [ loop::sin_idx#6 loop::y_idx#3 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#3 ] ) -- vbuyy=vbuz1
ldy sin_idx
//SEG29 [16] phi from loop::@6 to loop::@7 [phi:loop::@6->loop::@7]
//SEG30 [16] phi (byte) loop::sy#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:loop::@6->loop::@7#0] -- vbuyy=vbuc1
ldy #0
//SEG30 [16] phi (byte) loop::sy#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:loop::@6->loop::@7#0] -- vbuxx=vbuc1
ldx #0
//SEG31 [16] phi (byte) loop::y_idx#2 = (byte~) loop::y_idx#3 [phi:loop::@6->loop::@7#1] -- register_copy
//SEG32 [16] phi from loop::@7 to loop::@7 [phi:loop::@7->loop::@7]
//SEG33 [16] phi (byte) loop::sy#2 = (byte) loop::sy#1 [phi:loop::@7->loop::@7#0] -- register_copy
//SEG34 [16] phi (byte) loop::y_idx#2 = (byte) loop::y_idx#1 [phi:loop::@7->loop::@7#1] -- register_copy
//SEG35 loop::@7
b7:
//SEG36 [17] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2) [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx
lda YSIN,x
sta PLEX_YPOS,y
//SEG37 [18] (byte) loop::y_idx#1 ← (byte) loop::y_idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ) -- vbuxx=vbuxx_plus_vbuc1
txa
//SEG36 [17] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2) [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy
lda YSIN,y
sta PLEX_YPOS,x
//SEG37 [18] (byte) loop::y_idx#1 ← (byte) loop::y_idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ) -- vbuyy=vbuyy_plus_vbuc1
tya
clc
adc #8
tax
//SEG38 [19] (byte) loop::sy#1 ← ++ (byte) loop::sy#2 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuyy=_inc_vbuyy
iny
//SEG39 [20] if((byte) loop::sy#1!=(const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto loop::@7 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuyy_neq_vbuc1_then_la1
cpy #PLEX_COUNT-1+1
tay
//SEG38 [19] (byte) loop::sy#1 ← ++ (byte) loop::sy#2 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG39 [20] if((byte) loop::sy#1!=(const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto loop::@7 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#1 loop::sy#1 ] ) -- vbuxx_neq_vbuc1_then_la1
cpx #PLEX_COUNT-1+1
bne b7
//SEG40 loop::@20
//SEG41 [21] (byte) loop::sin_idx#1 ← (byte) loop::sin_idx#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ loop::sin_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#1 ] ) -- vbuz1=vbuz1_plus_1

View File

@ -88,12 +88,12 @@
(byte) loop::ss#1 ss zp ZP_BYTE:6 151.5
(byte) loop::ss#6 ss zp ZP_BYTE:6 33.666666666666664
(byte) loop::sy
(byte) loop::sy#1 reg byte y 151.5
(byte) loop::sy#2 reg byte y 101.0
(byte) loop::sy#1 reg byte x 151.5
(byte) loop::sy#2 reg byte x 101.0
(byte) loop::y_idx
(byte) loop::y_idx#1 reg byte x 67.33333333333333
(byte) loop::y_idx#2 reg byte x 157.0
(byte~) loop::y_idx#3 reg byte x 22.0
(byte) loop::y_idx#1 reg byte y 67.33333333333333
(byte) loop::y_idx#2 reg byte y 157.0
(byte~) loop::y_idx#3 reg byte y 22.0
(void()) main()
(label) main::@1
(label) main::@return
@ -172,8 +172,8 @@
(byte) plex_sprite_msb#44 plex_sprite_msb zp ZP_BYTE:5 4.458333333333332
zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ]
reg byte x [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
reg byte y [ loop::sy#2 loop::sy#1 ]
reg byte y [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ]
reg byte x [ loop::sy#2 loop::sy#1 ]
zp ZP_BYTE:3 [ plex_free_next#17 plex_free_next#13 plexSort::m#2 plexSort::m#1 ]
reg byte x [ plex_sprite_idx#44 plex_sprite_idx#15 ]
zp ZP_BYTE:4 [ plex_show_idx#44 plex_show_idx#15 plexSort::nxt_idx#0 ]

View File

@ -4654,28 +4654,31 @@ Uplifting [] best 21801 combination zp ZP_WORD:32 [ print_char_cursor#54 print_c
Uplifting [print_str] best 21801 combination zp ZP_WORD:35 [ print_str::str#2 print_str::str#1 print_str::str#0 ]
Uplifting [print_cls] best 21801 combination zp ZP_WORD:37 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [print_char] best 21785 combination reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ]
Uplifting [print_byte] best 21777 combination zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ]
Uplifting [print_ln] best 21777 combination
Uplifting [print_byte] best 21781 combination zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] zp ZP_BYTE:41 [ print_byte::$2 ]
Limited combination testing to 10 combinations of 32 possible.
Uplifting [print_ln] best 21781 combination
Attempting to uplift remaining variables inzp 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 ]
Uplifting [printu] best 21777 combination 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 ]
Uplifting [printu] best 21781 combination 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 ]
Attempting to uplift remaining variables inzp ZP_BYTE:29 [ 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 ]
Uplifting [printu] best 21777 combination zp ZP_BYTE:29 [ 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 ]
Uplifting [printu] best 21781 combination zp ZP_BYTE:29 [ 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 ]
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ main::i#10 main::i#1 ]
Uplifting [main] best 21777 combination zp ZP_BYTE:3 [ main::i#10 main::i#1 ]
Uplifting [main] best 21781 combination zp ZP_BYTE:3 [ main::i#10 main::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
Uplifting [print_byte] best 21777 combination zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
Uplifting [print_byte] best 21781 combination zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ main::a#10 main::a#1 ]
Uplifting [main] best 21777 combination zp ZP_BYTE:2 [ main::a#10 main::a#1 ]
Uplifting [main] best 21781 combination zp ZP_BYTE:2 [ main::a#10 main::a#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ main::r#41 ]
Uplifting [main] best 21687 combination reg byte x [ main::r#41 ]
Uplifting [main] best 21691 combination reg byte x [ main::r#41 ]
Attempting to uplift remaining variables inzp ZP_BYTE:9 [ main::r#45 ]
Uplifting [main] best 21597 combination reg byte x [ main::r#45 ]
Uplifting [main] best 21601 combination reg byte x [ main::r#45 ]
Attempting to uplift remaining variables inzp ZP_BYTE:13 [ main::r#49 ]
Uplifting [main] best 21507 combination reg byte x [ main::r#49 ]
Uplifting [main] best 21511 combination reg byte x [ main::r#49 ]
Attempting to uplift remaining variables inzp ZP_BYTE:17 [ main::r#53 ]
Uplifting [main] best 21417 combination reg byte x [ main::r#53 ]
Uplifting [main] best 21421 combination reg byte x [ main::r#53 ]
Attempting to uplift remaining variables inzp ZP_BYTE:21 [ main::r#57 ]
Uplifting [main] best 21327 combination reg byte x [ main::r#57 ]
Uplifting [main] best 21331 combination reg byte x [ main::r#57 ]
Attempting to uplift remaining variables inzp ZP_BYTE:41 [ print_byte::$2 ]
Uplifting [print_byte] best 21327 combination reg byte a [ print_byte::$2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:4 [ main::r#40 ]
Uplifting [main] best 21237 combination reg byte x [ main::r#40 ]
Attempting to uplift remaining variables inzp ZP_BYTE:6 [ main::r#42 ]