Seit Version 0.6 steht der Original-Assembler mit dem Original-Montierer des TR440 zur Verfügung. Dadurch sind auch die TR440-Mechanismen wie Montageobjekte etc. verfügbar. Mit dem Original-Assembler und dem Original-Montierer erzeugte Programme können auch im Trace-Modus ablaufen, das Trace-Protokoll enthält aber keine Quell-Bezüge, sondern besteht aus reinem Disassemblat.
Seit Version 0.7 stehen auch Makrobibliotheken zur Verfügung sowie die Standard-Makrobibliothek R&RAHMEN, so dass SPRACHE=TASR beim UEBERSETZE benutzbar ist.
Die folgenden Abschnitte sind nur für Leute gedacht, die sich für den Bootstrap-Vorgang des Emulators interessieren. Zum Programmieren eigener TAS-Programme sollte man die originalen #UEBERSETZE und #MONTIERE verwenden.
Aus Kompatibilitätsgründen steht aber auch weiterhin der ursprünglich für den Bootstrap-Vorgang entwickelte Emulator-eigene TAS-Assembler zur Verfügung (TAS = Telefunken Assembler Sprache), der Quell-kompatibel zum Assembler des TR440 ist.
Er übersetzt TAS-Quellen, die in Windows-Textdateien mit der Extension .TAS gespeichert sind.
Im Gegensatz zum TR440-Assembler erzeugt er aus den Quellen keine Montage-Objekte, aus denen dann der Montierer lauffähige Programme macht, sondern er erzeugt einen direkt lauffähigen Programmkörper. Daher enthält er einen zusätzlichen Include-Mechanismus, der das Einfügen von externen Unterprogrammen gestattet. Diese werden also jedesmal mit assembliert, anstatt anmontiert zu werden. Da der Emulator-Assembler etwa 300-mal so schnell ist wie der TR440-Assembler war, spielt das zeitlich keine Rolle (Die 16.000 Befehle des Kommando-Entschlüsslers werden z.B. in ca. 0,5 Sekunden assembliert).
Beim Assemblieren wird grundsätzlich immer eine gleichnamige Listing-Datei mit der Extension .TLST erzeugt, die nahezu identisch mit dem TR440-Assembler-Listing ist. Da kein Montierer-Schritt mehr nötig ist, enthält das Listing jedoch bereits die echten Programm-relativen Adressen.
Die TAS-Quellen werden normalerweise in dem Verzeichnis
C : \ TR440 \ Quellen
gespeichert, dieses Quell-Basisverzeichnis kann jedoch auch im Menü in den Einstellungen geändert werden. Die Assembler-Listings sind dann in dem Unterverzeichnis Protokolle zu finden. Sowohl Quellen als auch Listings können zum Bearbeiten bzw. Ansehen per Menü direkt an den Standard-Editor übergeben werden.
Im Emulator werden einige Quellen (auch komplette Programme) mit installiert, die teils als Anschauungsmaterial dienen (z.B. PRIMZAHLEN, PRIMZAHLEN2, PRIMZAHLEN3, PS&SSRTX, PS&TEXTAUSGB), teils aber auch aus Unterprogrammen bestehen, die schon am TR440 dazu benutzt wurden, Leistungen für TAS-Programmierer zu erbringen (z.B. R&RAHMEN, A&FSP, S&ALARM, S&DPRO, S&CC, S&SMFEHL etc.).
Wer ein eigenes TAS-Programm schreiben will, geht am besten von dem mitgelieferten Template vorlage.tas aus und schreibt dort seine Befehle entsprechend der Kommentare hinein.
Wichtige Abweichung vom Original-TAS-Assembler ist : der Emulator-Assembler versteht zwar mehrere Befehle in einer Zeile, aber ein Befehl kann nicht über das Zeilenende hinaus fortgesetzt werden.
Frisch assemblierte Programme bzw. solche, die im Zwischenspeicher 'ausführbar gemerkt' wurden, enthalten in ihrem Programmkörper für jedes Assembler-Element (Befehl oder Variable) entsprechende Quellverweise, so dass sie auf Quellebene mit Trace ausgeführt werden können.
Als Informationen zum Programmieren in TAS stehen zur Verfügung die große Befehlsliste, das TAS-Handbuch, das Befehls-Lexikon und das Handbuch Systemdienste.
Ein in die Irre gelaufenes Programm kann entweder mittels #XAN#. angehalten und dann mit der Anweisung BEENDE#. abgebrochen werden oder mit Menü > Dialog > Programm abbrechen oder in schweren Fällen von Dauer-Schleife mit CTRL Break in den Trace-Einzelschritt-Modus versetzt werden.
Es gibt 2 Arten des Include-Mechanismus :
- hdef (dateiname)
bettet den Inhalt der angegebenen .TAS - Datei während des Assember-Laufes an der Stelle in die Quelle ein, wo der Befehl steht. Diese Form wird dann verwendet, wenn einfach die gesamte Quelle wegen ihrer Größe in mehrere Teile gesplittet wurde. Bei dieser Form des Include wird kein neuer Namensraum etc. angelegt, da es eine rein physikalische Trennung von Quellteilen ist.
- incl (dateiname)
bettet ebenfalls während des Assember-Laufes den Inhalt der angegebenen .TAS - Datei an der Stelle in die Quelle ein, wo der Befehl steht. Diese Form wird dann verwendet, wenn die eingebettete Datei ein eigenständiges Unterprogramm ist, das beim TR440 getrennt assembliert und vom Montierer angelinkt worden wäre. Dazu wird ein neuer Namensraum für die eingebettete Quelle aufgemacht (wie bei einem SEGM-Befehl in der Quelle), so dass es nicht zu Namens-Kollisionen kommen kann. Namen aus der eingebetteten Quelle stehen nur zur Verfügung, wenn sie mit einem EXTERN-Befehl eingebunden werden. Der Assembler sorgt dafür, dass eine Quelldatei max. 1-mal mit incl eingebettet wird, auch wenn sie von mehreren Quellteilen eingebettet wird (wie beim TR440 ein Montageobjekt auch max. 1-mal angelinkt wurde).
Es gibt 2 getrennte Zustände im Emulator, die teilweise unterschiedliche Programmierungsarten ermöglichen :
- die Grundstufe liegt dann vor, wenn noch kein #XBG durchgeführt wurde. Als normaler Anwender kann man in diesem Zustand letztlich nichts anderes als #XBG machen. Im Programmierer-Modus kann man in der Grundstufe ebenfalls Programme entwickeln und starten, die nicht auf die Leistungen des Kommando-Entschlüsslers angewiesen sind (z.B. den Entschlüssler selbst verändern und testen). Für Geübte ist diese Arbeitsweise mittels Befehlen statt Menü teilweise schneller. In der Grundstufe steht noch der gesamte Speicher zur Verfügung, d.h. der globale 1:1 Leitblock ist aktiv.
- der Gesprächsmodus liegt vor, wenn mittels #XBG der Dialog begonnen und damit der Kommando-Entschlüssler gestartet wurde. Ein danach gestartetes Programm ist also schon in einer Prozess-Einschachtelungs-Stufe und kommt an den Speicher der Grundstufe und des Entschlüsslers nicht mehr heran, da es seinen eigenen eingeschränkten Leitblock hat. In diesem Zustand sollte man hauptsächlich mit den Menü-Steuerungen arbeiten, da die Grundstufen-Befehle teilweise nicht zur Verfügung stehen.