Patch-ID# 100850-08
Keywords: ibmftp te3278 pe3287 td3278 sna3274 hli dai MAXDATA snopts type5
Synopsis: SunLink 7.0.1: SNA 3270 Jumbo patch
Date: Jul/25/96

Solaris Release: 1.x
 
SunOS release: 4.1.1, 4.1.2, 4.1.3
 
Unbundled Product: SunLink SNA 3270
 
Unbundled Release: 7.0.1
 
BugId's fixed with this patch: 1094781 1095220 1097777 1098403 1107093 1107622 1110793 1118192 1121054 1127423 1133172 1139736 1148770 1151878 1152079 1152791 1153671 1154187 1160510 1162803 1164508 1164780 1167431 1169414 1173348 1176868 1182164 1185704 1187328 1188048 1191180 1203433 1238075

Changes incorporated in this version: 1185704 1188048 1191180 1203433 1238075

Relevant Architectures: sparc

Patches accumulated and obsoleted by this patch: 100761 100771 100801 101173 101190 100917 101322

Patches which conflict with this patch: 

Patches required with this patch:

Obsoleted by:

Files included with this patch:

    1.  sunlink/3270/te3278
    2.  sunlink/3270/pe3287
    3.  sunlink/3270/kyinit
    4.  sunlink/3270/scinit
    5.  sunlink/3270/KYI3278.type5
    6.  sunlink/3270/SCI3278.vt100
    7.  sunlink/3270/ibmftp
    8.  sunlink/dai/hli/HLILIB.a
    9.  sunlink/dai/hli/README
    10. sunlink/dai/hli/td3278
    11. sunlink/dai/hli/td3278.debug
    12. sunlink/dai/hli/td3278-tn
    13. sunlink/dai/TN-DAILIB.a
    14. sunlink/dai/TN-DAILIB.debug.a
    15. sunlink/sna3270/sna3274
    16. sunlink/sna3270/snopts
    17. sunlink/sna3270/sys/sun4/OBJ/sdlc.o
    18. sunlink/sna3270/sys/sun4/OBJ/zs_isdlc.o


Problem Description: 

(Revision 08)
-------------

BugID 1185704  Esc 11474: CGTN3270 closes connection after 6.5 minutes inactivity 
---------------------------------------------------------------------------------
    An internal select() call was waiting on a write file descriptor set
    intead of a read file descriptor set.  This could have resulted in
    a hang in ds_read(), although no such bug has been reported.

    The trace messages printed by TN-DAILIB.debug.a have been enhanced
    in order to provide additional information for debugging.

BugID 1188048  Esc 500034: sdlc panics with bad mbuf 
----------------------------------------------------
    Added code to check for invalid mbufs received by sdlc.  This will
    help to track the source of the bad mbuf if the panic happens again.

BugID 1191180  Esc 500315: Time out on HLI send_file() and recv_file() functions 
--------------------------------------------------------------------------------
    The HLI send_file() and recv_file() functions were timing out sometimes
    when transferring short files. They were returning HLI_OK with
    _return_code = HLI_PARM_ERROR, and the td3278 session log file showed:
        hlilib: Presentation Space "A":
                Timed out

    send_file() and recv_file() have been changed to return HLI_ERROR
    instead of HLI_OK when _return_code = HLI_PARM_ERROR because of an error
    in the length of the command string.
    They have been changed to return HLI_ERROR instead of HLI_SYSTEM_ERROR
    when the file transfer cannot be started because of errors.
    They have been changed to return HLI_ERROR with
    _return_code = HLI_FILE_TRANSFER_TIMEOUT when the file transfer times out,
    instead of returning HLI_OK with _return_code = HLI_PARM_ERROR.
    If the file transfer does not complete successfully then they will
    return HLI_ERROR with _return_code set to the TRANSxxx error code
    from the host; previously they returned HLI_OK with
    _return_code = HLI_PARM_ERROR

    /usr/sunlink/dai/hli/README was updated to show the changed return codes
    for send_file() and recv_file().
 
BugID 1203433  Esc 501213: pe3287 receives a random SIGTERM and dies 
--------------------------------------------------------------------
    pe3287 was receiving SIGTERM and SIGHUP signals from an unknown source.  
    After it received such a signal, pe3287 would die.  In order to help 
    shield pe3287 from these unwanted signals, pe3287 was modified to create
    its own session and new process group.

BugID 1238075  Esc 504488: standout mode does not work on vt100 
---------------------------------------------------------------
    Previously, if a user defined standout mode to be reverse video, he
    would sometimes notice that a screen was not painted correctly by
    te3278.  In these situations, te3278 was not sending out the necessary
    blanks in order to display reverse video blanks.  te3278 was modified
    to send out these blanks and to paint the screen correctly.
 
    Users who have defined standout mode to be reverse video should also
    define the environment variable TE3278_RV_SO.  This will indicate
    to te3278 that it needs to send out extra blanks in order to paint
    the screen properly.  Users who have a different standout mode should
    not define this variable.  This will help te3278 to avoid sending out
    extra blanks unnecessarily.
 
 
    Also, scinit was modified to allow a user to cancel a capability.

    "am" is the automatic margins termcap capability.  Since it is a boolean
    capability, a user can indicate that it is supported by simply including
    "am" in the appropriate SCI3278 file.  However, if it is not specified in
    the SCI3278 file, scinit will then check to see if this capability is
    specified in the corresponding termcap entry.  If this capability is
    supported in this termcap entry, scinit would assume that it was supported.
    Therefore, there was no method to override this default and to specify
    that the "am" capability was not supported.
 
    scinit was modified to allow a user to override such a default am capability.
    If the user includes "am@" in the SCI3278 file, scinit will conclude that
    the am capability is not supported, even if the corresponding termcap entry
    states that it is supported.
 
    This "xx@" notation can be used to cancel any capability.  For boolean
    capabilities, this would ensure that the capability is defined as not
    supported.  Number capabilities would be set to 0, and string capabilities
    would be set to a null string.
 
    As with all other entries in the SCI3278 files, the "xx@" entry should be
    delimited with ":"s.  Also, the use of the "xx@" notation will not prevent
    scinit from checking the values assigned to some capabilities.  Therefore,
    a user should not cancel a required capability, such as "li" and "cm".
    Finally, scinit may adjust the value of a cancelled capability, in order
    to maintain consistency with the values of other capabilities.
 
    See Documentation Changes in the Special Install Instructions below for 
    details.


(Revision 07)
-------------

BugID 1162803  Esc 8866 
-----------------------
    te3278 was hanging when it received Netview screen alerts after
    a user had entered a key (which should block writes from the
    host).  te3278 was modified to wait until it receives the last
    in segment to send an error message to the gateway.  Previously,
    te3278 immediately sent an error message to the gateway when it
    discovered a data stream error or if wanted to reject a bid
    request.

BugID 1167431  Esc 9786 
-----------------------
    Previously, when a user pressed the Reset key, a te3278 over a
    lcl3270 gateway would always clear a WAIT condition.  te3278
    was modified to check for the environment variable
    LOCAL_NO_RESET_3278.  If this variable is defined and if
    te3278 is connected to a lcl3270 gateway, then te3278 will
    not clear a WAIT condition when the user enters the Reset key.
 
    See Documentation Changes below.

BugID 1173348  Esc 10133
------------------------
    set_session_parms(char *str, int *len) was expecting to be passed
    the count of parameters in len, which is not the documented interface.
    As a result, if the value in len (which could easily be initialized
    to zero or uninitialized and therefore random) was less than the actual
    number of parameters in str then the extra parameters were quietly
    ignored. set_session_parms() has been changed to ignore the value
    passed in with len.
 
    set_session_parms() uses strtok() to parse the parm string. As a
    consequence, null characters were being written after each token
    in the passed parm string by strtok(). set_session_parms() has been
    changed to make a temporary copy of the passed parm string before
    calling strtok().
 
    The documentation of the set_session_parms() function was updated
    in the HLI README file.
 
BugID 1176868  Esc 10538
------------------------
    clock_status() has the return codes HLI_BUSY (4)
    and HLI_KLOCKED (5) backwards.
 
    clock_status() is changed to return HLI_BUSY (4) if the inhibit or
    ds_kybdlk flags are set, thus indicating that the session is busy with
    the host. If neither of those two flags are set, then if the locked flag
    is set clock_status() will return HLI_KLOCKED (5), indicating that the
    keyboard is locked because of an invalid keystroke.
 
    The documentation of the clock_status() and clock_wait() functions was
    updated in the HLI README file.

BugID 1182164  Esc 9639
-----------------------
    td3278 was not clearing the HLI_BUSY status when handling a CLEAR key
    from send_keystrokes() while in an SNA SSCP-SLU session.  A CLEAR key
    while in an SSCP-SLU session is handled locally and no AID is sent to
    the host.
 
    td3278 was not resetting the initial cursor address when handling a
    CLEAR key while in an SNA SSCP-SLU session.  If the initial cursor
    address is not reset to zero, then an attempt to send data to the
    SSCP with an ENTER key may not work.  td3278 has been fixed so that
    a CLEAR keystroke while in an SNA SSCP-SLU session resets the initial
    cursor address.

BugID 1187328  Esc 11618
------------------------
    Users were unable to start a te3278 session under a particular
    set of circumstances.  This occurred when less than 5 LUs were
    configured for the sna3270 gateway and when communications to the
    host were established in a particular order (e.g., connection to
    the host was made after sna3270 was started but before te3278 was
    started).  In these cases, sna3270 was sending a message which
    included the number of LUs to te3278.  te3278 was interpreting the
    number of LUs as a power on reject code.  te3278 would then simply
    display an error message and then abort the session.  sna3270 was
    modified so that it would not send the number of LUs in the message
    to te3278 under these circumstances. 


(Revision 06)
-------------

BugID 1152791 Esc 7676
----------------------
    System panicked when the SNA gateway was stopped.  A fix was made 
    which should close a timing window when a spurious reset is received. 

BugID 1153671 Esc 7836
----------------------
    The SCS transparent mode data following the Transparent (TRN) SCS
    control code was being treated as if it were normal printable data.
    It was being translated from EBCDIC to ASCII, and non-printable
    characters were being translated to '-'.

    SCS transparent mode data following the Transparent (TRN) SCS
    control code is now being treated as binary data.
    It is not translated from EBCDIC to ASCII, and the printer position
    cursors such as current column and current line are not updated
    by receipt of the transparent data.
    If the transparent data does affect the position on the printer
    page, then the programmer must take into account the fact that
    pe3287 is not aware of the change in position.

BugID 1154187 Esc 9088
----------------------
    te3278 did not support the 3270 datastream Graphic Escape (GE)
    order (x'08').  This order is used to write characters in the APL
    Text Feature code page (amongst others).

    te3278 was using the older method of handling GE when there is no
    alternate character set, namely returning a negative response
    to the datastream.  This fix implements a more modern way of
    handling the GE order, it displays the character following the
    GE order as a hyphen ('-') character, instead of returning a
    negative response.

BugID 1160510 Esc 8627
----------------------
    pe3287 did not flush its buffer at the end of a print job.
    Added fflush after fwrite of printer data.  Also added additional
    pe trace and debug messages.  The pe trace now also contains a trace
    of data written to the "printer".  The DEVTRACE environment variable
    is used to enable this tracing.  If DEVTRACE=ON, then trace data 
    will be written to the pe trace file (specified via the -d option 
    or the DBGFILE environment variable).  If DEVTRACE=DEBUG, then debug 
    messages will be written to the trace file along with the trace data.

BugID 1164508 Esc 9158
----------------------
    SNA3270 previously only checked against the user name when it limited
    access to LUs via netgroup definitions.  Now it also checks against
    both the host and the user names.

BugID 1164780 Esc 9146
----------------------
    SNA3270 now checks to see if there is an active LU-LU session before
    it sends a Termself message.  Otherwise it will send an offline
    Notify message.

BugID 1169414 Esc 9639
----------------------
    td3278 has been modified to add a timestamp to the trace file
    messages (start_trace()), to make debugging easier.

    td3278 has been changed to catch the SIGHUP, SIGPIPE, SIGALRM, and
    SIGXFSZ signals in addition to those already caught. This makes
    sure all signals that can terminate the process without a core
    file will be caught and an error message written before terminating.

    If HLI tracing is enabled via start_trace(), then a message is
    written to the trace file when td3278 exits, except in the case of
    a caught signal (which always results in an error message).

    HLILIB.a has been modified to change the memory mapped file name from
	/tmp/td.<session name>
    to
	/tmp/td.<HLI application PID>.<session name>
    This allows multiple instances of the same application
    to coexist on one cpu. 

    HLILIB.a has been modified to change the name of the error log file
    for the td3278 daemon process. The stdout and stderr for the daemon
    is redirected to this file. This change is intended to
    help keep error information from being overwritten by multiple
    applications running the same session name.
    The old file name is:
	$TD_LOG_DIR/td.<session name>.log
    The new file name is:
	$TD_LOG_DIR/td.<HLI application PID>.<session name>.log

    The makefile has been updated to build a version of td3278 using
    the debugging version of the DAI library (DAILIB.debug.a), instead
    of the standard version (DAILIB.a). The debugging td3278 executable
    is named td3278.debug.
    
    In order to use td3278.debug, it has to be renamed to td3278.
    The extra DAI debugging and tracing messages are written to
    stderr unless the DBGFILE environment variable is defined with the
    name of a file to hold the messages.


(Revision 05)
-------------

Type 5 Keyboard Support
-----------------------
	Allows te3278 of SNA3270 7.0.1 to be used with the US/UNIX and TUV
	Type 5 keyboards.

BugID 1094781
-------------
	The 3287 printer emulation program, pe3287, was introducing an 
	extra form feed at the end of the page.

BugID 1097777
-------------
	pe3287 could not print from CICS.

BugID 1107622
-------------
	When trying to print special characters locally using local 
	print (hard copy) facility in te3278, it did not print the 
	correct characters on the printer though the correct character 
	was seen on the screen.

BugID 1118192
-------------
	Increased the performance of "ibmftp".

	A new environment variable, XFERMAX, can now be used to 
	define the block size for file transfer (IND$FILE).
	Maximum value for XFERMAX is 8192, minimum value is 1024. 
	The larger value of XFERMAX, the better performance for file xfer. 
	Default value for XFERMAX is 8192.  Normally, the user doesn't 
	have to set up this environment variable unless he/she finds 
	the IBM host rejects the blocks coming from Sun due to block
	size (like CICS application). 

BugID 1121054
-------------
	When using the Token Ring interface and an XID exchange is required,
	a portion of the sna3274 process's memory was getting corrupted.
	This is known as the "Nynex fix".

BugID 1127423
-------------
	SNA gateway sometimes didn't respond to ACTPU or DACTPU.

BugID 1133172
-------------
	A PAD sent a BIND with Alternate Screen sizes (BIND bytes 20-23). 
	Byte 24 contains 7f. This was rejected with sense code 0821. 
	The PAD sends a BIND with byte 24 '7e' (alternate screen size 
	ignored and base set only used).  This bind was accepted. 
	But on the terminal emulator screen we have a "454" message. 
	This message was not cleared until the RESET key was pressed. 

BugID 1139736
-------------
	SNA3270 7.0.1: Cross-Domain CICS applications need to receive 
	TERM-SELF and SESSEND to terminate user sessions.  The Cross-Domain 
	IBM environment in this case has CICS running on one IBM mainframe and 
	VTAM on another IBM mainframe.  This patch allows a configurable 
	'snopts' parameter to be set in order to send a TERM-SELF and then a 
	NOTIFY power-off.

BugID 1148770
-------------
	The 3278 terminal emulation program, te3278, updates the screen 
	excessively when using a RS-232C ASCII terminal.

  	For this fix, a new command line option has been added.  The 
	command line option is a "-r".  In order to activate the fix, you 
	must set the "-r" command line option when executing te3278.  The 
	default is not to activate this fix.

BugID 1151878 Esc 7829
----------------------
	Clock_wait timeout is not changeable.

BugID 1152079 Esc 7655
----------------------
	SNA3270 7.0.1: HLI library sendfile() times out.

	Session parameters are set via the set_session_parms() function. 
	The TIMEOUT= parm was accepted, but its value was unused.
	The constant SESSION_TIMEOUT was used for the TIMEOUT= value.

	A fix was made to use the TIMEOUT= session parameter instead of the
	constant SESSION_TIMEOUT.

	Also, the documentation for the HLI hli_pause() function is incorrect.
	The HLI README file has been updated.
    


--------------------------------
Patch Installation Instructions:
--------------------------------


1. Stop any terminal emulation software which might be running on your
   system, and stop the sna3270 gateway software using the command:

       # /usr/sunlink/sna3270/stopsna


2. create a temporary <patch> directory.
   copy the patch into your <patch> directory.
   cd to the <patch> directory:

       # cd <patch>

3. Save the previous versions:

	# mv /usr/sunlink/3270/te3278 /usr/sunlink/3270/te3278.previous
	# mv /usr/sunlink/3270/pe3287 /usr/sunlink/3270/pe3287.previous
	# mv /usr/sunlink/3270/kyinit /usr/sunlink/3270/kyinit.previous
	# mv /usr/sunlink/3270/scinit /usr/sunlink/3270/scinit.previous
	# mv /usr/sunlink/3270/KYI3278.type5 /usr/sunlink/3270/KYI3278.type5.previous
	# mv /usr/sunlink/3270/SCI3278.vt100 /usr/sunlink/3270/SCI3278.vt100.previous
	# mv /usr/sunlink/3270/ibmftp /usr/sunlink/3270/ibmftp.previous
	# mv /usr/sunlink/dai/hli/HLILIB.a \
		/usr/sunlink/dai/hli/HLILIB.a.previous
	# mv /usr/sunlink/dai/hli/README /usr/sunlink/dai/hli/README.previous
	# mv /usr/sunlink/dai/hli/td3278 /usr/sunlink/dai/hli/td3278.previous
	# mv /usr/sunlink/dai/hli/td3278.debug \
		 /usr/sunlink/dai/hli/td3278.debug.previous
	# mv /usr/sunlink/dai/hli/td3278-tn \
		/usr/sunlink/dai/hli/td3278-tn.previous
	# mv /usr/sunlink/dai/TN-DAILIB.a /usr/sunlink/dai/TN-DAILIB.a.previous
	# mv /usr/sunlink/dai/TN-DAILIB.debug.a \
		/usr/sunlink/dai/TN-DAILIB.debug.a.previous
	# mv /usr/sunlink/sna3270/sna3274 /usr/sunlink/sna3270/sna3274.previous
	# mv /etc/sunlink/sna3270/gateway/snopts \
		/etc/sunlink/sna3270/gateway/snopts.previous
	# mv /usr/sunlink/sna3270/sys/sun4/OBJ/sdlc.o \
		/usr/sunlink/sna3270/sys/sun4/OBJ/sdlc.o.previous
	# mv /usr/sunlink/sna3270/sys/sun4/OBJ/zs_isdlc.o \
		/usr/sunlink/sna3270/sys/sun4/OBJ/zs_isdlc.o.previous


   Copy the files in the patch:

	# cp sun4/sunlink/3270/te3278 /usr/sunlink/3270/te3278
	# cp sun4/sunlink/3270/pe3287 /usr/sunlink/3270/pe3287
	# cp sun4/sunlink/3270/kyinit /usr/sunlink/3270/kyinit
	# cp sun4/sunlink/3270/scinit /usr/sunlink/3270/scinit
	# cp sun4/sunlink/3270/KYI3278.type5 /usr/sunlink/3270/KYI3278.type5
	# cp sun4/sunlink/3270/SCI3278.vt100 /usr/sunlink/3270/SCI3278.vt100
	# cp sun4/sunlink/3270/ibmftp /usr/sunlink/3270/ibmftp
	# cp sun4/sunlink/dai/hli/HLILIB.a /usr/sunlink/dai/hli/HLILIB.a
	# cp sun4/sunlink/dai/hli/README /usr/sunlink/dai/hli/README
	# cp sun4/sunlink/dai/hli/td3278 /usr/sunlink/dai/hli/td3278
	# cp sun4/sunlink/dai/hli/td3278.debug /usr/sunlink/dai/hli/td3278.debug
	# cp sun4/sunlink/dai/hli/td3278-tn /usr/sunlink/dai/hli/td3278-tn
	# cp sun4/sunlink/dai/dai/TN-DAILIB.a /usr/sunlink/dai/TN-DAILIB.a
	# cp sun4/sunlink/dai/dai/TN-DAILIB.debug.a /usr/sunlink/dai/TN-DAILIB.debug.a
	# cp sun4/sunlink/sna3270/sna3274 /usr/sunlink/sna3270/sna3274
	# cp sun4/sunlink/sna3270/snopts /etc/sunlink/sna3270/gateway/snopts
	# cp sun4/sunlink/sna3270/sys/sun4/OBJ/sdlc.o \
		/usr/sunlink/sna3270/sys/sun4/OBJ/sdlc.o
	# cp sun4/sunlink/sna3270/sys/sun4/OBJ/zs_isdlc.o \
		/usr/sunlink/sna3270/sys/sun4/OBJ/zs_isdlc.o


4. If you wish to enable type 5 keyboard support:
 
   NOTE: You must use OpenWindows Version 3 or later in order to use 
	 type 5 keyboards.

   To install the patch and to use type 5 keyboard add the following 
   commands in your ~/.xinitrc file (before wait statement).

    # following are for type 5 keyboards
 
    xmodmap -e 'keysym Insert = R1'
    xmodmap -e 'keysym Insert = R1'
    xmodmap -e 'keysym Delete = R3'
    xmodmap -e 'keysym Delete = R3'
    xmodmap -e 'keysym Home = R7'
   
   The above permanently changes the escape sequence emitted by two Ins
   keys, two Del keys and two Home keys, and thus enables both Ins, Del,
   and Home keys to generate the same escape sequence.

   Use the following command to generate the new KY file for type 5
   keyboard:

   kyinit -k sun4/sunlink/3270/KYI3278.type5 -o /usr/sunlink/3270/KY3278.type5

5. To incorporate changes to SCI3278.vt100:

    This patch contains a new SCI3278.vt100 file.  This file was modified
    to cancel the "am" capability.  If you have made any modifications to
    the FCS version of SCI3278.vt100, you should save your version of this
    file before installing this patch.  You will then need to incorporate
    your modifications into the new SCI3278.vt100 file and to use scinit to
    create a new SC3278.vt100 file.

    Even if you have not made modifications to SCI3278.vt100, if you use
    SC3278.vt100, you should use scinit to create a new SC3278.vt100 file.

6. To pick up the HLI library modifications:

   Your HLI applications have to be relinked to pick up the new HLILIB.a.

   HLI applications MUST be relinked with HLILIB.a from patch level
   100850-08 or higher in order to function correctly with the td3278
   installed by patch level 100850-08 or higher.

   NOTE:  Applications linked with the HLILIB.a from this patch
          are not compatible with any version of td3278 older
          than patch level 100850-08.


7. If you wish to activate the TERM-SELF feature:

   Re-configure the SNA3270 gateway using the 'snopts' program.  Add the 
   following entry to your "c3274.<gateway-name>" file:

	   termself on


8. To pick up the sdlc fixes:

   Remake the kernel:

       # cd /usr/sunlink/sna3270
       # install.sna3270

   Reboot with the new kernel.


9. Re-start the sna3270 gateway software using the command:

       # /usr/sunlink/sna3270/startsna <gateway name>


----------------------
Documentation Changes:
----------------------

7.0 SunLink User's Guide (800-4957-10)
 
    Chapter 2, Starting and Using the Terminal Emulator

    Section 2.4, Setting Environment Variables

      LOCAL_NO_RESET_3278
      -------------------
	When te3278 is started, it checks for the environment variable
        LOCAL_NO_RESET_3278.  If this variable is defined, then the
        te3278 (if accessing the host via a local 3270 gateway) will
        not clear a WAIT condition when the user presses the Reset key.

      TE3278_RV_SO 
      ------------ 
        If you are using reverse video as your standout mode, you must
        define the environment variable TE3278_RV_SO.  If this environment
        variable is not defined, screens with standout blanks may be
        displayed incorrectly.


    Chapter 5, Specifying Your Screen Characteristics

    Section 5.1, Considerations for scinit

        You may cancel any capability by adding "xx@" (where "xx" is the
        name of the capability you wish to cancel) to the SCI3278 file.
        For boolean capabilities, this would ensure that the capability is
        defined as not supported.  Number capabilities would be set to 0,
        and string capabilities would be set to a null string.  scinit will
        set the specified capability to these values regardless of any other
        definition for the capability in either the SCI3278 file or the
        termcap entry.
 
        As with all other entries in the SCI3278 files, the "xx@" entry
        should be delimited with ":"s.
 
        The use of the "xx@" notation will not prevent scinit from checking
        the values assigned to some capabilities.  Therefore, a user should
        not cancel a required capability, such as "li" and "cm".  If a
        required capability is cancelled, scinit will not process the
        remainder of the file and inform you of the error.
 
        In addition, scinit may adjust the value of a cancelled capability,
        in order to maintain consistency with the values of other capabilities.


    Chapter 6, Operating the 3287 Printer Emulator

        SCS transparent mode data following the Transparent (TRN) SCS
        control code is now being treated as binary data. It is not
        translated from EBCDIC->ASCII, and the printer position
        cursors such as current column and current line are not updated
        by receipt of the transparent data. If the transparent data does
        affect the position on the printer page, then the programmer
        must take into account the fact that pe3287 is not aware of the
        change in position.


