Action disabled: revisions
Translations of this page:

TPS/SPS Emulator

For the TPS PLC (and my extensions) I once wrote an emulator as a fun project. Here the result. The complete project is programmed in Lazarus (Freepascal).

The emulator can work with the different instruction sets of different TPS versions. On the left you can see the programming window. This can either be typed in directly or generated via the two combo boxes below. There you can select the possible commands – dependent on the target selected of the included versions.

The commands can then be executed via the 4 buttons in the top center block.

The first button tests the currently selected command (jumps are not carried out)
The second button executes the program in single-step mode.
The third button stops single-step mode.
The fourth button is Start-Stop, to run at maximum speed.

In the left part, you make the entries and view the results as you step through the program. At the bottom you can see a few more internas. On the right you can set inputs and see results at the outputs. The lower block on the right shows what is happening internally in the simulated processor.

The emulator can be found here for download: TPS Emulator

Versionshistorie

12.06.2021 Version 0.2.1.100

  • Bug: On PCs with an unknown language, the user interface shows internal LSU keys (ID _ #####). Now the user interface starts with English as the default
  • Feature: Austrian language added
  • Feature: When executing in the emulator, the delay command can now be bypassed.

10.06.2021 Version 0.2.1.94

  • Bug: more stable auto programming feature, now for the ArduinoSPS, too.

07.06.2021 Version 0.2.1.93

  • Bug: servo will evaluate the register in 8 bit, and not in 4 bit

03.06.2021 Version 0.2.1.91

  • Bug: The grid wasn't updated correctly, if the program size excceds 256 bytes.

02.06.2021 Version 0.2.1.90

  • Bug: just a small bug with the eeprom size. Now you can't exceed the size, you will get an error message. And i fixed a side effect with 256 bytes size.

15.05.2021 Version 0.2.1.88

  • Bug: BBC micro:bit V2 wrong images will be displayed on image > 1 (only a little offset of 1)
  • Bug: Jump to illegal address will lead into deactivating the stop button, if the emulator is running. Now the emulator will stop and show a error message.

09.05.2021 Version 0.2.1.85

  • Feature: automatic upload for BBC micro:bit V2 via serial connection. Now you don't have to put the mb into programming mode anymore. Simply click on the upload button.

08.04.2021 Version 0.2.1.80

  • Feature: upload activating for BBC micro:bit V2 via serial connection.

01.04.2021 Version 0.2.1.78

  • BUG: fixing upload activating for BBC micro:bit.

31.03.2021 Version 0.2.1.76

  • FEATURE: adding upload for BBC micro:bit.

04.01.2021 Version 0.2.1.71

  • FEATURE: comment for direct upload to ArduinoSPS.

03.11.2020 Version 0.2.1.68

  • FEATURE: hint for SEL und PRG buttons.
  • FEATURE: new examples

30.10.2020 Version 0.2.1.66

  • FEATURE: adding more examples from the internet.
  • FEATURE: New Icon set.

26.10.2020 Version 0.2.1.64

  • FEATURE: adding more examples from the internet.

31.08.2020 Version 0.2.1.62

  • FEATURE: adding “save as” Button.

15.07.2020 Version 0.2.1.59

  • BUG: Changing to new WEB Address.

12.12.2018 Version 0.2.1.57

  • FEATURE: Tone Mnemonic now gives a real tone output.

10.12.2018 Version 0.2.1.56

  • FEATURE: serial upload to new SPS Targets with simple serial interface

18.11.2018 Version 0.2.1.52

  • FEATURE: deactivating right panel if not in emulator mode
  • FEATURE: new internal “Jump to” will show the absolute memory address, if a skip or jump command will be executed

17.11.2018 Version 0.2.1.51

  • BUG: clicking “new row” with active row at the end of the table, two rows will be added
  • BUG: The last empty row will only show command 0. Data is not be set.
  • BUG: on Export the field names are no correctly padded
  • BUG: on “new file” changes of the actual file will not be saved
  • FEATURE: loading and saving of input presets, adding PRG and SEL Buttons to preset
  • BUG: Holtec → Holtek

10.11.2018 Version 0.2.1.50

  • adding visual tone control for SPS Version 0.8

10.11.2018 Version 0.2.1.48

  • adding new internals: page and delay
  • Bug: Servo indicator shown in Holtec mode.

08.11.2018 Version 0.2.1.47

  • neue Webseitenadresse eingebaut
  • Icon und Text start/stoppen geändert
  • aktuelle Lazarus Version
  • bei der Auswahl von COM Port und Arduino Pfad wird dieser aus der Registry vorbesetzt
  • zus. Servoanzeige mit Strich

05.12.2013 Version 0.2.1.45

  • Feature: Internationalisierung. Das Programm steht nun in deutsch und englisch zur Verfügung. Es schaltet sich je nach Sprachversion des Betriebssystems automatisch um.

05.12.2013 Version 0.2.1.44 Herzlich Dank an Herrn Oehme, durch den ich folgende Bug beseitigen konnte .

  • Die Internet-Verbindung im Eröffnungsbildschirm klappt nicht – Anzeige “keine Verb.”

Lösung: Die WebAdresse hat sich geändert.

  • Im “Skip if”-Befehl fehlen S_SEL=0/S_PRG=0/S_SEL=1/S_PRG=1 (betrifft nur TPS Holtec).

Lösung: Befehle nachgetragen.

  • Der “Return”-Befehl für TPS Holtec und TPS ATMega8 funktioniert nicht – RAdr lautet immer 0

Lösung: Bug gefixed.

09.03.2013 Version 0.2.1.43 Durch die tatenreiche Mithilfe von Herrn Chvatal (Amateurtfunk-Rufzeichen: OE1GCA) habe ich folgende Bug beseitigen können. Hiermit möchte ich allen, die mir bisher eine Rückmeldung gegeben haben vielen Dank sagen.

  • Die beiden Taster SEL und PRG waren vertauscht.
  • In der Holtek und ATMEga 8 Version gibt es nur ein Ebene für den Subroutinen Call. Bei meinen beiden Versionen (ATTiny84 und Arduino gibt es davon 8, d.h. ich kann 8 Aufrufebenen verwenden.) Das berücksichtigt jetzt auch der Emulator.
  • Das A-Register ist in der Holtect und der ATMega8 Version immer nur 4 Bit breit. ATTiny84 und Arduino-Version verarbeiten aber 8-Bit. Auch das berücksichtigt nun der Emulator.

05.03.2013 Version 0.2.1.41

  • Der Call Befehl springt jetzt auch dahin, wo er hin soll.

03.10.2012 Version 0.2.1.38

  • Emulator kann nun auch direkt eine HEX Datei zum Upload erzeugen. Diese liegt im gleichen Verzeichniss wie das TPS Programm und hat die den gleichen Namen, aber die Endung .hex

25.9.2012 Version 0.2.1.36

  • Bug beim Push und Pop im Emulator. (Nur ArduinoSPS)
  • Stackanzeige für Push/Pop A.

25.9.2012 Version 0.2.1.35

  • Anzeige der Rücksprungadresse bei Call/Sub.
  • Automatischer Updatecheck.
  • Shortcuts für die Buttons. (z.B. fürs Debuggen F8, F9, F5)

24.9.2012 Version 0.2.1.29

  • Bug beim Zuweisen der Servos im Bytemodus behoben. (Nur ArduinoSPS)
  • Wertebereich der Servos im Bytemodus angepasst. 0= 0° und 255= 180°.

22.9.2012 Version 0.2.1.28

  • Beim Laden einer neuen Datei wird nun auch der alte Quelltext gelöscht.
  • Bei Änderungen an der aktuellen Datei und Aufruf des Ladens wird nun gefragt, ob man die Änerungen speichern möchte. (Leider erst nach der Auswahl der zu ladenden Datei…)

21.9.2012 Version 0.2.1.26

  • Reset der Eingabewerte (R Button).
  • Nullwert von RC.# auf 8 geändert.

20.9.2012 Version 0.2.1.23

  • Die Taster PRG und SEL fehlten in der Eingabemaske.
  • Speichern von definierten Eingabewerten möglich. (Einfach rechte Maustaste auf den jeweiligen Button und schon wird das gesamte Eingabeset auf diesen Button gespeichert.)

20.9.2012 Version 0.2.1.22

  • Neue Befehle der ArduinoSPS implementiert.
  • Textfenster nun mit Copyfunktion. (STRG-C)
  • Kleinere Fixes im Bereich der erweiterten Befehle der ArduinoSPS
  • Bei der Programmausführung kann nun auch die Aktualisierung des Quelltextfensters abgeschaltet werden. Dadurch wird eine deutlich höhere Ausführungsgeschwindigkeit erreicht.

20.9.2012 Version 0.2.1.20

  • Neue Spalte mit der Befehlsbeschreibung. Gespeicherte Programm sind davon unberührt.
  • Neben der Position wird nun auch die Größe des Programmfensters gespeichert. Ebenso wie die Spaltenbreiten.
  • Uploadfenster wird jetzt zentriert über dem Programmfenster.
  • Kleinere Fixes.

18.9.2012 Version 0.2.1.19

  • Namensgebung der TPS angepasst. Ausgänge 1..4 und Eingänge 1..4 (statt 0..3) Gespeicherte Programm sind davon völlig unberührt.

18.9.2012 Version 0.2.1.18

  • kleinere Bugs behoben.
  • Wertebereich der ADC und RC Felder erweitert. (Den DIV 16 hab ich da jetzt mal durch einen AND $0F ersetzt, somit werden nun bei den Befehlen 69 Und 6A nur das untere Nibble berücksichtigt.)
  • HOLTEC Version mit 2. ADC

Vielen Dank an Herrn R.Beesner für das Melden der Bugs.

18.9.2012 Version 0.2.1.16

  • kleinere Bugs behoben.
  • Abfrage beim Verlassen bei geänderter Datei.
  • Speichknopf speichert bei geladener Datei automatisch.
  • InfoScreen eingebaut.

17.9.2012 Version 0.1.1.11

  • kleinere Bugs behoben.
  • Upload auf den Arduino eingebaut. (Verwendet die in der Arduino Installation vorhandene AVRDude Versionen)

14.9.2012 Version 0.1.1.7

  • kleinere Bugs behoben.
  • Zeilen löschen und einfügen.
  • speichert auch die Version des Controllers mit in die Datei.
  • Implementierung weiterer Funktionen.

14.9.2012 Version 0.1.1.6

  • Drag und Drop für Dateien eingeführt. Man kann jetzt aus dem Explorer einfach die zu editierende Datei auf das Programm droppen.
  • Start mit Datei. Man kann das Programm direkt mit einer Datei starten. Somit ist es jetzt auch möglich, die SPS als Editor für tps-Dateien im Windows Explorer zu setzen.
  • Button “Neu” erzeugt eine neue leere Session.
2021/05/18 05:51 · admin
en/arduino/arduinosps/spsemu.txt · Last modified: 2021/05/18 05:56 by admin
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0