VM Print Transfer To POWER LST Queue:
Introduction:

This free-of-charge component moves, or transfers, print files from VM's Spool area to POWER LST queue. It uses CP's built in DIAG commands. It does not require any networking, or otherwise, products.

This function, obviously, applies to VM/VSE environments only.
Required Configuration:



To setup this function, you must do the following:

1) Make sure that your VSE guest machine is authorized to issue CLASS
D
    commands. Here is how the VSE Guest Machine directory entry might
    look like:
 
   
USER TESTVSE TESTVSE 128M 128M DG

2) Define a virtual reader.  To do so, add the following statement to your
    VSE guest machine directory entry:

    
SPOOL Virtual_rdr_address 3505 class

     For example, 
SPOOL 008C 3505 F defines a virtual reader at
     address 008C with class F.
















3) Add the following global statements to the global configuration member:

    SWITCH_VM_PRINT_SPOOL_TO_POWER_LSTQ           = YES
    VIRTUAL_RDR_SPOOL_ADDRESS                                    = 008C

     For more information about the global configuration member,
     please see
APPENDIX A.
How to Print from VM/CMS:

To print something, and have the application actually transfer it to POWER LST queue, please issue the following commands:

1) SPOOL your virtual printer to the VSE guest machine running the
    application.  For example,

  
SPOOL PRINTER TESTVSE CLASS F

    spools your printer to TESTVSE where the application is,
hopefully, running!

2) Pass any required paramters to the application by issuing the CP TAG
    command.  The application, in turn, uses those paramters to control
    POWER attributes such as class, User-Info, Destination and FORM fields.
    The class paramter is always required. Other paramters are optional.
   
    You can pass the following paramters:
    
     a)
CLASS=class where class is the LSTQ class to write to.
          For example, CLASS=Z tells the application to write to class Z
          in LST queue. Default is class P.
       
         This could be a class being monitored, for example, by a printing
          product such as TCP/IP!! 
   
     b)
USER=id where id is a string of upto 16 characters that appears in
          USER-INFORMATION field. Default is 16 blanks. 

     c)
REMOTE=remote where remote is a string of up to eight characters
         that ultimately appear in the
Remote Identifier field. Default is 8 blanks.
 

    d)
FORM=form where form is a string of upto eight characters that
         ultimately appears in the FORM field. Default is 8 blanks. 

    e)
OVERSTRK=nnn where nnn is three-digit string with leading
         zeros
if necessary. Default is NO VERSTRIKE action.

You must use the OVERSTRK parmater if you notice an "extra" blank line between two print lines.  Some printers, when they go beyond the last "printable position" automatically perform CR/LF operations.  Others don't! I have no idcea which printers do and which printers don't.  You just have to see a print out to figure it out.

As an example, let's assume that you have 132-character long printer that DOES auto cr/lf at position 133.  If the printer get a line with exactly 132 characters, it prints the line and automatically moves to the next vertical line.  The next line has its own "move to next vertical line as well".  Without overstrike parmater, an extra blank line appears in between.  With Overstrike set to 132, the conversion routine forces "printer overstrike code.. ASA character +" thus avoiding the extra blank line. 
          
          



3) Issue PRINT command as usual....
    
    
PRINT filename filetype filemode
Very Important:

Please make sure that the RDR is spooled Non-Continous, which is what happens if you do not do any thing special. Here is what you should get back if you issue
* CP Q 008C from VSE console:

user * cp q 008c                                                  
0015      RDR  008C   CL  F  
NOCONT   NOHOLD     EOF        READY       
0015               008C   3505                         CLOSED    NOKEEP NORESCAN  SUBCHANNEL = 000B
TAG Examples:

If you wish to set LSTQ entry attributes, please issue the TAG command just before you issue the PRINT command as follows:

TAG DEV 00E CLASS=class,USER=user,REMOTE=remote,FORM=form,OVERSTRK=nnn

You do not have to actually specify all paramters. Just specify the ones of interest to you.  The VM Systems programmer might even develop a small front-end REXX exec to take care of these commands.


Example #1: Using USER=user parameter:
  
This example shows how to print a CMS file to a remote printer controlled by
a generic printing product. This generic product, that shall remain namless,
happens to monitor class C  and uses the USER-INFO field.

  SPOOL PRINTER TESTVSE CLASS F
   CP TAG DEV 00E USER=scrip,CLASS=C
   PRINT TEST LISTING A


EXAMPLE #2: Using REMOTE=remote parameter:

This example shows how to print a CMS file to a remote printer controlled by
a generic printing product. This generic product, that shall remain namless,
happens to monitor class C  and uses the REMOTE IDENTIFIER field.

  SPOOL PRINTER TESTVSE CLASS F
   CP TAG DEV 00E REMOTE=R999,CLASS=C
   PRINT TEST LISTING A




Example #3: Using OVERSTRK=nnn parmater:

This example shows how to code the OVERSTRK parmater.  Please notice that OVERSTRK=000  (i.e., Do not perform overstrike) is the default.  
 
  SPOOL PRINTER TESTVSE CLASS F
  CP TAG DEV 00E OVERSTRK=080   
  PRINT TEST LISTING A   

 

Hosted by www.Geocities.ws

1