APPLICATIONSDIVERS ★ 8-BIT-ZELCHEN (SCHNEIDER MAGAZIN) ★

8-Bit-Zelchen (Schneider Magazin)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 ★ 

Hier ist nun der dritte und letzte Teil der 8-Bit-Er-weiterung des Druckeranschlusses am CPC. Mit diesem kleinen Programm und der Drahtbrücke aus Teil 1 lassen sich selbstdefinierte Zeichen ohne 1/6 Zeilenvorschübe und andere beliebte Tricks mit dem Drukker erzielen. Das Programm stellt den RSX-Befehl [|PRT.MTR] zur Verfügung, der alle Zeichen, die mit dem SYMBOL-Kommando erzeugt wurden, exakt zu Papier bringt. Hat man z.B. die RSX-Erweiterung installiert und eine eigene Zeichentabelle mit SYMBOL AFTER 200 angelegt, werden ab jetzt alle Zeichen von 200 an aufwärts beim Ausdruck berücksichtigt, alle anderen normal ausgegeben.

Die Ausgabe der selbstdefinierten Zeichen erfolgt mit [ESC * m n1 n2] und ist somit auf Epson-kompatiblen Printern einsetzbar. Wer eine andere Steuersequenz benötigt, kann diese leicht in das Programm ein-poken. Für Drucker, die mit dem achten Bit die unterste Nadel ansteuern, muß das Programm etwas geändert werden. Den Steuer-String finden Sie ab Adresse & A609 in folgender Form:

05 1B 2A 010A 00 0 0 0 0 0 0 0 0 0 0 0

Alle Werte sind hexadezimal angegeben. Das erste Byte beinhaltet die Länge des Strings, also &05. Das folgende, &1B, stellt den eigentlichen Beginn des Strings dar und den Wert für ESC. &2A entspricht dem * und ist mit ESC für die Auswahl des Grafikmodus des Druckers zuständig. Mit &01 für m wird die doppelte Dichte eingeschaltet. Der Wert &0A von n1 bedeutet 10 dezimal und gibt an, wie viele Daten-Bytes folgen. Der folgende Wert &00 für n2 besagt, wie viele 256-Byte-Blöcke gesendet werden, nämlich kein einziger. Diese beiden letzten Werte (nl und n2) errechnen sich folgendermaßen: n1 = Anzahl Bytes MOD 256 n2 = Anzahl Bytes \ 256

Die folgenden 11 Bytes stehen für Steuer-Strings mit mehr als 5 Zeichen zur Verfügung. Der Bereich für die Daten-Bytes beginnt dann bei Adresse & A61A und ist entsprechend aufgebaut. Das erste Byte enthält die Länge, in diesem Fall wiederum 10, da sie ja auch im Steuer-String angegeben wurde. Diese beiden Werte sollten immer übereinstimmen, da sonst die korrekte Funktion der RSX-Erweiterung nicht gewährleistet ist. Außerdem sollte der Maximalwert 16 nicht überschreiten, weil die folgenden 16 Bytes für die Druckermatrix vorgesehen sind. Das Programm belegt somit nach (!) der Initialisierung das RAM von &A500 bis einschließlich &A62A.
Die Einbindung des RSX-Befehls |PRT.MTR geschieht folgendermaßen:

[CTRL] [SHIFT] [ESC]

SYMBOL AFTER 256
MEMORY &A482:LOAD”8PRT#8.RSX”:CLOSEIN
CALL &A483 :'-> HIMEM wird auf &A4FF gesetzt
SYMBOL AFTER ???:'-> ganz nach Wunsch

Betrachten wir nun noch die Darstellung eines Zeichens auf dem Bildschirm. Zunächst wird dieser mit MODE 2 initialisiert. Nun definiert man ein Zeichen, z.B. Nummer 255. Schematisch sieht das so aus: SYMBOL 255, Byte1, Byte2, .. .Byte8
B1% = &X11111111
B2% = &X01111111
B3% = &X00111111
B4% = &X00011111
B5% = &X00001111
B6% = &X00000111
B7% = &X00000011
B8% = &X00000001

SYMBOL 255, B1%, B2%, B3%, B4%, B5%, B6%, B7%, B8%

Dieses Zeichen wird nun mit LOCATE 1,1 :PRINT CHR$ (255) in der linken oberen Ecke angezeigt. Da der Bildschirm aber immer im Grafikmodus arbeitet, ist Zeile 1 in acht Grafikzeilen unterteilt, in die nun die acht Bytes des Symbols geschrieben wurden. Das erste Byte in der obersten Zeile hat dann im Bildschirm-RAM die Adresse &C000.

C000 Byte 1 in Zeile 398 11111111
C800 Byte 2 in Zeile 396 01111111
D000 Byte 3 in Zeile 394 00111111
D800 Byte 4 in Zeile 392 00011111
E000 Byte 5 in Zeile 390 00001111
E800 Byte 6 in Zeile 388 00000111
F000 Byte 7 in Zeile 386 00000011
F800 Byte 8 in Zeile 384 00000001

Für den Drucker sind aber immer nur acht untereinander liegende Bits interessant. Man kann also nicht einfach Byte 1, Byte 2 usw. an ihn senden, sondern muß aus den untereinander liegenden Bits aller acht Bytes ein neues Byte bilden. Diesen Vorgang erledigt unter anderem auch |PRT.MTR. Das erste Byte für den Drucker wäre also &X10000000, das zweite &X11000000 usw. Da aber ein normales Zeichen in mehr als acht Punktspalten vom Drucker dargestellt wird, gibt man noch einige Leerspalten aus. Der Steuer-String ist auf zwei davon eingestellt (8+2=10). Dies entspricht dem Modus Elite der Epson-Drucker. Bei anderen Geräten muß man etwas experimentieren.

WIDTH 10
PRINT#8, ”HHHHHHHHHH”
V$=”HHHH”+CHR$(255) + CHRa(255) + "HHHHHHHHHHHHHH"

|PRT.MTR, @Va Die Ausgabe müßte so aussehen:
HHHHHHHHHH
HHHH HHHH
HHHHHHHHHH

Alle Hs sollten untereinander liegen. Wenn die der mittleren Zeile etwas überstehen, so sind die Werte zu verkleinern. Befindet sich das letzte H zu weit innen, muß man die Werte erhöhen (Erklärung SteuerjVa,1 Das entspricht dem Semikolon des PRINT-Kommandos.

Zum Schluß sei noch erwähnt, daß auch Druckersteuer-Strings in Va enthalten sein können. Hierbei ist aber zu beachten, daß eventuell erforderliche Parameter unterhalb des SYMBOL-AFTER-Befehls liegen, da sonst der Parameter in acht Bytes aufgesplittet wird. Von diesen acht Bytes würde wiederum das erste als Parameter interpretiert, und das Chaos wäre perfekt. Hier ein Beispiel, wie es nicht aussehen sollte: SYMBOL AFTER 128

V$=”XYZ” + CHR$(27) + ”0” + CHR$(132) + ”XYZ”
|PRT.MTR, @V$

Mit [ESC Q n] wird normalerweise der rechte Rand eingestellt. Der Wert von n liegt aber mit 132 innerhalb der Symboltabelle und würde somit als Grafikzeichen behandelt. Zum Glück benötigen aber die meisten Steuersequenzen keine so hohen Werte und können somit problemlos eingesetzt werden.

Besitzer eines NEC Px erhalten mit diesem Programm zwar leserliche, aber gestreifte Zeichen, da nur jede dritte Nadel der 24-Nadel-Matrix im 8-Bit-Modus angesteuert wird. Deshalb sollten sie die 24-Nadel-Version des Lister-Programms (8-Bit-Fassung, s. Ausgabe 9/87 des Schneider Magazins) und des |PRT.MTR-Befehls verwenden. Beide Programme sind als Zugabe auf den Fingerschonend-Datenträgern 10/87 erhältlich.

H. H. Fischer, Schneider Magazin

★ PUBLISHER: Schneider Magazin
★ YEAR: 1988
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: H.H.Fischer
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» 8-Bit-Zelchen    (Schneider  Magazin)    LISTING    GERMANDATE: 2021-02-02
DL: 173
TYPE: PDF
SiZE: 187Ko
NOTE: 1 page/PDFlib v1.6

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

Lien(s):
» Applications » Rainbowscript (CPC Amstrad International)
» Applications » Info-Script 6128
» Applications » Locoscript, premiers pas ... (Amstrad Magazine)
» Applications » Jetscript 464
» Applications » Microscript Word Processor
» Applications » Scriptor (Pride Utilities)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» 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/c
Page créée en 294 millisecondes et consultée 793 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.