Mit SHOW werden Screens ausgedruckt. Es werden max. 6 Screens pro Seite ausgegeben, jeweils 2 Screens nebeneinander.
Meine Variante ist für den Drucker „Präsident 6325“ angepasst. Das ist ein K6313-Nachfolger (https://www.robotrontechnik.de/index.htm?/html/drucker/k631x.htm), den ich 1990 bei Conrad erworben hatte.
Vorab muss man im Z9001 auf OS-Ebene einen geeigneten Druckertreiber laden!
Laden und Compilieren von SHOW:
FORTH 1 GET SHOW 1 5 THRU
Jetzt kann man in Forth drucken.
SHOW ( n1 n2 – ) \ von…bis druckt Screens von..bis zweispaltig
Bei Frage nach Filename: Es wird nichts geladen, der Text wird nur rechts oben auf der Seite gedruckt
Druckbeginn Seite jeweils mit Enter starten (Zeit f. Papierwechsel), ggf. in EINZUG KEY DROP löschen
1 5 SHOW Filename: SHOW
FORTH-83 der IG FORTH SHOW
Scr # 1 Scr # 2
0 \ 5 Screen-Show auf 6325 20Mai91 0 \ Druckersteuerzeichen 20Mai91
1 1
2 ONLY FORTH I/O ALSO 2 : DEUTSCH ESC R 2 (PRINT) ;
3 FORTH DEFINITIONS 3 : P-USA ESC R 0 (PRINT) ;
4 4 : PICA ESC P ;
5 5 : ELITE ESC M ;
6 : ESCAPE ( c -- ) 27 (PRINT) 6 : PAGE CONTROL W (PRINT) ;
7 (PRINT) ; 7 : P-INIT ESC @ ;
8 8
9 : ESC ( char ( -- ) 9
10 [COMPILE] ASCII 10
11 COMPILE ESCAPE ; IMMEDIATE 11 : EINZUG ( Papiereinzug Drucker)
12 12 7 (PRINT) KEY DROP
13 13 ESC B 16 (PRINT) 0 (PRINT)
14 14 11 (PRINT) ;
15 15
Scr # 3 Scr # 4
0 \ DOPPEL-LIST 20Mai91 0 \ feste Texte 20Mai91
1 1
2 : 2LIST \ 2 Screens nebeneinand 2 : HEAD CR
3 DECIMAL CR DUP DUP SCR ! 3 ." FORTH-83 der IG FORTH"
4 0 #OUT ! ." Scr # " . 4 55 PAD C@ - SPACES
5 40 #OUT @ - SPACES 5 PAD COUNT TYPE CR ;
6 ." Scr # " 1+ . 6
7 L/SCR 0 DO 7 : FOOT CR ." Volker Pohlers"
8 CR I 3 .R SPACE 8 27 SPACES DEUTSCH
9 SCR @ BLOCK I C/L * + 9 ." gedruckt auf PR[SIDENT 632
10 C/L TYPE ( 1. Zeile ) 10 5 - Z9001"
11 I 7 .R SPACE 11 P-USA PAGE ;
12 SCR @ 1+ BLOCK 12
13 I C/L * + C/L 13 : INPUT
14 -TRAILING TYPE ( 2.Z) 14 PAD 1+ 55 EXPECT CR
15 LOOP CR ; 15 SPAN @ PAD C! ;
Scr # 5
0 \ Rahmenwort 20Mai91
1
2 : SHOW ( n1 n2 -- ) \ von...bis
3 2 ?ENOUGH
4 CR ." Filename: " INPUT
5 ['] (PRINT) IS EMIT
6 PRINTING ON P-INIT ELITE
7 1+ DUP R# ! SWAP DO
8 EINZUG HEAD CR CR CR
9 I 6 + I DO
10 R# @ I - 1- DUP
11 0= IF I LIST CR THEN
12 0> IF I 2LIST CR THEN
13 2 +LOOP FOOT
14 6 +LOOP PICA PRINTING OFF
15 ['] (EMIT) IS EMIT ;
Volker Pohlers gedruckt auf PRÄSIDENT 6325 - Z9001
Intern wird (EMIT) auf Druckausgabe umgehängt. Die Ausgabe erfolgt mit den normalen Forth-Worten zur Textausgabe. Als Schriftart wird Elite gewählt. So passen 2 Spalten problemlos auf ein A4-Blatt, trotz Rand u.a.m.
Der Rand von 8 Zeichen kommt magisch durch die interne Implementierung von CR zustande:
VARIABLE LMARGIN 8 LMARGIN ! I/O DEFINITIONS : (CR) CRLF PRINTING @ IF LMARGIN @ 0 DO BL (PRINT) LOOP THEN ; ' (CR) IS CR
vgl. SHOW von Laxen/Perry-F83