Kommandos der Monitorprogrammemulation
Das Monitorprogramm zeigt mit einem # an,
dass es auf die Eingabe eines Kommandos wartet.
Ein Kommando besteht aus einem Buchstaben.
Dahinter können durch Leerzeichen getrennt Argumente in Form
von hexadezimalen Zahlen folgen.
Wenn Sie anstelle der Argumente einen Doppelpunkt eingeben,
werden die Argumente des vorherigen Kommandos übernommen.
Argumente, die in der nachfolgenden Beschreibung
in eckigen Klammern eingeschlossen sind,
können weggelassen werden.
Ein Kommando schließen Sie mit der ENTER-Taste ab,
wobei sich der Cursor hinter dem letzten Argument befinden muss.
Die Kommandos der Monitorprogrammemulation sind an die Kommandos
der originalen Monitorprogramme angelehnt.
Es stehen aber nicht alle originalen Kommandos zur Verfügung.
Die Hex-Alpha-Umschaltung (Kommandos A und H)
wird nicht unterstützt, da das im Emulator wenig Sinn macht.
Das Kommando H hat dafür eine andere Bedeutung.
Außerdem fehlen die Kommandos B (Haltepunkt setzen),
E (Programm mit aktiviertem Haltepunkt starten),
G (angehaltenes Programm fortsetzen) und N
(Schrittbetrieb), da J1013 diese Debugger-Funktionalitäten
in anderer Form bietet (siehe Debugger).
1. Eingebaute Kommandos
C adr1 adr2 anz
Dieses Kommando vergleicht zwei Speicherbereiche miteinander.
Die Speicherbereiche beginnen an den Adressen adr1
und adr2 und sind anz Bytes lang.
Sind die Speicherbereiche gleich, meldet sich das Monitorprogramm wieder.
Bei Ungleichheit werden die ersten unterschiedlichen Bytes
mit ihren Adressen ausgegeben.
Mit Betätigen der ENTER-Taste wird der Vergleich
fortgesetzt, eine andere Taste bricht den Vergleich ab.
D aadr [eadr]
Der Speicherbereich von der Anfangsadresse aadr
bis zur Endadresse eadr wird auf dem Bildschirm
hexadezimal ausgegeben.
Pro Zeile erscheint zuerst die Adresse, anschließend acht Bytes
und zum Schluss eine Prüfsumme.
Wird die Endadresse weggelassen, erfolgt die Ausgabe
blockweise und ohne Prüfsumme als Hex-ASCII-Dump.
Betätigen Sie die ENTER-Taste, wird der nächste
Block ausgegeben.
Jede andere Taste beendet das Kommando.
F aadr anz aa bb cc ...
Ab der angegebene Adresse aadr sollen anz
aufeinanderfolgende Bytes im Speicher gesucht werden.
Ab dem dritten Argument werden die zu suchenden Bytes angegeben.
Ist die Suche erfolgreich, erfolgt an der gefundenen Adresse
ein Übergang zum M-Kommando.
Konnte die Bytefolge nicht gefunden werden, erscheint die Ausschrift
NOT FOUND.
H
Es wird eine kurze Hilfe mit den möglichen Kommandos angezeigt.
I
Dieses Kommando initialisert das Monitorprogramm neu.
J sadr
Es wird ein Programm mit der Startadresse sadr gestartet.
Die Inhalte der CPU-Register sind unbestimmt.
K aadr eadr bb
Damit wird der Speicherbereich von der Anfangsadresse aadr
bis einschließlich Endadresse eadr mit dem Byte
bb beschrieben.
Der Speicherbereich wird somit gelöscht.
L [aadr [eadr]]
Mit diesem Kommando laden Sie eine Datei in den Arbeitsspeicher.
Dazu erscheint ein Dateiauswahldialog.
Die weitere Vorgehensweise ist im Abschnitt
Datei laden beschrieben.
Mit dem Kommando können Sie auch eine Anfangs- und bei Bedarf
zusätzlich auch eine Endadresse angeben.
In diesem Fall werden die angegebenen Adressen verwendet und
die Ladeadressen im Dateikopf ignoriert.
M aadr
Das M-Kommando ermöglicht das byteweise Anzeigen und
gegebenfalls auch Verändern von Speicherbereichen.
Sie können mit diesem Kommando Maschinencodeprogramme eintippen,
die als Hex-Listing vorliegen.
Das Kommando gibt die Adresse addr, den Wert der Speicherzelle
und dahinter ein Doppelkreuz als Eingabeaufforderung aus.
Nun können Sie durch Leerzeichen getrennt hexadezimale Zahlen
eingeben, die dann in den Arbeitsspeicher geschrieben werden.
Soll dagegen der alte Inhalt beibehalten werden,
betätigen Sie die ENTER-Taste, ohne etwas
vorher einzugeben.
Durch Eingabe des Zeichens R gelangen Sie eine Adresse zurück.
Mit einem Semikolon verlassen Sie das M-Kommando.
Wenn Sie versuchen, den Wert einer nicht veränderbaren
Speicherzelle zu beschreiben (ROM), erscheint ein
ER als Fehlerausschrift.
Dahinter wird die Speicherzelle noch einmal ausgegeben.
Mit diesem Kommando wird ein Speicherbereich in eine Datei
geschrieben.
Nach dem Bestätigen des Kommandos mit ENTER
ist der weitere Ablauf wie im Abschnitt
Datei speichern beschrieben.
Wenn Sie die Anfangs- und Endadresse des Speicherbereiches
nicht schon direkt beim Kommando angegeben haben,
müssen Sie diese in dem sich öffnenden Fenster eingeben.
T aadr zadr anz
Es werden im Arbeitsspeicher ab der Anfangsadresse aadr
anz Bytes zur Zieladresse zadr kopiert.
Ein Überlappen der Speicherbereiche ist möglich.
W aadr eadr
Diese Kommando realisiert eine Fensterfunktion, innerhalb dessen
die Bildschirmausgabe rollt.
aadr steht für die Anfangsadresse der ersten zum
Rollbereich gehörenden Zeile.
eadr gibt die Anfangsadresse der ersten nicht mehr
zum Rollbereich gehörenden Zeile an.
Der Rollbereich muss mindestens zwei Zeilen groß sein.
2. Benutzerdefinierte Kommandos
Das emulierte Monitorprogramm kann um eigene Kommandos erweitert werden,
die als Maschinencodeunterprogramme zu implementieren und in den
Arbeitsspeicher zu laden sind.
Ein benutzerdefiniertes Kommando beginnt mit einem @.
Unmittelbar dahinter folgt ein ASCII-Zeichen,
dass für das eigentliche Kommando steht.
Dahinter können durch Leerzeichen getrennt Argumente angegeben
werden.
Die Verknüpfung der benutzerdefinierten Kommandos mit dem
Monitorprogramm erfolgt über eine Tabelle,
die ab Adresse 00B0 im Arbeitsspeicher steht und bis maximal
zur Adresse 00CF reichen kann.
In dieser Tabelle stehen immer drei aufeinander folgende Bytes
für ein Kommando.
Das erste Byte einer solchen 3-Byte-Gruppe enthält das ASCII-Zeichen,
dass in der Kommandozeile nach dem @-Zeichen angegeben werden muss.
Die restlichen beiden Bytes enthalten die Startadresse des
Maschinencodeunterprogramms, in welchem das benutzerdefinierte
Kommando implementiert ist.
Das Unterprogramm selbst muss mit einem Return-Befehl abgeschlossen sein.