★ APPLICATIONS ★ DIVERS ★ EIN NEUER DRUCKERTREIBER FÜR DEN CPC 464 ★ |
Drucker-Patch zur verbesserten Ausgabe unleserlicher Zeichen | Applications Divers |
Jeder CPC 464-Besitzer, der mit dem Schneider-Drucker NLQ 401 oder dem kompatiblen Brother M-4009 Programmlistings ausdrucken wollte, wird gesehen haben, daß es fast unmöglich ist, das kleine T und das Symbol für die Zahl "Eins" auseinanderzuhalten. Außerdem hat das Potenzierungs-zeichen des Druckers keinerlei Ähnlichkeit mit dem des Computers. Dieses Maschinenprogramm läßt Sie alle Listing-Sorgen vergessen: Die beiden "Problem"-Zeichen werden durch besser erkennbare Symbole ersetzt. Programmbedienung Sie können das Maschinenprogramm entweder als Quellcode eintippen und dann assemblieren lassen oder das Basic-Ladeprogramm mit den DATA-Zeilen eingeben. Bei der Quellcode-Eingabe können Sie die Startadresse des Maschinenprogramms im Speicher frei wählen, während Sie beim DATA-Loader weniger tippen müssen. Der Basic-Loader initialisiert das Programm mit CALL &A2A7. Ab sofort laufen bis zum Ausschalten des Computers alle Zeichenausgaben an den Drucker zuerst über die neue Routine, was heißt, daß alle normalen Druckbefehle wie PRINT #8, LIST #8 und WRITE #8 wie bisher weiterverwendet werden können. Sie müssen also keinesfalls Ihre Software für das Programm umstellen! Desaktivieren läßt sich das Programm mit CALL &BD37, das alle Speichertabellen, die indirekte Sprünge enthalten, neu initialisiert. Der neue Druckertreiber kann durch CALL &A2A7 jederzeit aufgerufen werden. Achten Sie aber bitte darauf, daß die Zeichen für den NLQ-Modus definiert sind. Sie lassen sich zwar auch in der schnellen "Entwurfsqualität" ausgeben, aber zumindest das kleine T fällt im Schriftbild aus der Reihe. Auch müssen Sie auf Breitschrift verzichten. Beides bedeutet aber keine echte Einschränkung, da das Programm hauptsächlich für den Listing- Sie können die NLQ-Briefqualität übrigens ganz einfach mit einem Steuerzeichencode einschalten: PRINT #8,CHR$(27);CHR$(73);CHR$(3);Wollen Sie beim Drucken aber auf die Originalzeichen zurückgreifen, so müssen Sie nicht jedes Mal den . Druckertreiber abschalten. Addieren Sie ,einfach zum ASCII-Code 94 oder 108 den Wert 128 und geben Sie dann dieses Zeichen auf dem Drucker aus. Der Trick ist ganz einfach: Der neue Druckertreiber löscht das siebte Bit nicht vor der Zeichenkontrolle. Somit werden diese Zeichen unverändert an die Original-ROM-Routine geschickt, die aber das siebte Bit nun löscht und das Zeichen in seinem Original-Aussehen an den Drucker schickt. Programmaufbau Eine besondere Eigenschaft des CPC 464, die das Programmierer-Herz höher schlagen läßt, ist, daß alle wichtigen Routinen des Betriebssystems nicht direkt angesprungen werden, sondern durch Sprungtabellen, die im RAM stehen. RAM bedeutet aber, daß diese Vektoren "umgebogen" werden können, um auf ein Maschinenprogramm zu zeigen. Dieses Verfahren wird von Amstrad und Schneider z.B. auch beim Betrieb einer Floppy-Station verwendet: alle Cassetten-Befehle wirken dann auf die Diskettenstation. Die Druckeransteuerung erfolgt im CPC 464 durch das Hilfsprogramm MC PRINT CHAR, dessen Eintrag in der Sprungtabelle an der Adresse &BD2B steht. Bei der Initialisierung des neuen Druckerprogramms wird der dort stehende Sprungvektor gelesen und intern gespeichert. Außerdem lädt das Programm einen Zeiger auf sich selbst in die Adresse &BD2B. Das Potenzierungszeichen ist schon im Drucker-Zeichensatz enthalten, nämlich als ASCII-Zeichen 240. Da der Druckerausgang aber nur sieben Bit breit ist, muß dem Drucker mit einer Escape-Sequenz mitgeteilt werden, auf den Schneider-internen Zeichensatz von 128 bis 255 umzuschalten. Ganz so einfach läßt sich das T nicht darstellen: Es wird in hochauflösender Grafik geplottet.
|