Screen-Druck

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

Beispiel

1 5 SHOW
Filename: SHOW  


Ausdruck

        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

Details

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

  • forth/fgforth/show.txt
  • Zuletzt geändert: 2020/11/11 15:30
  • von volkerp