★ APPLICATIONS ★ DIVERS ★ COPYPIC ★![]() |
| Copypic (CPC Amstrad International) | Applications Divers |
LOGO-Grafik schwarz auf weiß Leider bietet die Programmiersprache LOGO keine Möglichkeit, ein erstelltes "Bild" auf dem Drucker auszugeben. Die durch gleichzeitiges Drücken der EXTRA- und PTR-Taste ausgelöste Hardcopy-Funktion bringt naturgemäß den gesamten aktuellen Bildschirminhalt auf das Papier, und dies in einem vergleichsweise kleinen Format. Mit COPYPIC kann man nun LOGO-Grafiken in einem größeren Format auf den Drucker ausgeben. Da die Anzahl der Kopfzeilen und der Rand unter Programnikontrolle einstellbar sind, lassen sich LOGO-Grafiken auch in Loco-Script-Texte "einbinden". LOGO und seine Bilder Wie aus dem "mageren" LOGO-Teil des Joyce-Benutzer-handbuches zu entnehmen ist, wird das gerade auf dem Schirm gezeigte Bild mit dem Befehl savepic "name in die Datei name auf Diskette gespeichert. Wer schon einmal mit DIR [SIZE] unter CP/M seine LOGO-Dateien begutachtet hat, wird bemerkt haben, daß jedes auch noch so kleine Bild volle 23 kByte Speicherplatz verbraucht. (Anmerkung für "Neulinge": bei dem DIR- Befehl muß statt den eckigen Klammern das große Ä für Klammer auf bzw, das große Ü für Klammer zu verwendet werden.) Wer nachrechnet, hat schnell die Lösung: Die Auflösung des Joyce-Monitors beträgt 720 x 256 Punkte (Spalten x Zeilen). Das macht 184320 Punkte, oder Pixel, wie die Eingeweihten einen Punkt auf dem Monitor nennen. Ein Pixel entspricht einem Bit, ein Byte enthält 8 Bit. Also 184320 geteilt durch 8 sind 23040 Bytes. Das entspricht den angezeigten 23 kByte. LOGO tut aber noch mehr. Als Datei-Kopf werden 38 Byte abgespeichert. In den ersten sieben Bytes dieses Datei-Kopfes steht im ASCII-Code das Wort "PICTURE". Hinter dem Datei-Kopf sind dann die 256 Zeilen ä 90 Byte abgespeichert. 720/8 = 90 Byte entsprechend der horizontalen Auflösung, 256 Zeilen entsprechend der vertikalen Auflösung. Der Drucker und seine Grafik Der Drucker von Joyce hat nicht nur einen immensen Zeichensatz und diverse Schriftarten, sondern er kann auch Grafik aufs Papier bringen. Das geht mit einfacher Auflösung (480 Pixel/Zeile) oder mit doppelter Auflösung (960 Pixel/Zeile). Da der Druckkopf des Druckers acht Nadeln besitzt, die untereinander (vertikal) angeordnet sind, druckt er immer acht Grafikzeilen auf einmal. Der springende Punkt In diesen, scheinbar nebensächlichen Anmerkungen liegt nun der Hund bzw. das Pixel begraben. Während LOGO in seiner Bild-Datei jeden Bildpunkt fein säuberlich hintereinander ablegt, braucht der Drucker acht Pixel, die jeweils 720 Bit bzw. 90 Byte auseinanderliegen (siehe auch Bild 1 und 2). Damit liegt die Aufgabenstellung für das Programm fest. Bit für Bit für Bit... Zunächst müssen acht Grafikzeilen ä 90 Byte mit den 720 Bildpunkten von der Diskette gelesen werden. Dann werden jeweils aus den acht untereinanderliegenden Bytes, die eine 8x8-Bit-Matrix bilden, die Werte der Spalten berechnet und diese an den Drucker ausgegeben. Für ein vollständiges LOGO-Bild muß der Drucker also 256 / 8 — 32 Zeilen drucken. Da nun erstens solche Bit-Rechnerei nicht gerade die Stärke von Basic ist und zweitens pro Druckzeile 5760 Bildpunkte umgewandelt werden müssen, dauert die Erzeugung einer Druckzeile ca. eine Minute. Der Gemütsmensch wird sich angesichts dieses Zeitaufwandes zur Kaffeepause zurückziehen und dem Computer die Arbeit überlassen. Wer es eiliger hat, dem bietet das Programm zwei Möglichkeiten immenser Beschleunigung:
Die Menuepunkte Im zweiten Teil, in dem sich die Menuepunkte befinden, sehen Sie einen Menuepunkt invers dargestellt. Dort befindet sich der Menuecursor. Diesen können Sie mit den Cursor-links- bzw. -rechts-Tasten bewegen. Sicher haben Sie auf irgendeiner Diskette schon ein LOGO-Bild abgespeichert. Diese LOGO-Bilder nennen wir ab jetzt PIC-Dateien. da sie den Dateityp .PIC besitzen.
Bild 1 Jetzt gehts los...
PIC oder PRT Die PIC-Dateien enthalten die Original-LOGO-Bilder. wie sie mit dem savpic- Befehl gespeichert wurden. PRT-Dateien hingegen sind Dateien, welche das Programm während des Ausdruckens einer PIC-Datei selbständig erzeugt. PRT-Dateien enthalten also die "schnellen" Bilder, von denen weiter oben schon die Rede war. Darfs auch ein bißchen mehr sein? Mit dem Menuepunkt "zeilcn" können Sic einstellen, wieviele Druckzeilen der PIC-Datei ausgedruckt werden sollen. Maximal sind dies 32 Zeilen.
Mit oder ohne? Mit Hilfe des Menuepunktes "±prt" körinen Sie entscheiden. ob eine PRT-Datei erzeugt werden soll oder nicht. Normalerweise ist die Erzeugung einer PRT-Datei immer empfehlenswert. Sie müssen nur darauf achten, daß auf Ihrer Datendiskette genügend Speicherplatz vorhanden ist. Ein DISK-FULL-Fchler wird nicht abgefangen und bedeutet den unsanften Abbruch des Programmes. Eine PRT-Datei verbraucht nicht generell 23 kByte Speicherplatz; der Platzbedarf richtet sich nach der Anzahl der Zeilen, die gedruckt werden sollen und liegt zwischen einem kByte und 23 kByte. Die Laufzeit des Programmes verlängert sich durch die Generierung der PRT-Datei nur unmerklich. Die PRT-Datei wird mit demselben Namen versehen.den auch die PIC-Datei hat; es wird nurautomatisch der Dateityp in .PRT geändert. Let's go Wenn Sie alle Parameter entsprechend Ihren Wünschen eingegeben haben, der Dateicursor an der richtigen Stelle steht und das Kaffeewasser kocht, bleibt nur noch eins zu tun: — Menuecursor auf "START" stellen und RETURN-Taste drücken - und Kaffee trinken... Zum Verlassen von COPYPIC in Richtung C/PM dient der Menuepunkt "EXIT"; abbrechen können Sie das Programm jederzeit mit der STOP-Taste.
COPYPIC intern Im Listing sind ab Zeile 10000 die Bildschirm- und Druckerkommandos definiert. Da dieser Teil als Modul hinzugeladen wurde, werden von diesen Kommandos nicht alle benötigt. Wenn Sie diese zuerst eingeben und als Text-Datei mit SAVE "BDCODES.TXT",A abspeichern, so kommen Sie gleichzeitig zu einer recht umfassenden Kommandobibliothek, die bei der Entwicklung eigener Programme nützlich ist. In Ihre eigenen Programme können diese Kommandos mit MERGE "BDCODES.TXT" leicht eingebunden werden und mit GOSUB 10000 initialisiert werden. Natürlich dürfen in Ihrem Programm die Zeilennummern von 10000 bis 11350 nicht benutzt werden. Thorsten Schlote/MC, CPCAI8608
|