TPS/SPS Emulator

Für die TPS (und meine Erweiterungen) habe ich mal aus Spass einen Emulator geschrieben. Hier das Ergebniss.

Das ganze ist in Lazarus programmiert (Freepascal).

Der Emulator kann die verschiedenen Befehlssätze der verschiedenen TPS Versionen. Im linken Teil sieht man das Programm. Dieses kann entweder direkt eingetippt werden oder über die beiden Comboboxen unten erzeugt werden. Hier sind die jeweils möglichen Befehl der Versionen enthalten.

Über die 4 Buttons oben in der Mitte können die Befehle dann abgearbeitet werden.

  1. Knopf testet den gerade selektierten Befehl (Sprünge werden nicht durchgeführt)
  2. Knopf führt das Programm im Einzelschritt verfahren aus.
  3. Knopf stoppt den Einzelschrittmodus
  4. Knopf lässt das Programm mit maximaler Geschwindigkeit emulieren.

Im linken Teil können Sie die Eingaben vornehmen und sich die Ergebnisse anzeigen lassen. Im unteren Bereich sieht man dann noch ein paar Internas.

Den Emulator gibt's hier: hier

ACHTUNG: Bei der aktuellen Version des Avira Antivirus kommt es zu einer Falsch Positiven Meldung.

Versionshistorie

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.
arduino/arduinosps/spsemu.txt · Zuletzt geändert: 2018/12/18 08:49 von admin
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0