HPlogo Asynchronous Serial Communications Programmer's Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 8 Intrinsics Reference

FCONTROL(26, 27)

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Glossary

 » Index

Parameters

controlcode

26 — Disables Binary Mode

27 — Enables Binary Mode

param

16-bit unsigned integer by reference (required)

This parameter has no meaning for these controlcode values. Enter a dummy value of 0 to satisfy the internal requirements of the intrinsic.

Notes

An FCONTROL call with a controlcode value of 26 or 27 determines whether or not a terminal is operating in binary editing mode for the file specified in filenum. Use 26 to disable binary editing, 27 to enable binary editing.

These calls are not supported for terminals connected via DTC Telnet or via VT from an HP-UX local client (VT3K). If FCONTROL(26) is issued to a device connected by DTC Telnet, it will be ignored. If FCONTROL(27) is issued to a device connected via DTC Telnet the next FREAD posted to the device will return an error condition, until binary mode is disabled with FCONTROL(26). Binary editing should not be used on a terminal connected via DTC Telnet or VT from an HP-UX local client. The call will return a CCE condition code but all subsequent reads will return an error until binary editing is disabled. If FCONTROL(27) is issued to a Telnet/iX device when the local device is an HP-UX Telnet client, the user must set the HP-UX client into binary (using the HP-UX Telnet client toggle command) before the FCONTROL(27) is issued to the Telnet/iX Server. If the HP-UX client is not set into binary before the FCONTROL(27) is issued, the FCONTROL will return with CCL. The user must disable binary on the HP-UX client before binary is disabled on the Telnet/iX Server with FCONTROL(28).

When binary editing is enabled, no special characters are recognized, and no special character processing is done. All characters are considered to be data and are passed through without any terminal control actions being taken. No carriage return or linefeed is sent to the terminal following a binary read. On writes, all carriage control directives are ignored. Binary editing mode is initially disabled by default.

Unlike most FCONTROL calls, binary mode does not actually take effect until a read is posted to the device following the FCONTROL call. If you are setting binary mode for both reads and writes you should post a 0-byte read immediately after the call to make sure binary mode is set.

Because no special character processing occurs in binary mode, any ASCII DC3 (XOFF) character passed in the data will be echoed to the terminal, and the terminal will be suspended as if an XOFF were sent from the DTC. This problem can be avoided by calling FCONTROL(13) to disable character echoing prior to entering binary mode. Alternatively, you can turn off XON/XOFF flow control at the terminal by sending the appropriate escape sequences. You should be aware, however, that disabling flow control may result in data being lost.

Binary editing is useful for transferring 8-bit data to and from a terminal. Because all 8 bits are considered to be data, binary editing is not compatible with parity checking, and parity must be disabled. In addition, since no special character processing is possible in binary mode, it cannot be used for block mode transfers.

In session mode, system break restores standard editing at the terminal. If :RESUME is entered following the break binary mode will be restored when the first read is posted following the :RESUME. FCONTROL(26) must be called to disable binary editing.

Binary reads are terminated by byte count, read timeouts, and error conditions. CCE status is returned for reads terminated on the byte count as specified in the FREAD, READ, or READX call. CCL status will be returned on timeouts and errors. Reads terminated on timeout will return data entered before the timeout occurred. For reads terminated on error, no data will be returned.

Condition Codes

CCE

Request granted.

CCG

Not returned by this intrinsic.

CCL

Failed due to an error.

Additional Discussion

See discussion of FCONTROL(4), FCONTROL(12,13) and FCONTROL(41) in this manual.

Feedback to webmaster