APPLICATIONSDIVERS ★ Schnelle Textausgabe für MODE 2 mit PAGE-RSX ★

Page RSX / PageEditor (CPC Amstrad International)Applications Divers
★ 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 ★ 

Echte Fenstertechnik mit CPC-Rechnern schien bisher aufgrund des geringen Speicherplatzes und der Rechengeschwindigkeit unmöglich zu sein. Bislang wurde Fenster-technik dadurch realisiert, daß ganze Bildschirmspeicherbereiche einfach kopiert wurden. Mit dieser Form der Speicherung lassen sich nur wenige Fenster verwalten, da der Speicherbedarf sehr hoch ist.

Cliquez sur l'image pour l'agrandirCliquez sur l'image pour l'agrandir

Reine Textfenster könnte man hingegen im ASCII-Format speichern und durch eine entsprechend schnelle Ausgaberoutine ausgeben. Genau diese Methode benutzt die BASIC-Befehlser-weiterung PAGE.

Der Textausgabebefehl basiert auf einer neuen Grundkonzeption. In den meisten Anwenderprogrammen werden Hilfsme-nues oder Eingabemasken durch einzelne PRINT-Befehle ausgegeben. Diese Methode ist insbesondere für große Eingabemasken oder Menues sehr umständlich und verbraucht sehr viel Speicherplatz. Außerdem führt die Ausgabe von Grafikzeichen mit Hilfe von ?CHR$ zu unübersichtlichen Programmen. Der PAGE-Befehl benutzt ein anderes Verfahren, Texte für Eingabemasken oder Hilfsfenster werden mit einem speziellen Texteditor geschrieben und dann als Textcode gespeichert. Dieser Code muß vom eigenen BASIC-Programm geladen werden und kann dann mit Hilfe des PAGE-Befehls ausgegeben werden. Die PAGE-Textausgabe ist weitgehend unabhängig von der normalen Textausgabe. Es können weiterhin alle Möglichkeiten des PRINT-Befehls genutzt werden (einschließlich Hardwarescrolling).

Die Ausgabegeschwindigkeit des PAGE-Befehls ist mit 0. 42 s/2000 Zeichen mindestens 7 mal schneller als die normale Bildschirmausgabe. Der maximale Speicherbedarf für einen Textbildschirm beträgt 2000 Bytes. Dieser Speicherbedarf kann noch verringert werden, da PAGE spezielle Steuercodes für Linefeed, TAB-Kommando und eine Stringfunktion enthält. Durch konsequente Anwendung dieser Steuercodes kann der Speicherbedarf für übersichtlich geschriebene Fenster erheb-
lich verringert werden. So belegt zum Beispiel ein komprimiertes Fenster mit 40 x 10 Zeichen nur ca. 200 Bytes. Mit einem reservierten Speicher von lOkB lassen sich somit 50 verschiedene Fenster erzeugen.

Außer den zur Textkomprimierung dienenden Steuercodes kennt PAGE auch Codes, die die Darstellungsart der Buchstaben verändern, Durch entsprechende Steuercodes sind Normalschrift, Inversdarstellung, Fettschrift, Kursivschrift, Unterstreichen, Blockgrafikzeichen und maskierte Darstellung in einem Fenster möglich. Die Darstellung von verschiedenen Schriftarten ist durch die Verwendung der Zeichematrixtabelle im ROM und einer zweiten im RAM möglich. Der Speicherbereich der Tabelle im RAM beginnt bei &9FFC.

Anwendung der BASIC-Erweiterung

a) Der Pageeditor


Der Pdgeeditor (Filename EDIT. BAS) dient zur Erzeugung von Bildschirmfenstern, die dann in eigenen Programmen mit dem Befehl |PAGE ausgegeben weiden können. Gleichzeitig dient der Editor auch als Demonstration der Leistungsfähigkeit der neuen Bildschirmausgabe.

1. Hauptmenue des Editors:

Nach dem Laden des Editors erscheint an der linken oberen Seite des Bildschirms das Hauptmenue. In diesem kann durch Auswahl des gewünschten Menuepunktes, mit Hilfe der Cursortasten, das entsprechende Unterprogramm des Editors aufgerufen werden.

2. Fenster bearbeiten:

Bevor ein Fenster bearbeitet werden kann, muß zuvor noch die Größe des Fensters mit Fenster dimensionieren festgelegt werden. Nun kann Fenster bearbeiten ausgewählt werden. Sie können nun mit dem Texteditor Ihr Fenster erstellen. In der Kopfzeile sehen Sie ein Menue, in dem Sie zwischen dem Hauptmenue. der Anzeige der Tasten belegung für Blockgrafikzeichen und dem Hinstellmenue für Schriftarten wählen können. Die Auswahl erfolgt durch Druck auf SHIFT und einer der Horizontalen Cursortasten. Bestätigt wird hier mit COPY, da die ENTER-Tasten die normale Funktion in einer Textverarbeitung übernehmen. Wollen Sie die Schriftart wechseln, so wählen Sie im Sehriftmenue die gewünschte Schriftart aus und bestätigen mit ENTER. Von nun an schreiben Sie in der gewünschten Schrift weiter.

3. Fenster laden:

Es können generell nur, vom Programm erzeugte, Editorcodes mit der Extension .PAG geladen werden. Die geladenen Fenster können dann weiterbearbeitet werden. Bei der Frage des Programms nach dem Dateinamen ist dieser ohne Namenserweiterung anzugeben!

4. Fenster normal speichern:

Hier können Sie das Fenster als Editorcode oder als ausführbaren Pagecode speichern. Der Pagecode wird hier im unkomprimierten Format gespeichert. Dieser Code kann von eigenen Programmen besser manipuliert werden als komprimierter Pagecode.

5. Fenster komprimiert speichern:

Hier wird das Fenster als speicherplatzsparender Pagecode gespeichert. Die Codeoptimierung wird vom Programm vorgenommen.

6. Fenster Statistik:

In diesem Unterprogramm wird der Speicherbedarf für komprimierten und unkomprimierten Code ermittelt und ausgegeben. Außerdem werden die jeweiligen Ausführungszeiten der Fenster ausgegeben.

7. Icons zeichnen, laden, saven:

Hier können Sie vorhandene Miniaturgrafiken laden oder selber bis zu drei Grafiken entwerfen. Diese »Icons« werden im Eingabemodus durch Druck auf SHIFT F1, F2, F3 gezeichnet. Das Laden und Speichern der Icons geschieht durch entsprechende Abfragen menuegesteuert.

b) Benutzung der Befehlserweiterung in BASIC-Programmen:

Der Programmcode des PAGE-Befehls ist nicht frei verschiebbar und muß an Adresse 39900 geladen werden (39 kB frei für BASIC!). Der Programmcode ist nicht verschiebbar, da sich das Maschinenprogramm während des Programmablaufes aus Speicherplatzgründen selbst verändert.

1. Befehlssyntax:

|PAGE,li,re,ob,un,adr,wi#

Mit den ersten vier Parametern wird die Größe des Ausgabefensters festgelegt, entsprechend dem BASIC-Befehl Window. Beim Parameter Adresse muß die Adresse stehen, an der Sie den PAGE-Code geladen haben. Der letzte Parameter ist eine Standardwindownummer (0—7). Dieses Window hat nach Ausführung des PAGE-Befehls die gleiche Größe wie das ausgegebene Fenster. Es müssen grundsätzlich alle Parameter vollständig und logisch richtig angegeben werden. Unlogische Fensterkoordinaten führen zu der Fehlermeldung Improper Argument. Fehlende Parameter zu Operand missing.

Ein Beispielprogramm

10 MEMORY 37999
20 LOAD "PAGE. BIN"
30 CALL 39900
40 LOAD "FENSTER. WIN",38000
50 |PAGE,5,75,3,223,8000,1

Sollten Sie ein Fenster mit Icons benutzen, so müssen Sie den Iconcode laden. Im Beispielprogramm müßte ein Zeile 35 stehen (35 LOAD “ICONS.ICO“).

Außerdem sollte darauf geachtet werden, daß die unteren 16 kB im RAM nicht als Speicher für Fenstercode benutzt werden dürfen, da während der Bildschirmausgabe das untere ROM eingeschaltet ist.

3. Steuercodes der Ausgabe:

Der PAGE-Befehl liest ASCII-Codes aus dem angegebenen Speicherbereich und stellt diese auf dem Bildschirm dar. ASCII-Codes kleiner 32 werden nicht dargestellt, sondern bewirken zum Teil eine Änderung der Darstellungsart oder Textkomprimierung .

Steuercodes:

0: Textendmarkierung Abbruch der Ausgabe
7,n: Tabulatorfunktion n = Anzahl der Leerzeichen
8,m,n: Stringfunktion m = ASCII-Code des Strings n = Anzahl der Zeichen < 255
9: Unterstreichen ein- oder ausschalten
10: Schrift maskiert ein- oder ausschalten
11: Zweitzeichensatz ein- oder ausschalten
13: Linefeedfunktion
24: Inversdarstellung ein- oder ausschalten

c) Algorithmus der Ausgaberoutine

Der PAGE-Befehl greift direkt auf den Bildschirmspeicher zu und verwendet wenige Firmwareroutinen. Im Übrigen gilt grundsätzlich, daß Firmwareroutinen zu langsam für zeitkritische Programme sind.

Hinweise zum Abtippen

Die Eingabe des Programmes sollte sinnvollerweise wie folgt vor sich gehen:

1. Abtippen, Abspeichem und Starten der Loader (Listings 1—4) Diese Programme erzeugen nach dem Starten Binärfiles, die vom Hauptprogramm gebraucht werden.

2. Abtippen, Abspeichern und Starten des Hauptprogrammes (Listing 5)

Dann können Sie mit dem definieren Ihrer Windows beginnen.

(Uwe Ehnert) , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1987
★ AUTHOR: Uwe Ehnert
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Page  RSX    (CPC  Amstrad  International)    GERMANDATE: 2022-08-02
DL: 108
TYPE: ZIP
SiZE: 11Ko
NOTE: 40 Cyls
.HFE: Χ

» Page  RSX    (CPC  Amstrad  International)    GERMAN    LISTINGDATE: 2022-08-02
DL: 87
TYPE: PDF
SiZE: 8266Ko
NOTE: 19 pages/PDFlib v1.6

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

Lien(s):
» Applications » Windrad (AM-Mag)
» Applications » Windows Kasse
» Applications » Window Saver
» Applications » RSX Window (CPC Magazin)
» Applications » Window (CPC Magazin)
» Applications » Window - Planer (CPC Amstrad International)
Je participe au site:
» Vous avez des infos personnel ?
» 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
Page créée en 029 millisecondes et consultée 417 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.