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