Browse Source

Feature: adding hardware directriven to the assembler

Klaas, Wilfried 3 years ago
parent
commit
b988f35cae

+ 1 - 0
spsassembler/examples/Blink.tps

@@ -1,3 +1,4 @@
+.arduinosps
 .macro blink
 PORT #0B0101
 WAIT 200ms

+ 15 - 2
spsassembler/src/main/java/de/mcs/tools/sps/SPSAssembler.java

@@ -75,6 +75,11 @@ public class SPSAssembler {
   private static final String INCLUDE_FILE = ".include";
   private static final String END_MACRO_DEFINITION = ".endmacro";
   private static final String START_MACRO_DEFINITION = ".macro";
+  private static final String HRD_HOLTEK = ".holtek";
+  private static final String HRD_ATMEGA8 = ".atmega8";
+  private static final String HRD_ARDUINOSPS = ".arduinosps";
+  private static final String HRD_TINYSPS = ".tinysps";
+
   private static final String DEFAULT_PACKAGE_FILTER = "de.mcs.tools.sps"; //$NON-NLS-1$
   private static File source;
   private static File destinationFile;
@@ -103,7 +108,7 @@ public class SPSAssembler {
     }
   }
 
-  @StringOption(shortKey = 'f', longKey = "format", name = "format", defaultValue = "HEX", help = "the output format. HEX: IntelHEX, TPSTXT: TPS programming text", required = false)
+  @StringOption(shortKey = 'f', longKey = "format", name = "format", defaultValue = "INTELHEX", help = "the output format. INTELHEX: IntelHEX, TPSTXT: TPS programming text, HEXTXT: for simple hex text", required = false)
   public static void setOutputFormat(String value) {
     outputFormat = value.toUpperCase();
   }
@@ -513,7 +518,15 @@ public class SPSAssembler {
     if (label.indexOf(" ") > 0) {
       name = label.substring(0, label.indexOf(" "));
     }
-    if (INCLUDE_FILE.equals(name)) {
+    if (HRD_TINYSPS.equals(name)) {
+      setDestination(HARDWARE.TINYSPS);
+    } else if (HRD_HOLTEK.equals(name)) {
+      setDestination(HARDWARE.HOLTEK);
+    } else if (HRD_ATMEGA8.equals(name)) {
+      setDestination(HARDWARE.ATMEGA8);
+    } else if (HRD_ARDUINOSPS.equals(name)) {
+      setDestination(HARDWARE.ARDUINOSPS);
+    } else if (INCLUDE_FILE.equals(name)) {
       includeFile(srcLineNumber, label);
     } else if (START_MACRO_DEFINITION.equals(name)) {
       startMacroDefinition(srcLineNumber, label);