[comp.sys.hp] IENQAK on HP-UX 2.10 ???

houten@pttdis.UUCP (Karel van Houten) (02/23/89)

System: HP 9000/850 OS: HP-UX 2.10

When trying to use the 'ienqak' mode of the tty driver, I get the
response: 'unknown mode'. The manual clearly states that that mode
should be available. stty(1) and termio(7)

Even the #define in /usr/include/sys/termio.h of IENQAK is missing
on our machines.
How do I get the driver to answer an ACK on all ENQ's coming in,
without high CPU loads (by reading on character basis)?

Thanks in advance!

-- 
Karel van Houten, 		INTERNET-style:	houten@pttdis.UUCP
PTT Telecom b.v.		UUCP:		uunet!mcvax!hp4nl!pttdis!houten
's-Gravenhage, The Netherland	VOICE:		+31 70 434947

hans@hpuamsa.UUCP (Hans Linschooten) (02/24/89)

Hello,

TERMIO(7)  gives the general description of asynchronous communications
ports. Of course this does not mean that always everything should be
implemented. If someone looks at the end of the description there is
a part for these specialties. For series 800 it mentions that
the IENQAK bit is not supported.

Hans Linschooten
Hewlett-Packard The Netherlands 

frank@hpuamsa.UUCP (Frank Slootweg) (02/24/89)

> System: HP 9000/850 OS: HP-UX 2.10
> 
> When trying to use the 'ienqak' mode of the tty driver, I get the
> response: 'unknown mode'. The manual clearly states that that mode
> should be available. stty(1) and termio(7)

  Mr. van Houten, I could not reach you on the phone number you provided.
Then I found that Hans Linschooten beat me by 15 minutes. Since part of
the discussion is already on the net I decided that this response is
more appropriate than mail. So :

  (As Hans already indicated) The "termio(7)" manual page says :

     DEPENDENCIES
	  Series 800
	       ENQ/ACK protocol	and IENQAK bit are not supported.

  Could you please inform us *why* you need ENQ/ACK? Only very old HP
terminals have only ENQ/ACK. By "old" I mean 197X vintage. All 262X and
newer terminals have both ENQ/ACK (for non-HP-UX/UNIX, etc. systems) and
Xon/Xoff. I *think* the old terminals can even be upgraded to Xon/Xoff if
needed.

  Please call us directly at the Dutch Country Response Center (06-0511).
  You do have a Response Center contract for your 850, don't you? :-)

  While this topic may be of interest to the net, I think you will get
better response times for questions like this by calling your CRC.
  Anyway the response time Hans gave was also not too bad! :-)

Frank Slootweg, Dutch CRC, Amstelveen, The Netherlands.

rjn@hpfcdc.HP.COM (Bob Niland) (02/26/89)

re: "When trying to use the 'ienqak' mode of the tty driver, I get the
     response: 'unknown mode'."
     
> The manual clearly states that that mode should be available.
> stty(1) and termio(7)

ienqak was only ever supported on Series 500. Series 200 and 300 silently
ignore it.  Series 800 gives an error.  Here is the current manpage text:

     TERMIO(7)			   HP-UX		     TERMIO(7)

 ...

     DEPENDENCIES
	  Series 300

	       The c_iflag field parameter IENQAK (enable output
	       pacing control) is not supported.

	  Series 800
	       The ENQ/ACK protocol and the IENQAK bit are not
	       supported.

> How do I get the driver to answer an ACK on all ENQ's coming in,
> without high CPU loads (by reading on character basis)?

Even if the 800 supported IENQAK, it wouldn't help you, since the HP-UX
(500) implementation was host-mode only, i.e. the host driver would
issue an ENQ and wait for an ACK before sending a block of 80 characters.

All is not lost, however, since ENQ/ACK is a half-duplex protocol, it is
relatively easy to implement in user code.  Have your application perform
input in single-character or raw mode, and look for ENQs.  ACK them.

Regards,                                              Hewlett-Packard
Bob Niland      ARPA: rjn%hpfcrjn@hplabs.HP.COM       3404 East Harmony Road
                UUCP: [hplabs|hpfcse]!hpfcla!rjn      Ft Collins CO 80525-9599

frank@hpuamsa.UUCP (Frank Slootweg) (03/01/89)

Bob Niland (rjn@hpfcdc.HP.COM) wrote:

> Even if the 800 supported IENQAK, it wouldn't help you, since the HP-UX
> (500) implementation was host-mode only, i.e. the host driver would
> issue an ENQ and wait for an ACK before sending a block of 80 characters.

  I missed that point (which was made by Mr. van Houten).

  Mr. van Houten called me back. He had expected "ienqak" to be a input
handshake. I guess its name was chosen based on "ixon" ("What do you
want? UNIX *or* sensible option names?" :-)).

> All is not lost, however, since ENQ/ACK is a half-duplex protocol, it is
> relatively easy to implement in user code.  Have your application perform
> input in single-character or raw mode, and look for ENQs.  ACK them.

  The customers application (actually a server) can indeed do the
handshake (i.e. it does not *have* to be done in the driver). I advised
him to set EOL/VEOL (see "termio(7)") to ENQ. A "line" will then be
terminated by either a newline or an ENQ and single-character or raw
mode is not needed.

Frank "Xoff" Slootweg, Hewlett-Packard, Dutch Country Response Center.