★ APPLICATIONS ★ PAO/PRESSE ★ QUERDRUCK (CPC AMSTRAD INTERNATIONAL) ★ |
Querdruck (CPC Amstrad International) | Applications Pao/presse |
Die Easy Printer Nachlese Selten gelingt ein Programm im ersten Anlauf perfekt. Kleine Fehler, neue Anregungen und Ideen, die im nachhinein eingebracht werden, feilen ein Programm zur Perfektion. Diese Nachlese beinhaltet eine Reihe von Verbesserungen, Tips, Tricks und Ergänzungen. Leider haben sich im ersten Artikel ein paar kleine Fehler eingeschlichen. Im DATAlader zu »GH5.BIN« stimmte leider die Ursprungsadresse der Routine im Datalader nicht. Eigentlich müßte GH5 bei &A220 beginnen, wurde jedoch durch den abgedruckten Datalader ab Adresse &A234 in den Speicher geschrieben, also 35 Bytes zu weit. Um dies zu beheben, müßten Sie die Zeilen 69 und 77 folgendermaßen ändern: Zeile 69: adr = adresse+544 Zeile 77: For f=adresse to adresse +543 Diese Änderungen müßten Sie in den entsprechenden Zeilen ergänzen. In den zu ladenden Datas hat sich ebenfalls ein Fehler eingeschlichen. Und zwar müßte in der Zeile 68 das neunte Bit von 00 in 4C geändert werden. Die neue Prüfsumme dieser Zeile wäre nun nicht mehr 0033 sondern 007F. Nach diesen kleinen Änderungen müßte Easy Printer tadellos funktionieren, sofern Sie einen DMP oder Epson kompatiblen Drucker besitzen. Sollte dies auf Ihren Drucker nicht zutreffen, wollen wir Ihnen nun zeigen, wie Sie das Programm verändern müssen, damit es auch mit anderen Druckern läuft. Anpassung für nicht Epsonkompatible Drucker Grundvoraussetzung ist auf jeden Fall ein grafikfähiger Drucker. Der Drucker muß auf einen Grafikmode umgeschaltet werden können und eine 7-Bit Anpassung für die CPC Centro-nicsschnittstelle besitzen. Im Klartext bedeutet das, daß der Drucker ein Byte im 7-Bit Raster ausdrucken kann. Sollte der Drucker dazu nicht fähig sein, bedeutet das, daß Easy Printer nicht mit ihm arbeiten kann. Das größte Problem besteht in der Inkompatibilität der Drucker untereinander. Oft reicht es aus, die Druckersequenz zu ändern, um den Drucker auf den Grafikmodus umzuschalten. Sicherlich wird nicht jedem auf Anhieb klar sein, was damit gemeint ist und wie das geht, darum hier nun eine kurze Erklärung. Druckersequenzen Text und Grafik auf dem DruckerIViele Drucker haben sowohl einen Textmode als auch einen Grafikmode. Im Textmode gibt es »Zeichen- und Steuercodes«. Insgesamt gibt es davon 256. In dieser Tabelle steht beispielsweise die Zahl 65 für den Buchstaben A, oder der Code 49 für die Ziffer 1 (siehe auch ASCII-Tabelle, ASCII = American Standard Code for Information Interchange). Im Bereich 0 bis 31 stehen die sogenannten Steuerzeichen. Diese werden in der Regel nicht ausgedruckt, sondern, wie der Name schon sagt, steuern den Drucker. Wird vom Rechner eine 13 übermittelt, schiebt der Drucker seinen Druckkopf ganz nach links in die Urposition (Carriage Return). Eine 10 bewirkt, daß der Drucker das Papier um eine Zeile vorschiebt. Es gibt allerdings auch sogenannte Druckersequenzen, in denen eine ganze Reihe von Zahlen hintereinander den Drucker steuern. Beim DMP sind dies die Escape Sequenzen. Sie wurden deshalb so genannt, weil sie immer mit ESC (Code 27) starten. Eine der wichtigsten Sequenzen, die Easy Printer benutzt, ist jene, welche den Drucker auf den Grafikmodus umstellt. Im Grafikmode weden die ankommenden Informationen Bit für Bit, im Bitmuster gedruckt. Dazu wird in der Steuersequenz festgelegt wieviele Bytes danach als Grafik ausgedruckt werden sollen. Diese Grafikbytes werden dann nicht mehr auf weitere Steuercodes untersucht, sondern sogleich ausgedruckt, solange, bis die vorgeschriebene Anzahl von Bytes erreicht ist. Danach kehrt der Drucker wieder in den Textmode zurück und erkennt auch wieder Steuercodes. Auch von Easy Printer werden solche Steuercodes verwendet, um Grafiken auszudrucken. Um diese Sequenzen zu ändern, muß man natürlich wissen, welche Steuercodes was bewirken. Steuercodes Ursache und Wirkung Wenn unter Easy Printer ein Bild ausgedruckt werden soll, wird zuerst, vor jeder Druckzeile ein linker Rand geschaffen, damit die Grafik in der Mitte des Blattes liegt. Dafür wird ab Adresse &A3C7 folgende Steuersquenz übermittelt: ADR &A3C8: (ESC) Mit ESC + Y + Breite lo + Breite hi werden die nächsten 51 Bytes als Grafik ausgedruckt. Um einen weißen Rand zu erreichen, wird 51 mal die Null übermittelt. Danach steht der Druckkopf an der richtigen Stelle. Danach wird dem Drucker eine Steuersequenz übermittelt, die den Drucker für die nächsten 782 Bytes auf Grafik umstellt. Diese Sequenz befindet sich ab Adresse &A272. ADR &A274: 27 (ESC) Sind diese 782 Grafikbytes ausgedruckt, wird ein Wagenrücklauf und ein Zeilenvorschub durch folgende Sequenz erreicht: ADR &A3BD: 13 (CR) Wird beim DMP der Zeilenabstand im Grafikmode automatisch auf 7/72“ umgeschaltet, muß dieser bei anderen Druckern »von Hand« umgestellt werden. Easy Printer und der NLQ 401 Speziell für die Benutzer dieses Druckers ist die nun folgende Änderung des Programmteils Designer gedacht. Sie muß im ursprünglichen Programm ab Zeile 30100 vorgenommen werden. 30100 Print AN$; :TAG:MOVE 0,16:Print“ Drucker bereitmachen!“;: Print#8, CHR$(27)CHR$(49): Gosub 30000 : Move 0,16: Print “Drucker bereitmachen!“; :Tagoff: Print aus$;: Return Easy Printer Querdruck Das kleine Programm, das Sie auf diesen Seiten finden, stellt eine Ergänzung zum Easy Printer dar. Es dient zum Ausdruck von Bannern oder Spruchbändern. Es läuft auf allen CPC'c mit einem angeschlossenen DMP oder Epson kompatiblen Drucker. Sollten Sie einen solchen nicht besitzen, sollten Sie sich den Schluß dieses Artikels genauer ansehen. Dort gehen wir noch einmal auf systemspezifische Steuerzeichen ein. Das Programm Querdruck kann auf jeder beliebigen Diskette abgespeichert werden. Nach dem Start durch RUN“Quer werden Sie aufgefordert, die Hauptdiskette (vergl. PC 8/87 ) einzulegen und dies durch einen Tastendruck zu bestätigen. Danach wird das File SIGNO.Bin in den Speicher geladen. Oben rechts auf dem Bildschirm wird nun ein kleines Menue sichtbar. Mit QUERDRUCK können Sie unter BEDITOR oder ZEDI-TOR erstellte Grafiken und Texte im Querformat ausdrucken. Es wird dabei die Maximale Papierbreite ausgenutzt und verschiedene Formate von Bildern und Zeichensätzen auf die optimale Größe skaliert. 1. Zeichensatz laden: Der Dateiname muß eingegeben werden. Nach dem Ladevorgang wird nach der Zeichensatznummer innerhalb der geladenen Datei gefragt. Es kann sich durchaus mehr als nur ein Zeichensatz in der Datei befinden. Möchte man einen anderen Zeichensatz aus der Datei wählen, so muß die erste Funktion im Menue aufgerufen werden. Damit der Name nicht nochmals eingegeben werden muß, wird immer der Name der zuletzt geladenen Datei auf den Dezimalpunkt des Zehnerblockes gelegt. 2.: Text Drucken aufgerufen, muß man den zu druckenden Text eingeben. Dieser wird dann im aktuell angewählten Zeichensatz ausgedruckt. Ähnlich verhält es sich mit Bildern. Sie werden wie die Zeichensätze geladen und verschiedene Bilder können innerhalb der Datei angewählt werden. Punkt 4 des Menues startet den Ausdruck. Es können problemlos mehrere Bilder und Texte hintereinander ausgedruckt werden, da nach jedem Druckvorgang der Drucker neu initialisiert wird. Anpassung für »Fremde« Drucker Da das Programm Querdruck komplett in Basic geschrieben wurde, dürfte die Anpassung auf andere Drucker problemlos vonstatten gehen. Für den Querdruck definiert sich der Rechner ein Zeichen (Zeichen Nummer 5) auf dem Drucker. Dieses Zeichen wird dann im Proportional-Textmode ausgegeben. Um verschiedenen Schrift- und Bildgrößen gerecht zu werden, wird dieses Zeichen zwischen 5 und 11 Punkten breit als Rechteck definiert. Dadurch können zwischen 80 und 176 Punkte in eine Zeile geschrieben werden. Ist ein Zeichen oder Bild weniger als 80 Punkte hoch, versucht der Rechner entsprechend zu vergrößern, damit das Zeichen bzw. Bild die maximale Größe erreicht. Zentriert wird selbständig. Hier nun die erforderlichen Druckersequenzen: Zeile 410: Hier wird der Drucker zum Definieren des Zeichens Nr. 5 vorbereitet. Zeile 420: Entsprechend der Breite des Zeichens Nr. 5 (Variable BR) werden die Daten ab Zeile 550 eingelesen und an den Drucker geschickt. Zeile 430: Übernimmt mehrere Funktionen. 1. CHR$ (27) “%“ CHR$ (1) CHR$ (0) Wählt den neuen Zeichensatz an. 2. CHR$ (27) “I“ CHR$ (1) Veranlaßt, daß bestimmte Steuerzeichen ausgegeben werden (nur so wird Nr. 5 auch wirklich sichtbar). 3. CHR$ (27) “C“ CHR$ (0) CHR$ (2) definiert die Papierlänge auf 20. Dadurch wird bei DMP Druckern ein unerwünschter mehrmaliger Zeilenvorschub am Ende einer Seite verhindert. Zeile 440 Definiert den Zeilenabstand auf 7/72 Zeile 520 In richtiger Abhängigkeit, ob ein Punkt gesetzt ist oder nicht wird entweder ein “ “ oder CHR$ (5) an den Drucker geschickt. Analog verhält es sich in den Zeüen 750, 760, 770 und 850. Somit bleibt uns nur noch, Ihnen viel Spaß mit dieser nützlichen kleinen Ergänzung zu Easy Printer zu wünschen.
|