APPLICATIONSBUREAUTIQUE ★ MAGATEXT (SCHNEIDER MAGAZIN/COMPUTER PARTNER) ★

Textverarbeitungsprogramm mit Durchblick (Teil 1)Magatext, Teil 2TexteingabeMagatext (Teil 4)Es ist geschafft (Teil 5)
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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.
Zeile 2760 enthält den Aufruf des Unterprogramms Endzeile hochziehen, um den Ausdruck auf die tatsächlich beschriebenen Bereiche zu beschränken. Das bedeutet unter Umständen eine erhebliche Zeitersparnis. Der Ablauf sollte aus Teil 4 bekannt sein. Von 2770 bis 2800 findet man ein kleines Untermenü, das vier verschiedene Druckarten für die Ausgabe anbietet. Die Auswahl erfolgt über entsprechende Buchstabentasten; als Kennung habe ich jeweils die Anfangsbuchstaben gewählt. Selbstverständlich sind hier auch andere Zuordnungen denkbar und leicht möglich. Die Zeilen 2810 bis 2830 enthalten wieder eine Tastaturabfrage mit abschließender Umwandlung in Großbuchstaben. Dies erhöht die Bedienerfreundlichkeit, weil auch dann die gewünschte Funktion ausgelöst wird, wenn man vergessen hat, die SHIFT-Taste zu drükken.

Sobald eine Taste betätigt wurde, gelangt das Programm in den Bereich zwischen 2840 und 2870.
Je nach gedrückter Taste, d.h., je nach gewünschter Druckart wird die entsprechende ESC-Sequenz zum Printer gesendet.

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.
Falls doch einmal Fehlfunktionen auftauchen, überlegen Sie bitte zuerst, welcher Programmteil gerade aktiv ist. Diesen und die von dort aufgerufenen Unterprogramme überprüfen Sie anschließend. Sollte das Programm gar abbrechen, lassen Sie sich unmittelbar danach mit PRINT endzeile usw. die Variablen im Direktmodus ausgeben und vergleichen die Rückmeldungen mit den erwarteten Werten. Die Korrektur sollte gelingen, zumal Sie ja den gesamten Aufbau des Listings mitverfolgt haben.

"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

★ PUBLISHERS: Schneider Magazin , Computer Partner
★ YEARE: 1988 , 1989
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTIONS: SCHNEIDER MAGAZIN 1989 , COMPUTER PARTNER 1989 , COMPUTER PARTNER 1989 , COMPUTER PARTNER 1989 , COMPUTER PARTNER 1989
★ AUTHOR: Berthold Freier
    



★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Magatext    (Teil  2)    (Schneider  Magazin)    LISTING    GERMANDATE: 2020-06-14
DL: 300
TYPE: text
SiZE: 3Ko
NOTE:

» Magatext    (Teil  3)    (Computer  Partner)    LISTING    GERMANDATE: 2021-02-02
DL: 368
TYPE: PDF
SiZE: 488Ko
NOTE: 4 pages/PDFlib v1.6

» Magatext    (Teil  5)    (Computer  Partner)    LISTING    GERMANDATE: 2021-02-02
DL: 341
TYPE: PDF
SiZE: 129Ko
NOTE: 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Arnor - Protext
» Applications » MasterText
» Applications » Protext Office
» Applications » Texter v2 (Compute Mit)
» Applications » te - Text Editor
» Applications » Hypertext (CPC Amstrad International)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 295 millisecondes et consultée 3971 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.