Pārlūkot izejas kodu

adding new format HEXTXT

Wilfried Klaas 6 gadi atpakaļ
vecāks
revīzija
5ff1daf2da

+ 4 - 0
examples/Blink.hex

@@ -0,0 +1,4 @@
+46 52 00 00 00 00 00 1f
+27 10 27 00 81 d6 00 00
+00 80 a2 00 00 1f 10 00
+00 00 81 b5 00 

+ 1 - 1
src/main/java/de/mcs/tools/sps/FORMAT.java

@@ -27,5 +27,5 @@ package de.mcs.tools.sps;
  *
  */
 public enum FORMAT {
-	HEX, TPSTXT
+  HEX, TPSTXT, HEXTXT
 }

+ 21 - 3
src/main/java/de/mcs/tools/sps/SPSAssembler.java

@@ -199,15 +199,34 @@ public class SPSAssembler {
 
       if (outputFormat.equals(FORMAT.HEX)) {
         outputHEX();
-      }
-      if (outputFormat.equals(FORMAT.TPSTXT)) {
+      } else if (outputFormat.equals(FORMAT.TPSTXT)) {
         outputTPSTXT();
+      } else if (outputFormat.equals(FORMAT.HEXTXT)) {
+        outputHEXTXT();
       }
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
 
+  private static void outputHEXTXT() {
+    try (Writer writer = new BufferedWriter(new FileWriter(destinationFile))) {
+      int address = 0;
+      for (Mnemonic mnemonic : mnemonics) {
+        writer.write(String.format("%02x", mnemonic.getByte()));
+        address++;
+        if ((address % 8) == 0) {
+          writer.write("\r\n");
+        } else {
+          writer.write(" ");
+        }
+      }
+    } catch (IOException e) {
+      e.printStackTrace();
+    } finally {
+    }
+  }
+
   private static void outputTPSTXT() {
     try (Writer writer = new BufferedWriter(new FileWriter(destinationFile))) {
       writer.write("Addr   BD   Befehl   Daten     Kommentar\r\n");
@@ -218,7 +237,6 @@ public class SPSAssembler {
         writer.write(String.format("0x%03x  %02x   %4s     %4s      %s %s\r\n", address, mnemonic.getByte(),
             nibbleToString(highNibble), nibbleToString(lowNibble), mnemonic.getName(),
             StringUtils.isEmpty(mnemonic.getArgument()) ? "" : mnemonic.getArgument()));
-        mnemonic.getByte();
         address++;
       }
     } catch (IOException e) {