APPLICATIONSBUREAUTIQUE ★ Textverarbeitung mit Schneider CPC 464 ★

CPC Textverarbeitung (Computer Schau)Applications Bureautique
★ 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 ★ 

Nach dem großen Echo auf das Programm Dateiverwaltung für den CPC 464 haben wir uns entschlossen, auch ein Listing für ein Textverarbeitungsprogramm zu veröffentlichen.

Dieses Programm arbeitet sowohl mit Kassette als auch mit Diskette. Im Vergleich zu käuflichen Programmen ist dieser „Textverarbeiter” - bezüglich der Programmlänge - sehr kurz geraten. Der Basic-teil liegt in der Größe von ca. 8 KByte und der Maschinencodeteil hat 808 Bytes.

Insgesamt gesehen, kann dieses Programm als Basis für ein eigenes individuelles Textverarbeitungsprogramm dienen.

Da es bei unseren Lesern etwas Probleme gab, die Dateiverwaltung in der richtigen Form auf Kas-zu bringen, empfehlen wir bei diesem Programm folgende Vorgehensweise:

  1. Hexlader abtippen und abspeichern
  2. Basicteil abtippen und abspeichern
  3. Band zurückspulen
  4. Systemreset durchführen
  5. Hexlader einladen
  6. mit run starten
  7. Bei der Meldung „Press REC and PLAY... mittels der ESC-Taste abbrechen
  8. Basicteil durch load nachladen
  9. Neue Kassette einlegen und Band positionieren
  10. run 3450 eingeben

Wenn beide Programmteile korrekt abgeschrieben wurden, befindet sich anschließend das lauffähige Programm auf der neuen Kassette. Für Diskettenbesitzer gilt die Vorgehensweise analog.

Programmbeschreibung CPC Text vers cs

Das Programm besteht aus zwei Teilen: ein Basicteil (ca. 9 KByte) und ein Maschinenspracheteil (ca. 800 Byte).

CPC Text vers cs reserviert einen Speicher, der 5 Seiten mit 60 Zeilen und 80 Spalten entspricht. Durch Änderung der Ränder verändert sich auch die Anzahl der Zeilen. Bei einer Randmarkierung von 10 und 75 (rechter Rand, linker Rand) stehen 72 Zeilen pro Seite zur Verfügung.

Das Programm ist teils menü- und teils befehlswortgesteuert. Die Befehlswörter werden mit Hilfe der ,,CTRL“-Taste und einem Buchstaben eingegeben.

Als Befehlswörter stehen zur Verfügung:

  • „CTRL“/e = Einfügen: An der entsprechenden Cursorposition kann ein Buchstabe oder ein Text mit maximal 255 Zeichen eingefügt werden. Das Einfügen wird in der oberen Bildschirmhälfte durchgeführt.
  • „CTRL“/1 = Löschen: Ab der Cursorposition wird wie bei DEL gelöscht. Dies kann mit Hilfe der Cursortasten vorgenommen werden. Wichtig ist, daß nur rückwärtsgehend gelöscht werden kann.
  • „CTRL“/s = Seite: Hiermit kann eine von 5 möglichen Seiten gewählt werden.
  • „CTRL“/b = Menü: Sprung in das Hauptmenü.

Belegt sind weiterhin folgende Tasten:

  • TAB: Ermöglicht den Sprung zur nächsten Tabulatorstelle.
  • DEL: Löscht das vorhergehende Zeichen, ohne den Speicher zu verschieben.
  • CLR: Sprung zum Beginn der nächsten Zeile mit Ausgabe eines Zeilen-ende-Zeichens. Dies ist bei der Formatierung wichtig.
  • ENTER: Sprung zum Beginn der nächsten Zeile.
  • COPY: Gibt „künstliche“ Leerstellen aus, die beim Formatieren und beim Drucken ignoriert werden. CURSOR: Die Tasten arbeiten normal.
  • CURSOR/SHIFT: Mit den Tasten „auf-“ bzw. „ab-“wärts wird um jeweils 11 bzw. 19 Zeilen zurück-oder vorgegangen. Bei „rechts“ bzw. „links“ wird um 10 Spalten gesprungen.
  • CURSOR/CTRL: Der „Abwärts“-Cursor gibt das Blockzeichen aus. Zwei dieser Zeichen umschließen einen Block.
  • ENTER (Zahlenfeld): Bei einem Abbruch kann mit dieser Taste im Programm fortgefahren werden, ohne einen Verlust von Text oder Variablen.

Das Hauptmenü (Aufruf ,,CTRL“/b) stellt 8 Befehle zur Verfügung:

  1. Rand: Durch Eingabe von linkem und rechtem Rand wird das Format festgelegt. Gleichzeitig wird damit das Modul „form“ aufgerufen. Texte werden nach links ausgerichtet; als Zwischenraum wird nur eine Leerstelle zugelassen.
    Durch das CLR-Zeichen (&F7) und die „künstliche“ Leerstelle (COPY) kann dieser Vorgang beeinflußt werden. Das ist wichtig bei Texten, die von Hand gesetzt werden sollen. Die Formatierung ist eine kleine Hilfe bei der Formatänderung; sie muß aber kontrolliert und korrigiert werden.
  2. Block: Ermöglicht die Umplazierung einer Textpassage. Der Speicher wird nicht verschoben; der entsprechende Text wird auch nicht gelöscht.
    Als Anfangs- und Endzeichen dient &E0 (CTRL + CURSOR abwärts).
  3. Such: Ein Suchwort und ein Ersatzwort werden eingegeben. Das Suchwort wird ersetzt. Anschließend wird wieder die Formatierung durchlaufen, so daß Herr Müller durch Herrn Miedel ersetzt werden kann.
  4. Forts: Das Programm wird mit dem Eingabemodus fortgesetzt.
  5. Druck: Ein Text wird auf den Drucker ausgegeben. Dieser Teil ist einfach gehalten, um Ergänzungen und eine Anpassung an eigene Drucker zu ermöglichen. „y$“ ist die Druckzeile, die durch das Modul „Zeile“ geladen wird.
  6. LOAD: Ein Text wird von Kassette geladen. Hierbei wird automatisch der Expanderteil des KOMPAKTORs aufgerufen.
  7. SAVE: Der gesamte Speicher wird auf Kassette geladen. Um Platz und Zeit zu sparen, wird der Speicherinhalt mit Hilfe des KOMPAK-TORs komprimiert.
  8. CAT: Die CATalog-Funktion des Schneiders zur Überprüfung der Kassette.
  9. DEF: Die Taste des Zahlenfeldes kann mit einem Text (max. 100 Bytes) belegt werden.

Besonderes Augenmerk bei diesem Programm ist auf den Einsatz der M-Code-Module zu richten. Sie zeigen, daß trotz mancher Schwächen des Schneider-Betriebssystems ein guter Einsatz von BASIC möglich ist, wenn man die Maschinensprache zur Unterstützung benutzt. Sicherlich könnte man einiges an dem gesamten Programm verbessern. In dieser Fassung läßt es sich aber einfach und wirkungsvoll bedienen.

Für den Heimgebrauch ist es bestimmt ausreichend.

Wichtig bei der Beurteilung des CPC Text vers cs ist auch der relativ geringe Umfang des Programms und sein übersichtlicher Aufbau, was ein Eintippen in den Computer und die Möglichkeit eigener Änderungen unterstützt.

Das BASIC-Programm von CPC Text vers cs

Im folgenden soll kurz auf den generellen Aufbau des BASIC-Programms eingegangen werden. Durch die REM-Überschriften ist der Aufbau im einzelnen übersichtlich gegliedert.

Hier nun ein genereller Überblick:

  • 1120-1170: Laden des M-Codes und Initialisierung
  • 1180: Warmstartadresse
  • 1210-1330: M-Code-Modul-Adressen
  • 1350-1380: Variablenspeicher-adressen zum Schutz vor CLEAR
  • 1420-1530: Definition der Fenster und Aufbau des Bildschirms
  • 1590-1610: Definition des Textfensters #0
  • 1620: generelle Tastaturabfrage
  • 1700-1810: Eingabe 1700-1750: Initialisierung von #1 und der Variablen
  • 1770-1810: eigentliche Eingabe mit Schreiben in den Speicher und Untersuchung auf Cursor (1810).
  • 1830-2220: T astaturbelegungen und CTRL-Befehle.
  • In Zeile 1840 sind die Tasten-Codes und die Codes der CTRL-Befehle gespeichert. Durch Hinzufügen eines Codes und Änderung des Zählers in Zeile 1860 kann ein neuer Befehl eingegliedert werden.
  • 2230-2530: Cursorsteuerung Auch hier können durch Änderung von Zeile 1810 und Zeile 2250 CTRL- + Cursor-Befehle dem Programm zugefügt werden.
  • 2540-3350: Befehlsmenü
  • 2600-2690: Wird bei dem Subprogramm „Ränder“ kein Wert für linken oder rechten Zeilenrand eingegeben, dann werden die alten Werte behalten; die Formatierung ist trotzdem ausgelöst. Formatiert werden die aktuellen und die folgenden Seiten.
  • 2770-2880: Das Subprogramm „Suchen/Ersetzen“ springt in Zeile 2850 nach Suchen und Ersetzen in das Subprogramm „Ränder“. Dort wird die Formatierung durchlaufen, und zwar von der ersten Seite an.
  • 2970-3140: Zeile 2980 initialisiert den Drucker und muß dem jeweiligen Drucker angepaßt werden. Ausgegeben wird die Stringvariable k$, die von dem M-Code-Modul „zeile“ geladen wurde. Sie enthält nur ASCII-Zeichen; eventuelle Steuerzeichen sind durch &20 ersetzt. Da k$ immer 80 Zeichen lang ist, wird der linke Rand (xl) durch das Modul eingegeben.
  • 3200-3280: Bei jedem SAVE wird der gesamte Speicher (24 000 Bytes) mit den Adressen aus Zeile 1350-1380 auf Band gespeichert. So können auch die Randeinstellungen gerettet werden. Das Modul „komp“ verringert den Speicherumfang um redundante Leerstellen.
  • 3260-3270: Der Expander bringt den Speicher wieder in seinen Originalzustand. Diese Zeile wird auch von „LOAD“ angesprungen. Nach der Expansion beginnt das Programm bei der Warmstartadresse 1180.
  • 3290-3350: Der gesamte Speicher wird gelöscht. Nach dem Laden der komprimierten Daten wird durch Zeile 3260 expandiert.
  • 9999: Speichern des BASIC-Programms. Der M-Code-Teil wird automatisch anschließend gespeichert.

Der Maschinenspracheteil von CPC Text vers cs

12 Maschinensprachemodule garantieren die Schnelligkeit von CPC Text vers cs. Die Adressen der einzelnen Routinen befinden sich in den Zeilen 1210 bis 1330 des BASIC-Programms. Die Routinen benutzen als Speicher die Adressen &160 bis &169. Sie sind untereinander nicht verbunden, so daß sie nur über BASIC verknüpft werden können.

Als Beispiel dient dazu das Subprogramm „Suchen/Ersetzen“. Zuerst wird CALL string aufgerufen. Dann folgen CALL suche, CALL loesch, CALL einf.

Die M-Code-Module im einzelnen:

  • kompr: Der Speicher wird um überflüssige Leerstellen reduziert,
  • expan: Der Kompressionsvorgang wird rückgängig gemacht,
  • druck: Ausgabe einer oder mehrerer Textzeilen auf den Bildschirm,
  • scroll: Der Textbildschirm #0 wird um eine Zeile auf- oder abwärts gescrollt.
  • string: Suche nach einer Stringvariablen. Die Adresse wird in den Adressen &160/&161 ausgegeben,
  • sclear: Der Speicher wird komplett gelöscht.
  • einf: Die Stringvariable b$ wird in den Textspeicher eingefügt,
  • loesch: Ein Speicherteil wird durch Verschiebung gelöscht,
  • suche: Die Variable s$ wird im gesamten Speicher gesucht. Ist kein Text vorhanden, der s$ entspricht, wird &162=0. Bei gefundenem Text ist die Textadresse in Adresse &160/ &161.
  • zeile: Ab einer definierten Adresse, in diesem Programm ist das die Variable k$, werden xl Leerstellen ausgegeben. Anschließend wird der Speicherinhalt (Länge xr) auf ASCII-Zeichen untersucht. Nicht-ASCII-Zeichen werden durch &20 ersetzt; der Text wird nach k$ geladen.
  • block: Einfacher Blocktransfer. Würde der angegebene Block über das Speicherende hinausgehen, dann wird keine Verschiebung vorgenommen.
  • form: Das einzige M-Code-Modul, das direkt für CPC-Text geschrieben wurde. Dieses Modul ist NICHT verschiebbar.

Jede Zeile einer Textseite wird auf ihre Länge hin untersucht. Dabei ist der maximale Abstand zwischen zwei Worten eine Leerstelle. Sind mehr Leerstellen vorhanden, so werden sie so lange gelöscht, bis nur noch eine vorhanden ist. Deshalb benötigt CPC Text vers cs „künstliche“ Leerstellen, die von „form“ ignoriert werden. Ist eine Zeile länger als xr, dann wird die letzte Leerstelle gesucht. Das Wort, das die Überlänge auslöst, wird in die nächste Zeile verbannt; der Rest der alten Zeile wird gelöscht. Findet „form“ ein &F7, so wird der Rest der Zeile mit Leerstellen gefüllt.

Alle diese Module sind, bis auf „form“, an jede beliebige Speicherstelle verschiebbar. Jedes Modul kann daher auch in anderen Programmen eingesetzt werden. Nur „form“ ist speziell für CPC Text vers cs geschrieben.

Stimmen die Übergabeparameter in ihrer Anzahl nicht, so wird das Programm nicht ausgeführt.

Fernhomberg/lm, ComputerSchau

Listing: Basicteil „Textverarbeitung mit CPC 464“ finden Sie auf den folgenden Seiten.

Kurz und bündig

Ein Textverarbeitungsprogramm, das für den Hausgebrauch mit Sicherheit ausreicht. Durch die detaillierten Erklärungen kann es leicht für die eigenen Bedürfnisse „zugeschneidert“ werden. Maschinensprachemodule unterstützen den Basicteü. Die Programmbedienung erfolgt teüweise in Menü- als auch durch Befehlswortsteuerung. Im Programm selbst ist ein Kompaktor integriert, der die redundanten Speicherstellen verringert.

★ PUBLISHER: COMPUTER SCHAU
★ YEAR: 1985
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: Burkhard FERNHOMBERG
★ UPDATES: CPC Textverarbeitung vers 1.1.d (d: Diskette)
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» CPC  Textverarbeitung    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-29
DL: 53
TYPE: PDF
SiZE: 2851Ko
NOTE: Supplied by www.acpc.me ; 6 pages/PDFlib v1.6

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

Lien(s):
» Applications » CPC-Minitext
» Applications » Context (CPC Amstrad International)
» Applications » Hometext
» Applications » Traitement de texte
» Applications » Supershift for Protext (Computing With the Amstrad)
» Applications » Bw - Text (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.7-desktop/c
Page créée en 613 millisecondes et consultée 263 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.