Texteditor
Im Funkamateur 7+8/1987 wurde ein Texteditor für den AC1 vorgestellt. Autor: J. REUL.
Das Programm TEXTEDITOR wurde ohne Vorbild geschrieben wurde und die Anpassung auf einen anderen Rechnertyp dürfte nur unter großen Schwierigkeiten möglich sein.
Versionen
- 4.1 älteste mir vorliegende Version
- 4.3 Unterschiede zu 4.1:
- Codetabellen zur freien Wählbarkeit der Steuertasten
- Umbenennung Menüpunkt Kassette → Monitor
- viele Verbesserungen und Korrekturen
- 4.5 Unterschiede zu 4.3:
- drei weitere Steuerzeichen
- 0ch
- 10h format
- 0fh reformat
- kleine Änderungen und Korrekturen
- 5.1 die im Funkamateur vorgestellte Version.
- Sie entspricht vollständig der Version 4.3 mit dem Unterschied, dass sie einen anderen Adressbereich belegt.
Die komprimierten Texte sind zw. den Versionen austauschbar; das Format ist unverändert geblieben.
TPGAC1
Es gibt einen Nachfolger dieses Programms von „Rolf“. Bekannt sind zwei Versionen V5 und V6. Sie basieren auf Version 4.3 (bzw. 5.1). Hinzugekommen sind Wortsuche, Einfügen von Textfiles, Trennen von Text. In V6 ist die Arbeit mit Kassette integriert.
Downloads
- edit.zip Binaries, Quellcodes, Dokus zu Version 4.1, 4.3 (5.1), 4.5
Beschreibung V 5.1 (FA)
Hardware-Voraussetzungen
Der Texteditor ist für einen erweiterten „AC1“ Variante C geschrieben:
- Speichererweiterung (min. 16 KBytes, bei 4000H beginnend);
- Zeichengenerator mit Kleinbuchstaben;
- Bildschirm mit 32 Zeilen.
Programmstart
Der Texteditor belegt den Bereich 5000…5B6FH als Arbeitsspeicher und 5D00H bis zum oberen RAM-Ende, das selbständig vom Rechner ermittelt wird, als Textpuffer. Der dazwischenliegende Bereich ist dem Stack und den Merkzellen zugeordnet. Die Startadresse des Programms ist 5000H. Bei erweitertem Suchbereich für Kennbuchstaben ist der Start auch mit „t“ (74H) möglich.
Nach dem Löschen des Bildschirms gelangt ein Menü zur Anzeige, in dem die Grundfunktionen zur Textverarbeitung aufgeführt sind. Außerdem wird die Anzahl der auf Grund der vorhandenen RAM-Länge zur Verfügung stehenden Bildschirmzellen angezeigt. Steht an Stelle dieses Wertes ein „Error“, so ist das Programm fehlerhaft.
Der Aufruf der Menüfunktionen erfolgt mittels des vorangestellten Kennbuchstabens und „CR“. Sind weitere Angaben erforderlich, so nimmt der Rechner die Abfrage im Dialog vor.
Menüfunktionen
A - Start
Der Puffer wird zur Erstellung eines neuen Textes vollständig gelöscht. Der gesamte Bereich wird dabei mit Leerzeichen (20H) aufgefüllt und dessen Beginn auf dem Bildschirm angezeigt.
Zur komfortablen Texteingabe, die nun beginnen kann, ist das Programm in einen Schreibmaschinenmodus geschaltet und die Tastaturabfrage um die Autorepeatfunktion erweitert. Alle von der Tastatur erzeugten Kodes, die den ASCII-Zeichen zwischen 14H und 7FH entsprechen und nicht in Tabelle 1 als Steuerkodes vereinbart sind, werden als Zeichen interpretiert und verarbeitet. Die Erläuterung spezieller Steuerfunktionen folgt in einem späteren Abschnitt. Zur verbesserten Orientierung beim Schreiben zeigt die letzte Zeile Statusinformationen, die sich auf die aktuelle Position des Kursors beziehen.
CTRL-R Shiftlock CTRL-M Wagenrücklauf+Zeilenvor. CTRL-B Zeile löschen CTRL-F 1./2. Zeichenebene (-> Umlaute etc.) CTRL-C Menu CTRL-H Cursor nach links CTRL-I Cursor nach rechts CTRL-J Cursor nach unten CTRL-K Cursor nach oben CTRL-Q Bild hochrollen CTRL-U Bild runterrollen CTRL-A Zeile einfügen CTRL-T Wagenrücklauf CTRL-W spezieller Tabulator CTRL-E Zeichen einfügen CTRL-S Zeichen löschen
B - Restart
Die Abläufe entsprechen „A“. Der Puffer wird jedoch nicht gelöscht, so daß mit der Bearbeitung eines vorhandenen Textes fortgefahren werden kann.
C - Komprimieren
Der geschriebene Text läßt sich in einen frei wählbaren RAM-Bereich unterhalb 5000H umlagern. Ihm vorangestellt ist dann ein Hilfsprogramm, das es gestattet, den Text ohne Zuhilfenahme des Editors auf dem Bildschirm auszugeben. Eine Sonderstellung bei der Umlagerung nehmen Leerzeichen und Bindestrich ein. Bis zu 64 zusammenhängende Zeichen dieser Art werden zu einem Byte komprimiert, so daß bei übersichtlicher Arbeit mit eingerückten Zeilen oder Unterstreichungen kein erhöhter Speicherbedarf entsteht.
Nach Abarbeitung des Kommandos gelangen Anfangs- und Endadressen des Textfiles zur Anzeige und das Programm kehrt zum Betriebssystem zurück. Außerdem werden Anfangs-, End- und Startadresse in die Argumentzeilen geladen, so daß man das File mit S:Name auf Kassette abspeichern kann. Die Eingabe der Anfangsadresse 0 bewirkt den Rücksprung in das Menü.
D - Dekomprimieren
Komprimierte Texte lassen sich zur Weiterbearbeitung oder zum Drucken in den Puffer zurückladen. Befindet sich auf der angegebenen Adresse ein solches File, wird der Puffer gelöscht, der Text übernommen und ein Restart ausgeführt. Bei Eingabe einer falschen Adresse wird die Ausführung des Kommandos verweigert und bei Adresse 0 in das Menü zurückgesprungen.
E - Drucker
Die Verwendung dieses Kommandos setzt das Vorhanden sein einer geeigneten Druckerroutine voraus.
F - Format
Beim Programmstart stellt sich ein Format von 61 Zeichen je Zeile ein. Eine Veränderung dessen ist mit dem Kommando „Format“ möglich. Die Eingabe von Werten zwischen 10 und 63 ist erlaubt. Als zweiten Wert erfragt der Rechner die Größe des Formatierungsraumes. Das ist der Bereich vom rechten Zeilenende gerechnet, in dem beim Formatieren auf das Vorhandensein von Zeichen getestet wird. Die Anzeige des eingestellten Bereichs erfolgt durch „+“-Zeichen in der Trennlinie oberhalb der Statuszeile. Die Eingabe des Wertes 0 bewirkt eine Berechnung zu Format/10 + 2. Die Anfangsinitialisierung beträgt 8.
G - Formatieren
Es werden alle Zeilen. in denen im Formatierungsraum ein Zeichen steht, gleichmäßig mit Leerzeichen aufgefüllt, so daß nach Möglichkeit ein rechtsbündiger Abschluß im Format entsteht. Um das Textbild nicht zu stark zu verfälschen, werden nach jedem Wort maximal zwei Leerzeichen eingefügt. Gegebenenfalls kann man das Kommando erneut aufrufen.
H - Zentrieren
Der Text wird je nach Format in die Bildmitte gerückt.
I - Reformatieren
Es wird der Originalzustand nach Formatieren bzw. Zentrieren wieder hergestellt. Dieses Kommando ist bei dekomprimierten Texten wirkungslos. D.h. Texte die zur späteren Weiterverarbeitung komprimiert und auf Kassette abgespeichert werden, sollten nicht formatiert sein.
K - Monitor
Mit diesem Kommando ist das Verlassen des Texteditors möglich. Die Steuerung wird an das Betriebssystem zurückgegeben. Zur Unterstützung der Kassettenroutine werden die Argumentzellen geladen, so daß ein direktes Abspeichern mit S:Name möglich ist.
Vor dem Wiedereinladen ist das Löschen des Puffers erforderlich. Das kann beispielsweise mit dem Kommando „Start“ des Menüs geschehen. Da der Puffer vom oberen Ende beginnend beschrieben wird, ist nach einer Veränderung der RAM-Länge im Rechner ein Laden mit Offset notwendig.
Editorfunktionen
Bei der Texteingabe wirken eine Reihe von Steuerbefehlen, die entsprechend der verwendeten Tastatur mit den in Tabelle 1 aufgeführten Kodes belegt wurden. Da diese zumeist Standardfunktionen entsprechen, soll an dieser Stelle nur auf einige Besonderheiten eingegangen werden.
Kursorsteuerung
Der Kursor kann auf jede beliebige Bildschirmposition gelenkt werden, um mit der Texteingabe oder anderen Steuerfunktionen fortzufahren. Das Verlassen der Zeile oder des Bildschirmes ist nicht möglich. Die Funktion Backspace + Space, wie aus dem Monitor bekannt, ist nicht vorhanden. Sollen einzelne Zeichen gelöscht werden, muß der Kursor positioniert und mit Space vorgerückt werden.
Ein spezieller Tabulator gestattet es, den Kursor bis zum nächsten Wort in der darüberliegenden Zeile vorzurücken. Diese Funktion unterstützt die Erstellung von Tabellen und die Arbeit mit eingerückten Texten.
Shiftlock
Nach dem Starten des Editors stellt sich der Schreibmaschinenmodus ein. Die von der Tastatur erzeugten ASCII-Zeichen für Buchstaben werden softwaremäßig umgewandelt, so daß im Normalfall Klein-, bei gedrückter Shifttaste Großbuchstaben entstehen. Bei aktiver Shiftlockfunktion dagegen werden die ASCII-Zeichen original interpretiert. Das bedeutet, daß es sich eigentlich um eine sogenannte Capital-Shiftlock-Funktion handelt, die nur bei Buchstaben (41H 5FH und 61H 7FH) wirksam ist. Ziffern und Zeichen werden nicht beeinflußt.
Ein- und Ausschalten der Funktion erfolgt mittels ein und derselben Taste, das heißt, sie wirkt alternierend. Der aktive Zustand wird durch ein „S“ in der Statuszeile angezeigt. Des weiteren wirkt Shiftlock noch auf andere Steuerfunktionen. Beim Bildhoch- bzw. -runterrollen wird jeweils um eine halbe Bildschirmseite „weitergeblättert“.
Das Zeicheneinfügen wird normalerweise blockiert, wenn das letzte Zeichen der Zeile kein Leerzeichen ist. Shiftlock bewirkt hier einen Zeilenumbruch, der ggf. über den gesamten Absatz ausgeführt wird. Ähnlich verhält es sich beim Zeichenlöschen. Passen eines oder mehrere Wörter der Folgezeile an das Ende, werden diese übernommen und die Folgezeile nach links verschoben. Dieser Umbruch wird jedoch nicht über mehrere Zeilen ausgeführt, da ansonsten das Textbild zerstört werden könnte. Wenn nötig, muß man ihn in den Folgezeiten manuell wiederholen.
Zeile löschen
Um die Gefahr des versehentlichen Löschens einer Zeile durch Fehlbedienung auszuschließen, ist im Programm eine zusätzliche Abfrage eingebaut, die mit „CR“ quittiert werden muß. Die Quittung mit jeder anderen Taste führt zum Wiedereinfügen der Zeile.
2. Zeichenebene
Zur Erzeugung der Umlaute und anderer Zeichen bietet der Texteditor die Möglichkeit, die Tastaturabfrage auf eine zweite Ebene umzuschalten. Da die Funktion alternierend wirkt, erfolgt eine Anzeige durch ein „U“ in der Statuszeile.
# -> ³
[ -> §
] -> Ä
^ -> Ö
{ -> Ü
} -> ä
~ -> ö
\ -> ü
| -> ß
@ -> µ
` -> Ω
Benutzung der Textfiles
Wie bereits erwähnt, besteht die Möglichkeit, die erstellten Texte in den vorhandenen RAM-Bereich unterhalb 5000H umzulagern. Durch die Voranstellung eines Hilfsprogramms, das den Text in einer Art Laufschrift über den Bildschirm ausgeben kann, entsteht ein eigenständiges Textfile. Mit dieser Anwendung wird der Texteditor auch für die Amateure interessant, die keinen Drucker haben.
Die Umlagerung ist im Menü als „Komprimieren“ bezeichnet. Dieser Begriff wurde gewählt, da aufeinanderfolgende Leerzeichen und Bindestriche zu einem Byte zusammengefaßt und in die Kodes, ab 80H umgewandelt werden. Die dadurch erreichte Speicherplatzeinsparung ist recht erheblich.
Im Textfile sind keinerlei Steuerzeichen enthalten und eine Zeile wird immer mit 64 Zeichen beschrieben. Dadurch entsteht ein etwas eigenwilliges Format, was jedoch für den Anwender keine Bedeutung haben dürfte. Ansprüche auf Kompatibilität zu anderen Systemen werden ohnehin nicht erhoben.
Die Textfiles sind relocatibel, das heißt, sie können in jeden beliebigen RAM- Bereich verschoben werden und sind dort lauffähig. Nach dem Laden eines Textfiles von Kassette wird dieses mit „J:“ angesprungen. Erfolgt das Laden mit Offset, muß die neue Startadresse natürlich entsprechend angegeben werden. Daraufhin werden der Bildschirm gelöscht und die Zeichen mit etwa 30 ms Verzögerung über den Befehl RST 10 des Betriebssystems auf dem Bildschirm ausgegeben. Durch Drücken einer beliebigen Zeichentaste kann die Ausgabe gestoppt und mit „CR“ fortgesetzt werden. Anhaltendes Drücken von „CR“ bewirkt das Ausschreiben mit doppelter Verzögerung. Mit CTRL-C wird die Ausgabe bei laufendem Text abgebrochen. Es bietet sich natürlich auch die Möglichkeit an, die Texte zu dekomprimieren und mit Hilfe des Editors auf dem Bildschirm auszugeben, zu bearbeiten oder zu drucken.
Programmanpassung
Es besteht die Möglichkeit, das Programm in gewissen Grenzen der verwendeten Hardware anzupassen, z.B. Drucker oder Tastatur (s. Literatur)
Schlußbetrachtungen
Das vorgestellte Textverarbeitungsprogramm erhebt nicht den Anspruch mit kommerziellen Systemen, in denen Speicherplatz kein Thema ist, konkurrieren zu wollen. Es wurde versucht, das Programm den Bedürfnissen eines Amateurs anzupassen und die Bedienung ohne Programmierkenntnisse zu ermöglichen. Lediglich die Arbeitsweise des „AC1“-Betriebssystems sollte bekannt sein.
Der beschriebene Texteditor ist seit einiger Zeit bei mehreren „AC1“-Besitzern in Betrieb. Es sollte dabei beachtet werden, daß schon relativ früh Arbeitsvarianten verteilt wurden, die zwar alle aufwärtskompatibel sind, nicht aber den vollen Funktionsumfang realisieren. Das Eintippen oder der Besuch einer der nächsten Softwareveranstaltungen könnte sich also lohnen.
Die mögliche Länge der zu bearbeitenden Texte richtet sich nach dem zur Verfügung stehenden RAM-Bereich. Bei einer Minimalforderung von 16 KByte ab 4000H stehen etwa zwei Schreibmaschinenseiten zur Verfügung. Ein Vollausbau auf 64 KByte gestattet die Bearbeitung von etwa 10 Seiten a 63 Zeilen. Einem Amateur dürfte das meist genügen. Außerdem kann aber auch das Kassettenbandgerät als zusätzlicher Massenspeicher genutzt werden.

