diff --git a/.idea/libraries/Maven__dk_camelot64_kickass_xexplugin_kickassxexformat_1_0.xml b/.idea/libraries/Maven__dk_camelot64_kickass_xexplugin_kickassxexformat_1_1.xml similarity index 66% rename from .idea/libraries/Maven__dk_camelot64_kickass_xexplugin_kickassxexformat_1_0.xml rename to .idea/libraries/Maven__dk_camelot64_kickass_xexplugin_kickassxexformat_1_1.xml index 2f958ab39..de723f7f2 100644 --- a/.idea/libraries/Maven__dk_camelot64_kickass_xexplugin_kickassxexformat_1_0.xml +++ b/.idea/libraries/Maven__dk_camelot64_kickass_xexplugin_kickassxexformat_1_1.xml @@ -1,13 +1,13 @@ - + - + - + - + \ No newline at end of file diff --git a/kickc.iml b/kickc.iml index e0b40ce96..719e3abe0 100644 --- a/kickc.iml +++ b/kickc.iml @@ -26,6 +26,6 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 1bc181738..fa282dbd7 100644 --- a/pom.xml +++ b/pom.xml @@ -64,7 +64,7 @@ dk.camelot64.kickass.xexplugin kickassxexformat - 1.0 + 1.1 diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/_remote.repositories b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/_remote.repositories new file mode 100644 index 000000000..32a949055 --- /dev/null +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/_remote.repositories @@ -0,0 +1,4 @@ +#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice. +#Sun Nov 15 09:50:50 CET 2020 +kickassxexformat-1.1.jar>= +kickassxexformat-1.1.pom>= diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar new file mode 100644 index 000000000..3fb28d5bc Binary files /dev/null and b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar differ diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar.md5 b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar.md5 new file mode 100644 index 000000000..bff0072ab --- /dev/null +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar.md5 @@ -0,0 +1 @@ +1201db12a8d649e9628019b9b983eb6f \ No newline at end of file diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar.sha1 b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar.sha1 new file mode 100644 index 000000000..5dae8e832 --- /dev/null +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.jar.sha1 @@ -0,0 +1 @@ +4cce302cdbccf560c08f13295ac789136603844a \ No newline at end of file diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom new file mode 100644 index 000000000..a4bd47392 --- /dev/null +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + dk.camelot64.kickass.xexplugin + kickassxexformat + 1.1 + POM was created from install:install-file + diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom.md5 b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom.md5 new file mode 100644 index 000000000..f5bb700fd --- /dev/null +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom.md5 @@ -0,0 +1 @@ +61fb4ac35772777c2e9901c22410e8ae \ No newline at end of file diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom.sha1 b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom.sha1 new file mode 100644 index 000000000..ee8d4f2af --- /dev/null +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/1.1/kickassxexformat-1.1.pom.sha1 @@ -0,0 +1 @@ +0bf6368d2e7dc168cfd09c6112617d317f5b4f36 \ No newline at end of file diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml index 217354820..639b6b302 100644 --- a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml @@ -3,10 +3,11 @@ dk.camelot64.kickass.xexplugin kickassxexformat - 1.0 + 1.1 1.0 + 1.1 - 20201114233804 + 20201115085050 diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.md5 b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.md5 index b5343f411..e1d7d276b 100644 --- a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.md5 +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.md5 @@ -1 +1 @@ -692a58cd7630b4d37973c20aa00542a1 \ No newline at end of file +0a173b3e45eb6ddeb2c3d0db3f889af8 \ No newline at end of file diff --git a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.sha1 b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.sha1 index 1eb6e8ce7..98cbef631 100644 --- a/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.sha1 +++ b/repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml.sha1 @@ -1 +1 @@ -09008b573126bb7a904d1cf0743605bc5b929ab8 \ No newline at end of file +0e6e84eafedaa2c0425217cbfe87d5b0a2d2228e \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java b/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java index 9ae0e878b..572dd2dab 100644 --- a/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java +++ b/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java @@ -56,8 +56,6 @@ public class TargetPlatform { VariableBuilderConfig.defaultPreConfig(config); VariableBuilderConfig.defaultPostConfig(config); this.variableBuilderConfig = config; - // Set the default start address - this.startAddress = 0x080d; } public String getName() { diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java b/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java index 0ca6eeadd..59c4d6f12 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java @@ -97,7 +97,8 @@ public class Pass4CodeGeneration { String entryName = program.getStartProcedure().getFullName(); linkScriptBody = linkScriptBody.replace("%E", entryName); Number startAddress = program.getTargetPlatform().getStartAddress(); - linkScriptBody = linkScriptBody.replace("%P", AsmFormat.getAsmNumber(startAddress)); + if(startAddress!=null) + linkScriptBody = linkScriptBody.replace("%P", AsmFormat.getAsmNumber(startAddress)); asm.addLine(new AsmInlineKickAsm(linkScriptBody, 0L, 0L)); // If the link script contains ".segment" then generate segments! diff --git a/src/main/kc/target/asm6502.tgt b/src/main/kc/target/asm6502.tgt index 9fdeb079b..2b95d9bfd 100644 --- a/src/main/kc/target/asm6502.tgt +++ b/src/main/kc/target/asm6502.tgt @@ -1,6 +1,7 @@ { "extension": "prg", "link": "asm6502.ld", + "start_address": "0x2000", "cpu": "MOS6502X", "emulator": "x64sc" } diff --git a/src/main/kc/target/c64.ld b/src/main/kc/target/c64.ld index 8b0c00848..88d801012 100644 --- a/src/main/kc/target/c64.ld +++ b/src/main/kc/target/c64.ld @@ -2,7 +2,7 @@ .file [name="%O", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] -.segmentdef Code [start=$080d] +.segmentdef Code [start=%P] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(%E) diff --git a/src/main/kc/target/c64.tgt b/src/main/kc/target/c64.tgt index 9a40c85cd..1272b879e 100644 --- a/src/main/kc/target/c64.tgt +++ b/src/main/kc/target/c64.tgt @@ -2,6 +2,7 @@ "description": "Commodore 64 PRG executable file.", "extension": "prg", "link": "c64.ld", + "start_address": "0x080d", "cpu": "MOS6502X", "emulator": "x64sc", "defines": { diff --git a/src/main/kc/target/c64basic.tgt b/src/main/kc/target/c64basic.tgt index 9eb0a71af..62b13cbf1 100644 --- a/src/main/kc/target/c64basic.tgt +++ b/src/main/kc/target/c64basic.tgt @@ -1,6 +1,7 @@ { "extension": "prg", "link": "c64basic.ld", + "start_address": "0x080d", "cpu": "MOS6502X", "emulator": "x64sc", "defines": { diff --git a/src/main/kc/target/mega65.ld b/src/main/kc/target/mega65.ld index 39d25b35a..8b9b38f77 100644 --- a/src/main/kc/target/mega65.ld +++ b/src/main/kc/target/mega65.ld @@ -2,7 +2,7 @@ .file [name="%O", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$2001] -.segmentdef Code [start=$2017] +.segmentdef Code [start=%P] .segmentdef Data [startAfter="Code"] .segment Basic .byte $0a, $20, $0a, $00, $fe, $02, $20, $30, $00 // 10 BANK 0 diff --git a/src/main/kc/target/mega65.tgt b/src/main/kc/target/mega65.tgt index 2ea81929f..ed76a70d3 100644 --- a/src/main/kc/target/mega65.tgt +++ b/src/main/kc/target/mega65.tgt @@ -2,6 +2,7 @@ "description": "MEGA65 platform PRG executable starting in MEGA65 mode.", "extension": "prg", "link": "mega65.ld", + "start_address": "0x2017", "cpu": "MEGA45GS02", "emulator": "xmega65 -prg", "defines": { diff --git a/src/main/kc/target/mega65_c64.ld b/src/main/kc/target/mega65_c64.ld index e35f9fe58..c484a4d4e 100644 --- a/src/main/kc/target/mega65_c64.ld +++ b/src/main/kc/target/mega65_c64.ld @@ -2,7 +2,7 @@ .file [name="%O", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] -.segmentdef Code [start=$080d] +.segmentdef Code [start=%P] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(%E) diff --git a/src/main/kc/target/mega65_c64.tgt b/src/main/kc/target/mega65_c64.tgt index 032d263af..c21d2603a 100644 --- a/src/main/kc/target/mega65_c64.tgt +++ b/src/main/kc/target/mega65_c64.tgt @@ -2,6 +2,7 @@ "description": "MEGA65 platform executable starting in C64 mode.", "extension": "prg", "link": "mega65_c64.ld", + "start_address": "0x080d", "cpu": "MEGA45GS02", "emulator": "xmega65 -prg", "defines": { diff --git a/src/main/kc/target/plus4.ld b/src/main/kc/target/plus4.ld index ae448decc..c52aad128 100644 --- a/src/main/kc/target/plus4.ld +++ b/src/main/kc/target/plus4.ld @@ -2,7 +2,7 @@ .file [name="%O", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100d] +.segmentdef Code [start=%P] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(%E) diff --git a/src/main/kc/target/plus4.tgt b/src/main/kc/target/plus4.tgt index c2f03ffde..18358d219 100644 --- a/src/main/kc/target/plus4.tgt +++ b/src/main/kc/target/plus4.tgt @@ -2,6 +2,7 @@ "description": "Commodore 16 / Plus/4 executable PRG file", "extension": "prg", "link": "plus4.ld", + "start_address": "0x100d", "cpu": "MOS6502X", "emulator": "xplus4", "defines": { diff --git a/src/main/kc/target/plus4basic.ld b/src/main/kc/target/plus4basic.ld index 3973b66fb..99feeb98d 100644 --- a/src/main/kc/target/plus4basic.ld +++ b/src/main/kc/target/plus4basic.ld @@ -1,3 +1,3 @@ .pc = $1001 "Basic" :BasicUpstart(%E) -.pc = $100d "Program" +.pc = %P "Program" diff --git a/src/main/kc/target/plus4basic.tgt b/src/main/kc/target/plus4basic.tgt index 0dacc2317..3bbd30f0c 100644 --- a/src/main/kc/target/plus4basic.tgt +++ b/src/main/kc/target/plus4basic.tgt @@ -1,6 +1,7 @@ { "extension": "prg", "link": "plus4basic.ld", + "start_address": "0x100d", "cpu": "MOS6502X", "emulator": "xplus4", "defines": { diff --git a/src/main/kc/target/vic20.ld b/src/main/kc/target/vic20.ld index 07b36eb9a..6b2dbea57 100644 --- a/src/main/kc/target/vic20.ld +++ b/src/main/kc/target/vic20.ld @@ -2,7 +2,7 @@ .file [name="%O", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=%P] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(%E) diff --git a/src/main/kc/target/vic20.tgt b/src/main/kc/target/vic20.tgt index 7ce4fa277..d3de57cf8 100644 --- a/src/main/kc/target/vic20.tgt +++ b/src/main/kc/target/vic20.tgt @@ -2,6 +2,7 @@ "description": "Commodore VIC 20 executable PRG file", "extension": "prg", "link": "vic20.ld", + "start_address": "0x100d", "cpu": "MOS6502X", "emulator": "xvic", "defines": { diff --git a/src/main/kc/target/vic20basic.ld b/src/main/kc/target/vic20basic.ld index 9c37b73c2..b97a2730e 100644 --- a/src/main/kc/target/vic20basic.ld +++ b/src/main/kc/target/vic20basic.ld @@ -1,3 +1,3 @@ .pc = $1001 "Basic" :BasicUpstart(%E) -.pc = $100d "Program" \ No newline at end of file +.pc = %P "Program" \ No newline at end of file diff --git a/src/main/kc/target/vic20basic.tgt b/src/main/kc/target/vic20basic.tgt index 9238aa211..281cf07ef 100644 --- a/src/main/kc/target/vic20basic.tgt +++ b/src/main/kc/target/vic20basic.tgt @@ -1,6 +1,7 @@ { "extension": "prg", "link": "vic20basic.ld", + "start_address": "0x100d", "cpu": "MOS6502X", "emulator": "xvic", "defines": { diff --git a/src/main/repo/mvn-repo-install.sh b/src/main/repo/mvn-repo-install-kickass.sh similarity index 100% rename from src/main/repo/mvn-repo-install.sh rename to src/main/repo/mvn-repo-install-kickass.sh diff --git a/src/main/repo/mvn-repo-install-xex.sh b/src/main/repo/mvn-repo-install-xexplugin.sh similarity index 78% rename from src/main/repo/mvn-repo-install-xex.sh rename to src/main/repo/mvn-repo-install-xexplugin.sh index 6141574d9..19d623136 100755 --- a/src/main/repo/mvn-repo-install-xex.sh +++ b/src/main/repo/mvn-repo-install-xexplugin.sh @@ -3,8 +3,7 @@ # Prepare by making the "official" metadata local cp ./repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata.xml ./repo/dk/camelot64/kickass/xexplugin/kickassxexformat/maven-metadata-local.xml -# mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Applications/KickAssembler/KickAss.jar -DgroupId=cml.kickass -DartifactId=kickassembler -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=5.16 -mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Users/jespergravgaard/c64/kickass-plugin-atari-xex/bin/KickAssXexFormat.jar -DgroupId=dk.camelot64.kickass.xexplugin -DartifactId=kickassxexformat -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=1.0 +mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Users/jespergravgaard/c64/kickass-plugin-atari-xex/bin/KickAssXexFormat.jar -DgroupId=dk.camelot64.kickass.xexplugin -DartifactId=kickassxexformat -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=1.1 # Finalize by making the local metadata official pushd ./repo/dk/camelot64/kickass/xexplugin/kickassxexformat diff --git a/src/test/ref/examples/mega65/raster65.asm b/src/test/ref/examples/mega65/raster65.asm index 6aadd5af1..b42391300 100644 --- a/src/test/ref/examples/mega65/raster65.asm +++ b/src/test/ref/examples/mega65/raster65.asm @@ -10,7 +10,7 @@ .file [name="raster65.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] -.segmentdef Code [start=$080d] +.segmentdef Code [start=$80d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) diff --git a/src/test/ref/examples/mega65/raster65.log b/src/test/ref/examples/mega65/raster65.log index 0f7718863..82bebb199 100644 --- a/src/test/ref/examples/mega65/raster65.log +++ b/src/test/ref/examples/mega65/raster65.log @@ -2041,7 +2041,7 @@ ASSEMBLER BEFORE OPTIMIZATION .file [name="raster65.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] -.segmentdef Code [start=$080d] +.segmentdef Code [start=$80d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) @@ -3213,7 +3213,7 @@ Score: 9963 .file [name="raster65.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] -.segmentdef Code [start=$080d] +.segmentdef Code [start=$80d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) diff --git a/src/test/ref/pragma-noparenthesis.asm b/src/test/ref/pragma-noparenthesis.asm index 3f7666375..426f64e8d 100644 --- a/src/test/ref/pragma-noparenthesis.asm +++ b/src/test/ref/pragma-noparenthesis.asm @@ -3,7 +3,7 @@ .file [name="pragma-noparenthesis.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) diff --git a/src/test/ref/pragma-noparenthesis.log b/src/test/ref/pragma-noparenthesis.log index ed0f13fd7..d666e19ef 100644 --- a/src/test/ref/pragma-noparenthesis.log +++ b/src/test/ref/pragma-noparenthesis.log @@ -136,7 +136,7 @@ ASSEMBLER BEFORE OPTIMIZATION .file [name="pragma-noparenthesis.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) @@ -227,7 +227,7 @@ Score: 42 .file [name="pragma-noparenthesis.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) diff --git a/src/test/ref/vic20-simple.asm b/src/test/ref/vic20-simple.asm index 43a81c52d..9ee15d976 100644 --- a/src/test/ref/vic20-simple.asm +++ b/src/test/ref/vic20-simple.asm @@ -9,7 +9,7 @@ .file [name="vic20-simple.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) diff --git a/src/test/ref/vic20-simple.log b/src/test/ref/vic20-simple.log index 262a65b8c..6ac78e41e 100644 --- a/src/test/ref/vic20-simple.log +++ b/src/test/ref/vic20-simple.log @@ -140,7 +140,7 @@ ASSEMBLER BEFORE OPTIMIZATION .file [name="vic20-simple.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) @@ -230,7 +230,7 @@ Score: 331 .file [name="vic20-simple.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$1001] -.segmentdef Code [start=$100e] +.segmentdef Code [start=$100d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main)