diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1e4be6bc2..97ddc30c5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,9 +11,10 @@ release:
artifacts:
name: kickc_${CI_BUILD_REF_NAME}
paths:
+ - ./bin
- ./lib
- ./stdlib
+ - ./examples
- ./LICENSE*
- ./NOTICE*
- ./*.pdf
-
diff --git a/src/main/assembly/assembly.xml b/src/main/assembly/assembly.xml
index b8bc96ce9..af14168bb 100644
--- a/src/main/assembly/assembly.xml
+++ b/src/main/assembly/assembly.xml
@@ -18,6 +18,14 @@
*.kc
+
+ src/test/java/dk/camelot64/kickc/test/kc/examples
+ examples
+
+ */*.kc
+ */*.png
+
+
src/main/doc
@@ -25,6 +33,13 @@
*.pdf
+
+ src/main/script
+ bin
+
+ *.sh
+
+
${project.build.directory}
lib
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/bitmap-draw.kc b/src/main/kc/stdlib/bitmap-draw.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/bitmap-draw.kc
rename to src/main/kc/stdlib/bitmap-draw.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/bitmap2.kc b/src/main/kc/stdlib/bitmap2.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/bitmap2.kc
rename to src/main/kc/stdlib/bitmap2.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/memory.kc b/src/main/kc/stdlib/memory.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/memory.kc
rename to src/main/kc/stdlib/memory.kc
diff --git a/src/main/script/kickc.sh b/src/main/script/kickc.sh
new file mode 100755
index 000000000..e7afa44ea
--- /dev/null
+++ b/src/main/script/kickc.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# JAVA HOME
+# KICKC HOME
+export KICKC_HOME="$(dirname $0)/.."
+# KCLIB HOME
+export KICKCLIB_HOME="$KICKC_HOME/stdlib"
+# KICKASSEMBLER HOME
+# VICE HOME
+
+echo java -jar lib/kickc-0.5-SNAPSHOT.jar -I $KICKCLIB_HOME $*
+java -jar lib/kickc-0.5-SNAPSHOT.jar -I $KICKCLIB_HOME $*
\ No newline at end of file
diff --git a/src/test/java/dk/camelot64/kickc/test/ReferenceHelper.java b/src/test/java/dk/camelot64/kickc/test/ReferenceHelper.java
index 8d657638f..c66bd2dea 100644
--- a/src/test/java/dk/camelot64/kickc/test/ReferenceHelper.java
+++ b/src/test/java/dk/camelot64/kickc/test/ReferenceHelper.java
@@ -106,7 +106,23 @@ public class ReferenceHelper {
}
public File getTmpFile(String fileName, String extension) {
- return new File(tempDir.toFile(), fileName + extension);
+ File file = new File(tempDir.toFile(), fileName + extension);
+ mkPath(file);
+ return file;
}
+ /**
+ * Ensures that the path to the passed file is created.
+ * @param file The file to create a path for
+ */
+ private void mkPath(File file) {
+ Path parent = file.toPath().getParent();
+ File dir = parent.toFile();
+ if(!dir.exists()) {
+ mkPath(dir);
+ dir.mkdir();
+ }
+ }
+
+
}
diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
index 516c1210d..1a7610c2d 100644
--- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
+++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
@@ -115,7 +115,7 @@ public class TestPrograms {
@Test
public void testIrqHyperscreen() throws IOException, URISyntaxException {
- compileAndCompare("irq-hyperscreen");
+ compileAndCompare("examples/irq/irq-hyperscreen");
}
@Test
@@ -140,7 +140,7 @@ public class TestPrograms {
@Test
public void testMultiplexer() throws IOException, URISyntaxException {
- compileAndCompare("simple-multiplexer", 10);
+ compileAndCompare("examples/multiplexer/simple-multiplexer", 10);
}
@Test
@@ -165,17 +165,17 @@ public class TestPrograms {
@Test
public void testSinePlotter() throws IOException, URISyntaxException {
- compileAndCompare("sine-plotter");
+ compileAndCompare("examples/sinplotter/sine-plotter");
}
@Test
public void testScrollLogo() throws IOException, URISyntaxException {
- compileAndCompare("scrolllogo");
+ compileAndCompare("examples/scrolllogo/scrolllogo");
}
@Test
public void testShowLogo() throws IOException, URISyntaxException {
- compileAndCompare("showlogo");
+ compileAndCompare("examples/showlogo/showlogo");
}
@Test
@@ -250,7 +250,7 @@ public class TestPrograms {
@Test
public void testHelloWorld() throws IOException, URISyntaxException {
- compileAndCompare("helloworld");
+ compileAndCompare("examples/helloworld/helloworld");
}
@Test
@@ -280,7 +280,7 @@ public class TestPrograms {
@Test
public void testVarForwardProblem() throws IOException, URISyntaxException {
- compileAndCompare("var-forward-problem");
+ compileAndCompare("var-forward-problem");
}
@Test
@@ -375,7 +375,7 @@ public class TestPrograms {
@Test
public void testChargenAnalysis() throws IOException, URISyntaxException {
- compileAndCompare("chargen-analysis");
+ compileAndCompare("examples/chargen/chargen-analysis");
}
@Test
@@ -485,7 +485,7 @@ public class TestPrograms {
@Test
public void testRasterBars() throws IOException, URISyntaxException {
- compileAndCompare("raster-bars");
+ compileAndCompare("examples/rasterbars/raster-bars");
}
@Test
@@ -555,7 +555,7 @@ public class TestPrograms {
@Test
public void testSinusSprites() throws IOException, URISyntaxException {
- compileAndCompare("sinus-sprites");
+ compileAndCompare("examples/sinsprites/sinus-sprites");
}
@Test
@@ -650,7 +650,7 @@ public class TestPrograms {
@Test
public void testScrollBig() throws IOException, URISyntaxException {
- compileAndCompare("scrollbig");
+ compileAndCompare("examples/scrollbig/scrollbig");
}
@Test
@@ -675,7 +675,7 @@ public class TestPrograms {
@Test
public void testBitmapBresenham() throws IOException, URISyntaxException {
- compileAndCompare("bitmap-bresenham");
+ compileAndCompare("examples/bresenham/bitmap-bresenham");
}
@Test
@@ -725,7 +725,7 @@ public class TestPrograms {
@Test
public void testScroll() throws IOException, URISyntaxException {
- compileAndCompare("scroll");
+ compileAndCompare("examples/scroll/scroll");
}
@Test
@@ -1025,7 +1025,7 @@ public class TestPrograms {
Compiler compiler = new Compiler();
compiler.addImportPath(stdlibPath);
compiler.addImportPath(testPath);
- if(upliftCombinations!=null) {
+ if(upliftCombinations != null) {
compiler.setUpliftCombinations(upliftCombinations);
}
Program program = compiler.compile(fileName);
@@ -1047,9 +1047,12 @@ public class TestPrograms {
private void compileAsm(String fileName, Program program) throws IOException {
writeBinFile(fileName, ".asm", program.getAsm().toString(false));
for(Path asmResourceFile : program.getAsmResourceFiles()) {
- File binFile = getBinFile(asmResourceFile.getFileName().toString());
+ File asmFile = getBinFile(fileName, ".asm");
+ String asmFolder = asmFile.getParent();
+ File resFile = new File(asmFolder, asmResourceFile.getFileName().toString());
+ mkPath(resFile);
try {
- Files.copy(asmResourceFile, binFile.toPath());
+ Files.copy(asmResourceFile, resFile.toPath());
} catch(FileAlreadyExistsException e) {
// Ignore this
}
@@ -1080,11 +1083,23 @@ public class TestPrograms {
}
public File getBinFile(String fileName, String extension) {
- return new File(getBinDir(), fileName + extension);
+ File binFile = new File(getBinDir(), fileName + extension);
+ mkPath(binFile);
+ return binFile;
}
- public File getBinFile(String fileName) {
- return new File(getBinDir(), fileName);
+*/
+ /**
+ * Ensures that the path to the passed file is created.
+ * @param file The file to create a path for
+ */
+ private void mkPath(File file) {
+ Path parent = file.toPath().getParent();
+ File dir = parent.toFile();
+ if(!dir.exists()) {
+ mkPath(dir);
+ dir.mkdir();
+ }
}
public File getBinDir() {
@@ -1092,10 +1107,8 @@ public class TestPrograms {
File binDir = new File(tempDir.toFile(), "bin");
if(!binDir.exists()) {
binDir.mkdir();
-
}
return binDir;
}
-*/
}
\ No newline at end of file
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/bitmap-bresenham.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/bresenham/bitmap-bresenham.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/bitmap-bresenham.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/bresenham/bitmap-bresenham.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/chargen-analysis.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/chargen/chargen-analysis.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/chargen-analysis.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/chargen/chargen-analysis.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/helloworld.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/helloworld/helloworld.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/helloworld.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/helloworld/helloworld.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/irq-hyperscreen.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/irq/irq-hyperscreen.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/irq-hyperscreen.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/irq/irq-hyperscreen.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/balloon.png b/src/test/java/dk/camelot64/kickc/test/kc/examples/multiplexer/balloon.png
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/balloon.png
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/multiplexer/balloon.png
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/balloon.pxi b/src/test/java/dk/camelot64/kickc/test/kc/examples/multiplexer/balloon.pxi
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/balloon.pxi
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/multiplexer/balloon.pxi
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/simple-multiplexer.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/multiplexer/simple-multiplexer.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/simple-multiplexer.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/multiplexer/simple-multiplexer.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/raster-bars.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/rasterbars/raster-bars.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/raster-bars.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/rasterbars/raster-bars.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/scroll.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/scroll/scroll.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/scroll.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/scroll/scroll.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/scrollbig.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/scrollbig/scrollbig.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/scrollbig.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/scrollbig/scrollbig.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/logo.png b/src/test/java/dk/camelot64/kickc/test/kc/examples/scrolllogo/logo.png
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/logo.png
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/scrolllogo/logo.png
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/scrolllogo.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/scrolllogo/scrolllogo.kc
similarity index 99%
rename from src/test/java/dk/camelot64/kickc/test/kc/scrolllogo.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/scrolllogo/scrolllogo.kc
index baf1ce0ad..99b17be7f 100644
--- a/src/test/java/dk/camelot64/kickc/test/kc/scrolllogo.kc
+++ b/src/test/java/dk/camelot64/kickc/test/kc/examples/scrolllogo/scrolllogo.kc
@@ -5,7 +5,6 @@ import "memory.kc"
byte* SCREEN = $400;
byte* LOGO = $2000;
kickasm(resource "logo.png", pc LOGO, bytes 6*40*8) {{
- logo:
.var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/examples/showlogo/logo.png b/src/test/java/dk/camelot64/kickc/test/kc/examples/showlogo/logo.png
new file mode 100644
index 000000000..54a81b201
Binary files /dev/null and b/src/test/java/dk/camelot64/kickc/test/kc/examples/showlogo/logo.png differ
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/showlogo.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/showlogo/showlogo.kc
similarity index 98%
rename from src/test/java/dk/camelot64/kickc/test/kc/showlogo.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/showlogo/showlogo.kc
index d65bb2d15..cc1fe8940 100644
--- a/src/test/java/dk/camelot64/kickc/test/kc/showlogo.kc
+++ b/src/test/java/dk/camelot64/kickc/test/kc/examples/showlogo/showlogo.kc
@@ -4,7 +4,6 @@ byte* SCREEN = $400;
byte* LOGO = $2000;
kickasm(resource "logo.png", pc LOGO, bytes 6*40*8 ) {{
- logo:
.var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/sine-plotter.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/sinplotter/sine-plotter.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/sine-plotter.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/sinplotter/sine-plotter.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/sinus-sprites.kc b/src/test/java/dk/camelot64/kickc/test/kc/examples/sinsprites/sinus-sprites.kc
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/kc/sinus-sprites.kc
rename to src/test/java/dk/camelot64/kickc/test/kc/examples/sinsprites/sinus-sprites.kc
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/bresenham/bitmap-bresenham.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/chargen/chargen-analysis.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/helloworld.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/helloworld.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/helloworld.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/helloworld.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/helloworld.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/helloworld.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/helloworld.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/helloworld.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/helloworld/helloworld.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/irq/irq-hyperscreen.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/multiplexer/simple-multiplexer.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/raster-bars.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/raster-bars.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/raster-bars.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/raster-bars.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/rasterbars/raster-bars.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scroll.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scroll.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scroll.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scroll.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scroll.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scroll.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scroll.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scroll.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scroll/scroll.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrollbig.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrollbig.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrollbig.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrollbig.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrollbig/scrollbig.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.asm
similarity index 99%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.asm
index 4bc18cc9b..44cda7ef2 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.asm
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.asm
@@ -712,8 +712,7 @@ fill: {
.align $100
xsin: .fill 2*XSIN_SIZE, 0
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.cfg
similarity index 99%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.cfg
index 5274a7d50..c94c324d0 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.cfg
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.cfg
@@ -2,8 +2,7 @@
[0] phi() [ ] ( )
to:@24
@24: scope:[] from @begin
- kickasm(location (const byte*) LOGO#0) {{ logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.log
similarity index 99%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.log
index 7077d3fd4..7855b49a3 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.log
@@ -505,8 +505,7 @@ fill::@return: scope:[fill] from fill::@1
(byte*) LOGO#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192
(byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword) 40
(byte/signed word/word/dword/signed dword~) $1 ← (byte/word/signed word/dword/signed dword~) $0 * (byte/signed byte/word/signed word/dword/signed dword) 8
- kickasm(location (byte*) LOGO#0) {{ logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ kickasm(location (byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -2745,8 +2744,7 @@ FINAL CONTROL FLOW GRAPH
[0] phi() [ ] ( )
to:@24
@24: scope:[] from @begin
- kickasm(location (const byte*) LOGO#0) {{ logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -3743,7 +3741,7 @@ bbegin:
jmp b24
//SEG3 @24
b24:
-//SEG4 kickasm(location (const byte*) LOGO#0) {{ logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
+//SEG4 kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
//SEG5 [2] phi from @24 to @27 [phi:@24->@27]
b27_from_b24:
jmp b27
@@ -5379,8 +5377,7 @@ fill: {
.align $100
xsin: .fill 2*XSIN_SIZE, 0
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -5886,7 +5883,7 @@ bbegin:
jmp b24
//SEG3 @24
b24:
-//SEG4 kickasm(location (const byte*) LOGO#0) {{ logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
+//SEG4 kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
//SEG5 [2] phi from @24 to @27 [phi:@24->@27]
b27_from_b24:
jmp b27
@@ -7254,8 +7251,7 @@ fill: {
.align $100
xsin: .fill 2*XSIN_SIZE, 0
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -7969,7 +7965,7 @@ Score: 41393
.label xsin_idx = 2
//SEG2 @begin
//SEG3 @24
-//SEG4 kickasm(location (const byte*) LOGO#0) {{ logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
+//SEG4 kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
//SEG5 [2] phi from @24 to @27 [phi:@24->@27]
//SEG6 @27
//SEG7 [3] call main [ ] ( )
@@ -9107,8 +9103,7 @@ fill: {
.align $100
xsin: .fill 2*XSIN_SIZE, 0
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/scrolllogo/scrolllogo.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.asm
similarity index 94%
rename from src/test/java/dk/camelot64/kickc/test/ref/showlogo.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.asm
index 78d200fe0..e7d13e29a 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.asm
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.asm
@@ -89,8 +89,7 @@ fill: {
rts
}
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.cfg
similarity index 96%
rename from src/test/java/dk/camelot64/kickc/test/ref/showlogo.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.cfg
index 310f28ad8..d7d7dff70 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.cfg
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.cfg
@@ -2,8 +2,7 @@
[0] phi() [ ] ( )
to:@3
@3: scope:[] from @begin
- kickasm(location (const byte*) LOGO#0) {{ logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.log
similarity index 97%
rename from src/test/java/dk/camelot64/kickc/test/ref/showlogo.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.log
index 3c8aa8f5b..f23cdbba4 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.log
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.log
@@ -21,8 +21,7 @@ CONTROL FLOW GRAPH SSA
(byte*) LOGO#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192
(byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword) 40
(byte/signed word/word/dword/signed dword~) $1 ← (byte/word/signed word/dword/signed dword~) $0 * (byte/signed byte/word/signed word/dword/signed dword) 8
- kickasm(location (byte*) LOGO#0) {{ logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ kickasm(location (byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -398,8 +397,7 @@ FINAL CONTROL FLOW GRAPH
[0] phi() [ ] ( )
to:@3
@3: scope:[] from @begin
- kickasm(location (const byte*) LOGO#0) {{ logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -544,7 +542,7 @@ bbegin:
jmp b3
//SEG3 @3
b3:
-//SEG4 kickasm(location (const byte*) LOGO#0) {{ logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
+//SEG4 kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
//SEG5 [2] phi from @3 to @5 [phi:@3->@5]
b5_from_b3:
jmp b5
@@ -701,8 +699,7 @@ fill: {
rts
}
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -773,7 +770,7 @@ bbegin:
jmp b3
//SEG3 @3
b3:
-//SEG4 kickasm(location (const byte*) LOGO#0) {{ logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
+//SEG4 kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
//SEG5 [2] phi from @3 to @5 [phi:@3->@5]
b5_from_b3:
jmp b5
@@ -923,8 +920,7 @@ fill: {
rts
}
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
@@ -1071,7 +1067,7 @@ Score: 3578
.label LOGO = $2000
//SEG2 @begin
//SEG3 @3
-//SEG4 kickasm(location (const byte*) LOGO#0) {{ logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
+//SEG4 kickasm(location (const byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }}
//SEG5 [2] phi from @3 to @5 [phi:@3->@5]
//SEG6 @5
//SEG7 [3] call main [ ] ( )
@@ -1194,8 +1190,7 @@ fill: {
rts
}
.pc = LOGO "Inline"
- logo:
- .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
+ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
.for (var y=0; y<6 ; y++)
.for (var x=0;x<40; x++)
.for(var cp=0; cp<8; cp++)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.sym
new file mode 100644
index 000000000..86684380e
--- /dev/null
+++ b/src/test/java/dk/camelot64/kickc/test/ref/examples/showlogo/showlogo.sym
@@ -0,0 +1,73 @@
+(label) @3
+(label) @5
+(label) @begin
+(label) @end
+(byte*) BGCOL
+(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281
+(byte*) BGCOL2
+(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282
+(byte*) BGCOL3
+(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283
+(byte) BLACK
+(const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0
+(byte*) BORDERCOL
+(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280
+(byte*) COLS
+(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296
+(byte*) D016
+(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270
+(byte*) D018
+(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272
+(byte) DARK_GREY
+(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11
+(byte*) LOGO
+(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) 8192
+(byte*) SCREEN
+(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
+(byte) VIC_CSEL
+(const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8
+(byte) VIC_MCM
+(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16
+(byte) WHITE
+(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1
+(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
+(label) fill::@1
+(label) fill::@return
+(byte*) fill::addr
+(byte*) fill::addr#0 addr zp ZP_WORD:4 2.0
+(byte*) fill::addr#1 addr zp ZP_WORD:4 16.5
+(byte*) fill::addr#2 addr zp ZP_WORD:4 17.5
+(byte*) fill::end
+(byte*) fill::end#0 end zp ZP_WORD:2 2.6
+(word) fill::size
+(word) fill::size#2 size zp ZP_WORD:2 2.0
+(byte*) fill::start
+(byte) fill::val
+(byte) fill::val#3 reg byte x 1.8333333333333333
+(void()) main()
+(label) main::@1
+(label) main::@10
+(label) main::@3
+(label) main::@9
+(byte) main::ch
+(byte) main::ch#1 reg byte x 16.5
+(byte) main::ch#2 reg byte x 22.0
+(label) main::toD0181
+(word~) main::toD0181_$0
+(word~) main::toD0181_$1
+(word~) main::toD0181_$2
+(byte~) main::toD0181_$3
+(word~) main::toD0181_$4
+(byte~) main::toD0181_$5
+(byte~) main::toD0181_$6
+(byte~) main::toD0181_$7
+(byte~) main::toD0181_$8
+(byte*) main::toD0181_gfx
+(byte) main::toD0181_return
+(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
+(byte*) main::toD0181_screen
+
+reg byte x [ main::ch#2 main::ch#1 ]
+zp ZP_WORD:2 [ fill::size#2 fill::end#0 ]
+reg byte x [ fill::val#3 ]
+zp ZP_WORD:4 [ fill::addr#2 fill::addr#0 fill::addr#1 ]
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinplotter/sine-plotter.sym
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.asm b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.asm
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.asm
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.asm
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.cfg b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.cfg
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.cfg
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.cfg
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.log
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.log
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.sym b/src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.sym
similarity index 100%
rename from src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.sym
rename to src/test/java/dk/camelot64/kickc/test/ref/examples/sinsprites/sinus-sprites.sym