Jelajahi Sumber

adding byte value to mnemonics

Wilfried Klaas 6 tahun lalu
induk
melakukan
a6bd639f7a
68 mengubah file dengan 2542 tambahan dan 16 penghapusan
  1. 4 4
      SimpleServo.tps
  2. 10 5
      src/main/java/de/mcs/tools/sps/SPSAssembler.java
  3. 34 0
      src/main/java/de/mcs/tools/sps/exceptions/SyntaxError.java
  4. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/ADC.java
  5. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/ADD.java
  6. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/AEQB.java
  7. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/AGTB.java
  8. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/ALTB.java
  9. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/AND.java
  10. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/ARC.java
  11. 46 3
      src/main/java/de/mcs/tools/sps/mnemonic/AbstractMnemonic.java
  12. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/BAAD.java
  13. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/BARC.java
  14. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/BPWM.java
  15. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/BSET.java
  16. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/BSRV.java
  17. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/BSUBA.java
  18. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/BYTE.java
  19. 44 0
      src/main/java/de/mcs/tools/sps/mnemonic/CALL.java
  20. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/CASB.java
  21. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/CSET.java
  22. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/DEC.java
  23. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/DEQ0.java
  24. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/DEQ1.java
  25. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/DFSB.java
  26. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/DIN.java
  27. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/DIV.java
  28. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/DOUT.java
  29. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/DSET.java
  30. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/ESET.java
  31. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/FSET.java
  32. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/INC.java
  33. 44 0
      src/main/java/de/mcs/tools/sps/mnemonic/JMP.java
  34. 45 0
      src/main/java/de/mcs/tools/sps/mnemonic/LOOPC.java
  35. 45 0
      src/main/java/de/mcs/tools/sps/mnemonic/LOOPD.java
  36. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/MOD.java
  37. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/MUL.java
  38. 8 0
      src/main/java/de/mcs/tools/sps/mnemonic/Mnemonic.java
  39. 13 2
      src/main/java/de/mcs/tools/sps/mnemonic/MnemonicFactory.java
  40. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/NOP.java
  41. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/NOT.java
  42. 7 2
      src/main/java/de/mcs/tools/sps/mnemonic/OR.java
  43. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/PAGE.java
  44. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/PEND.java
  45. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/POP.java
  46. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/PORT.java
  47. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/PRG0.java
  48. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/PRG1.java
  49. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/PUSH.java
  50. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/PWM.java
  51. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/REST.java
  52. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/RET.java
  53. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/RJMP.java
  54. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SEL0.java
  55. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SEL1.java
  56. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/SET.java
  57. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SETB.java
  58. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SETC.java
  59. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SETD.java
  60. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SETE.java
  61. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SETF.java
  62. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SKIP0.java
  63. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/SRV.java
  64. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SUB.java
  65. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/SWAP.java
  66. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/TONE.java
  67. 40 0
      src/main/java/de/mcs/tools/sps/mnemonic/WAIT.java
  68. 39 0
      src/main/java/de/mcs/tools/sps/mnemonic/XOR.java

+ 4 - 4
SimpleServo.tps

@@ -1,11 +1,11 @@
 :loop
-; kommentar
+; Zeilen kommentar
 PORT 5
 WAIT 200
 /*
-block
+block Kommentar
 */
 PORT 0x0F
-WAIT 200  ; line komment
+WAIT 200  ; inline Kommentar
 NOP
-JMP- :loop
+RJMP :loop

+ 10 - 5
src/main/java/de/mcs/tools/sps/SPSAssembler.java

@@ -35,6 +35,7 @@ import java.util.Map.Entry;
 
 import org.apache.commons.lang3.StringUtils;
 
+import de.mcs.tools.sps.exceptions.SyntaxError;
 import de.mcs.tools.sps.mnemonic.Mnemonic;
 import de.mcs.tools.sps.mnemonic.MnemonicFactory;
 
@@ -47,6 +48,7 @@ public class SPSAssembler {
   private static File source;
   private static File destination;
   private static int lineNumber;
+  private static int srcLineNumber;
   private static Map<String, Integer> labels = new HashMap<>();
   private static boolean inBlockComment;
   private static List<Mnemonic> mnemonics = new ArrayList<>();
@@ -62,7 +64,7 @@ public class SPSAssembler {
    * @param args
    * @throws IOException
    */
-  public static void main(String[] args) throws IOException {
+  public static void main(String[] args) throws IOException, SyntaxError {
     if (args.length == 0) {
       showHelp();
     }
@@ -82,7 +84,10 @@ public class SPSAssembler {
     System.out.println();
 
     List<String> sourceFile = Files.readAllLines(source.toPath(), Charset.forName("UTF-8"));
-    sourceFile.forEach(line -> parseLine(line));
+    for (String line : sourceFile) {
+      srcLineNumber++;
+      parseLine(line);
+    }
 
     System.out.println("Mnemonics");
     int pos = 0;
@@ -99,7 +104,7 @@ public class SPSAssembler {
     }
   }
 
-  private static void parseLine(String line) {
+  private static void parseLine(String line) throws SyntaxError {
     if (line.startsWith(":")) {
       String label = getLabel(line);
       labels.put(label, lineNumber);
@@ -112,10 +117,10 @@ public class SPSAssembler {
     }
   }
 
-  private static Mnemonic getMnemonic(String line) {
+  private static Mnemonic getMnemonic(String line) throws SyntaxError {
     String newLine = stripComments(line);
     if (StringUtils.isNotEmpty(newLine)) {
-      Mnemonic mnemonic = MnemonicFactory.getMnemonic(newLine);
+      Mnemonic mnemonic = MnemonicFactory.getMnemonic(newLine, srcLineNumber);
       return mnemonic;
     }
     return null;

+ 34 - 0
src/main/java/de/mcs/tools/sps/exceptions/SyntaxError.java

@@ -0,0 +1,34 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: SyntaxError.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.exceptions;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SyntaxError extends Exception {
+
+  public SyntaxError(String message) {
+    super(message);
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/ADC.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class ADC extends AbstractMnemonic implements Mnemonic {
+
+  ADC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0x69;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/ADD.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class ADD extends AbstractMnemonic implements Mnemonic {
+
+  ADD(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x73;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/AEQB.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class AEQB extends AbstractMnemonic implements Mnemonic {
+
+  AEQB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xC3;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/AGTB.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class AGTB extends AbstractMnemonic implements Mnemonic {
+
+  AGTB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xC1;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/ALTB.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class ALTB extends AbstractMnemonic implements Mnemonic {
+
+  ALTB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xC2;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/AND.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class AND extends AbstractMnemonic implements Mnemonic {
+
+  AND(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x73;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/ARC.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class ARC extends AbstractMnemonic implements Mnemonic {
+
+  ARC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2 )
+    return 0x6B;
+  }
+
+}

+ 46 - 3
src/main/java/de/mcs/tools/sps/mnemonic/AbstractMnemonic.java

@@ -21,21 +21,64 @@
  */
 package de.mcs.tools.sps.mnemonic;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * @author wklaa_000
  *
  */
-public class AbstractMnemonic implements Mnemonic {
+public abstract class AbstractMnemonic implements Mnemonic {
 
   private String srcLine;
+  private String name;
+  private String argument;
+
+  public static String getName(String line) {
+    String srcLine = line.trim();
+    if (srcLine.indexOf(" ") >= 0) {
+      String[] values = srcLine.split(" ");
+      return values[0].toUpperCase();
+    }
+    return srcLine.toUpperCase();
+  }
 
   AbstractMnemonic(String line) {
-    this.srcLine = line;
+    this.srcLine = line.trim();
+    this.name = srcLine;
+    if (srcLine.indexOf(" ") >= 0) {
+      String[] values = srcLine.split(" ");
+      this.name = values[0].toUpperCase();
+      if (values.length > 1) {
+        this.argument = values[1];
+      }
+    }
   }
 
   @Override
   public String toString() {
-    return srcLine;
+    return String.format("%s %s", name, StringUtils.isEmpty(argument) ? "" : argument);
+  }
+
+  /**
+   * @return the name
+   */
+  @Override
+  public String getName() {
+    return name;
   }
 
+  /**
+   * @return the argument
+   */
+  @Override
+  public String getArgument() {
+    return argument;
+  }
+
+  public abstract int getByte();
+
+  @Override
+  public boolean isUsingPage() {
+    return false;
+  }
 }

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BAAD.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BAAD extends AbstractMnemonic implements Mnemonic {
+
+  BAAD(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0xF0;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BARC.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BARC extends AbstractMnemonic implements Mnemonic {
+
+  BARC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0xF2;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BPWM.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BPWM extends AbstractMnemonic implements Mnemonic {
+
+  BPWM(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0xF4;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BSET.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BSET extends AbstractMnemonic implements Mnemonic {
+
+  BSET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x51;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BSRV.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BSRV extends AbstractMnemonic implements Mnemonic {
+
+  BSRV(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0xF6;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BSUBA.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BSUBA extends AbstractMnemonic implements Mnemonic {
+
+  BSUBA(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x7D;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/BYTE.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class BYTE extends AbstractMnemonic implements Mnemonic {
+
+  BYTE(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x7C;
+  }
+
+}

+ 44 - 0
src/main/java/de/mcs/tools/sps/mnemonic/CALL.java

@@ -0,0 +1,44 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class CALL extends AbstractMnemonic implements Mnemonic {
+
+  CALL(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0xD0;
+  }
+
+  @Override
+  public boolean isUsingPage() {
+    return true;
+  }
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/CASB.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class CASB extends AbstractMnemonic implements Mnemonic {
+
+  CASB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1..6)
+    return 0xE1;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/CSET.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class CSET extends AbstractMnemonic implements Mnemonic {
+
+  CSET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x52;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DEC.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DEC extends AbstractMnemonic implements Mnemonic {
+
+  DEC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x72;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DEQ0.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DEQ0 extends AbstractMnemonic implements Mnemonic {
+
+  DEQ0(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1..4)
+    return 0xC8;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DEQ1.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DEQ1 extends AbstractMnemonic implements Mnemonic {
+
+  DEQ1(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1..4)
+    return 0xC4;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DFSB.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DFSB extends AbstractMnemonic implements Mnemonic {
+
+  DFSB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1..6)
+    return 0xE8;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DIN.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DIN extends AbstractMnemonic implements Mnemonic {
+
+  DIN(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0, 1..4)
+    return 0x64;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DIV.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DIV extends AbstractMnemonic implements Mnemonic {
+
+  DIV(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x76;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DOUT.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DOUT extends AbstractMnemonic implements Mnemonic {
+
+  DOUT(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0, 1..4)
+    return 0x54;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/DSET.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class DSET extends AbstractMnemonic implements Mnemonic {
+
+  DSET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x53;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/ESET.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class ESET extends AbstractMnemonic implements Mnemonic {
+
+  ESET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x5D;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/FSET.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class FSET extends AbstractMnemonic implements Mnemonic {
+
+  FSET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x5E;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/INC.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class INC extends AbstractMnemonic implements Mnemonic {
+
+  INC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x71;
+  }
+
+}

+ 44 - 0
src/main/java/de/mcs/tools/sps/mnemonic/JMP.java

@@ -0,0 +1,44 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class JMP extends AbstractMnemonic implements Mnemonic {
+
+  JMP(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0x90;
+  }
+
+  @Override
+  public boolean isUsingPage() {
+    return true;
+  }
+}

+ 45 - 0
src/main/java/de/mcs/tools/sps/mnemonic/LOOPC.java

@@ -0,0 +1,45 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class LOOPC extends AbstractMnemonic implements Mnemonic {
+
+  LOOPC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0xA0;
+  }
+
+  @Override
+  public boolean isUsingPage() {
+    return true;
+  }
+
+}

+ 45 - 0
src/main/java/de/mcs/tools/sps/mnemonic/LOOPD.java

@@ -0,0 +1,45 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class LOOPD extends AbstractMnemonic implements Mnemonic {
+
+  LOOPD(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0xB0;
+  }
+
+  @Override
+  public boolean isUsingPage() {
+    return true;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/MOD.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class MOD extends AbstractMnemonic implements Mnemonic {
+
+  MOD(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x7B;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/MUL.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class MUL extends AbstractMnemonic implements Mnemonic {
+
+  MUL(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x75;
+  }
+
+}

+ 8 - 0
src/main/java/de/mcs/tools/sps/mnemonic/Mnemonic.java

@@ -2,4 +2,12 @@ package de.mcs.tools.sps.mnemonic;
 
 public interface Mnemonic {
 
+  String getArgument();
+
+  String getName();
+
+  int getByte();
+
+  boolean isUsingPage();
+
 }

+ 13 - 2
src/main/java/de/mcs/tools/sps/mnemonic/MnemonicFactory.java

@@ -21,6 +21,8 @@
  */
 package de.mcs.tools.sps.mnemonic;
 
+import de.mcs.tools.sps.exceptions.SyntaxError;
+
 /**
  * @author wklaa_000
  *
@@ -30,8 +32,17 @@ public class MnemonicFactory {
   public MnemonicFactory() {
   }
 
-  public static Mnemonic getMnemonic(String line) {
-    return new AbstractMnemonic(line);
+  public static Mnemonic getMnemonic(String line, int lineNumber) throws SyntaxError {
+    String name = AbstractMnemonic.getName(line);
+    try {
+      Class<?> mnemonicClass = Class.forName("de.mcs.tools.sps.mnemonic." + name);
+    } catch (ClassNotFoundException e) {
+      throw new SyntaxError(String.format("syntax error in line %d. Illegal Mnemonic %s", lineNumber, name));
+    }
+    if (line.startsWith("NOP")) {
+      return new NOP(line);
+    }
+    return new NOP(line);
   }
 
 }

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/NOP.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class NOP extends AbstractMnemonic implements Mnemonic {
+
+  NOP(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x00;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/NOT.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class NOT extends AbstractMnemonic implements Mnemonic {
+
+  NOT(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x7A;
+  }
+
+}

+ 7 - 2
src/main/java/de/mcs/tools/sps/mnemonic/Not.java → src/main/java/de/mcs/tools/sps/mnemonic/OR.java

@@ -25,10 +25,15 @@ package de.mcs.tools.sps.mnemonic;
  * @author wklaa_000
  *
  */
-public class Not extends AbstractMnemonic implements Mnemonic {
+public class OR extends AbstractMnemonic implements Mnemonic {
 
-  Not(String line) {
+  OR(String line) {
     super(line);
   }
 
+  @Override
+  public int getByte() {
+    return 0x78;
+  }
+
 }

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PAGE.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PAGE extends AbstractMnemonic implements Mnemonic {
+
+  PAGE(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0x80;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PEND.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PEND extends AbstractMnemonic implements Mnemonic {
+
+  PEND(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xFF;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/POP.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class POP extends AbstractMnemonic implements Mnemonic {
+
+  POP(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x6F;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PORT.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PORT extends AbstractMnemonic implements Mnemonic {
+
+  PORT(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0x10;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PRG0.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PRG0 extends AbstractMnemonic implements Mnemonic {
+
+  PRG0(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xCC;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PRG1.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PRG1 extends AbstractMnemonic implements Mnemonic {
+
+  PRG1(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xCE;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PUSH.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PUSH extends AbstractMnemonic implements Mnemonic {
+
+  PUSH(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x5F;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/PWM.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class PWM extends AbstractMnemonic implements Mnemonic {
+
+  PWM(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0x59;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/REST.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class REST extends AbstractMnemonic implements Mnemonic {
+
+  REST(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xEF;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/RET.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class RET extends AbstractMnemonic implements Mnemonic {
+
+  RET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xE0;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/RJMP.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class RJMP extends AbstractMnemonic implements Mnemonic {
+
+  RJMP(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0x30;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SEL0.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SEL0 extends AbstractMnemonic implements Mnemonic {
+
+  SEL0(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xCD;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SEL1.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SEL1 extends AbstractMnemonic implements Mnemonic {
+
+  SEL1(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xCF;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SET.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SET extends AbstractMnemonic implements Mnemonic {
+
+  SET(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0x40;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SETB.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SETB extends AbstractMnemonic implements Mnemonic {
+
+  SETB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x61;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SETC.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SETC extends AbstractMnemonic implements Mnemonic {
+
+  SETC(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x62;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SETD.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SETD extends AbstractMnemonic implements Mnemonic {
+
+  SETD(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x63;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SETE.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SETE extends AbstractMnemonic implements Mnemonic {
+
+  SETE(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x6D;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SETF.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SETF extends AbstractMnemonic implements Mnemonic {
+
+  SETF(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x6E;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SKIP0.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SKIP0 extends AbstractMnemonic implements Mnemonic {
+
+  SKIP0(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xC0;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SRV.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SRV extends AbstractMnemonic implements Mnemonic {
+
+  SRV(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (1,2)
+    return 0x5B;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SUB.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SUB extends AbstractMnemonic implements Mnemonic {
+
+  SUB(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x74;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/SWAP.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class SWAP extends AbstractMnemonic implements Mnemonic {
+
+  SWAP(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x50;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/TONE.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class TONE extends AbstractMnemonic implements Mnemonic {
+
+  TONE(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0xF8;
+  }
+
+}

+ 40 - 0
src/main/java/de/mcs/tools/sps/mnemonic/WAIT.java

@@ -0,0 +1,40 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class WAIT extends AbstractMnemonic implements Mnemonic {
+
+  WAIT(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    // TODO modifier x (0..15)
+    return 0x20;
+  }
+
+}

+ 39 - 0
src/main/java/de/mcs/tools/sps/mnemonic/XOR.java

@@ -0,0 +1,39 @@
+/**
+ * MCS Media Computer Software
+ * Copyright 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Not.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 25.11.2018 wklaa_000
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.sps.mnemonic;
+
+/**
+ * @author wklaa_000
+ *
+ */
+public class XOR extends AbstractMnemonic implements Mnemonic {
+
+  XOR(String line) {
+    super(line);
+  }
+
+  @Override
+  public int getByte() {
+    return 0x79;
+  }
+
+}