Die Befehle des Monitors

 

 

Der BIBO-ASSEMBLER verfügt über einen leistungsfähigen Monitor. Dieser Monitor ist eine "abgespeckte" Version des 16K-BIBOMON. Sie erreichen den Monitor vom Editor her durch Eingabe des Befehles MON.

Der Monitor meldet sich dann mit dem Prompt MON> und erwartet eine Eingabe von Ihnen.

Wenn Sie im Besitz eines 4K-BIBOMON oder gar eines 16K-BIBOMON sind, können Sie mit dem Befehl BIB auch direkt in die Benutzeroberfläche dieser Maschinensprach Monitore einspringen. Beide Monitore können dann über den Befehl Q wieder verlassen werden. Sie kehren dann wieder in den Editor des BIBO-Assembler zurück.

Die folgenden Monitor Befehle stehen Ihnen in Monitor des BIBOAssembler zur Verfügung:

Der Befehlssatz des Monitors

Befehl

Bedeutung

:
;
.
+
-
,
>
?
=

G
L
M
Q
R
S
T
V
W

Schreibe in Adresse
Schreibe in Adresse
Speicher auflisten (von.bis)
Rechne HEX+HEX
Rechne HEX-HEX
Speicher auflisten (halbe Seite)
Suche nach (HEX, ASCII, ATASCII)
Register anzeigen
Fülle Speicherbereich
ASCII Code
GOTO - Programmstart
Disassembliere Speicher
Verschiebe Speicher
Rückkehr zum Editor
Sektor lesen
Programm verfolgen im Einzelschritt
Programm verfolgen
Vergleiche Speicherbereiche
Schreibe Sektor

DIE BEDEUTUNG DER BEFEHLE

 

BEFEHL:   : - Schreibe in Adresse (STORE)
FORMAT:   (Adresse):(Hex) (Hex)
 BEISPIEL: 1000:AO 09

Erklärung: Dieser und der nachfolgende Monitor Befehl, sind in Ihrer Anwendung völlig identisch, so daß eine Besprechung des Befehles nachfolgend gegeben wird.

 

BEFEHL:   ; - Schreibe in Adresse (STORE)
FORMAT:   (Adresse);(Hex) (Hex@
 BEISPIEL: 1000;A0 09

Erklärung: Wie bereits beim letzten Befehl erwähnt, sind dieser Monitor Befehl und der letzte völlig identisch. Sie dienen dazu, eine, oder mehrere Speicherstellen zu ändern. Die Anwendung dieser Befehle ist sehr leicht. Sie geben zuerst die Speicherstelle an, ab der die Änderung erfolgen soll, dann die neuen Werte für diese und die darauf folgenden Speicherstellen. Sie können bis zu 8 Speicherstellen mit einem Befehl ändern.

 

BEFEHL:   . - Liste Speicher (MEMORY DUMP)
FORMAT:   (Start).(Ende)
 BEISPIEL: 1000.2000

Erklärung: Wenn Sie sich einen größeren Speicherbereich schnell ansehen wollen, benutzen Sie diesen Monitor Befehl. Auch seine Anwendung ist sehr leicht. Sie geben einfach die Startadresse des Speicherbereiches und die Endadresse des Speicherbereiches an, den Sie sehen möchten. Getrennt werden diese beiden Daten von einem Punkt. Sie können das Listing dann durch gleichzeitigen Druck von CONTROL und 1 (Taste 1) anhalten, bzw. weiterlaufen lassen. Sie können dieses Listing jederzeit durch Druck der BREAK - Taste verlassen.

 

BEFEHL:   + - Rechne HEX + HEX
FORMAT:   (HEX)+(HEX)
 BEISPIEL: 2D0+12

Erklärung: Es kommt oft vor, das Sie 2 Hexadezimal Zahlen miteinander addieren müssen. Der Monitor des BIBO-ASSEMBLER hilft Ihnen dabei.

 

BEFEHL:   - - Rechne HEX - HEX
FORMAT:   (HEX)-(HEX)
 BEISPIEL: A9-9F

Erklärung: Auch dieser Monitor Befehl kann Ihnen Rechenarbeit abnehmen. Die Anwendungen dieser beiden Befehle ist so leicht, das wir hier nicht weiter darauf eingehen wollen.

 

BEFEHL:   , - Liste halbe Seite
FORMAT:   (Adresse)
ODER:     (Adresse)... ..

BEISPIEL: 1000,
ODER:      1000,,,,

Erklärung: Dieser Monitor Befehl gibt Ihnen die Möglichkeit, immer nur eine halbe Seite des Arbeitsspeichers Ihres Computers auf dem Monitor zu sehen. Sie können aber auch mehrere Kommas hinter einander eingeben, so erhalten Sie ein laufendes Listing, das Sie wieder durch gleichzeitiges Drücken von CONTROL und der Taste 1 anhalten können, oder durch drücken der BREAK - Taste jederzeit unterbrechen können.

BEFEHL:   > - Suche nach (B YTE, ASCII)

FORMAT:   (HEX VON).(HEX BIS)>(HEX)(HEX)
ODER:     (HEX VON).(HEX BIS)>"ASCII

BEISPIEL: 2000.9BFF>A9 09
ODER:     2000.9BFF>"TEST
ODER:     0>"TEST 

Erklärung: Dieser Monitor Befehl ist sehr nützlich,um nach verschollenen Programmteilen zu suchen. Sie können mit diesem Befehl nach Hexadezimal Zahlen oder nach ASCII Zeichen (Text) suchen. Die Anwendung ist wieder sehr leicht. Sie geben die Startadresse des Speicherbereiches an, von dem aus gesucht werden soll. Danach folgt die Endadresse des Speicherbereiches. Beide Angaben werden durch einen PUNKT getrennt. Als nächstes folgt dann der Such Befehl. Suchen Sie nach ASCII Zeichen, müssen Sie das dem Monitor durch Eingabe der Anführungsstriche mitteilen. (Beispiel 2) Geben Sie diese Anführungsstriche nicht ein, werden alle folgenden Eingaben als Hexadezimal Werte interpretiert. Eine Besonderheit stellt das dritte Beispiel dar. Hier wird der gesamte Speicherbereich, beginnend bei $0000, bis nach $FFFF nach der ASCII Folge "TEST" abgesucht. Sie müssen also nicht immer die Endadresse angeben!

 

BEFEHL:  ? - Register Inhalte anzeigen
FORMAT:  ?
 BEISPIEL: ?

Erklärung: Durch Eingabe des Fragezeichens erhalten Sie die aktuellen Werte der Register angezeigt. Die Bedeutung der einzelnen Abkürzungen:

Als erstes sehen Sie den Programmcounter. Er gibt Ihnen die Speicherstelle der zuletzt ausgeführten Operation an. Danach folgen fünf Abkürzungen:

A= gibt den aktuellen Accumulator Inhalt wieder.
X= gibt den aktuellen Inhalt des X Registers wieder.
Y= gibt den aktuellen Inhalt des Y Registers wieder.
S= gibt den aktuellen Inhalt des Stack Pointers wieder.
P= gibt den aktuellen Processor Status wieder.

 

BEFEHL:   = - Fülle Speicherbereich
FORMAT:   (HEX)<(VON).(BIS)=
 BEISPIEL: 00<1000.9000=

Erklärung: Wollen Sie ganze Speicherbereiche sehr schnell mit einem Wert füllen, so können Sie das mit diesen Monitor Befehl sehr schnell und einfach machen. Die Anwendung: Zuerst geben Sie den Wert an, mit dem Sie den Speicherbereich füllen wollen. In unserem Beispiel ist das der wert Null. Als nächstes kommt der sehr wichtige Trennungsbefehl <. Nun folgen noch die Angaben über den Speicherbereich., den Sie füllen wollen. Also die Start- und die Endadresse, getrennt durch einen Punkt. In unserem Beispiel wird der Speicherbereich von $1000 bis $9000 mit dem Wert $00 gefüllt.

 

BEFEHL:   " - ASCII Co de Eingabe

FORMAT:   (Adresse)"(ASCII)
ODER:     (Adresse)<"(ASCII)

BEISPIEL: 0>"TEST 
ODER:     1000<"TEST

Erklärung: Dieses ist kein eigentlicher Monitor Befehl. Es teilt dem Monitor nur mit, das die Eingaben die als nächstes kommen, als ASCII Zeichen zu interpretieren sind. Eine genaue Anwendung dieser Funktion finden Sie bei dem SUCH Befehl (>). In unserem zweiten Beispiel wird das Wort TEST in die Speicherstellen nach $1000 geschrieben.

 

BEFEHL:  G - StarteProgramm
FORMAT:  (Adresse)G
 BEISPIEL: 4000G

Erklärung: Wenn Sie Ihr Programm in den Arbeitsspeicher assembliert haben, haben Sie zwei Möglichkeiten, es zu starten. Erstens vom EDITOR aus durch den EDITOR Befehl RUN. Die zweite Möglichkeit ist der direkte Sprung zu einer vorher angegebenen Adresse im Arbeitsspeicher Ihres Computers durch diesen Monitor Befehl. Die Kontrolle wird dabei an das Programm abgegeben, der Programmlauf kann durch drücken der BREAK - Taste unterbrochen werden. In diesem Falle meldet sich der Monitor mit einer Fehlermeldung wieder zurück.

 

BEFEHL:   L - D isassembliere Speicher

FORMAT:   (Adresse)L
ODER:     (Adresse)LLLLL

BEISPIEL: 4000L
ODER:     4000LLL LL

Erklärung: Um im Arbeitsspeicher befindliche Programme für den Programmierer lesbarer darzustellen, gibt es im. Monitor des BIBOASSEMBLER einen Disassembler. Sie können auch hier wieder wählen, ob Sie ein fortlaufendes Listing oder immer nur eine Bildschirmseite des Arbeitsspeichers Disassembliert sehen möchten. Da der BIBO-ASSEMBLER auch den Befehlssatz des 65C02 Mikroprozessors der SPEEDY 1050 versteht, werden die Befehle für diesen Prozessor INVERS dargestellt. Hier noch einmal der Hinweis, daß der Mikroprozessor Ihres ATARI Computer diese INVERS dargestellten Befehle nicht kennt, und somit "abstürzt", wenn er auf einen solchen Befehl trifft:

 

BEFEHL:   M - Verschiebe Speicherbereiche (MOVE)
FORMAT:   (ZIEL)<(VON).(BIS)M
 BEISPIEL: 1000<C000.CFFF

Erklärung: Mit dem Monitor Befehl M können Sie sehr schnell ganze Speicherbereiche, oder Blöcke verschieben. Auch die Anwendung dieses Befehles ist sehr einfach. Sie geben zuerst die Adresse des Zielspeichers, gefolgt von dem Trennungsbefehl an. Als nächstes kommt die Anfangsadresse des Speicherbereiches der bewegt (verschoben) werden soll. Es fehlt dann nur noch die Endadresse dieses Speicherbereiches. Die letzten beiden Angaben (Anfangs- und Endadresse des zu bewegenden Speicherbereiches) müssen durch einen PUNKT getrennt werden. Als letztes nun noch der MOVE Befehl M. In unserem Beispiel wird der Speicherbereich von $C000 bis $CFFF zum Speicherbereich beginnend ab $1000 bewegt (kopiert)

 

BEFEHL:   Q - Verlasse Monitor (QUIT)
FORMAT:   Q
 BEISPIEL: Q

Erklärung: Durch Eingabe von Q können Sie den Monitor wieder verlassen und zum EDTTOR zurückkehren.

 

BEFEHL:    R - Lese Sektor (READ)

FORMAT:   (Adresse)<(HEX)R
ODER:     (Adresse)<(HEX).(HEX)R

BEISPIEL: 4 000<4R
ODER:     4000<4.29R

Erklärung: Mit Hilfe des Monitors des BIBO-ASSEMBLER´s können Sie einzelne Sektoren, oder ganze Gruppen von Sektoren, in den Arbeitsspeicher Ihres Computers einlesen. Wie Sie aus unseren Beispielen ersehen können, ist auch die Anwendung dieses Befehls sehr einfach. Sie brauchen nur die Adresse des Speicherbereiches angeben, wo der Monitor den Sektor ablegen soll, und die Sektornummer die gelesen werden soll. Getrennt werden diese beiden Hexadezimalzahlen durch den Trennungsbefehl <. Nach der Sektornummer kommt noch der Lesebefehl R. Wollen Sie mehrere Sektoren einlesen, so brauchen Sie nur den Start- und den Endsektor, getrennt durch einen PUNKT, anzugeben.

 

BEFEHL:   S - Verfolge Progra mm im Einzelschritt

FORMAT:   (Adresse)S
ODER:     (Adresse)SSSSSSS

BEISPIEL: 4000S
ODER:     4000SSSSSS 

Erklärung: Der Monitor des BIBO-ASSEMBLERS bietet Ihnen zwei komfortable Möglichkeiten Ihr Programm auszutesten. Als erstes haben wir hier die Einzelschritt Funktion. Nach Eingabe der Startadresse werden soviele Masschinen Anweisungen abgearbeitet, wie Sie angegeben haben. Die Anzahl der abzuarbeitenden Maschinen Anweisungen bestimmen Sie durch die Anzahl der hinter der Startadresse angegebenen S (SINGLESTEP) Befehle. Die Kontrolle wird nicht an das Programm abgegeben. In unserem Beispiel wird nur ein Maschinenbefehl ausgeführt, im zweiten Beispiel sechs! Nach der Ausführung jedes einzelnen Befehles erhalten Sie die Programmcounter (Speicheradresse), den Opcode und die Registerinhalte angezeigt.

 

BEFEHL:   T -  Verfolge Programm (TRACE)
FORMAT:   (Adresse)T
BEISPIEL: 4 000T

Erklärung: Die zweite Möglichkeit ein Programm zu Testen stellt dieser Befehl dar. Konnten Sie mit dem S Befehl nur einzelne Programm Schritte ausfahren, so können Sie mit dem TRACE Befehl das komplette Programm testen. Auch hier erhalten Sie immer den Programmcounter (Speicheradresse), den Opcode, und die Registerinhalte angezeigt. Durch druck auf die OPTION - Taste können Sie die Lauf Geschwindigkeit erhöhen. Wir möchten Sie aber noch darauf hinweisen, daß ein Programm nicht verfolgt werden kann, wenn Einsprünge in das Betriebssysterm gemacht werden!

 

BEFEHL:   V - Vergleiche Speicherbereiche (VERIFY)
FORMAT:   (ZIEL)<(VON).(BIS)V
 BEISPIEL: 4000<C000.C080V

Erklärung: Dieser Befehl dient zum Vergleichen zweier Speicherblöcke. Die Anwendung ist die gleiche wie beim MOVE Befehl M. Sie geben zuerst die Speicheradresse des zu vergleichenden Speicherbereiches an. Danach folgt der Trennungsbefehl <. Als nächstes kommt die Startadresse des Originalspeicherbereiches, gefolgt von der Endadresse des Originalspeicherbereiches. Getrennt werden, diese wieder durch einen PUNKT. Als letzten geben Sie den Vergleichsbefehl V. Sollten sich Unterschiede innerhalb der beiden Speicherbereiche ergeben, so werden sowohl der Unterschiedliche, als auch der Originalinhalt    der Speichernereiche angezeigt.

 

BEFEHL:   W - Schreib e Sektor (WRITE)

FORMAT:   (Adresse)<4W
ODER:     (Adresse)<4.29W

BEISPIEL: 4000<4W
ODER:     4000<4.29W 

 

Erklärung: Dieser Monitor Befehl ist das genaue Gegenstück zum Lese-Sektor-Befehl R. Mit dem Lesebefehl R konnten Sie einen oder mehrere Sektoren einlesen, mit dem Schreibebefehl W können Sie diese nun wieder herausschreiben. Die Anwendung beider Befehle ist identisch. Sie geben zuerst die Bufferadresse, gefolgt von dem Trennungszeichen < an. Als nächstes brauchen Sie nur noch die Sektornummer gefolgt vom Schreibbefehl W einzugeben. Auch ganze Gruppen von Sektoren können so abgespeichert werden. Sie brauchen dazu lediglich den Start- und den Endsektor, getrennt durch einen PUNKT. anzugeben.

 

Nachdem Sie nun alle Monitor Befehle des BIBO-ASSEMBLER kennen gelernt haben, wird Ihnen die Tägliche Programmierarbeit mit dem BIBO-ASSEMBLER leichter fallen. Sie werden feststellen das es kaum einen anderen Assembler gibt, der Ihnen die Möglichkeiten des BIBO-ASSEMBLER und des eingebauten Monitors bietet.