Einleitung
Aufgaben und Funktionsmerkmale des BFZ-EDITORs
Die Aufgabe eines EDITOR-Programms (EDITOR = Redakteur, Schriftleiter) besteht darin, mit Hilfe eines Computers Texte zu erstellen, zu bearbeiten und zu verarbeiten. Bei diesen Texten kann es sich z.B. um Briefe, Beschreibungen, Listen oder ähnliches handeln. Von besonderer Bedeutung für die Computertechnik sind Programm-Texte in Assemblersprache (der sogenannte „Source- oder Quellcode“).
Lassen sich diese Programm-Texte mit Hilfe eines EDITORS bearbeiten, auf Diskette oder Cassette speichern und anschließend assemblieren, so sind spätere Änderungen oder Ergänzungen eines Programms leicht und komfortabel möglich.
Aus diesem Grund eignet sich der BFZ-EDITOR besonders dazu, Assembler-Quell-Programme komfortabel zu erstellen, zu bearbeiten und anschließend durch den Assemblier-Vorgang in Maschinensprache umzusetzen (8085-Assembler-Code).
Die Arbeitsweise eines EDITOR-Programms besteht darin, die vom Bediener eingegebenen Textzeichen auf dem Bildschirm anzuzeigen und zusätzlich im Arbeitsspeieher des Computers zu speichern und zu verwalten.
Der Speicherbereich, in dem die Textzeichen abgelegt werden, ist der sogenannte „EDIT-Buffer“ (Buffer = Puffer, Zwischenspeicher). Die Bearbeitung des Textes mit Hilfe des BFZ-EDITORs erfolgt „Bildschirm-orientiert“, d.h., auf dem Bildschirm wird das genaue Abbild des EDIT-Buffer-Inhalts zeilenweise dargestellt. Jede Veränderung von Textzeichen innerhalb des EDIT-Buffers wird direkt auf dem Bildschirm angezeigt.
Dazu gehören z.B.:
- Positionierung des „Cursors“ auf ein bestimmtes Textzeichen
- Positionierung des „Cursors“ an den oberen, unteren, linken oder rechten Textrand, sowie auf das nächste „Wort“
- Löschen, Einfügen, Trennen oder Anhängen von Textzeilen
- „Blättern“ auf die nächste oder vorherige Textseite, sowie an den Textanfang oder an das Textende
- Markieren, Kopieren, Verschieben oder Löschen von „Textblöcken“
- Suchen und Ersetzen bestimmter Zeichenketten („Strings“)
Weitere Funktionsmerkmale des BFZ-EDITORs sind:
- Bediener-freundliches Speichern und Laden des EDIT-Buffer-Inhalts mit Hilfe von Diskette oder Cassette
- Speichern und Laden von markierten Textblöcken
- Anbinden von gespeicherten Texten an den aktuellen EDIT-Buffer-Inhalt
- Drucken des bearbeiteten Textes mit Voreinstellung des linken Zeilenrandes, der maximalen Zeilenzahl pro Druckseite, sowie Steuerung des Formular-Vorschubs und wahlweisem Ausdruck einer Kopfzeile mit automatischer Seitennummerierung
- Assemblieren von 8085-Assembler-Programmen, wahlweise mit oder ohne Bildschirm-Ausdruck, bzw. Drucker-Listing
- Möglichkeit der Weiterverarbeitung des erstellten Textes mit Hilfe eines anderen Textverarbeitungs-Programms (z.B. „WORD-STAR“)
Hinweis
Das MFA-Video-Interface stellt alle verwendeten Buchstaben in Großschreibung dar. Im EDIT-Buffer werden aber alle Buchstaben so abgelegt, wie sie auch tatsächlich mit der Tastatur eingegeben wurden (z.B. Tastatur-Eingabe „a“ wird als ASCII-Zeichen ( = 61 hex) im EDIT-Buffer abgelegt, auf dem Bildschirm erscheint „A“).
Beim Ausdrucken des EDIT-Buffer-Inhaltes werden aber alle als Kleinbuchstaben eingegebenen Zeichen auch als Kleinbuchstaben gedruckt, so dass der gedruckte Text u.U. bzgl. der Groß- und Kleinschreibung nicht mit dem auf dem Bildschirm dargestellten Text übereinstimmt. Soll auch die Ausgabe auf dem Drucker nur in Großschreibung erfolgen, so muss bei der Texteingabe die Taste ‚ALPHA-LOOK‘ aktiviert werden (Ausnahme: der Ausdruck von Programm-Listings beim Assemblieren erfolgt immer in Großschreibung).
Installation und Inbetriebnahme
Der BFZ-EDITOR ist ein Maschinenprogramm mit einer Länge von 4 KByte. Es ist in zwei 2-KByte-EPROMs vom Typ 2716 gespeichert und belegt den Adressraum von Adresse 5000 bis 5FFF (hex).
Das sogenannte „Hilfs-Menue“ mit einer Länge von 1440 Byte (entspr. 05A0 hex) ist in einem weiteren 2-KByte-EF’ROM 2716 gespeichert. Es besteht im wesentlichen aus einem Text, der die Steuerzeichen des BFZ-EDITORs beschreibt, und kann wahlweise mitbenutzt werden um das Arbeiten mit dem BFZ-EDITOR gerade in den Anfangsphasen zu erleichtern.
Je nach vorliegendem Software-Ausbau des vorhanden Systems ergeben sich unterschiedliche Installationsmöglichkeiten für das EDITOR-Programm in Verbindung mit dem „Hilfs-Menue“:
b) Vorhandener Software-Ausbau: MAT-85 und Software-Paket SP1
Aufruf des BFZ-EDITORs von der Kommando-Ebene aus:
KMD> G(O) <CR>
START-ADR: 5000 <CR>
Aufruf des BFZ-EDITORs von der Kommando-Ebene aus mit EDITOR-Hi1fs-Menue:
KMD> E <CR>
Soll in dieser Konfiguration das EDITOR-Hilfs-Menue mitbenutzt werden, so muss der Inhalt des EPROMs „HELP.MEN“ auf eine Diskette gespeichert werden. Beim Arbeiten mit dem BFZ-EDITOR lässt sich das Hilfs-Menue dann an jede beliebige freie Stelle in den Arbeitsspeicher laden und steht dort dem BFZ-EDITOR zur Verfügung.
Anleitung zum Kopieren des EDITOR-Hilfs-Menues auf Diskette:
Möglichkeit 1:
Laden Sie den Inhalt des EPROMs „HELP.MEN“ mit Hilfe der EPROM-Programmier-Baugruppe in den Arbeitsspeicher (z.B. E000 – E7FF). Speichern Sie den notwendigen Inhalt des EPROMs mit Hilfe des BFZ-MINI-DCS auf die Diskette:
SAVE
START-ADR = E000
STOP -ADR = E59F
NAME: HELP.MEN
Möglichkeit 2:
Stecken Sie das EPROM „HELP.MEN“ in einen freien EPROM- Steckplatz (z.B. 5000 – 57FF). Speichern Sie den notwendigen Inhalt des EPROMs mit Hilfe des BFZ-MINI-DOS auf die Diskette:
SAVE
START-ADR = 5000
STOP -ADR = 559F
NAME: HELP.MEN
Überblick über die Steuerbefehle des EDITORS.
Die nachfolgende Liste stellt alle Steuerbefehle des BFZ-EDITORs dar. Die Wirkung dieser Steuerbefehle wird dem Bediener im nachfolgenden erläutert.
Bereich | Taste | Funktion | Bemerkung |
---|---|---|---|
Editor | ^N | Neustart (Hauptmenü) | |
^Q | Beenden | Ab MAT85-32k V2 verfügbar | |
^S | Speichern / Laden | ||
^D | |||
^A | Assembler | ||
^Y | SPS | ||
^V | Hilfsmenü | Ab MAT85-32k V2 verfügbar | |
Zeichen | ^R | Zeichen radieren | |
^E | Einfüge-Modus ein/aus | ||
<DEL> | Zeichen löschen | ||
Zeilenbefehle | ^ZL | Zeile löschen | |
^ZE | Zeile einfügen | ||
^ZA | Zeile anhängen | ||
Cursor-Steuerung | <Pfeiltasten> | Cursorsteuerung | |
^T | Tabulator | ||
^CO | an oberen Bildschirmrand | ||
^CU | an unteren Bildschirmrand | ||
^CL | an den linken Bildschirmrand | ||
^CR | an den rechten Bildschirmrand | ||
^W | auf nächstes Wort | ||
Seite blättern | ^U | Seite unten | Ab MAT85-32k V2 auch mit CTRL Pfeil auf |
^O | Seite oben | Ab MAT85-32k V2 auch mit CTRL Pfeil ab | |
^CA | Cursor zum Textanfang | ||
^CE | Cursor zum Textende | ||
Block-Befehle | ^BM | Blockmarkierung setzen | |
^BR | Blockmarkierung zurücksetzen | ||
^BF | Blockmarkierung finden | ||
^BL | Block löschen | ||
^BK | Block kopieren | ||
^BV | Block verschieben | ||
^BS | Block speichern/laden | ||
Finden / Ersetzen | ^FS | Setze Suchwort | |
^FF | Finde Suchwort | ||
^FE | Ersetze Suchwort | ||
Erläuterungen:
^N = CTRL-N , d.h. CTRL-Taste drücken und festhalten, „N“ eingeben, CTRL-Taste loslassen
^ZL = CTRL-ZL , d.h. CTRL-Taste drücken und festhalten, „Z“ eingeben, „L“ eingeben, CTRL-Taste loslassen
Wird bei einer Doppel-CTRL-Sequenz (z.B. ^ZL) als zweites Zeichen ein ungültiger Buchstabe eingegeben, so führt dieses zu einem Abbruch der eingeleiteten CTRL-Funktion mit einer gleichzeitigen akustischen Fehlermeldung. So lassen sich irrtümlich eingeleitete Doppel-CTRL-Sequenzen durch die Eingabe von <SPACE> als zweites Zeichen gezielt abbrechen (z.B. CTRL-Z <SPACE>).
Aufruf des BFZ-EDITORs
Je nach Installation des BFZ-EDITORs (siehe 1.2.) wird dieser von der Kommando-Ebene aus aufgerufen:
a)
KMD> E <CR>
b)
KMD> G(O) <CR>
START-ADR = 5000
Nach dem EDITOR-Aufruf wird der Bildschirm gelöscht, und es erscheint folgender Meldetext:
*** BFZ-EDITOR V1.3 ***
(C) 1987 BFZ, ESSEN
MAT85 = ESC
HILFSMENUE = X
KALTSTART = K
WARMSTART = <CR>,<SPACE>
Durch Betätigen der Taste <ESC> (Escape = Flucht) erfolgt eine Rückkehr zum Betriebsprogramm MAT85. Während der Bearbeitung des Textes (Editieren) ist die „ESC“-Taste inaktiv, so dass die Rückkehr zum Betriebssystem immer mit Hilfe eines „Neustarts“ (CTRL-N) und anschließendem „ESC“ erfolgen sollte.
Eine unbeabsichtigte Rückkehr zum Betriebsprogramm MAT-85 durch versehentliche Betätigung der „ESC“-Taste führt nicht zu einem Verlust des bearbeiteten Textes. Durch einen erneuten Aufruf des EDITORS mit nachfolgendem „Warmstart“ kann die Textbearbeitung fortgesetzt werden.
Das Hilfsmenue lässt sich aufrufen, indem die Taste ^X | (X = Hilfsmenue) gedrückt wird.
Das EDITOR-Programm durchsucht in diesem Fall den Arbeitsspeicher nach den Identifizierungs-Bytes des Hilfsmenues (ED DD ED, hex) und erkennt so, ob das Hilfsmenue installiert wurde.
Wird die Hilfsmenue-Kennung gefunden, so erscheint nach dem Löschen des Bildschirms die erste Seite des Menues. Durch Betätigen der -Taste lässt sich die zweite und dritte Seite des Hilfsmenues auf dem Bildschirm darstellen. Durch nochmalige Betätigung der -Taste beginnt die Darstellung des Hilfsmenues
erneut mit der ersten Hi 1fsmenue-Seite („Endlos-Blättern“)
Mit Hilfe der -Taste kann die Darstellung des Hilfsmenues unterbrochen werden, und es erscheint wieder der EDITOR-Meldetext auf dem Bildschirm. Wird das Hilfsmenue nicht gefunden, so bleibt der Bildschirminhalt unverändert,und es ertönt als Bedienerhinweis ein Klingelzeichen („Bell“).
Soll der EDIT-Buffer „gelöscht“ werden, um einen neuen Text zu bearbeiten oder um einen auf Diskette oder Cassette gespeicherten Text in den „leeren“ EDIT-Buffer zu laden, so muß ein „Kaltstart“ ausgeführt werden:
(K = Kaltstart)
Wird dagegen ein „Warmstart“ ausgeführt, so bleibt der aktuelle Text des EDIT-Buffers erhalten:
<CR> oder <SPACE> (= Warmstart)
In beiden Fällen (Kaltstart oder Warmstart) erscheint nun die Meldung:
EDIT-BUFFER:
START-ADR = 8000
Die Startadresse 8000 wird immer dann vorgeschlagen, wenn das MFA-System neu eingeschaltet wurde („Power-On-Reset“). Diese Vorschiagadresse kann durch oder angenommen oder durch Eintippen einer neuen Startadresse mit anschließendem oder verändert werden. Wichtig ist auf jeden Fall, dass ab der angegebenen Startadresse ein freier Speicherbereich für den EDIT-Buffer vorhanden ist, der mit dem zu bearbeitenden Text gefüllt werden kann.
Das EDITOR-Programm führt nun für die angegebene Start-Adresse einen „RAM“-Test durch. Steht an dieser Stelle kein Schreib-Lese-Speicher zur Verfügung, so wird erneut die Eingabe einer neuen Start-Adresse.durch den Bediener verlangt. Zusätzlich erfolgt eine akustische Fehlermeldung.
War der „RAM“-Test erolgreich, so wird anschließend der EDIT-Buffer ab der angegebenen Start-Adresse nach dem Markierungsbyte für das EDIT-Buffer— Ende (00) durchsucht. Wird dieses gefunden, so wird die Meldung über die Länge des EDIT-Buffers durch die Angabe der Stop-Adresse vervollständigt, z.B. bei einem Kaltstart:
EDIT-BUFFER:
START-ADR = 8000
STOP -ADR = 8002
==> <CR>,>SPACE>
(Bemerkung: Bei einem Kaltstart werden an den Anfang des EDIT-Buffers die beiden Steuerbytes „0D 0A“ (hex) , sowie die Buffer-Ende-Markierung „00“ eingeschrieben. Als EDIT-Buffer-Ende ergibt sich also für obiges Beispiel die „Stopp-Adresse“ 8002 (hex).
Bei einem Warmstart wird je nach Länge des bearbeiteten Textes die entsprechend veränderte Stop-Adresse angegeben. Die Länge des EDIT-Buffers ist beliebig, sie wird nur durch den zur Verfügung stehenden freien Bereich im Arbeitsspeicher eingeschränkt. Hierbei muss der Anwender unbedingt darauf achten, dass keine wichtigen Speicherbereiche durch den eingegebenen Text überschrieben werden, z.B.:
ab F800: Daten-Puffer für BFZ-MINI-DOS
ab FB00: Variablen-Bereich für BFZ-EDITOR
Nach einem Warmstart wird der Bildschirm gelöscht, und die erste Seite des EDIT-Buffer-Inhalts erscheint auf dem Bildschirm. Der im EDIT-Buffer befindliche Text kann weiter bearbeitet werden. Nach einem Kaltstart ist der Bildschirm leer. Hier kann nun die Eingabe eines neuen Textes erfolgen.
Beschreibung der Steuerbefehle
Cursor-Steuerung mit Hilfe der „Pfeil-Tasten“
Nach dem Kalt- oder Warmstart des EDITOR-Programms kann der EDIT-Buffer mit Hilfe der Tastatureingabe des Bedieners bearbeitet werden. Der Text wird zeilenweise eingegeben und jede Zeile mit einem abgeschlossen. Als Kennzeichnung des Zeilenendes erscheint das Zeichen auf dem Bildschirm. Die maximale Zeilenlänge für das MFA-Video-Interface liegt bei 61 Zeichen.
Wird diese maximale Zeilenlänge erreicht, so können keine weiteren Textzeichen eingegeben werden. In diesem Fall ertönt als Hinweis für den Bediener ein Klingelzeichen. Um die Textbearbeitung in der nächsten Zeile fortsetzen zu können, muss ein <RETURN> eingegeben werden.
Die eingegebenen Text- und Satzzeichen werden vom EDITOR im EDIT-Buffer gespeichert und verwaltet. Als Kennzeichnung der Zeilentrennung stehen im EDIT-Buffer an der entsprechenden Stelle die beiden Steuer-Bytes „0D 0A“ (hex). Diese Steuer-Bytes- besitzen im internationalen ASCII-Code folgende Bedeutung:
0D = Carriage-Return (Wagen-Rücklauf, d.h. Cursor an den Zeilenanfang)
0A = Line-Feed (Zeilenvorschub, d.h. Cursor eine Zeile nach unten)
Wurde eine Zeile mit <RETURN> abgeschlossen und das Zeilenende mit „<“ auf dem Bildschirm markiert, so kann dieses markierte Zeilenende nicht mehr überschrieben werden. Mit Hilfe des „Einfüge-Modus“ lässt sich allerdings das markierte Zeilenende bis auf die maximale Zeilenlänge nach rechts verschieben (siehe „Einfüge-Modus“).
Mit Hilfe der „Pfeil“-Tasten zur Cursor-Steuerung (auf der Tastatur des Video-Interface links und rechts neben der SPACE-Taste) läßt sich der Cursor über den erstellten Text auf dem Bildschirm bewegen.
Die Cursorbewegung nach links bzw. nach rechts wird jeweils gestoppt, wenn der linke bzw. rechte Textrand erreicht wird (Klingelzeichen als Hinweis für den Bediener).
Die Cursorbewegung nach oben bzw. unten erfolgt innerhalb der aktuellen Bildschirm-Spalte. Ist die neu erreichte Zeile allerdings kürzer als die „alte“ Zeile, so wird der Cursor an das Ende der neuen Zeile geführt.
Eine Aufwärtsbewegung des Cursors endet am oberen Bildschirmrand (Klingelzeichen als Bedienerhinweis). Um den davor liegenden Text zu erreichen, muss um eine „Seite nach oben“ geblättert werden (siehe auch „Seiten blättern“).
Ist der erstellte Text länger als eine Bildschirmseite, so wird der Bildschirminhalt jeweils um eine Zeile nach oben verschoben („Scrollen“), wenn eine Abwärtsbewegung des Cursors aus der untersten Zeile erfolgt (Cursor-Pfeil „unten“). Anschließend wird der Cursor auf den Anfang der neuen, untersten Bildschirmzeile geführt.
Neustart: CTRL-N
Alle angegebenen Steuerzeichen des EDITORS können vom Bediener eingegeben werden, während der EDIT-Buffer bearbeitet wird, der Inhalt des Buffers also auf dem Bildschirm dargestellt wird. Um die Eingabe von Steuerzeichen von der Eingabe von Text- und Satzzeichen zu unterscheiden, müssen alle Steuerzeichen mit Hilfe der CTRL-Taste eingegeben werden (Control). Dazu wird vom Bediener die CTRL-Taste gedrückt und festgehalten, dann das entsprechende Steuerzeichen eingegeben und beide Tasten wieder losgelassen. Die Eingabe mit Hilfe der CTRL-Taste wird vielfach auch wie folgt dargestellt, z.B.:
CTRL-N = ^N (N = Neustart)
Wird während der Textbearbeitung „CTRL-N“ eingegeben, so wird der Bildschirm gelöscht, und es erscheint der EDITOR-Meldetext. Der Bediener hat nun die Wahl, einen Kalt- oder einen Warmstart auszuführen und die Startadresse des EDIT-Buffers unter Umständen zu verändern. Wird ein Warmstart mit derselben Startadresse dürchgeführt, erhält der Anwender auf diesem Wege eine Information über die derzeitige Länge des EDIT-Buffers. Dieses ist unter Umständen wichtig, um ein versehentliches überschreiben anderer wichtiger Speicherinhalte durch den EDIT-Buffer zu vermeiden.
Mit Hilfe eines Kaltstarts mit derselben Startadresse lässt sich der aktuelle Buffer-Inhalt „löschen“. Mit einem Kaltstart unter einer anderen Startadresse kann der Bediener einen neuen EDIT-Buffer „eröffnen“ und unabhängig vom ersten Buffer bearbeiten.
Die Umschaltung zwischen den einzelnen EDIT-Buffern lässt sich dann durch einen Warmstart mit der jeweiligen Buffer-Startadresse durchführen.
Aufruf des Hilfsmenues: CTRL-X
Auch während der Textbearbeitung läßt sich das Hilfsmenue aufrufen (siehe auch 3.):
CTRL-X (X = Hilfsmenue)
Nach der Rückkehr aus dem Hilfsmenue wird der alte Bildschirminhalt wieder hergestellt, und die Textbearbeitung kann in der alten Bildschirmzeile fortgeführt werden.
Zeichen radieren
Durch die Eingabe von
Zeichen links löschen
CTRL-R (R = Radieren)
lässt sich das Text-Zeichen, auf das der Cursor positioniert ist, aus dem bestehenden Text entfernen. Um die Wirkung dieses Steuerbefehls auf dem Bildschirm sichtbar zu machen, wird das entsprechende Zeichen auf dem Bildschirm gelöscht und der um ein Zeichen nach links verschobene Zeilenrest erneut dargestellt. Je nach Länge des Zeilenrests und der Daten-übertragungsrate zur Datensichtstation (Video-Interface) wird für die Ausgabe des Zeilenrests eine bestimmte Zeit benötigt. So ergibt sich z.B. für die Ausgabe einer Zeile mit 60 Zeichen bei einer übertragungsrate von 1200 Bd (MFA-Video-Interface) eine Zeit von:
(60 Zeichen x 11 Bit/Zeichen) / 1200 Bit/s = 0,55 s
11 Bit: 1 Start-Bit, 7 Daten-Bits, 1 Paritäts-Bit, 2 Stopp-Bits
Für den Anwender bedeutet dieses, dass er beim Radieren eines oder mehrerer Zeichen die Bildschirmausgabe beobachten muss, um seine Tastatureingabe der Bildschirmausgabe anzupassen.
Zeilentrennungs-Zeichen „<“ lassen sich durch „CTRL-R“ nicht radieren. Hier muss entweder die gesamte Zeile gelöscht, bzw. die nachfolgende Zeile „angehängt“ werden. Beim Versuch, ein Zeilentrennungs-Zeichen zu radieren, ertönt als Bedienerhinweis ein Klingelzeichen.
Durch Drücken der <DEL>-Taste (Delete = Löschen) lässt sich das Zeichen direkt links neben der Cursor-Position löschen. Auch hier wird nach dem Löschen des Textzeichens der um ein Zeichen nach links verschobene Zeilenrest erneut auf dem Bildschirm dargestellt (siehe oben „CTRL-R“). Wird mit „DEL“ der linke Bildschirmrand erreicht, so ertönt als Bedienerhinweis ein Klingelzeichen. Die „DEL“-Funktion wird häufig bei der Eingabe eines Textes benötigt, um ein falsch eingegebenes Zeichen wieder zu löschen und durch das korrekte Zeichen zu ersetzen.
Einfüge-Modus Ein-/Aus
Wird beim BFZ-EDITOR ein Kaltstart ausgeführt, so befindet sich dieser während der Textbearbeitung im sogenannten „Einfüge-Modus“. In dieser Betriebsart wird ein eingegebenes Textzeichen an der Cursor-Position in den Text eingeschoben und der Cursor um eine Stelle nach rechts verschoben. Es lassen sich auf diese Weise einzelne Zeichen oder Wörter auf einfache Art in den schon vorhandenen Text einfügen
Wird im Einfüge-Modus die maximale Zeilenlänge erreicht, so können keine weiteren Zeichen eingeschoben werden, und es ertönt ein Klingelzeichen als Bedienerhinweis. Mit Hilfe des Einfüge-Modus lassen sich also auch Zeilen, die mit dem Zeilentrennungs-Zeichen „<“ abgeschlossen wurden, auf die maximale Zeichenanzahl verlängern. Das Zeilentrennungs-Zeichen „<“ selbst lässt sich nicht einfügen.
Hierzu dient als besondere Funktion das „Einfügen einer Zeile“. Der „Einfüge-Modus“ wird ausgeschaltet CTRL-E durch die Eingabe von (E = Einfügen)
Der BFZ-EDITOR befindet sich damit im sogenannten „überschreib-Modus“. Wird der Cursor in dieser Betriebsart auf ein „altes“ Text Zeichen positioniert und ein „neues“ Zeichen eingegeben, so wird das „alte“ durch das „neue“ Zeichen überschrieben.
Durch erneute Eingabe von „CTRL-E“ lässt sich der EDITOR wieder auf die Betriebsart „Einfügen“ umschalten, und es ertönt als Hinweis ein Klingelzeichen. Der Bediener hat hierdurch eine Kontrolle über die aktuelle Betriebsart:
CTRL-E und Klingelzeichen: -> Einfüge-Modus EIN
CTRL-E und kein Klingelzeichen : -> Einfüge-Modus AUS
Bei einem Warmstart bleibt die zuletzt eingestellte Betriebsart erhalten.
Zeile löschen, Zeile einfügen, Zeile anhängen
Durch die Eingabe von
CTRL-ZL (ZL = Zeile löschen) (CTRL-Taste drücken und festhalten, „Z“ eingeben,
anschließend „L“ eingeben, CTRL-Taste loslassen) wird die Zeile, in der sich der Cursor befindet, aus dem Text entfernt. Um die Bildschirmanzeige zu aktualisieren, wird der „Bildschirmrest“ ab der Cursor-Position erneut ausgegeben.
Die dafür benötigte Zeit hängt von der Zeichenanzahl des „Bildschirmrests“ , sowie von der Daten-übertragungsrate zur Datensichtstation ab (siehe auch“Zeichen radieren“).
Mit Hilfe der Eingabe
CTRL-ZE (ZE = Zeile einfügen)
wird an der Stelle der Cursor-Position ein Zeilentrennungs-Zeichen „<“ eingefügt. Befindet sich der Cursor am Zeilenanfang, wird auf diese Weise eine neue Zeile, die nur aus dem Zeilentrennungs-Zeichen „<“ besteht, vor der aktuellen Zeile eingefügt und der neue „Bildschirmrest“ ausgegeben. Die Cursor-Position auf dem Bildschirm bleibt erhalten, er zeigt nunmehr auf den Anfang der neuen Zeile. Um diese neue Zeile beschreiben zu können, muss der Einfüge-Modus eingeschaltet sein (siehe Einfügemodus).
Steht der Cursor bei der Eingabe von „CTRL-ZE“ nicht am Anfang einer Textzeile, so wird das Zeilentrennungs-Zeichen genau in dieser Cursor-Position eingefügt und der „Bildschirmrest“ neu aufgebaut. Auf diese Weise lassen sich Textzeilen an der Cursor-Position trennen. Der Cursor wird anschließend auf das Ende der alten Zeile positioniert.
Ein Zusammenbinden von nacheinander liegenden Textzeilen ist möglich durch die Eingabe von
CTRL-ZA (ZA = Zeile anhängen)
Dabei wird das Zeilentrennungs-Zeichen „<“ aus der Zeile gelöscht, in der sich der Cursor befindet. Das hat die Wirkung, dass die nachfolgende Zeile an die aktuelle Zeile angehängt wird. Der Cursor wird dabei auf die „Verbindungsstelle“ zwischen alter und angehängter Zeile geführt. Wird beim Anhängen die maximale Zeichenanzahl für die neu entstehende Zeile überschritten, so wird diese automatisch auf die maximale Längs begrenzt, und der Rest der Zeile „rutscht“ eine Zeile tiefer. Nach dem Anhängen einer Zeile wird der Bildschirminhalt aktualisiert.
Sollte nach dem Trennen einer Zeile mit CTRL-ZE der Bedarf bestehen, doch wieder die alte Zeile herzustellen, so läßt sich die Trennung durch die anschließende Eingabe von CTRL-ZA wieder rückgängig machen. Ebenso kann eine angehängte Zeile (CTRL-ZA) mit Hilfe einer nachfolgenden Trennung (CTRL-ZE) sofort wieder an ihre alte Position gebracht werden.
Erweiterte Cursor-Bewegungen
Die erweiterten Cursor-Bewegungen dienen zum schnelleren Positionieren des Cursors innerhalb einer dargestellten Bildschirmseite:
CTRL-CO
(CO = Cursor nach oben)
Cursor-Positionierung auf die oberste Zeile
CTRL-CU
(CU = Cursor nach unten)
Cursor-Positionierung auf die unterste Zeile
CTRL-CL
(CL = Cursor nach links)
Cursor-Positionierung auf den Zeilenanfang
CTRL-CR
(CR = Cursor nach rechts)
Cursor-Positionierung auf das Zeilenende
CTRL-W
(W = nächstes Wort)
Cursor-Positionierung auf das nächste Wort
Tabulator
Mit Hilfe der Eingabe
CTRL-T (T = Tabulator)
wird der Cursor innerhalb einer Zeile auf die nächste Tabulatorposition bewegt. Die Tabulatorpositionen liegen jeweils 8 Zeichen voneinander entfernt, beginnend in der Spalte 0:

Mit Hilfe der Tabulator-Funktion lässt sich der zu erstellende Text auf einfache Weise in tabel1arischer Form anordnen, hier am Beispiel einer Stückliste gezeigt:

Die Tabulator-Funktion kann im „überschreib-Modus“ oder auch im „Einfüge-Modus“ benutzt werden:
Im „überschreib-Modus“ bleibt beim Einsatz des Tabulators der alte Text erhalten, der Cursor wird nur auf die nächste Tabulator-Spalte positioniert, z.B.:
L1: CALL TABELLE Cursor Spalte 0
^ Eingabe CTRL-T
L1: CALL TABELLE Cursor Spalte 8
^
Erreicht der Cursor die maximale Zeilenlänge, so ertönt als Bedienerhinweis das Klingelzeichen.
Im „Einfüge-Modus“ lässt sich mit Hilfe der erweiterten Cursor-Bewegung „CTRL-W“ (Cursor auf das nächste Wort) und der Tabulator-Eingabe „CTRL-T“ ein schon erstellter Text spaltenweise formatieren:
L1: CALL TABELLE Cursor Spalte 0
^ Eingabe CTRL-W
L1: CALL TABELLE Cursor nächstes Wort (Spalte 4)
^ Eingabe CTRL-T
L1: CALL TABELLE Cursor mit Zeilenrest in Spalte 8
^ Eingabe CTRL-W
L1: CALL TABELLE Cursor nächstes Wort (Spalte 13)
^ Eingabe CTRL-T
L1: CALL TABELLE Cursor mit Zeilenrest in Spalte 16
^ Eingabe CTRL-T
: : :
0 8 16
Wird durch das Einfügen von Leerzeichen mit Hilfe des Tabulators die maximale Zeilenlänge erreicht, so kann der- Cursor mit dem rechten Zeilenrest unter Umständen nicht die nächste Tabulator-Spalte erreichen. Die Cursorbewegung wird dann abgebrochen und ein akustisches Signal als Meldung für den Bediener ausgegeben.
Beispiel:
L1: CALL TABELLE ;Aufruf des Unterprogrammes TABELLE
^
Eingabe CTRL-T
L1: CALL TABELLE ;Aufruf des Unterprogrammes TABELLE
^ ^
Cursor IST-Position | | nächste Tabulator-Spalte
SOLL-Position
Seiten blättern
Mit Hilfe folgender EDITQR-Steuerzeichen lässt sich ein längerer Text seitenweise auf dem Bildschirm darstellen:
CTRL-O
eine Seite nach „oben“ blättern
CTRL-U
eine Seite nach „unten“ blättern
CTRL-CA
Cursor zum Textanfang
(Ausgabe der ersten Textseite, Cursor an den Textanfang)
CTRL-CE
Cursor zum Textende
(Ausgabe der letzten Textseite, Cursor an das Textende)
Das Blättern nach „oben“ (bzw. nach „unten“) wird nicht ausgeführt wenn auf dem Bildschirm die erste (bzw. die letzte) Textseite dargestellt ist (Klingelzeichen als Bedienerhinweis).
Beim seitenweisen Blättern „überlappen“ sich die dargestellten Textseiten um jeweils drei Zeilen. Dadurch bleibt der inhaltliche Zusammenhang des Textes sichtbar:

Finden eines „Text-Strings“, Ersetzen eines „Text-Strings“
Der sogenannte „FIND“-Modus dient zum Auffinden von Zeichenketten („Strings“) innerhalb des bearbeiteten Textes. Je nach Bedarf kann die gesuchte Zeichenkette durch eine neue ersetzt werden.
Durch die Eingabe von CTRL-FS (FS = „FIND“-String setzen) wird der Bildschirm gelöscht, und in der linken oberen Bildschirmecke erscheint der Meldetext;
FINDE : <
Der Anwender hat nun die Möglichkeit, eine beliebige Zeichenkette mit einer maximalen Länge von 31 Zeichen als „Find“-String einzugeben (auch Leerzeichen, Ziffern oder Satzzeichen). Eine Korrektur der Eingabe ist mit Hilfe der <DEL>-Taste möglich. Mit Hilfe von wird die Definition des „Find“-String abgeschlossen.
Durch die Ausgabe des Meldetextes
ERSETZE: <
erfolgt die Aufforderung an den Bediener, bei Bedarf eine „Ersatz“-Zeichenkette einzugeben (maximal 31 Zeichen, Eingabekorrektur wiederum mit Hilfe der <DEL>-Taste). Die Eingabe wird mit <CR> beendet.
Wird „CTRL-FS“ zu einem späteren Zeitpunkt erneut aufgerufen, so erfolgt nach der Ausgabe des Meldetextes die Darstellung des alten „Find“- bzw. „Ersatz“String. Diese einmal definierten Zeichenketten bleiben erhalten, wenn sie durch die Eingabe von vom Anwender quittiert werden. Wird ein anderes Zeichen als angegeben, können jeweils neue Zeichenketten eingegeben werden.
Beispiel:
FINDE : SUCHWORT-ALT< <CR> : SUCHWORT-ALT bleibt erhalten
FINDE : N : neues Suchwort wird definiert,
N ist erstes neues Zeichen
FINDE : Neues Suchwort< : 'eues Suchwort' <CR>
Sind „Find“- und auch „Ersatz“-String definiert worden, so erfolgt anschließend die Suche nach der gewünschten Zeichenkette innerhalb des EDIT-Buffers, und zwar ab der aktuellen Cursor-Position.
Dabei bleiben Groß- oder Kleinschreibung innerhalb des „Find“-String unberücksichtigt. D.h., mit dem Suchwort
„ERGEBNIS“
wird z.B. auch gefunden:
„Ergebnis“
„Zwischenergebnis“
„ergebnislos“
War die Suche erfolgreich, so wird die gesuchte Bildschirmseite dargestellt. Die gefundene Zeichenkette befindet sich in der obersten Bildschirmzeile, der Cursor zeigt auf den Anfang dieser Zeichenkette. Wurde die gesuchte Zeichenkette nicht gefunden, so wird der „alte“ Bildschirminhalt wieder dargestellt, und es ertönt das Klingelzeichen.
Durch die Eingabe von
CTRL-FE (FE = „Find“-String ersetzen)
lässt sich die gefundene Zeichenkette durch die definierte „Ersatz“-Zeichenkette austauschen. Um Fehlbedienungen zu vermeiden, ist ein Austausch nur dann möglich, wenn der Cursor bei der Eingabe von „CTRL-FE“ auf den Anfang des Such-String positioniert ist. Ist der „Ersatz“-String länger als der „Such“-
String, so kann die neu entstehende Zeile unter Umständen die maximale Zeilenlänge überschrei ten. In diesem Fall wird die Zeile auf ihre maximale Länge beschnitten, der Zeilenrest „rutscht“ dann eine Zeile tiefer. Ist der Ersatz-String „leer“, so wird der „Suchstring“ beim Ersetzen lediglich aus dem Text gelöscht.
Mit Hilfe von
CTRL-FF (FF = „Find“-String finden)
lässt sich jederzeit eine einmal definierte Zeichenkette erneut im EDIT-Buffer suchen und je nach Bedarf austauschen. Wird das gesuchte Wort nicht gefunden, so ertönt als Bedienerhinweis das Klingel-Zeichen.
Bei einem Warmstart des EDITOR-Programms bleiben einmal definierte Such- oder Ersatz-Zeichenketten erhalten. Wird ein Kaltstart ausgeführt, so werden die „alten“ Zeichenketten gelöscht.
Block-Befehle
Block markieren, Block-Markierungen rücksetzen, Block-Markierungen finden
Mit Hilfe des „BLOCK“-Modus lassen sich beliebige zusammenhängende Text-Blocke markieren, löschen, kopieren, verschieben oder aus dem EDIT-Buffer heraus als Text-Datei auf die Diskette oder Cassette speichern.
Das Markieren von Text-Blöcken ist nur zeilenweise möglich. Dazu wird der Cursor auf die erste Zeile positioniert, die noch zu dem Text-Block gehören soll (siehe Beispiel unten: 1 — > ).
Durch die Eingabe von
CTRL-BM (BM = Block markieren)
wird die sogenannte Block-Marke „–B–“ vor den zu markierenden Text-Block gesetzt.
Das Ende des Text-Blocks wird auf die gleiche Art festgelegt:
der Cursor wird auf die erste Zeile positioniert, die nicht mehr zu dem Text-Block gehören soll.
Mit „CTRL-BM“ wird die Block-Marke „–B–“ nun direkt hinter dem zu markierenden Text-Block eingefügt. Dieser ist nun also durch zwei Block-Marken eingeschlossen:

Die Zeichenkette „–B–“ wird vom EDITOR-Programm nur dann als Blockmarke gewertet, wenn sie völlig allein in einer Zeile steht. Werden vom Anwender in der markierten Zeile zusätzliche Zeichen vor oder hinter die Block-Marke geschrieben, so verliert diese Block-Markierung ihre Funktion (Sicherung vor Fehlbedienung).
Alle im Text befindlichen Block-Marken „–B–“ lassen sich durch die Eingabe von
CTRL-BR (BR = Block-Markierung rücksetzen)
zurücksetzen.
Mit Hilfe von CTRL-BF (BF = Block-Markierung finden)
werden Block-Marken „–B–“ ab der aktuellen Cursor-Position gesucht und die gefundene Seite auf dem Bildschirm dargestellt.
Block löschen, Block kopieren, Block verschieben
Die nachfolgenden Block-Befehle dienen dazu, einen markierten Block weiter zu verarbeiten. Ein Text-Block kann nur dann eindeutig in seinem Anfang und seinem Ende definiert sein, wenn innerhalb des gesamten Textes genau zwei Block-Marken „–B–“ gesetzt sind. Ist dieses nicht der Fall (z.B. keine Block-Marke oder nur eine oder mehr als zwei Block-Marken), so erfolgt beim Aufruf aller folgenden Block-Befehle die Fehlermeldung:
--- FEHLER: BLOCK-MARKIERUNG
==> <CR>,<SPACE>
Durch die Eingabe von
CTRL-BL (BL = Block löschen)
wird ein markierter Block (inklusive seiner beiden Block-Marken) aus dem EDIT-Buffer gelöscht. Dieser EDITOR-Steuerbefehl ist mit Vorsicht zu verwenden, da der gelöschte Text-Block in den meisten Fällen unwiederbringlich aus dem Arbeitsspeicher des Computers entfernt wird.
Beispiel:

Mit Hilfe von
CTRL-BK (BK = Block kopieren)
lässt sich ein markierter Text-Block an eine beliebige Stelle innerhalb des Textes duplizieren. Der kopierte Block wird dabei vor die Zeile der aktuellen Cursor-Position eingeschoben. Die Block-Marken des „alten“ Blocks werden gelöscht, der kopierte Block ist erneut durch die beiden Block-Marken gekennzeichnet:
Beispiel:

Hinweise:
Der Kopierversuch eines Blocks in die eigenen Block-Grenzen wird durch das EDITOR-Programm abgefangen, und es ertönt ein Klingelzeichen als Fehlermeldung.
Je nach Länge des gesamten EDIT-Buffers und Länge des zu kopierenden Blocks wird für das Duplizieren des Text-Blockes eine bestimmte Zeit benötigt. Diese Wartezeit macht sich allerdings erst bei Buffer-Längen von einigen 10 KByte bemerkbar.
Der Block-Befehl
CTRL-BV (BV = Block verschieben)
dient dazu, einen markierten Textblock (einschließlich der Block-Markierung „–B–“ ) innerhalb des EDIT-Buffers zu verschieben. Der verschobene Block wird dabei vor die Zeile der aktuellen Cursor-Position eingesetzt.
Beispiel:

Hinweise
Auch hier gilt, dass das Verschieben eines Blocks in die eigenen Block-Grenzen nicht möglich ist (Klingelzeichen).
Um einen Text-Block innerhalb des EDIT-Buffers zu verschieben, lassen sich verschieden Verfahren anwenden, z.B.:
a) Der gesamte Block wird auf einmal verschoben, d.h. zuerst erfolgt ein Duplizieren des „Quellblocks“ an die gewünschte Stelle, anschließend wird der „Quellblock“ gelöscht. Diese Verschiebetechnik ist verhältnismäßig schnell, benötigt aber unter Umständen je nach Länge des zu verschiebenden Blocks zusätzlichen Speicherplatz (nach dem Kopieren des „Quellblocks“ ist dieser zweimal innerhalb des EDIT-Buffers enthalten).
b) Der Block, wird Zeichen für Zeichen verschoben, d.h. nach dem Kopieren eines Zeichens des Quellblocks in den Zielbereich wird dieses Zeichen erst aus dem Quellblock gelöscht, bevor das nächste Zeichen verschoben wird. Der EDIT-Buffer verlängert sich während des Verschiebevorgangs also nur immer um ein Zeichen, anschließend wird die alte EDIT-Buffer-Länge wieder hergestellt. Der Nachteil dieser Speicherplatzsparenden Verschiebetechnik ist allerdings ein gehöriger Zeitaufwand (Platz machen für ein Zeichen im Zielbereich, kopieren des Zeichens, löschen des Zeichens aus dem Quellbereich).
Das im EDITOR-Programm verwendete Verschiebeverfahren stellt einen Kompromiss beider dargestellten Verfahren dar: Das Verschieben erfolgt Zeile für Zeile, d.h. zuerst wird im Zielbereich des EDIT-Buffers Platz geschaffen für die zu kopierende Zeile, dann wird die Zeile aus dem Quellbereich in den Zielbereich dupliziert und anschließend kann die übertragene Zeile aus dem Quellbereich gelöscht werden. Dieser Vorgang wird für jede Zeile des zu verschiebenden Blocks durchgeführt.
Während des Verschiebevorgangs wird der EDIT-Buffer also maximal um die Länge einer Zeile vergrößert. Dadurch wird zum Verschieben eines Blocks kein wesentlich größerer Speicherplatz benötigt. Der Zeitbedarf für das „Auf- und Ab- Pumpen“ des EDIT-Buffers (Kopieren und Löschen einer Zeile) hält sich in vertretbaren Grenzen und macht sich erst bei großen zu verschiebenden Textblöcken und EDIT-Buffer-Längen von einigen 10 KByte bemerkbar.
Ein markierter Block lässt sich mit Hilfe von
CTRL-BS (BS = Block sichern)
auf die Diskette oder Cassette speichern. Dabei wird der Textblock ohne die Block-Markierungen „–B–“ zum angeschlossenen Diskettenlaufwerk oder zum MFA-Cassetten-Interface übertragen.
Der gesicherte Textblock wird dabei als eigene Textdatei abgespeichert und lässt sich später wieder in den EDIT-Buffer laden (siehe auch 4.12. „Speichern und Laden mit Hilfe von Diskette oder Cassette“).
Speichern und Laden mit Hilfe von Diskette oder Cassette
Speichern auf Diskette oder Cassette
Mit Hilfe von
CTRL-S (S = Speichern/Laden)
lässt sich der Inhalt des aktuellen EDIT-Buffers auf die Diskette oder die Cassette speichern. Mach dem Aufruf der Steuerfunktion CTRL-S wird der Bildschirm gelöscht und folgender Meldetext ausgegeben:
--- SPEICHERN/LADEN
F = FLOPPY
C = CASSETTE
E = EDITOR
> _
Wie bereits beschrieben, lässt sich auch ein markierter Block mit Hilfe des Block-Befehls „CTRL-BS“ auf Diskette oder Cassette speichern. Zur Unterscheidung erfolgt beim „Block“-Speichern die veränderte Meldetext-Ausgabe:
--- BLOCK SPEICHERN
F = FLOPPY
C - CASSETTE
E - EDITOR
> _
Durch die Eingabe des Zeichens „F“ erfolgt ein Aufruf des BFZ-MINI-DOS (DOS = Disk Operating System, Disketten-Verwaltungs-Programm). Ist das BFZ-MINI-DQS nicht installiert, so wird eine akustische Fehlermeldung ausgegeben, und obiger Meldetext erscheint erneut.
Mit Hilfe des BFZ-MINI-DOS lässt sich der Inhalt des EDIT-Buffers auf die Diskette speichern:
"SAVE" S eingeben <CR>
"Laufwerk" A oder B eingeben <CR> 1
"NAME:" NAME.EXT eingeben
NAME maximal 8 Buchstaben
EXT mit max. 3 Buchstaben
(EXT = engl. Extension, dtsch. Erweiterung)
Die Übergabe der Start- und Stopadresse des zu sichernden Speicherbereiches an das BFZ-MINI-DOS erfolgt automatisch durch das EDITOR-Programm. Die ersten beiden Steuerbytes (0D 0A, siehe Einleitung), sowie die Buffer-Ende-Markierung (00) werden nicht mit auf die Diskette gespeichert.
Bei dem Versuch, einen „leeren“ EDIT-Buffer zu speichern, erfolgt die Fehlermeldung
*** FEHLER: PROGRAMM-SPEICHER LEER
==> SPACE
Beim Speichern auf die Diskette wird die Textdatei im Disketten-Directory (Inhaltsverzeichnis) automatisch mit dem Typ „???“2 gekennzeichnet. Beim späteren Laden einer Textdatei von der Diskette lassen sich mit Hilfe des BFZ-EDITORs nur Dateien dieses Typs in den EDIT-Buffer übertragen. Damit ist gewährleistet, dass von der Diskette nur Textdateien, die mit dem EDITOR erstellt wurden, wieder in den EDIT-Buffer geladen werden können.
Der Rücksprung zum BFZ-EDITOR erfolgt mit Hilfe von Q (Quit).
Zum Speichern einer Textdatei auf die Cassette muß der Bediener nach der Ausgabe des oben angegebenen Meldetextes die Taste „C“ betätigen. Der Meldetext wird daraufhin wie folgt erweitert:
--- CASSETTE
s = SAVE
L = LOAD
E = EDITOR
-> _
Durch die Eingabe von „S“ wird die SAVE-Routine für das MFA-Kassetten-Interface aufgerufen, und der EDIT-Buffer-Inhalt lässt sich als Textdatei auf die Cassette speichern (siehe auch „Fachtheoretische Übungen, Beschreibung MAT-85“). Auch hier erfolgt die Übergabe der Start- und Stopp-Adressen an die Cassetten-SAVE-Routine automatisch durch das EDITOR-Programm.
Laden einer Textdatei von Diskette oder Cassette
Das Laden einer Textdatei von der Diskette oder der Cassette in den EDIT-Buffer erfolgt ebenfalls durch die Eingabe der Steuerfunktion CTRL-S (S = Speichern/Laden)
Wie schon in 4.12.1 beschrieben, erfolgt nach der Ausgabe des Meldetextes die Auswahl durch den Bediener („F“ – FLOPPY, „C“ = CASSETTE).
Wurde das BFZ-M’INI-DOS aufgerufen <„F“ = FLOPPY), so lässt sich mit Hilfe von
"LOAD" L eingeben <CR>
"Laufwerk" A oder B eingeben <CR>
"NAME:" NAME.EXT eingeben
eine Textdatei (Directory-Typ: „???“ 3) von der Diskette in den Arbeitsspeicher des Computers übertragen. Dabei wird diese Textdatei immer an das Ende des aktuellen EDIT-Buffers geladen.
Dadurch lassen sich Texte, die mit Hilfe des EDITOR’S auf die Diskette gespeichert worden sind, aneinanderbinden (engl.: „Merge“ deutsch. „Vereinigung“). Ist der EDIT-Buffer „leer“ (nach einem Kaltstart), so befindet sich nach dem Ladevorgang nur der von der Diskette übertragene Text im EDIT-Buffer.
Nach dem Rücksprung zum BFZ-EDITOR mit Hilfe von „Q“ (Quit) steht der geladene Text zur weiteren Bearbeitung im EDIT-Buffer bereit. Ebenso erfolgt die Übertragung einer Textdatei von der Cassette an das Ende des aktuellen EDIT-Buffers, wenn der Bediener nach der Auswahl von „C“ (CASSETTE) die „LOAD“-Routine für das MFA-Cassetten-Interface aufruft.
Drucken des EDIT-Buffer-Inhalts
Drucker-Menue
Das Drucker-Menue wird aufgerufen mit
CTRL-D (D = Drucker)
Der Bildschirm wird gelöscht, und es Drucker-Menues Hilfe von erscheint der Meldetext des Drucker-Menüs
--- DRUCKER-MENUE
ZEILENRAND: 8 _
Der vorgegebene Zeilenrand für den Drucker kann mit Hilfe von oder angenommen oder durch die Eingabe eines neuen Zeilenrandes (maximal 99) mit anschließendem <CR> oder <SPACE> vom Bediener verändert werden.
Mit der Ergänzung des Meldetextes
ZEILEN/SEITE (0 = ENDLOSDRUCK): 0
wird der Bediener aufgefordert, die maximale Zeilenzahl für eine Druck-Seite anzugeben (maximal 99). Wird beim Ausdrucken diese maximale Zeilenzahl erreicht, so erfolgt automatisch ein Formularvorschub auf das nächste Blatt. Die Länge des Formularvorschubs ist Drucker-spezifisch und muss daher am Drucker eingestellt werden.
Wird eine „0“ eingegeben, so erfolgt der Ausdruck ohne Überprüfung der maximalen Zeilenzahl pro Druck-Seite (Endlosdruck).
Mit Hilfe von
SEITEN-NUMERIERUNG: 1
wird der Ausdruck der ersten Seiten-Nummer (maximal 99) innerhalb einer „Kopfzeile“ festgelegt (siehe weiter unten).
Nach der Vervollständigung des Meldetextes
D = DRUCKEN
E = EDITOR
> _
kann der Bediener das Ausdrucken des EDIT-Buffer-Inhalts durch die Eingabe von „D“ einleiten.
Ist kein Drucker angeschlossen oder dieser nicht eingeschaltet, so erfolgt eine akustische und optische Fehlermeldung:
*** PRINTER NOT READY ***
==> <CR>, <SPACE>
Bei angeschlossenem Drucker in Bereitschaftsstellung wird nach der Eingabe von „D“ der Inhalt des EDIT-Buffers zum Drucker übertragen.
Hinweis
Das MFA-Video-Interface stellt alle verwendeten Buchstaben in Großschreibung dar. Im EDIT-Buffer werden aber alle Buchstaben so abgelegt, wie sie auch tatsächlich mit der Tastatur eingegeben wurden (z.B. Tastatur-Eingabe „a“ ==> „a“ wird als ASCII-Zeichen ( = 61 hex) im EDIT-Buffer abgelegt ==> auf dem Bildschirm erscheint „A“). Beim Ausdrucken des EDIT-Buffer-Inhaltes werden aber alle als Kleinbuchstaben eingegebenen Zeichen auch als Kleinbuchstaben gedruckt, so dass der gedruckte Text u.U. bzgl. der Groß- und Kleinschreibung nicht mit dem auf dem Bildschirm dargestellten Text übereinstimmt. Soll auch die Ausgabe auf dem Drucker nur in Großschreibung erfolgen, so muss bei der Texteingabe die Taste „ALPHA-LOCK“ aktiviert werden. (Ausnahme: der Ausdruck von Programm-Listings beim Assemblieren erfolgt immer in Großschreibung).
Steuerung des Formularvorschubs mit Ausdruck von Kopfzeilen
Wie unter 4.13.1 erläutert, lässt sich der Formularvorschub durch die Eingabe der maximalen Zeilenzahl pro Druck-Seite in festen Abständen einstellen. Eine weitere Möglichkeit zur Steuerung des Blatt-Vorschubs bieten die sogenannten „Punkt-Zeilen“:
- Beginnt eine Zeile des Textes mit einem Punkt, so wird an dieser Stelle ein Formularvorschub beim
Drucker ausgelöst. Der Rest der Zeile wird beim Ausdrucken ignoriert.
Eine zusätzliche Bedeutung haben „Punkt-Zeilen“ am Anfang des Textes:
- Alle „Punkt-Zeilen“, die direkt am Anfang des EDIT-Buffers liegen, werden als sogenannte Kopfzeilen
definiert. Diese Kopfzeilen werden nach jedem Formularvorschub komplett ausgedruckt. - Mit Hilfe des „Numerus“-Zeichens „#“ lässt sich der Ausdruck einer fortlaufenden Seitenzahl innerhalb einer Kopfzeile festlegen. Der Beginn der Seiten-Nummerierung kann mit Hilfe des Drucker-Menues eingestellt werden.
Beispiel:

Durch den Aufruf des Drucker-Menues wird z.B. gewählt:
ZEILENRAND: 8
ZEILEN/SEITE (0 = ENDLOSDRUCK): 0
SEITEN-NUMERIERUNG: 1
Das Druck-Ergebnis hätte dann folgende Form:

Assemblieren
Wie in der Einleitung schon beschrieben, eignet sich der BFZ-EDITOR besonders dazu, Assembler-Quell-Programme zu erstellen, zu bearbeiten und anschließend durch den Assembliervorgang in ein Maschinenprogramm umzusetzen. Die Bearbeitung des Assembler— Quelltextes erfolgt mit Hilfe des EDITORS im EDIT-Buffer (Vorschlags-Start-Adresse z.B.: 6000 hex.). Je nach Länge des erstellten Assembler-Programms verschiebt sich die EDIT-Buffer-Stopp-Adresse entsprechend.
Dabei ist zu beachten, dass ein voll kommentierter Assembler-Text von etwa einer DIN-A4-Seite (das entspricht ca. 60 Zeilen, bzw. ca. 4 Bi 1dschirmseiten) einen EDIT-Buffer von ca. 1,5 bis 2 KByte Länge benötigt (d.h., die EDIT-Buffer-Stop-Adresse liegt dann bei ca. 6600 bis 6800 hex.).
Durch den Assembliervorgang läßt sich der erstellte Quell-Text in ein zugehöriges Maschinen-Programm umsetzen (Vorschiags-Adresse z.B. 5 E000 hex.). Für ein 60-zeiliges Maschinen-Programm mit durchschnittlich 2 Byte Maschinen-Code pro Zeile ergibt sich somit ein Speicherbedarf von ca. 120 Byte (d.h., E000 bis ca. E07S hex.).
Für den Assemblier-Vorgang wird der „Line-By-Line-Assembler“ des Betriebssystems MAT 85 benutzt. Aus diesem Grund muss der erstellte Assembler-Text den Regeln des MAT 85 – Assemblers genügen (siehe MAT 85 – Beschreibung) .
Ein mit dem EDITOR erstelltes Programm im 8085-Assembler-Code kann assembliert werden durch die Eingabe von
CTRL-A (A = Assemblieren)
Nach dieser Eingabe wird der Bildschirm gelöscht, und es erscheint folgender Meldetext:
--- ASSEMBLIEREN
1 = MIT BILDSCHIRM-LISTING
2 = OHNE BILDSCHIRM-LISTING
3 = MIT DRUCKER-LISTING
E = EDITOR
> _
Mit der Eingabe der Ziffern 1, 2 oder 3 wird der Assemblier-Vorgang gestartet. Dabei ist folgendes zu beachten:
a) Die „Start-Adresse“ für den erzeugten Maschinen-Code wird bei jedem Assemblier-Vorgang auf „0000“ eingestellt (EPROMBereich des Betriebs-Systems, daher kein unbeabsichtigtes überschreiben eines wichtigen RAM-Bereichs möglich). Die eigentliche Wahl der Start-Adresse des erzeugten Maschinenprogramms erfolgt mit Hilfe der „ORG“-Anweisung,
z.B.: ORG 0E000 ;Programm-Anfang bei 0E000
Hilfe der „ORG“-Anweisung ist unbedingt darauf zu achten, dass durch den erzeugten Maschinencode kein wichtiger RAMBereich (z.B. der Quelltext im EDIT-Buffer) überschrieben wird.
b) Vor jedem Assemblier-Vorgang wird die „Label-Tabelle“ des MAT85-Assemblers gelöscht. Alle im Assembler-Text verwendeten Labels werden also bei einem Assemblier-Vorgang neu erzeugt.
Für die Verwendung von Labels gilt folgende wichtige Vereinbarung:
- Label-Definitionen müssen immer in der ersten Spalte einer Programm-Zeile stehen.
- Alle anderen Assembler-Kommandos dürfen erst ab der zweiten Spalte einer Programm-Zeile stehen
- Kommentare (Kennzeichnung durch vorangestelltes ; dürfen in jeder Spalte einer Programm-Zeile beginnen
Label-Definitionen können auf zwei Arten vorgenommen werden:
1. Definition symbolischer Adressen mit dem Doppelpunkt, z.B.
ANF:
NEXT:
LOOP:
2) Definition von Hex-Konstanten, bzw. festliegenden Adressen mit Hilfe der „EQU“-Anweisung, z.B.
EING EQU 01 ;8-BIT-PARALLEL-EINGABE
AUSG EQU 02 ;8-BIT-PARALLEL-AUSGABE
TAST EQU 0043 ;TASTATUR-ABFRAGE
KONST EQU 55 ;KONSTANTE = 55H
Die Definitionen mit Hilfe der „EQU“-Anweisung müssen am Anfang eines Assembler-Programms vorgenommen werden. Dadurch hat der Anwender die Möglichkeit, diese im Bedarfsfall einfach und schnell im gesamten Programm abzuändern. Wird die beschriebene Vereinbarung bei der Definition von Labels nicht eingehalten, so führt dieses beim Assemblieren mit Bildschirm-Listing zu einer Fehlermeldung. Aus diesem Grund empfiehlt es sich, ein Assembler-Programm bei der Eingabe mit Hilfe der „Tabulator“-Funktion zu formatieren. Dies erhöht außerdem die Übersichtlichkeit des erstellten Quelltextes (siehe Beispiel am Ende des Kapitels).
Zur Kontrolle, ob alle verwendeten Labels auch definiert wurden, sollte am Ende des Assembler— Textes die Anweisung
LP
stehen („Label-Print“). Bei der Darstellung der Label-Tabelle werden dann alle nicht definierten Labels mit einem „*“ gekennzeichnet.
c) Die „END“-Anweisung zur Beendigung der Programm-Eingabe ist beim Assemblieren mit Hilfe des BFZ-EDITORS überflüssig, da das Ende des Assemb1er-Programms durch das Text-Ende des EDIT-Buffers definiert ist. Wird die „END“-Anweisung dennoch benutzt, so wird der Assemblier-Vorgang in dieser Zeile beendet, und es erfolgt eine Rückkehr zum BFZ-EDITOR.
Der „RESTART“-Befeh1 zur Rückkehr eines Maschinenprogramms in die „USER“-Ebene des MAT85 lässt sich durch die Assembler-Anweisung
RST 1 ;*** USER ***
direkt erzeugen.
d) Zur besseren Dokumentation eines Programms sollten entsprechende Kommentare benutzt werden. Die Kommentare werden durch ein vorangestelltes ; gekennzeichnet, z.B.:
ZK EQU 0FFFF ; ZEITKONSTANTE = FFFF(HEX)
; - - - UNTERPROGRAMM: ZEITSCHLEIFE - - -
ZEIT: PUSH B
PUSH PSW ; REGISTER RETTEN
LXI B,ZK ;BC MIT ZEITKONSTANTE LADEN
DCX B ;ABWAERTS ZAEHLEN
MOV A ,B
ORA C ;BC = 0000 ?
JNZ ZEIT ;NEIN: WEITER ABWAERTS ZAEHLEN
POP PSW ;REGISTER ZURUECK
POP B
RET ;RUECKSPRUNG
Bei der Verwendung von Kommentaren ist zu beachten, dass beim Assemblier-Vorgang vor jede bearbeitete Zeile die entsprechende Adresse mit dem zugehörigen Maschinen-Code geschrieben wird. Damit rückt der Assembler-Code in die Bildschirm-Spalte 17. Wird dadurch die mit einem Kommentar versehene Assembler-Zeile zu lang, so führt dieses zu einem Fehler beim Assemblier-Vorgang mit der entsprechenden Fehlermeldung (siehe auch nächster Abschnitt).
e) Wurde beim Erstellen des Assembler-Textes gegen die Regeln des MAT 85 – Assemblers verstoßen („Syntax-Fehler“, z.B. MOV AB anstelle von MOV A,B oder doppelt definierte Labels oder ähnliches), so führt dieses beim Assemblieren zu einer Fehlermeldung:
--- FEHLER BEIM ASSEMBLIEREN
==> <CR>, >SPACE>
Nach der Betätigung von >CR> oder <SPACE> wird die entsprechende Seite aus dem EDIT-Buffer auf dem Bildschirm dargestellt und der Cursor auf den Anfang der fehlerhaften Zeile positioniert. Diese Zeile kann nun korrigiert und der nächste Assemblier-Vorgang gestartet werden. War der Assemblier-Vorgang fehlerfrei, so erfolgt die Meldung:
--- ASSEMBLIEREN OK
==> <CR>, >SPACE>
Mit der Eingabe von oder erfolgt dann eine Rückkehr zum BFZ-EDITOR (Warmstart).
f) Beim Assemblieren mit Bildschirm-Listing wird der Assemblier-Vorgang nach der Ausgabe einer Bildschirmseite unterbrochen. Durch die Eingabe von <CR> oder <SPACE> lässt sich der Assemblier-Vorgang weiter fortführen.
g) Beim Assemblieren ohne Bildschirm-Listing wird die Bildschirm-Ausgabe unterdrückt. Dadurch lassen sich längere Assemblerprogramme wesentlich schneller in den zugehörigen Maschinen-Code umsetzen. Fehler beim Assemblieren führen auch in diesem Fall zu einer Fehlermeldung, die fehlerhafte Zeile wird durch die entsprechende Cursor-Position nach der Rückkehr zum BFZ-EDITOR lokalisiert.
h) Ein Assemblier-Vorgang mit Drucker-Listing sollte verständlicherweise erst nach der Beseitigung aller Syntax-Fehler erfolgen, da sonst im Fehlerfall der Druckvorgang unterbrochen wird.
Hinweis
Der Ausdruck während des Assemblierens erfolgt immer in Großschreibung
Für die Steuerung des Formularvorschubs (maximale Zeilenzahl und/oder „Punktzeilen“), sowie für das Ausdrucken von Kopfzeilen („Punktzeilen“ am Anfang des Assembler-Textes) gelten dieselben Regeln wie für das einfache Ausdrucken eines Textes ohne gleichzeitiges Assemblieren. Die verwendeten „Punktzeilen“ werden beim Assemblieren unterdrückt, sie dienen nur zur Drucker-Steuerung. Die Einstellung von Zeilenrand und maximaler Zeilenzahl pro Druck-Seite, sowie die Wahl der Seiten-Nummerierung erfolgt mit Hilfe des „Drucker-Menues“ (CTRL-D) mit anschließendem EDITOR-Rücksprung.

Anpassung des BFZ-EDITORs an andere Terminals
Terminal-Anpassungs-Tabellen
Sollte bei dem verwendeten MFA-System ein Terminal als Datensicht-, bzw. Eingabestation angeschlossen sein, so ist zusätzlich zur schon vorhandenen Änderung des Betriebsprogramms MAT 85 eine Anpassung des BFZ-EDITOR-Programms an dieses Terminal erforderlich.
Zur einfachen Anpassbarkeit sind innerhalb des EDITOR-Programms Tabellen angelegt, mit deren Hilfe sich die Terminal-spezifischen Parameter verändern lassen. Auf der folgenden Seite sind die Anpassungs-Tabellen für das MFA-Video-Interface dargestellt. Im Anschluss daran finden sich als Beispiel für ein anderes Terminal die Anpassungs-Tabellen für das Terminal „TELEVIDEO“. Um die Terminalspezifischen Parameter zu verändern, muss das BFZ-EDITOR-Programm in einen freien RAM-Bereich des Arbeitsspeichers kopiert werden. Mit Hilfe des „MEMORY“-Kommandos des Betriebssystems lassen sich die entsprechenden Parameter des verwendeten Terminals in die zugehörigen Tabellenplätze einsetzen. Anschließend kann das EDITOR-Programm mit den veränderten Tabellenwerten in ein neues EPRQM programmiert werden. Die Ermittlung der Terminalspezifischen Parameter wird im folgenden erläutert.
Steuerbytes für MFA-Video-Interface (8.2 / 8.4)

Steuerbytes für Terminal-Video

Ermittlung der Terminal-spezifisehen Parameter:
Tabelle 1: Bildschirmformat
Mit Hilfe dieser Tabelle wird das EDITOR-Programm auf das Bildschirmformat des verwendeten Terminals eingestellt (Bildschirmformat: Spalten- und Zeilenzahl).
Die Berechnung der Spalten- und Zeilenzahl für das BFZ-EDITOR-Programm erfolgt nach folgender Vorschrift:
Zeile
5004 Spalten = max. Bildschirmspalten - 3
5005 Zeilen = max Bildschirmzeilen - 1
Für das MFA- Video-Interface ergibt sich somit :
Spalten: 64 – 3 = 61 (3D hexe)
Zeilen: 16 – 1 = 15 (0F hex)
Das MFA-Video-Interface benötigt zur Ausführung des Steuerbefehls „HOME“ (Bildschirm löschen, Cursor an linken oberen Bildrand) eine Zeit von ca. 0,21 s. Aus diesem Grund muss nach der Ausgabe des „HOME“-Befehls eine entsprechende Zeitverzögerung gewährleistet werden, bevor das nächste Zeichen ausgegeben wird. Diese Zeitverzögerung, die bei anderen Terminals unter Umständen nicht notwendig ist, lässt sich ebenfalls mit Hilfe der Tabelle 1 ändern.
Die erforderliche Zeitkonstante für die Ausführung von „HOME“ muss für das MFA-Video-Interface wie folgt gewählt werden:
ZK-HOME = 20000 (DEZ) = 4E20 (HEX)
Wird für das verwendete Terminal keine Zeitverzögrung benötigt, so kann als Zeitkonstante verwendet werden:
ZK-HOME = 0 (DEZ) = 0000 (HEX)
Tabelle 2: Ausgabewerte
Zur Steuerung der Cursor-Bewegung auf dem Bildschirm werden vom EDITOR-Programm bestimmte Steuer-Bytes zur Datensichtstation ausgegeben. Diese Terminal-spezifischen Ausgabewerte sind in der Tabelle 2 abgelegt.
Als erstes muß ermittelt werden, welche Tastatureingaben für die Steuerung der Cursor-Bewegung, für das Löschen des Zeilenrests, sowie für die „HOME“-Funktion benötigt werden. Dieses kann mit Hilfe des Terminals-Handbuches oder mit dem nachfolgenden Programm 1 geschehen:
----- PROGRAMM 1 ----
ORG 0E000 ; Startadresse
L1: CALL 0043 ;TASTATUR ABFRAGEN
ANI 7F ;BIT 7 WEGMASKIEREN
CALL 0052 ;ZEICHEN ZUR DATENSICHTSTATION
JMP L1 ;SCHLEIFE
Als Tastatureingaben können unter Umständen auch „CTRL“-Eingaben oder auch „ESC-Sequenzen“ in Frage kommen (z.B. CTRL-L für „HOME“ oder „ESC t“ (= 1B 74 hex.) für „Löschen des Zeilenrests“). Bei der Ermittlung der erforder1ichen Tastatureingabe für die Cursor-Bewegung nach unten ist zu beachten, dass diese Eingabe zu einem „Scrollen“ des Bildschirminhalts nach oben führt, wenn sich der Cursor in der untersten Bildschirmzeile befindet.
Tragen Sie in nachfolgende Liste ein, welche Tastatureingabe für die entsprechende Steuerfunktion erforderlich ist:

Die zu den Tastatureingaben zugehörigen Steuer-Bytes lassen sich anschließend mit Hilfe des folgendes Programms 2 ermitteln und in die obige Tabelle eintragen
; --- PROGRAMM 2 ---
ORG 0E100
L2: CALL 0FC80 ;TASTATUR ABFRAGEN
ANI 7F ;BIT 7 WEGMASKIEREN
CALL 0058 ;HEX-WERT AUSGEBEN
CALL 0070 ;CR-LF AUSGEBEN
JMP L2 ; LOOP
Tabelle 3: Eingabewerte
Die von der Tastatur bei der Betätigung einer Taste ausgegebenen Steuerbytes (Eingabewerte) sind ebenfalls Terminal-spezifisch. Mit Hilfe des obigen Programms 2 lässt sich ermitteln, welche Steuerbytes bei einer Tastenbetätigung von der Tastatur erzeugt und zum MFA-Computer übertragen werden. Ermitteln Sie die zu den Tastatureingaben zugehörigen Steuerbytes und tragen Sie diese in nachfolgende Liste ein (dabei darf kein Steuerbyte doppelt vorhanden sein).

Aufbau des Hilfs-Menues
Um spätere Änderungen des Hilfs-Menues durch den Anwender zu ermöglichen, wird im folgenden der Aufbau des Hilfs-Menues erläutert.
Das Hilfs-Menue kann an jede beliebige freie Stelle des Arbeitsspeichers geladen werden. Ist das verwendete MFA-System nicht mit dem „BFZ-MINI-DOS“ bestückt, so läßt sich das Hilfs-Menue als EPROM-Version ab der Speicherplatzadresse 4000 (HEX) installieren, und der BFZ-EDITOR kann aus der Kommando-Ebene des MAT 85 heraus mit Hilfe der Tastatur-Eingabe „E“ (= EDITÜR) gestartet werden.
Dazu ist in den ersten drei Speicherplätzen des Hilfs-Menues ein Sprungbefehl zur Anfangsadresse des EDITOR-Programms (5000 HEX) abgelegt:
4000 C3
4001 00 JMP 5000
4002 50
Wird innerhalb der Kommando-Ebene des Betriebssystems MAT 85 eine Tastatureingabe vorgenommen, die nicht in der Kommando-Liste des MAT 85 enthalten ist, so überprüft das Betriebsprogramm, ob in dem Speicherplatz 4000 (HEX) ein Sprungbefehl (OpCode „C3“) enthalten ist. Ist dies der Fall, so wird der Sprungbefehl ausgeführt, das EDITOR-Programm also gestartet. Dieses wird nur dann weiter abgearbeitet, wenn die Tastatureingabe ein „E“ war. Ansonsten erfolgt ein Rücksprung zum Betriebssystem.)
In den nachfolgenden drei Speicherplätzen des Hilfs-Menues steht die sogenannte „Hilfs-Menue-Kennung“:
4003 DD
4004 ED
4005 DD
Aufgrund dieser Kennzeichnung findet das EDITOR-Programm das Hilfs-Menue an jeder beliebigen Stelle des Arbeitsspeichers. Bei einem Aufruf des Hilfs-Menues vom EDITOR aus wird nach dem Auffinden der Kenn-Bytes der ab der nachfolgenden Adresse gespeicherte Text auf dem Bildschirm dargestellt.
Das Hilfs-Menue hat demnach folgenden Aufbau:

EDITOR Hilfsmenü

Findet das EDITOR-Programm bei der Darstellung einer Hilfs-Menue-Seite ein „00“-Byte, so wird die Bildschirmausgabe unterbrochen und die Tastatur abgefragt. Durch die Eingabe von <SPACE> lässt sich die nachfolgende Seite darstellen, bei der Eingabe von <ESC> erfolgt eine Rückkehr zum EDITOR.
Das Ende des Hilfs-Menues ist mit zwei „00“-Bytes gekennzeichnet. Hier erfolgt bei der Eingabe von<SPACE> eine erneute Darstellung des Hilfsmenues ab der ersten Hilfs-Menue-Seite, die Eingabe von <ESC> führt auch hier zu einem Rücksprung in den EDIT-Modus.
Die Veränderung der einzelnen Hilfs-Menue-Seiten kann mit Hilfe des BFZ-EDITORs erfolgen. Die einzelnen Seiten des veränderten Hilfs-Menues müssen anschließend gemäß dem oben beschriebenen Aufbau zusammengefügt werden.
Es bleibt dem Anwender überlassen, unter Umständen auch andere Informationen innerhalb des Hilfs-Menues zu speichern, die dann bei Bedarf jederzeit vom Bediener abrufbar sind.
- In Betriebssystem MAT85-32k V2 ist die Auswahl des Diskettenlaufwerks A/B hier nicht erforderlich ↩︎
- Im Betriebssystem MAT85-32k V2 werden die Dateien und Textblöcke des BFZ-Editors immer mit dem Dateityp „TXT“ abgespeichert. ↩︎
- Im Betriebssystem MAT85-32k V2 werden die Dateien des BFZ-Editors immer mit dem Dateityp „TXT“ abgespeichert. ↩︎