                                2UPPRT.ZIP
                          Version 2.4 - 06/15/93

   Title   : V2.4 - Print 2UP or 1UP on Lasers - PPDS, HPLJ,PS
   Keywords: 2UP 1UP REXX LASER LANDSCAPE PORTRAIT PRINT ANSI HPLJ PPDS

   REXX command files to print 2UP in landscape mode or 1UP in portrait mode
   on laser printers using PPDS, HPLJ or PostScript commands. Will number
   lines or support ANSI control characters. Suppresses multiple blank lines
   and page ejects. Includes VREXX support. Supports A4 (European) paper size.

IMPORTANT NOTE:

   This version contains only minor changes from 2.3 and it is the final
   release of this package. It has been superceeded by 21UPRT.ZIP which
   is a full PM version of this package written in VisPro/REXX and also
   contains enhancements over this package. 21UPRT.ZIP will be the source
   for all future enhancements. I recommend that you get 21UPRT.ZIP, try
   it and give me your feedback.

2UPPRT.ZIP Contents:
                     2UP.CMD
                     1UP.CMD
                     2UP.ICO
                     1UP.ICO
                     2UPREAD.ME (This file)

2UP.CMD:

   This REXX command will print a file in landscape mode - 2 columns wide.

   This is a modified version of REXXPR.ZIP found on CompuServe.

   - IBM PPDS Mode is the default. If you want to print in HP or
     PostScript Mode then change LINE 2 to: mode=2 or 3.
     NOTE: For DeskJet users: Set mode=2 and change lpp=114 for 2UP and
           lpp=76 for 1UP. Thanks to Alex Yeilding for this information.

   - To enable VREXX support change LINE 3 to: vrexx=1.
     Do NOT do this unless you have the VREXX2.ZIP package installed.

   - A4 Paper - The changes for A4 paper size are contained at the end
                of this file. Merge these changes into 2UP.CMD and
                1UP.CMD. The locations to change are noted in comments.
                Thanks to Mike Walsh for suggesting and testing some
                changes for A4 paper. (Please let me know if you find
                errors in this function, not every possibility was tested.)

   - The LPT1, LPT2 and LPT3 port assignments are the default ones for
     the IBM 40x9 LaserPrinter AES Code. You may change them.

   - Lines longer than the line length are continued onto the next line
     up to a maximum of 3 print lines for 2UP and 2 print lines for 1UP.

   - Consecutive blank lines are suppressed.

   - Control characters imbedded in the file, such as new page and tabs,
     are translated to blanks, so you should expand all tabs before
     printing in order to get better looking output.

   - Format: 2UP filespec <B> <N>
                              <A>
                              <F>
                              <H>

             The following option (if specified) MUST be the FIRST
             option:

             B - will print in larger type. Use this if the normal type
                 is too small for you to comfortably read. Of course this
                 reduces the amount you may print on a page (see the table
                 below). You may use this option in conjunction with any
                 of the following options.

             The following options are MUTUALLY EXCLUSIVE:

             N - will Number the lines as they are printed.

             A - uses ANSI print controls as the first character on each
                 line. Consecutive blank lines are NOT suppressed.
                 Lines longer than the line length are truncated.
                 The bar frame and the header lines are NOT printed.
                 This option is NOT supported in PostScript mode.
                 ANSI Controls:
                                Code  Action before printing
                                ----- ----------------------
                                blank space 1 line
                                0     space 2 lines
                                -     space 3 lines
                                1     skip to line 1 on a new page
                                +     suppress space (NOT implemented,
                                                      treated as blank)

             F - will NOT print the bar Frame around the output.

             H - will NOT print the bar frame or the Header lines.

1UP.CMD:

   This REXX command is the same as 2UP except it prints in portrait mode
   - 1 column wide.

   - Format: 1UP filespec <B> <N>
                              <A>
                              <F>
                              <H>

SPECIFICATION TABLE:

   The following table shows the variables that change depending on the
   type of printing and options chosen:

                             ͻͻ
                                     2UP                 1UP         
                             ͹͹
                  Mode        PPDS   HP    PS   PPDS   HP    PS  
                             ĶĶ
                  Printer     LPT1  LPT2  LPT3  LPT1  LPT2  LPT3 
                             ĶĶ
                  Char/Line    87    84   110   132   129   133  
                             ĶĶ
                  Lines/Page  184   118   186   121    78   123  
                             ĶĶ
                             ĶĶ
     A4 Paper:    Char/Line    92    89   117   128   125   129  
                             ĶĶ
                  Lines/Page  180   114   174   125    83   131  
                             ĶĶ
                             ĶĶ
     OPTIONS: N - Char/Line    -4    -4    -4    -4    -4    -4  
                             ĶĶ
                             ĶĶ
              F - Char/Line    +2    +2    +2    +4    +4    +4  
                             ĶĶ
                  Lines/Page   +2    +2   N/C    +1    +1   N/C  
                             ĶĶ
                             ĶĶ
              H - Char/Line    +2    +2    +2    +4    +4    +4  
                             ĶĶ
                  Lines/Page   +6    +6   N/C    +3    +3   N/C  
                             ĶĶ
                             ĶĶ
              A - Char/Line    +2    +2   N/A    +4    +4   N/A  
                             ĶĶ
                  Lines/Page   +6    +6   N/C    +3    +3   N/C  
                             ĶĶ
 OPTION B and:                                                       
                             ĶĶ
                  Char/Line    59    49    86    91    76   104  
                             ĶĶ
                  Lines/Page  120   N/C   140    80   N/C    92  
                             ĶĶ
                             ĶĶ
     A4 Paper:    Char/Line    64    47    91    88    73   101  
                             ĶĶ
                  Lines/Page  118   N/C   136    84   N/C    98  
                             ĶĶ
                             ĶĶ
     OPTIONS: N - Char/Line    -4    -4    -4    -4    -4    -4  
                             ĶĶ
                             ĶĶ
              F - Char/Line    +2    +2    +2    +4    +4    +4  
                             ĶĶ
                  Lines/Page   +2    +2   N/C    +1    +1   N/C  
                             ĶĶ
                             ĶĶ
              H - Char/Line    +2    +2    +2    +4    +4    +4  
                             ĶĶ
                  Lines/Page   +6    +6   N/C    +3    +3   N/C  
                             ĶĶ
                             ĶĶ
              A - Char/Line    +2    +2   N/A    +4    +4   N/A  
                             ĶĶ
                  Lines/Page   +6    +6   N/C    +3    +3   N/C  
                             ͼͼ
                                N/C - No Change     N/A - Not Applicable

OBJECTIVE and LOGIC:

   The objective of these programs is to print as much information, in a
   readable form, in as small amount of paper as possible. To meet this
   objective I have elected to translate page ejects to blanks and
   suppress multiple blank lines. If you change this to allow page ejects
   then it will mess up the line counts and formatting. By using this
   logic I can typically print 100 pages of formatted output on 30-38
   pages of paper (instead of 50) and it is still very readable.

If you make any other enhancements I would appreciate a note and a copy
of the new file or if you have suggestions please let me know.

  Roger Lapp     -    70573,2577 (CompuServe)    -    TMGC69A (Prodigy)


/* ****** 1UP Changes for A4 Paper ****** */

/* Mode=1 and bopt */
  /* A4 Paper - Replace with the following lines:
  cpl=88
  lpp=84
  qq=X2C(1B5B460400000000040F1B41061B301B5B53080000003B0000143BF6)
  End of A4 Paper changes */

/* Mode=1 Else */
  /* A4 Paper - Replace with the following lines:
  cpl=128
  lpp=125
  qq=X2C(1B5B460400000000040F1B41061B321B5B53080000003B0000143BF6)
  End of A4 Paper changes */

/* Mode=2 and bopt */
  /* A4 Paper - Replace with the following lines:
  cpl=73
  lpp=83
  qq=X2C(1B451B266C26411B266C31451B287330541B283130551B28733130481B266C3844)
  End of A4 Paper changes */

/* Mode=2 Else */
  /* A4 Paper - Replace with the following lines:
  cpl=125
  lpp=83
  qq=X2C(1B451B266C26411B266C31451B287330541B283130551B287331362E36481B266C3844)
  End of A4 Paper changes */

/* Mode=3 */
 /* A4 Paper - Replace with the following lines:
 If bopt Then cpl=101
 Else cpl=129
 End of A4 Paper changes */

/* Mode=3 */
/* A4 Paper - Replace with the following lines:
Call OUT '/tm { 803 } bind def /bm { 20 } bind def'
Call OUT '/lbox { newpath setgray setlinewidth 22 811 moveto'
Call OUT ' 22 20 lineto 573 20 lineto 573 811 lineto closepath stroke } def'
Call OUT '/llin { newpath setgray setlinewidth 22 811 moveto'
Call OUT ' 573 811 lineto stroke } def'
End of A4 Paper changes */
 /* A4 Paper - Replace with the following lines:
 Call OUT ' 22 814 moveto ('||nf||') show 604 814 moveto'
 Call OUT ' ('||nd||') show 331 814 moveto (Page) show 357 814 moveto'
 End of A4 Paper changes */

/* *** End of 1UP A4 Paper changes *** */


/* *** 2UP Changes for A4 Paper ***   */

/* Mode=1 and bopt */
  /* A4 Paper - Replace with the following lines:
  cpl=64
  lpp=116
  qq=X2C(1B5B460400000000041B6C1B3A1B41061B301B5B53080000003B0000143BF6)
  End of A4 Paper changes */

/* Mode=1 Else */
  /* A4 Paper - Replace with the following lines:
  cpl=92
  lpp=180
  qq=X2C(1B5B460400000000041B6C0F1B41061B321B5B53080000003B0000143BF6)
  End of A4 Paper changes */

/* Mode=2 and bopt */
  /* A4 Paper - Replace with the following lines:
  cpl=47
  lpp=114
  qq=X2C(1B451B266C26411B266C314F1B266C31451B287330541B283130551B28733130481B266C3844)
  End of A4 Paper changes */

/* Mode=2 Else */
  /* A4 Paper - Replace with the following lines:
  cpl=89
  lpp=114
  qq=X2C(1B451B266C26411B266C314F1B266C31451B287330541B283130551B287331362E36481B266C3844)
  End of A4 Paper changes */

/* Mode=3 */
 /* A4 Paper - Replace with the following lines:
 If bopt Then cpl=91
 Else cpl=117
 End of A4 Paper changes */

/* Mode=3 */
/* A4 Paper - Replace with the following lines:
Call OUT '/tm { 555 } bind def /bm { 15 } bind def'
Call OUT '/lf { currentpoint exch pop lspace sub dup bm lt { pop lm 533 lt { /lm'
Call OUT ' { 533 } def tm } { showpage saveobj restore incp opg /saveobj save def'
Call OUT ' /lm { 26 } def tm } ifelse } if lm exch moveto } bind def'
Call OUT '/lbox { newpath setgray setlinewidth 22 563 moveto'
Call OUT ' 22 15 lineto 525 15 lineto 525 563 lineto closepath stroke } def'
Call OUT '/rbox { newpath setgray setlinewidth 529 563 moveto'
Call OUT ' 529 15 lineto 1032 15 lineto 1032 563 lineto closepath stroke } def'
Call OUT '/llin { newpath setgray setlinewidth 22 563 moveto'
Call OUT ' 1032 563 lineto stroke } def'
End of A4 Paper changes */
 /* A4 Paper - Replace with the following lines:
 Call OUT ' 22 568 moveto ('||nf||') show 997 568 moveto'
 Call OUT ' ('||nd||') show 491 568 moveto (Page) show 546 568 moveto'
 End of A4 Paper changes */

/* ****** End of 2UP A4 Paper changes ******  */
