| 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 |