C 16/116
Tips & Tricks

Schnelle Hardcopy

Wenn neben dem C 16 ein Drucker steht, erwacht auch bald der Wunsch, den Bildschirm direkt über den Drucker auszugeben. »Fast-Hardcopy« schafft das recht flott.

Die Idee zu »Fast-Hardcopy« entstand durch ein Programm im 64'er, Ausgabe 6/85, das für den C 16/116 geschrieben war. Dabei wurden mathematische Funktionen auf dem Bildschirm abgebildet und in einer langwierigen Prozedur als Hardcopy zu Papier gebracht. Mit dem Seikosha GP-100 ergab sich dabei eine Zwangspause von sage und schreibe einer halben Stunde. »Fast-Hardcopy« ist vorwiegend in Maschinensprache geschrieben und erledigt diese Aufgabe in 3½ bis 4 Minuten. Mathematische Funktionen werden zwar nicht erzeugt, aber dafür ist egal, was auf dem Bildschirm zu sehen ist – es wird gedruckt (Bild 1).

Drucker-Hardcopy: Gitternetz einer Halbkugel über einer perspektivischen Gitterebene
Bild 1. Beispiel für eine Hardcopy mit diesem Programm

Da das Programm im Grafikmodus arbeitet, bleiben für Basic nur noch 2 KByte frei. Aus diesem Grund war es nicht möglich, die Maschinenroutine als Datazeilen in das ebenfalls notwendige Basic-Programm einzubinden. Das gesamte Programm besteht also aus zwei Teilen. Der erste Teil ist das Basic-Programm (Listing 1), das Sie ganz gewöhnlich eingeben können. Für den zweiten Teil schalten Sie mit dem Befehl »MONITOR« den TEDMON Ihres C 16/116 ein.

Anschließend geben Sie den Befehl »M 1400 147f« ein. Auf dem Bildschirm erscheint der Speicherauszug von $1400 bis $147f als Hexdump. Jetzt tippen Sie Zeile für Zeile die Werte aus Listing 2 ein. Am Schluß jeder Zeile drücken Sie die RETURN-Taste, die Zeile ist dann in den Speicher aufgenommen. Haben Sie dies erledigt, so können Sie sich mit »M 1480 14ff« den nächsten Bereich vornehmen. Nachdem Sie sich auf diese Weise bis zum Schluß (Adresse $1547) des Listings 2 durchgearbeitet haben, gelangen Sie über den Befehl »X« wieder in den Basic-Bereich. Schreiben Sie nun folgenden Befehl:

POKE 45,80:POKE 46,21:SAVE"FAST-HC",8

Mit diesem kleinen Trick speichern Sie das Basic- und Maschinenprogramm gemeinsam ab, was Sie jetzt auch unbedingt tun sollten.

Nun einiges zur Arbeitsweise des Programms. In den Zeilen 10 und 12 werden zwei Strings definiert. Sie bestehen aus 2 mal 160 Zeichen. Zusammen ergibt das die Anzahl der Bytes, die der Seikosha GP-100 zum Ausdruck einer Bildschirmzeile mit 320 mal 7 Punkten benötigt.

In dem Maschinenprogramm wird jeder Punkt in dieser Zeile umdefiniert, weil der Drucker die Bytes nicht wie den Zeichensatz des Computers waagerecht, sondern senkrecht verarbeitet. Das Maschinenprogramm legt die Bytefolge dann in dem Speicherbereich ab, wo beide Strings liegen (ein Flußdiagramm für das Maschinenprogramm finden Sie im Bild 2). Die Strings werden in Zeile 30 zum Drucker geschickt.

(Jeans Engel/kn)
Flussdiagramm in Druckerschrift mit der Überschrift »Flußdiagramm der Maschinenroutine«: Abfragen »INT(Y/7)=Y/7 ?«, »Punkt gesetzt ?«, »A>160« und »A>320«, Kästen »Locate-routine…« und »B in String1/String2…«, Ende »RTS«
Bild 2. Flußdiagramm für die Maschinenroutine (Listing 2).
1 PRINT"{CLR,2DOWN }***{3SPACE,FLASHON}FAST HARDCOPY{4SPACE}C16/C116{FLASHOFF,4SPACE}***"
2 PRINT"{DOWN,2SPACE}3.48 MIN{4SPACE}UEBER SEIKOSHA GP-100"
3 PRINT"{DOWN }(C)1985 GERMAN SOFT{3SPACE}(P) JENS ENGEL"
4 PRINT"{4DOWN }GRAPHIK MUSS SCHON IM SPEICHER SEIN!"
5 PRINT"{DOWN }DRUCKER FERTIG? <TASTE>"
9 IFPEEK(198)=64THEN9
10 A$="ANFANG**********************************************************************ENDE"
12 X$=A$+A$:Y$=X$:OPEN1,4:GRAPHIC1
18 POKE216,0:POKE217,0:POKE3,0:POKE4,0:POKE212,0:FORT=0TO27
30 SYS5242:PRINT#1,CHR$(8);X$;Y$:NEXT
40 SYS5242:FORT=0TO159
42 POKE5900+T,PEEK(5900+T)AND143:POKE5738+T,PEEK(5738+T)AND143:NEXT
44 PRINT#1,CHR$(8);X$;Y$:GRAPHIC0
Listing 1. Basic-Programm zu »Fast-Hardcopy«
>1400 A5 D4 29 F8 85 0E 85 05
>1408 A9 00 85 06 06 05 26 06
>1410 06 05 26 06 18 A5 05 65
>1418 0E 85 05 A5 06 69 00 85
>1420 06 06 05 26 06 06 05 26
>1428 06 06 05 26 06 A5 D4 29
>1430 07 18 65 05 85 05 A5 06
>1438 69 00 85 06 18 A5 03 29
>1440 F8 65 05 85 05 A5 04 65
>1448 06 85 06 18 A9 00 65 05
>1450 85 05 A9 20 65 06 85 06
>1458 A5 03 29 07 49 07 AA A9
>1460 01 CA 30 03 0A D0 FA A0
>1468 00 31 05 F0 07 A9 01 60
>1470 EA 60 EA EA A9 00 60 EA
>1478 60 EA A9 00 85 D3 EA EA
>1480 20 00 14 F0 06 A9 01 05
>1488 D3 85 D3 E6 D4 20 00 14
>1490 F0 06 A9 02 05 D3 85 D3
>1498 E6 D4 20 00 14 F0 06 A9
>14A0 04 05 D3 85 D3 E6 D4 20
>14A8 00 14 F0 06 A9 08 05 D3
>14B0 85 D3 E6 D4 20 00 14 F0
>14B8 06 A9 10 05 D3 85 D3 E6
>14C0 D4 20 00 14 F0 06 A9 20
>14C8 05 D3 85 D3 E6 D4 20 00
>14D0 14 F0 06 A9 40 05 D3 85
>14D8 D3 A9 80 05 D3 85 D3 E6
>14E0 03 D0 02 E6 04 C6 D4 C6
>14E8 D4 C6 D4 C6 D4 C6 D4 C6
>14F0 D4 EA EA EA EA EA EA A5
>14F8 D8 C9 A0 F0 13 A4 D8 E6
>1500 D8 A5 D3 99 0C 17 4C 7A
>1508 14 EA EA EA EA EA EA EA
>1510 A5 D9 C9 A0 F0 0F A4 D9
>1518 E6 D9 A5 D3 99 6A 16 4C
>1520 7A 14 EA EA EA EA EA EA
>1528 EA EA EA EA EA EA A9 00
>1530 85 03 85 04 A5 D4 18 69
>1538 07 85 D4 A9 00 85 D8 85
>1540 D9 60 00 00 00 00 00 00
Listing 2. Maschinenprogramm zu »Fast-Hardcopy«. Bitte mit dem eingebauten Monitor eingeben.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →