APPLICATIONSDIVERS ★ DIN-A4-Hardcopy mit 8 Graustufen|CPC Magazin) ★

Giga Dump (CPC 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 ★ 

"GIGADUMP” ersetzt die Farbe durch Grautöne und bringt auf den Hardcopys damit oft bessere Ergebnisse

Unter den vielen Möglichkeiten zur Ausgabe von Grafiken auf den Drucker hat das Programm "HIDUMP” (Schneider-Magazin 4/86) ein besonderes Interesse gefunden, da es Bilder mit einer größeren Qualität als sonst üblich liefert. "GIGADUMP” setzt diesen Weg fort; es ist sozusagen die Großbildversion von "HIDUMP”.

Seine Vorteile sind:

  • Freie Wahl eines Bildschirmausschnittes
  • Richtiges Seitenverhältnis (Kreise werden als Kreise abgedruckt)
  • Acht "echte” Graustufen (sieben plus Papierfarbe)
  • Freie Zuordnung von Bildschirmfarben zu Grauwerten
  • Die Routine arbeitet an jedem freien Speicherplatz
  • Wahlweise als RSX (Befehlserweiterung)

Seine Nachteile sind:

  • Es läßt sich nur für den NLQ 401 und eng verwandte Drucker benutzen.
  • Ein Vollbildausdruck dauert ca. 40 Minuten.
  • Das Programm ist entsprechend aufwendig.

Andere Hardcopies unterscheiden die Bildschirmfarben in Form von Schraffierungen, die je nachdem gut geeignet sind, die Flächen bei Balkendiagrammen, technischen Zeichnungen u.ä. darzustellen. Punkte und Linien kommen dabei schlechter weg, und aus größerem Betrachtungsabstand läßt sich kaum noch beurteilen, ob eine Schraffierung linksherum oder rechtsherum verläuft. Der Helligkeitseindruck ist gleich.

Für eher künstlerische Zwecke, wie Grafiken, die mit einem Malprogramm erstellt wurden, Apfelmännchen, Grafikgags und digitalisierte Videobilder, verspricht "GIGADUMP” bessere Ergebnisse.

Warum sich bei diesem Konzept gerade die Zahl von acht Graustufen ergibt (siehe auch ”HIDUMP”-Beschrei-bung im Schneider-Magazin 4/86), soll im Folgenden erklärt werden.

Pixel-Latein

Bei dem Programm "HIDUMP” wurde häufig beklagt, der Unterschied zwischen den beiden dunkleren Graustufen sei je nach Alter des Farbbandes zu gering. Wie kommt es eigentlich zu diesem Effekt?

Bekanntlich besteht das Bild auf dem Monitor aus einzelnen Punkten (Pixeln), im MODE 1 z.B. 320 x 200. Dem Drucker stehen für die Darstellung eines Bildschirmpunktes mehrere Druckpixel zur Verfügung. Er kann in dem betreffenden Bereich also die Nadeln mehrfach aufs Papier schlagen, wodurch sich eine unterschiedliche Einfärbung ergibt. Sobald die Nadeln dichter nebeneinander auftreffen, wie es der Drucker mit dem 2- und 4fachen Bitbildmodus anbietet, wird die Färbung weniger verstärkt. Die zusätzlichen Druckpixel geraten an Stellen, die bereits von den Nachbarpixein her schwarz sind, da sich die von den Nadeln erzeugten Punkte gegenseitig überlappen.

So kommt es, daß bei "HIDUMP” der Unterschied zwischen zwei und fünf Druckpixeln optisch nur gering ausfällt. Mehr und bessere Grauabstufungen sind nur dann möglich, wenn für einen einzelnen Bildpunkt eine größere Fläche zur Verfügung steht. Aus der größeren Zahl der Druckpixel kann dann eine geeignetere Auswahl getroffen werden.

Größte Hürde ist der (für Textausgabe sinnvolle) unterschiedliche waagrechte und senkrechte Abstand der Druckpixel, der bei einfacheren Hardcopies die bekannten platten Bilder entstehen läßt. Um das richtige Seitenverhältnis zu erzielen, muß für jede fünfte Bildschirmpixelreihe eine zusätzliche sechste Druckpixelreihe erzeugt werden. Die einfachste Möglichkeit, jeweils eine Reihe doppelt zu drucken, führt zu unschönen Bildern. Der Druckerbietet jedoch noch den 1/216”-Zeilenvorschub, der Va Pixelhöhe entspricht. Mit Hilfe der Drittelabstände läßt sich dann diè überzählige sechste Zeile halbwegs gleichmäßig verteilen. Der Druckkopf muß dazu aber auch jeweils dreimal über jede Stelle fahren.

Beim DIN-A4-Format stehen für einen MODE-1 -Punkt 0 bis 8 Druckpixel zur Verfügung. Mit der Verdreifachung sind es dann sogar 0 bis 24. Damit lassen sich 8 gut voneinander abgesetzte Grauabstufungen erzielen.

Für einen MODE-0-Punkt stehen doppelt so viele Druckpixel bereit. Ließe sich damit nicht die Traumzahl von 16 Graustufen erreichen? Im Prinzip ist dies möglich, allerdings geraten die Druckpixel dann so weit auseinander, daß sie den Zusammenhang zueinander verlieren und die optische Wirkung fragwürdig ist. Bei "GIGADUMP” wurde deshalb darauf verzichtet.

Die Übertragung des Bildschirminhaltes auf das abweichende Druckformat stellt ein erhebliches programmtechnisches Problem dar. Es versteht sich von selbst, daß ”GIGADUMP” vollständig in Maschinensprache geschrieben wurde. Wer mehr darüber erfahren will, sollte sich die "HlDUMP"-Beschreibung näher ansehen. Beide Programme besitzen das gleiche Grundprinzip; der in den DATA-Zeilen 100-150 enthaltene Teil ist sogar identisch. Die folgende Beschreibung richtet sich an alle User, die sich nicht näher für die Maschinensprache interessieren, sondern das Programm einfach nur anwenden wollen. Wer bereits mit "HIDUMP" zurechtgekommen ist, wird auch mit "GIGADUMP" keine Probleme haben. Beide Programme sind kompatibel, also hinsichtlich Lade- und Aufrufformalitäten gleich.

Die ersten Schritte

Zuerst muß das Basic-Ladeprogramm abgetippt werden. Es lädt den Maschinencode aus den DATA-Zeilen an einen Speicherbereich des CPC. Auch Teilversionen dieses Programms lassen sich zum Testen beliebig oft mit RUN starten. "Type mismatch” deutet auf einen Tippfehler in den DATA-Zeilen hin. Sobald alle DATA-Werte vorhanden sind (ob alle richtig sind, wird allerdings nicht geprüft), gibt das Programm eine Bestätigung aus.

Nun kann man einen der SAVE-Befehle aus Zeile 24 oder 26 eingeben. Wofür man sich entscheidet, bleibt jedem selbst überlassen. RSX bedeutet, daß die Hardcopy über einen Erweiterungsbefehl mit dem Namen GDUMP aufgerufen wird, bei der anderen Form über einen CALL-Befehl (wie bei "HIDUMP”).

Wie geht's weiter?

Das Maschinenprogramm "GIGADUMP.RSX” bzw. "GI-GADUMP.MC” befindet sich nun auf Cassette oder Diskette und soll endlich eingesetzt werden. Es gibt beliebige Programme, die Grafiken erzeugen; "GIGADUMP” muß nun irgendwie hinzukommen, um auf Knopfdruck den Bildschirminhalt auf den Drucker zu bringen. Maschinenprogramme, so auch "GIGADUMP”, brauchen vordem Laden eine Speicherplatzreservierung mit einem MEMORY-Befehl. Bei Verwendung der Speicheradresse aus dem Basic-Lader ist dies: MEMORY &8FFF oder gleichwertig Zeile 11 aus dem Basic-Lader. Dann kann mit LOAD "GIGADUMP .RSX”, &9000 "GIGADUMP” geladen werden. Die RSX-Form benötigt dann noch als Initialisierung ein CALL &9000, womit bis zum nächsten Reset der Befehl GDUMP zur Verfügung steht.

Wer die Vorbereitungsbefehle fest in ein Basic-Programm einbauen will, muß gut aufpassen. Ein versehentliches zweites RUN kann die vorangegangene Programmierarbeit zunichte machen. Mit dem erneuten Laden eines RSX (das Problem betrifft also nicht nur "GIGADUMP”) wird nämlich die sogenannte RSX-Kette zerstört. Der nächste Versuch, einen Erweiterungsbefehl einzusetzen, führt dann in der Regel zum Absturz. Es ist sicherer, RSX-Programme vorher mit Direktkommandos zu laden. Vorsicht ist in jedem Fall geboten!

Zur Auswahl gibt es deshalb auch noch die Form ohne RSX, die immer wieder an dieselbe Stelle geladen werden darf, ohne daß Schaden entsteht. In diesem Fall entfällt auch der Initialisierungs-CALL. Ein CALL &9000 löst dann direkt die Hardcopy aus.

Jetzt kann das Grafikprogramm dazugeladen bzw. ein abgespeichertes fertiges Bild zum Ausdrucken geladen werden. Das Grafikprogramm muß man sich auf jeden Fall vorher einmal ansehen. Wenn dort ein SYMBOL AFTER-Befehl auftaucht, ist dieser herauszunehmen und noch vor dem MEMORY einzugeben. (Eine zweite Möglichkeit ist die Eingabe von SYMBOL AFTER 256 an dieser Stelle.

Dann gerät das zweite SYMBOL AFTER nicht mehr mit dem MEMORY in Konflikt.)

Kritischer ist schon ein weiterer MEMORY-Befehl. Dann enthält das Grafikprogramm nämlich auch Maschinenspracheteile. Wo liegen diese? Überschneiden sie den Bereich von "GIGADUMP”? Diese Fragen sind hier unbedingt zu klären; notfalls muß man genügend über Speicherbereiche und Adressen lernen. Im Endeffekt ist der zweite MEMORY-Befehl zu entfernen. Der erste muß den insgesamt niedrigsten notwendigen Wert enthalten. Gefordert wird außerdem, daß die Lade- und CALL-Adresse für "GIGADUMP” auf einen freien Speicherbereich (1 KByte Länge) zeigt. Die genannten Regeln gelten übrigens auch für andere Maschinenprogramme und lassen sich auf viele ähnliche Fälle übertragen.

Für den Anfang wählt man zweckmäßigerweise Grafikprogramme, die kein MEMORY oder SYMBOL AFTER enthalten. Wer will, kann mit INKEY$ und IF...THEN eine Taste bestimmen, welche die Hardcopy ausiöst. Im einfachsten Fall wird am Programmschluß der Befehl |GDUMP (mit dem senkrechten Strich für RSX-Befehle) oder in der anderen Form CALL &9000 angefügt.

Das Papier

Bei "GIGADUMP” wird die Länge eines DIN-A4-Blattes voll ausgenutzt. Der Drucker gibt normalerweise schon ein ganzes Stück vor dem Ende eines Blattes eine Fehlermeldung aus. Damit die Hardcopy nicht unvollendet bleibt, erteilt "GIGADUMP” dem Drucker die Anweisung, den ”Pa-piermangel” zu übergehen. Für ein Vollbild mit 16,7 cm x 27 cm muß das Blatt ganz am linken Rand eingespannt werden, mit dem Anfang unmittelbar am Druckkopf. Günstiger ist Endlospapier. Wegen des Dreifachdrucks eignen sich übrigens auch ältere Farbbänder.

Teilbilder

Oft umfassen Grafiken nur einen Teil des Bildschirms. Um dann nur diesen Ausschnitt zu drucken, kann man dem "GIGADUMP”-Aufruf vier Parameter anhängen, mit denen er definiert wird. Diese Werte für links, rechts, oben und unten haben bei "HIDUMP" zu vielen Fragen geführt. Es handelt sich jedoch um Angaben, die im CPC-Basic (mit dem ORIGIN-Befehl) auf die gleiche Weise benutzt werden, um ein Grafikfenster zu definieren. "GIGADUMP” druckt von sich aus das aktuell bestehende Grafikfenster. Nur wer einen davon abweichenden Bildschirmteil ausdrucken will, muß die vier zusätzlichen Werte eingeben. Dabei hat der Punkt unten links unabhängig vom jeweiligen ORIGIN die Koordinaten 0,0. Nach oben geht es dann bis 399 und nach rechts bis 639. Ein Beispiel für das obere rechte Bildschirmviertel:

|GDUMP, 320, 639,200, 399

Die Graustufen

Man kann die Zuordnung von Bildschirmfarben und Graustufen zunächst "GIGADUMP” überlassen. Dann erscheint die Schrift (PEN 1) schwarz, der Hintergrund (PEN 0) weiß und andere Farben dazwischen. Wer eine andere Zuordnung benötigt, muß drei Werte (d0, d1, d2) an den GDUMP-Befehl anhängen, die Bit für Bit die nötigen Informationen enthalten. Diese lassen sich am besten mit dem Hilfsprogramm ermitteln. Für jede PEN kann man dabei einen Grauwert von 0 bis 7 eingeben. Am Schluß erhält man d0-d2.

Zu beachten ist, daß für MODE 2 nur gerade Zahlen (und die 7) sinnvoll sind, da sonst die Hälfte der Auflösung verlorengeht. Das Programm eignet sich ebenso für "HIDUMP”. Dazu müssen für die vier Graustufen die Zahlen 0,1, 3, 7 eingesetzt werden, im MODE 2 jedoch nicht 1.

Beispiel:

|GDUMP, &AAAA, &CCCC, &F0F0

Alles zusammen:

|GDUMP, links, rechts, unten, oben, d0, d1, d2

Wahlweise sind also 0, 3, 4 oder 7 Parameter möglich. Für die meisten Fälle reicht aber ein einfaches IGDUMP.

Noch eine Anmerkung zum Schluß: Vor und nach jedem Betrieb sollte man den Drucker kurz aus- und wieder einschalten, um den Druckerpufferzu leeren.

Gerhard Knapienski , CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEARE: 1986 , 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC MAGAZIN 1987
★ AUTHOR: Gerhard Knapienski
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-GIGADUMP    (CPC  Magazin)    GERMANDATE: 2020-05-24
DL: 445
TYPE: ZIP
SiZE: 5Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » Rsx - Soft Scroll Screen (Popular Computing Weekly)
» Applications » Small GEM (Happy Computer)
» Applications » RSX Filecopy
» Applications » RSX Multicolor (Amstrad User)
» Applications » RSX Textdump
» Applications » RSX Supersprites Mode 0 (Pride Utilities)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 784 millisecondes et consultée 2062 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.