Einer der wichtigsten Befehle des BIBO-ASSEMBLERS ist der LIST-Befehl. Hiermit kann das einmal eingegebene Listing gesamt oder nur zum Teil wieder auf dem Bildschirm dargestellt werden.
Syntax: LIS <erste Zeile>,<letzte Zeile> (von Listen) Bei spiel: LIS 100,1000
Dieser Befehl kann als L. abgekürzt werden.
Das Listing kann durch Control-1 angehalten und fortgesetzt werden. Mit der BREAK-Taste wird das Listing abgebrochen. Wird nur LIS oder L. eingegeben wird das gesamte Listing von der ersten bis zur letzten Zeile auf dem Bildschirm aufgelistet.
In unserem 1. Beispiel werden die Zeilen von 100 bis 1000 gelistet. Soll nur eine einzelne Zeile gelistet werden, wird die letzte Zeile weggelassen:
LIS 1000gibt nur die Zeile mit der Nummer 1000 (falls vorhanden) aus. Wird hinter der Zeilennummer ein Komma gesetzt:
LIS 1060,werden alle Zeilen beginnend ab Zeile 1000 bis zum Ende des Listings ausgegeben. Eine weitere sehr nützliche Funktion des Listbefehles ist das Listing ab einem angegeben Label ausgeben zu lassen:
LIS STARTDas Listing wird nach dem Label START abgesucht und falls vorhanden, beginnend mit dieser Zeile bis zum Ende des Programmes aufgelistet. Der Label muß auf jeden Fall vollständig vorhanden sein. Bei einer Eingabe von LIS STAR oder LIS STARTER wird die Zeile mit dem Label START nicht gefunden.
Das vollständige Listing kann mit folgender Funktion nach Zeichenfolgen abgesucht werden:
Syntax: FIN <Zeichenkette> (von find, finden) Beisp iel: FIN LDA
In unserem Beispiel wird das gesamte Listing nach der Zeichenkette 'LDA' abgesucht und, falls vorhanden, die Zeile in der sich diese Kombination befindet auf dem Bildschirm ausgegeben. Ist die Buchstabenkombination in einer Zeile mehrfach vorhanden, wird diese Zeile nur einmal ausgegeben.
Über die erweiterte Suchfunktion haben Sie die Möglichkeit, die gefundene Zeichenfolge gegen eine neue Zeichenfolge auszutauschen:
Syntax: REP "<Zeichenkette>"<Zeichenkette>" (von replace, austauschen) Beispi el: REP "LDA"LDX"
Es werden alle Buchstabenkombinationen 'LDA' gegen 'LDX' ausgetauscht und die entsprechende Zeile auf den Bildschirm dargestellt. Statt der Anführungszeichen können auch andere Zeichen (. ') benutzt werden, wichtig ist nur, daß in einer Eingabezeile immer das gleiche Trennungssymbol benutzt wird. Der BIBO-ASSEMBLER benötigt diese Zeichen um den Anfang und das Ende einer Buchstabenkombination zu erkennen. Soll also ein Anführungszeichen selbst ausgetauscht werden, muß als Trennzeichen natürlich ein anderes Zeichen verwendet werden.
Mit der obigen Funktion werden alle Zeichenketten in dem Listing ausgetauscht. Es besteht aber auch die Möglichkeit, einzelne Zeilen zu ändern.
Nach dem letzten Trennungszeichen geben Sie einfach ein Fragezeichen ein:
REP "LDA"LDX"?Wird in einer Zeile die Buchstabenkombination 'LDA' gefunden, so wird diese Zeile auf dem Bildschirm ausgegeben und der Austauschvorgang angehalten. Der Cursor bleibt hinter dieser Zeile stehen und der Editor wartet auf eine Eingabe des Benutzers, ob diese Zeile geändert werden soll. Durch betätigen der RETURN-Taste wird nun 'LDA' gegen 'LDX' ausgetauscht und die geänderte Zeile wieder auf den Bildschirm dargestellt. Soll die Zeile unverändert bleiben, so drücken Sie einfach die SPACE-Taste oder 'N'. Ein abbrechen der Listfunktion ist mit der ESC-Taste möglich.
WARNUNG: Da der Editor normalerweise keine Inversen Zeichen annimmt, können diese auch mit der Replace-Funktion nicht ausgetauscht werden. Diese Zeilen müssen einzeln aufgelistet und geändert werden. Die maximale Länge der Austauschstrings ist auf 64 Zeichen begrenzt.
Kopieren und Verschieben von Zeilen
Einzelne oder mehrere Zeilen können dupliziert werden. Der Befehl hierzu lautet:
Syntax: COP <nach Zeile>,<von Zeile>,<bis Zeile> (von copy, kopieren)
Beispiel: COP 1000,100,200In unserem Beispiel werden alle Zeilen zwischen 100 und 200 an die Position vor die Zeile 1000 kopiert. Diese Zeilen sind jetzt also doppelt vorhanden. Um Probleme mit der Zeilennumerierung auszuschließen, wurde nach dem Copy-Befehl automatisch ein Renumber durchgeführt.
Sollen wie im oberen Beispiel die Zeilen verschoben werden, also an die neue Stelle kopiert, aber an der ursprünglichen Stelle gelöscht werden, wenden Sie folgenden Befehl an:
Syntax:MOV <nach Zeile>,(von Zeile>,<bis Zeile> (von move, verschieben) Beispiel : MOV 1000,100,200
Für diesen Befehl gilt die gleiche Syntax, wie für den Copy-Befehl, nur werden hier die ursprünglichen Zeilen 100 bis 200 gelöscht nachdem sie vor die Zeile 1000 kopiert wurden. Auch hierbei wird ein automatisches Renumber durchgeführt. Soll nur eine einzelne Zeile verschoben oder kopiert werden kann die dritte Zeilennummer (bis Zeile) weggelassen werden.
Beispiel:COP 1000,300 MOV 100,1000
Bei den beiden vorher besprochenen Befehlen wurde bereits der Renumber angesprochen. Hierbei wird das Programmlisting neu durchnumeriert. Dies ist auf jeden Fall immer bei den Befehlen MOVE, COPY und bei der noch später beschriebenen Funktion MERGE notwendig und wird deshalb nach beenden der Funktion automatisch durchgeführt.
Nun kann es bei der Eingabe eines Programmlistings schon einmal vorkommen, daß man zwischen zwei Zeilen noch mehrere Zeilen einfügen möchte, aber nicht genügend Zeilennummern zur Verfügung stehen. Für diesen Zweck können Sie das Programm manuell neu durchnumerieren.
Syntax: REN (von renumber, neu numerieren)Mit diesem Befehl wird das vollständige Listing beginnend mit der Zeilennummer 10 in Zehnerschritten neu durchnumeriert. Sie können außerdem die Anfangszeilennummer und die Schrittweite der einzelnen Zeilen bestimmen, wenn Sie folgendes eingeben:
Syntax: REN <l. Zeilennummer>,<Schrittweite> Beispiel : REN 1000,20
Hierbei wird in 20er Schritten beginnend mit der Nummer 1000 durchnumeriert. Sollte durch eine zu hohe Schrittweite oder Anfangsnummer während des Renumber-Vorganges die Zeilennummer 64000 überschritten werden, wird der Renumber abgebrochen und eine Fehlermeldung ausgegeben. Da hierbei schon ein Teil des Programmes neu numeriert wurde, sind die Zeilennummern unter Umständen nicht mehr in der richtigen Reihenfolge vorhanden. Im vorderen Teil des Listings können die Nummern höher sein als im hinteren. Solange in diesen Zeilen nichts geändert wird. ändert sich auch nichts an der Reihenfolge der Zeilen. In diesem Fall sollte auf jeden Fall das Programmlisting noch einmal mit einer kleineren Schrittweite oder Anfangsnummer neu durchnumeriert werden, bis diese Fehlermeldung nicht mehr auftritt.
Die Renumber-Funktion eignet sich auch sehr gut um größeren Platz zwischen zwei Zeilen zu schaffen, ohne daß eine große Schrittweite gewählt werden muß. Angenommen, Sie wollen ab Zeile 1000 einen Programmteil eingeben, wissen allerdings noch nicht genau wie lang dieser Teil werden soll, müssen also alle dahinter liegenden Zeilen mit einer neuen Anfangsnummer durchnumerieren.
Das geschieht durch Eingabe einer dritten Zahl hinter dem Kommando REN:
Syntax: REN <l. Zeilennummer>,<Schrittweite>,<Startzeile> Beisp iel: REN 5000,10,1000
Das Listing wird erst ab der Zeile 1000 neu durchnumeriert, der Programmteil vor dieser Zeile bleibt unberührt. Die Zeile mit der Nummer 1000 erhält somit die Nummer 5000, alle dahinter liegenden Zeilen werden mit der Schrittweite 10 neu numeriert. Jetzt haben Sie Ihr Ziel erreicht, zwischen 1000 und 4999 haben Sie genug Platz um Ihr neues Programmteil einzufügen.
ACHTUNG: Die 1. Zeilennummer des neu zu numerierenden Programmteiles muß auf jeden Fall höher sein als die Startzeile. Wird diese Vorschrift nicht eingehalten, kann es vorkommen, daß Zeilennummern in die falsche Reihenfolge gebracht werden.