Dies ist eine alte Version des Dokuments!


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 nur unter großen Schwierigkeiten möglich sein dürfte.

  • 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.

  • edit.zip Binaries, Quellcodes, Dokus zu Version 4.1, 4.3 (5.1), 4.5

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.

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.

  • homecomputer/ac1/software/edit.1794407808.txt.gz
  • Zuletzt geändert: 2026/11/11 14:36
  • von volkerp