| ★ APPLICATIONS ★ BUREAUTIQUE ★ MAGATEXT (SCHNEIDER MAGAZIN/COMPUTER PARTNER) ★ |
Textverarbeitungsprogramm mit Durchblick (Teil 1)![]() | Magatext, Teil 2![]() | Texteingabe![]() | Magatext (Teil 4)![]() | Es ist geschafft (Teil 5)![]() |
Mit der 5. Folge ist ”Magatext” komplett Diesmal folgt der letzte Teil unserer Serie zur Programmierung einer Textverarbeitung für die Computer der CPC-Reihe in reinem Locomotive-Basic. Ich gehe davon aus, daß Sie die bisherigen vier Folgen gelesen und die zugehörigen Listings eingegeben haben. Seit dem letzten Teil können wir Schriftstücke auf einem Datenträger abspeichern und von dort wieder in den Computer laden. Ein echtes Textverarbeitungsprogramm muß aber auch die Möglichkeit bieten, den eingegebenen und bearbeiteten Text auszudrucken. Zwar lassen sich heute bereits Briefe auf elektronischem Wege mittels Datenfernübertragung versenden, jedoch muß der Empfänger dazu eine entsprechende technische Einrichtung besitzen. Natürlich kann man auch Texte auf einer Cassette oder Diskette ablegen und dann diesen Datenträger verschicken. Voraussetzung ist aber ebenfalls eine übereinstimmende Geräteausstattung bei Sender und Empfänger. Sonst kommt es leicht zu Komplikationen. Einen normalen Brief kann dagegen jeder lesen. Nach diesen Abschweifungen wollen wir uns wieder dem Programm zuwenden. In den Zeilen 2660 bis 3000 finden Sie den Teil Text drucken. Zuerst wird in Zeile 2680 geprüft, ob überhaupt ein Dateiname vergeben und der zugehörige Schriftsatz im Speicher vorhanden ist. Ansonsten wäre ja jeder Druckversuch sinnlos. Die Fehlerbehandlung erfolgt über ein Unterprogramm, dessen Inhalt und Wirkungsweise aus Teil 4 bekannt sein sollten. In den Zeilen 2690 bis 2750 wird der Benutzer aufgefordert, die nötigen Vorbereitungen zu treffen. Er muß seinen Drucker einschalten, das Papier einlegen und abschließend das Gerät online schalten. Anschließend drückt man die Leertaste zur Bestätigung. Andere Tasten sind unwirksam und werden nicht beachtet. "Magatext” führt keine interne Prüfung durch, ob auch wirklich ein Drucker angeschlossen und betriebsbereit ist. Wer dies wünscht, möge bitte eine entsprechende Routine einarbei-ten. Entsprechende Beispiele wurden bereits mehrfach in diversen Zeitschriften abgedruckt. Sobald eine Taste betätigt wurde, gelangt das Programm in den Bereich zwischen 2840 und 2870. Achtung! Die Werte gelten für den Schneider NLQ 401. Bei Verwendung eines anderen Druckers müssen Sie diese Zeilen entsprechend anpassen. Falls bei Ihnen mehr oder weniger bzw. andere Möglichkeiten bestehen, ist auch eine Modifizierung des beschriebenen Untermenüs erforderlich. Leider kann ich Ihnen dazu keine konkreteren Hinweise geben. Schließlich gibt es bekanntermaßen eine Vielzahl von Druckern, und oft unterscheiden sich die vorgeschriebenen Steuerzeichensequenzenerheblich. Bitte schauen Sie im Handbuch nach. Auch die Serie über Drucker an den CPCs (s. Schneider Magazine 9/88 bis 11 /88) kann Ihnen hier eine wertvolle Hilfe sein. Zeile 2880schließt beim Drükken einer nicht vorgesehenen Buchstabentaste die Schleife durch einen Rücksprung zum Eingabeteil. In den beiden folgenden Zeilen wird die gerade laufende Aktion im unteren Meldungsfenster ausgegeben. Von 2910 bis 2990 folgt der eigentliche Ausdruck. Nun wird Zeile für Zeile zu Papier gebracht. Dabei bewirkt die Ausgabe von Leerzeichen in einer Schleife mit dem Grenzwert lirand das exakte Einhalten des dort gesetzten Wertes. Der Text selbst wird mittels CHR$ mit in Klammern folgendem ASCII-Wert aus dem Textfeld übergeben. Am Zeilenende schickt das Programm die Steuerzeichen 13 und 10 an den Drucker, damit Wagenrücklauf und Zeilenvorschub ordnungsgemäß durchgeführt werden und die nächste Zeile an der richtigen Stelle zu Papier kommt. Sollte der Ausdruck plötzlich mit 2-Zeilen-Ab-stand erfolgen, können Sie entweder die DIP-Schalter verändern oder die überzählige Steuersequenz aus dem Listing entfernen. Zeile 3000 kehrt auch nach diesem Programmteil wieder ins Hauptmenü zurück. Nun fehlt nur noch die Funktion Text beenden. Diese besteht lediglich aus einer Sicherheitsabfrage wie beim Löschen, da ja alle nicht auf einem Datenträger abgelegten Texte unwiederbringlich verlorengehen. Nach Druck auf J finden Sie in Zeile 3120 den einzigen (!) Maschinenspracheaufruf im ganzen Programm, nämlich CALL 0. Dieser setzt den CPC total zurück und löscht dabei alle Variablen sowie das komplette Programm. Er ist vergleichbar mit dem Drei-Tasten-Griff ESC-SHIFT-CTRL. Beim Betätigen einer anderen Taste unterbleibt solch ein Reset. Es folgt die normale Rückkehr ins Hauptmenü. Damit haben wir nun alle Teile beisammen. Sie lassen sich jetzt mit dem MERGE- Befehl zusammenfügen. Das so entstandene Listing speichere ich erst einmal zur Sicherheit ab; dann gebe ich ein RENUM ein. Sie lesen richtig. Ich starte nicht, sondern lasse mein Listing umnumerieren, falls es mit einem gleichmäßigen Zei-lenabstand abgedruckt war. Welchen Grund hat dieses Vorgehen? Es wird sofort angezeigt, w.enn Zeilen fehlen. Dann erscheint nämlich die Meldung "Undefined line .. in So kann ich sofort kontrollieren, wo was vergessen wurde. War RENUM erfolgreich, lasse ich mir mit LIST 4590 die letzte Zeile zeigen. Lautet die Antwort ”4590 RETURN”, so stimmt die Anzahl der Zeilen. Erscheint hingegen ”Line does not exist”, so habe ich irgendwo Zeilen vergessen oder beim Kopieren aneinandergehängt. In diesem Falle lasse ich mir die mittlere Zeile des Listings zeigen und vergleiche sie mit dem Abdruck. Ist sie korrekt, so liegt der Fehler in der zweiten Hälfte, ansonsten in der ersten. Der entsprechende Teil wird wiederum halbiert usw. Binnen kurzer Zeit ist so der Fehler eingekreist und kann korrigiert werden. Das Ganze geht sicher schneller vor sich, als wenn man auf gut Glück von vorne anfängt und dann in der vorletzten Zeile den Fehler findet! Nach dieser Kontrolle erfolgt der Start mit RUN. Hoffentlich läuft nun alles wie vorgesehen. "Magatext” ist somit fertiggestellt. Vielleicht wünscht der eine oder andere aber noch weitere Funktionen. Da wir das Programm in Basic entwickelt haben, dürften Ihnen ein Ausbau bzw. Änderungen nicht schwerfallen. Einige Varianten habe ich ja bereits angedeutet. So können Sie beispielsweise die Kombination CTRL-Pfeil hoch mit einem Sprung an den Anfang des Textes belegen, die Textlänge an ein gewünschtes Maß anpassen oder das Unterprogramm Zeile loeschen so weit ausbauen, daß sich auch mehrere Zeilen zugleich löschen lassen. Denkbar sind auch regelrechte Operationen mit ganzen Textblöcken wie Löschen, Verschieben oder Kopieren, der Aufbau einer sogenannten Floskeldatei, die Übernahme von Daten einer Adressendatei für Rundbriefe, die Entwicklung eines Trennalgorithmus, eine Rechtschreibüberprüfung der Eingaben, die Möglichkeit, beim Ausdruck die Schriftart innerhalb des Textes zu wechseln, usw. Diese Liste ließe sich beinahe endlos fortsetzen. Ich kann Sie nur zu solchen Ausbauten und Funktionserweiterungen ermutigen. Voraussetzung ist allerdings, daß Sie "Magatext” beherrschen. Es würde mich freuen, wenn ich über gelungene Werke eine Rückmeldung erhielte. Berthold Freier , Computer Partner |
| ![]() |
|