At 05:58 PM 96/09/25 -0700, you wrote:
>HELP! Any Slave printing Experts,
>
>I'm up against the wall here, can't put users on the new 969.
>
>I have been using two subroutines "SLAVON" & "SLAVOFF" for many years on
>the series 70. They have always worked great.
>
>Now on the series 969 "SLAVOFF" hangs on a read. I think maybe it's
>because the 969 in so much faster than the searies 70 Don't know for
>sure. The original author is unavailable.
>
>I have attached (NOT THE PROGRAM SOURCE) two small files that contain a
>list of calls each routine does. The hangup occurs in step 6 of the
>"SLAVOFF" routine.
....
....
I have seen this problem during arise in several cases immediately after
migration from "Classic" to "XL" systems.
There is a simple - albeit unelegant workaround to your problem - which
should permit you to continue with the migration:
Inform your users to press the "escape" key after hangup occurs. This should
return the user to the executing program without any further problems -
apart from requiring to "escape" upon completion of screen printing.
The longer-term solution is to modify your programs to employ the supported
VTURNOFF and VTURNON intrinsics to accomplish your slave printing requirements.
I have included a couple of HPSUPPORTLINE notes which address the problem at
hand. I hope I'm not breaking any copyright laws here.
Hope this helps.
SUPPORTLINE NOTES FOLLOW HERE:
PA3000 - How to print to local printer with VPLUS application
PROBLEM TEXT
I have a COBOL VPLUS program which runs on a 700/94 terminal with
a local printer. I have data that I would like to send directly to
the printer without being displayed on the terminal. What are the
procedures to do this?
RESOLUTION TEXT
When VPLUS is in use, the VTURNOFF and VTURNON intrinsics are needed.
VTURNOFF allows the application to switch momentarily to character
mode from block mode without disturbing the screen. The program
can then use the DISPLAY verb to send the proper escape sequences
and data. After printing is complete, VTURNON is used to reconfigure
the terminal for block mode.
The escape sequences needed to print to the local printer are as
follows:
ESC&p4d<y>W<data string>
ESC&p<z>p4u1C
where <y> is the length of the data string, and <z> is the number of
lines to advance. The ESC character should always be on a word boundary.
The following is an example of how the variables may be set up:
01 printdata.
05 esc pic x value %33.
05 mydata pic x(11) value "&p4d5Watest".
05 esc2 pic x value %33.
05 linefeed pic x(8) value "&p1p4u1C".
Then just DISPLAY printdata in the procedure division to send the
escape sequences and data to the printer.
For more Information on the escape sequences, please refer to the
HP700/94 reference manual, part number 5957-9982. For more information
on the VTURNON and VTURNOFF intrinsics, please refer to the VPLUS/V
Reference Manual, part number 32209-90001, under Appendix G.
PA3000 - How to use RECORD MODE in conjuction with VPLUS/XL
PROBLEM TEXT
I have a VPLUS appliation that uses RECORD MODE to transfer data to my
local slaved printer. When I run this same program in comptability mode
on my XL machine, I cannot seem to read the status returned from the
printer so my application hangs. How do I use RECORD MODE in
conjunction with VPLUS/XL?
DETAIL TEXT
MPE XL
VPLUS/XL
RECORD MODE
SLAVED PRINTER
RESOLUTION TEXT
Because of the changes in VPLUS/XL when it was written in native mode,
it is no longer possible to do single character reads while still
executing in block mode. Therefore, you must make a few minor
programming changes to allow your program to function correctly when run
on MPE/XL. The changes that need to be made are listed below:
1) CALL INTRINSIC "VTURNOFF"
- this will take your terminal out of block mode temporarily
without closing the terminal file and clearing the screen
2) Enable RECORD MODE
- use whatever code you were using before to enable RECORD MODE
3) DISPLAY your data
- use whatever code you were using to output your data
4) ACCEPT the status return
- this must be done into at least a PIC XX field to capture
both the status (S, F, or U) and the carriage return
5) Disable RECORD MODE
- use whatever code you were using to disable RECORD MODE
6) CALL INTRINSIC "VTURNON"
- this will put your terminal back in block mode
7) CALL INTRINSIC "VSHOWFORM"
- this will display the next form in sequence on your screen
You can find more about enabling/disabling RECORD MODE in the HP2392A
DISPLAY TERMINAL/HP2392A DATA ENTRY TERMINAL REFERENCE MANUAL (Manual
Part Number 02394-90001).
PA3000 - Recommended steps for using VTURNOFF and VTURNON
PROBLEM TEXT
What are the recommended steps for using the VTURNOFF and VTURNON
intrinsics?
RESOLUTION TEXT
After calling VTURNOFF, these are the recommended steps to return the
VPLUS application to block mode:
1. CALL VTURNON
2. DISPLAY escape lowercase b (example: %33 b) to unlock keyboard
3. MOVE $REFRESH TO NEXTFORMNAME
4. CALL VGETNEXTFORM
5. CALL VSHOWFORM
In addition, users with 700/92 terminals will need to set up the
VENVCNTL.PUB.SYS file with bit 8 set to 1 as documented below.
PA3000 - Using the VPLUS Environment Control File (VENVCNTL)
PROBLEM TEXT
What is the VENVCNTL.PUB.SYS file on my system, and what is it used for?
DETAIL TEXT
08/11/92
RESOLUTION TEXT
The VPLUS environment control file, VENVCNTL, allows applications to
override specific VPLUS defaults. VPLUS always checks for the
existence of VENVCNTL.PUB.SYS or, alternatively, the existence of
a file equated to this formal file designator. If no VENVCNTL file
exists, no VPLUS defaults are overridden.
VENVCNTL is a simple text file containing only one line of data.
Each override option may be activated by setting the option byte
number to 1. For example, in the VENVCNTL file below, options 1, 5,
and 20 are set.
:print venvcntl
10001000000000000001
For MPE V/E, the basic recommendation is either no VENVCNTL file, or,
if there are no 264x terminals capable of accessing the system, a
VENVCNTL file with byte 1 set.
For MPE/iX, the basic recommendation is a VENVCNTL file with bytes 1,
5, and 20 set. Since 264x terminals will not work on MPE/iX, byte 1
should always be set to improve performance.
The table below explains the function and possible side effects of
each VENVCNTL option. Note that many bytes are either diagnostic only
or reserved for future use; these bytes should never be set to 1.
----------------------------------------------------------------------
| VENVCNTL File Options |
| |
----------------------------------------------------------------------
|Byte| Explanation | Side Effects / Comments |
----------------------------------------------------------------------
| 1 |VOPENTERM does not try to |VPLUS will not run on terminals|
| |determine terminal identity if |that cannot self-identify (264x|
| |terminal does not have |terminals). |
| |self-identification capability.| |
----------------------------------------------------------------------
| 2 |VPLUS does not lock out |User could corrupt terminal |
| |terminal Aids/Modes/User keys |configurations established and |
| |during interactions. |expected by VPLUS. |
----------------------------------------------------------------------
| 3 |Reserved. | |
----------------------------------------------------------------------
| 4 |VPLUS bypasses Modified Data |MDT terminals will transmit all|
| |Tag (MDT) feature of MDT |input field data, not the |
| |terminals. |subset that user actually keyed|
| | |in; increases datacomm and |
| | |associated processing overhead.|
----------------------------------------------------------------------
| 5 |(MPE/iX only) VPLUS strips |DO NOT USE this option on MPE |
| |carriage return character from |V/E; MPE V/E driver already |
| |terminal status read input. |strips the carriage return |
| | |characters so this option is |
| | |redundant on MPE V/E. |
----------------------------------------------------------------------
| 6 |(MPE V/E only) VPLUS extends |DO NOT ACTIVATE this option |
| |terminal status reads to ensure|unless experiencing VPLUS |
| |that input termination |"terminal status request |
| |character is accounted for. |failed" errors due to network |
| | |delays. |
----------------------------------------------------------------------
| 7 |Diagnostic only. | |
----------------------------------------------------------------------
| 8 |VPLUS does not force 7009x |If 7009x terminal is configured|
| |terminals to 80 columns. |for 132 columns, there is a |
| | |possibility of data corruption.|
----------------------------------------------------------------------
| 9 |VTURNON and VTURNOFF do not | |
| |reset terminal function keys | |
| |to default strings. | |
----------------------------------------------------------------------
| 10 |(MPE/iX) VPLUS inhibits dual |It will be awkward for user to |
| |terminator; only the record |recover a blockmode application|
| |separator (instead of either |after a power failure. Also, |
| |the record separator or the |applications will treat line |
| |carriage return) will be |feeds as terminators, not as |
| |recognized as a record |data. |
| |terminator. | |
----------------------------------------------------------------------
| 11 |VTURNON does not save 7009x | |
| |terminal function key | |
| |configuration information. | |
----------------------------------------------------------------------
| 12 |VOPENTERM does not save and | |
| |VCLOSETERM does not restore | |
| |7009x terminal function | |
| |configuration information. | |
----------------------------------------------------------------------
| 13-|Reserved. | |
| 18 | | |
----------------------------------------------------------------------
| 19 |Diagnostic only. | |
----------------------------------------------------------------------
| 20 |(MPE/iX only) VPLUS posts | |
| |pending terminal driver | |
| |reconfigurations to overcome | |
| |timing windows and force | |
| |synchronization. | |
----------------------------------------------------------------------
| 21-|Reserved. | |
| 29 | | |
----------------------------------------------------------------------
| 30 |VPLUS posts pending terminal |There will be incremental file |
| |driver reconfigurations to |system overhead associated with|
| |overcome timing windows and |the posting action; this |
| |force synchronization in a |overhead is only necessary if |
| |multi-hop network environment. |difficulties are being |
| | |experienced. |
----------------------------------------------------------------------
| 31 |VOPENTERM and VIDTERM do not |If executing VPLUS in a job and|
| |check JOB/SESSION mode when |no valid file equation to the |
| |doing terminal open (available |terminal exists, then job |
| |in soon to be released VPLDV28 |$STDIN file may be corrupted. |
| |(MPE V/E) and VPLEXF7 (MPE/iX) | |
| |patches). | |
----------------------------------------------------------------------
| 32-|Reserved. | |
| 80 | | |
----------------------------------------------------------------------
To use VENVCNTL file, do the following:
Use EDITOR to create 80-byte file, and KEEP,UNN after putting the
character '1' in the appropriate columns.
Before running program, issue the following command:
:FILE VENVCNTL.PUB.SYS=VENVCNTL.MYGROUP.MYACCT, where MYGROUP.MYACCT
is the location of your VENVCNTL file.
Recommend columns 1, 5, and 20 be set to 1 - for now.
----------------------------------------------------------------------------
-------------------------
Gilles Schipper Voice: 905/889-3000
GSA Inc. Fax: 905/889-3001
300 John Street, Box 87651 Internet: [log in to unmask]
Thornhill, ON Canada L3T 7R4 Compuserve: 71203,474
----------------------------------------------------------------------------
-------------------------
|