80-Bus Journal

  

Juni 1983 · Ausgabe 6

1AB8 0D 17 0C 16 0C 16 0C 16  5C
1AC0 0C 16 0B 15 0B 15 0B 15  5C
1AC8 0B 15 0A 14 0A 14 0A 14  5C
1AD0 0A 14 09 13 09 13 09 12  5B
1AD8 09 12 08 11 08 11 08 10  57
1AE0 08 10 07 0F 07 0F 07 0E  53
1AE8 07 0E 06 0D 06 0D 06 0C  4F
1AF0 06 0C 05 0B 05 0B 05 0A  4B
1AF8 05 0A 05 0A 05 0A 04 09  4C
1B00 04 09 04 09 04 09 04 09  4F
1B08 04 08 04 08 04 08 04 08  53
1B10 03 08 02 08 01 07 00 07  4F
1B18 00 08 01 09 01 0A 02 0B  5D
1B20 02 0C 03 0D 03 0E 03 0D  7A
1B28 04 0C 04 0B 05 0A 05 09  7F
1B30 05 0A 05 09 04 09 03 09  81
1B38 02 08 02 07 01 07 00 06  74
1B40 00 06 00 08 00 0A 02 0C  81
1B48 04 0E 06 10 08 12 0A 14  C3
1B50 0A 16 08 14 06 12 04 10  D3
1B58 02 0E 04 10 06 12 08 14  CB
1B60 0A 16 0C 14 0D 13 0D 13  FB
1B68 0D 13 0D 13 0D 13 0D 13  03
1B70 0D 13 0D 13 0D 13 0D 13  0B
1B78 0D 13 0D 13 0D 13 0D 13  13
1B80 0D 13 0D 11 0D 13 0D 13  19
1B88 0D 13 0D 13 0D 13 0D 13  23
1B90 0D 13 0D 13 0D 13 0D 13  2B
1B98 0D 13 0D 13 0D 13 0F 13  35
1BA0 0D 13 0D 13 0D 13 0D 13  3B
1BA8 0D 13 0D 13 0D 13 0D 13  43
1BB0 0D 13 0D 13 0D 13 0D 13  4B
1BB8 0D 13 0D 13 0D 13 0D 13  53
1BC0 0D 13 0D 11 0D 13 0D 13  59
1BC8 0D 13 0D 13 0D 13 0D 13  63
1BD0 0D 13 0D 13 0D 13 0D 13  6B
1BD8 0D 13 0D 13 0D 13 0D 13  73
1BE0 0D 13 0F 13 0D 13 0F 13  7F
1BE8 0D 13 0F 13 0D 13 0F 13  87
1BF0 0D 13 0F 13 0D 13 0F 13  8F
1BF8 0D 13 0D 13 0D 13 0D 13  93
1C00 0D 13 0D 13 0D 13 0D 13  9C
1C08 0D 13 0D 13 0D 13 0D 13  A4
1C10 0D 13 0D 13 0D 13 0D 13  AC
1C18 0D 13 0D 13 0D 13 0D 13  B4
1C20 0D 13 0F 13 0D 13 0D 13  BE
1C28 0D 13 0D 13 0D 13 0D 13  C4
1C30 0D 13 0D 13 0D 13 0D 13  CC
1C38 0D 13 0D 13 0D 13 0D 13  D4

NASCOMPL: 
PARDON

1C40 0D 13 0D 13 0D 13 0D 13  DC
1C48 0D 13 0C 12 0B 12 0A 12  DB
1C50 0A 12 0A 12 0A 12 0A 12  DC
1C58 0A 12 0A 12 0A 12 0A 12  E4
1C60 0A 12 0A 12 0A 12 0A 12  EC
1C68 0A 12 0A 12 0A 12 0A 12  F4
1C70 0A 12 0A 12 0A 12 0A 12  FC
1C78 0A 12 0A 12 0A 12 0A 12  04
1C80 0A 12 0A 12 0A 12 0A 12  0C
1C88 0A 12 0A 12 0A 12 0A 12  14
1C90 0A 12 0A 12 0A 12 0A 12  1C
1C98 0A 12 0A 12 0A 12 0A 12  24
1CA0 0A 12 0A 12 0A 12 0B 13  2E
1CA8 0B 13 0C 14 0C 14 0D 16  45
1CB0 0E 18 0F 1A 10 1C 12 1E  77
1CB8 14 20 16 22 18 24 1A 26  BC
1CC0 1C 28 1E 2A 20 2C 22 2E  04
1CC8 24 2F 25 2F 24 2E 23 2D  2D
1CD0 22 2C 21 2B 20 2A 1F 29  18
1CD8 1E 28 1D 27 1C 26 1B 25  00
1CE0 1A 24 19 23 18 22 17 21  E8
1CE8 16 20 15 1F 14 1E 13 1D  D0
1CF0 12 1C 12 1C 12 1C 12 1C  C4
1CF8 12 1C 11 1B 11 1B 10 1A  C4
1D00 10 1A 0F 19 0E 19 0D 18  BB
1D08 0C 18 0B 17 0A 17 09 17  AC
1D10 09 17 07 15 05 13 16 1E  B5
1D18 0C 0F 25 10 12 21 0E 0C  D2
1D20 2D 12 32 14 08 48 49 47  A2
1D28 48 20 53 43 4F 52 45 3A  63
1D30 20 30 30 30 30 20 42 59  E8
1D38 20 4E 4F 42 4F 44 59 20  60
1D40 20 20 20 20 20 4C 41 53  DD
1D48 54 20 53 43 4F 52 45 3A  8F
1D50 20 30 30 30 30 30 30 30  DD
1D58 30 20 73 65 63 20 20 20  60
1D60 20 20 20 20 20 20 20 20  7D
1D68 20 20 20 30 30 30 20 6B  00
1D70 6D 2F 68 20 20 20 20 20  31
1D78 20 20 20 20 20 20 20 30  A5
1D80 30 30 30 20 6D 31 38 30  53
1D88 30 30 30 30 30 39 39 39  40

MX80-Grafik

von Jürgen Weiermann

Hier noch etwas Interessantes für die Leser, die einen EPSON MX 80 o. MX 80F/T haben:

Um Ihrem Drucker die wohl gepriesene Punktgrafik zu entlocken, bedarf es nicht viel. Um genau zu sein, benötigen Sie nur 3 Eproms des Types 2716, in welchen eine Programmerweiterung für den 8049 (Drucker-CPU) steht inkl. des Zeichensatzes des 2332. Nach Entfernen eines Jumpers und Ausbau des Proms 2332 können die 3 Eproms eingesetzt werden. Es stehen nun 2 weitere Befehle zur Verfügung:

1.ESC „K“ m n
2.ESC „L“ m n

Dies sind nun Ihre Grafik-Befehle, wobei der Drucker durch den ersten Befehl veranlaßt wird, die ihm folgenden Bytes im Normal Density Mode auszudrucken. Technisch umschrieben heißt das, daß eine Abbildung bis maximal 480 dots/​line möglich ist.​Wem dies nicht genug ist, der sollte es mit der zweiten Befehlsform versuchen. Dieser Befehl schaltet den Dual Density Mode ein und besagt, daß bis zu 960 dots/​line gedruckt werden können. Rein rechnerisch würde der Drucker es überhaupt nicht schaffen, diese Anzahl von Punkten in eine Zeile zu bekommen. Aber wie der Name des Befehls schon verlauten läßt, benutzt hier der Drucker eine andere Schreib- bzw. Druckdichte. Die einzelnen Punkte werden nicht nebeneinander gedruckt, so daß noch ein wenig Platz zwischen den Punkten bleibt, sondern sie werden so gedruckt, daß sie einander überlappen. Das erste Druck-Verfahren wird mit Normal Density, das zweite Verfahren mit Dual Density bezeichnet. Beiden Befehlen gleich sind die Variablen m,n. Diese Werte geben der Drucker-CPU eine Information darüber, wieviele von den nun folgenden Bytes sie als Grafik interpretieren soll, um dann wieder auf ASCII-Code umzuschalten. Eine genaue Berechnung dieser Werte ist sehr wichtig, da der Drucker im Grafik-Mode keine Steuerzeichen (mit Ausnahme von Reset) mehr erkennt, sondern diese als binären Punktcode behandelt, und dies macht er so lange, bis sein interner Grafik-Zähler auf 0 ist oder ein Reset erfolgte. Will man nun nach einer bestimmten Anzahl von Bytes aus dem Grafik Mode aussteigen, um so z.B. ein CR und LF für diese Zeile ausführen zu lassen, so müssen die Werte m,n nur für die Anzahl der „Grafik“-Bytes pro Zeile berechnet sein, wobei sich die Werte m,n wie folgt berechnen:

m= amount of DATA – 256
n= Int(amount of DATA/256)

Ein Beispiel: Anzahl der zu übertragenen Zeichen für den Grafik Mode pro Zeile soll z.B. 300 sein. Dann berechnen sich m,n wie folgt: m = 300 – 256 = 44 (Decimal) = 2C (HEX); n = int(300/256) 1. Die Wertangaben für m,n müssen immer Hexadezimal sein. Sollten Sie nun richtig gerechnet haben, so müßte es Ihnen jetzt möglich sein, nach Beendigung des Grafik Modes die Steuerzeichen für CR und LF an den Drucker zu senden und diese zur Ausführung zu bringen. Nach meinen Erfahrungen ist es aber noch ein weiter Weg bis zu dem Zeitpunkt, an dem auch ein LF und CR nach einer Grafikzeile vom Drucker ausgeführt wird. Aber nicht den Kopf hängen lassen, es gibt auch hier noch ein paar Hilfsmittel (Siehe ein paar Zeilen tiefer). Sollte dies zuletzt genannte für Sie nun kein Problem mehr sein, so werden Sie sicherlich sehr bald festellen, daß Ihre Grafik doch noch nicht perfekt ist, denn der Drucker läßt zwischen je 2 Grafik-Zeilen eine Zeile frei, wodurch eine geschlossene Bildeinheit in Streifen zerlegt wird, und dies sieht nicht gerade gut aus. Nun ja, des Rätsels Lösung ist im Operation Manual sicherlich zu finden und, siehe da, mit „ESC A“ läßt sich das line spacing verändern. Als geeignet erwies sich nun folgende Befehlsfolge „ESC A 07H“ (1B,41,07). Und hier nun eine Hilfe zur Ausgabe von Grafikblöcken. Bei der Erstellung des Programms bin ich davon ausgegangen, daß das Grafik-Bild irgendwo im Speicher oder in einem von der CPU direkt adressierbaren Bildschirmspeicher liegt. Das Programm PACO erfragt nur noch die Anfangsadresse, Endadresse des Speicherbereiches und die Bildbreite. Alle Eingaben sind vierstellig zu machen. Nach Eingabe der Bildbreite kann noch zwischen Normal Density oder Dual Density entschieden werden, und dann legt der Drucker auch schon los. Für diejenigen, die nach dem Lotter’schen Prinzip ihren UART angezapft haben, sind am Programmanfang noch 3 Bytes freigelassen, um hier noch ein Unterprogramm zur Freigabe des Bit 7 ueber Port 0, Bit 2 einzufügen. Bei den einzelnen Ausgabe-Anweisungen (0F 6F) habe ich jeweils noch ein NOP eingefügt für den Fall, daß jemand seinen Drucker nicht über den UART ansteuert. Ich hoffe, somit allen Anpassungswünschen gerecht geworden zu sein. Der Preis für diesen Umrüstungssatz beträgt im Handel ca. 160,– DM.

Seite 26 von 28