nielson@dhw68k.cts.com (Mike Nielson) (07/24/88)
I have an application that likes to take input from the keyboard one character at a time without waiting for a carriage return. This can be accomplished easily for a pad using the pad_$ calls and for and sio line using the sio_$ calls to place the input stream in raw mode. I would also like to be able to run the program over a TCP/IP connection using telnet but have not yet been able to do so. According to the Domain System Call Reference, the only way to access this type of connection is to use the ios_$ calls, but I can find no documented way to invoke raw mode using ios. (ios_$inq_type_uid reports that the stream type is pseudo-tty slave.) I realize that I could probably accomplish this in the UNIX environment using the appropriate ioctl, but unfortunately my program was developed in the Aegis environment and I'm not quite ready to change it to UNIX (at least not until SR10 hits the streets.) Does anyone know how to place a stream in raw mode using ios? If not, has anyone figured out a way to access pseudo-tty streams using something other than ios? Thanks in advance. Mike Nielson, PDA Engineering hplabs!felix!ccicpg!pdaeng!nielson hplabs!felix!dhw68k!nielson
rees@A.CC.UMICH.EDU (Jim Rees) (07/26/88)
I have an application that likes to take input from the keyboard one character at a time without waiting for a carriage return... I realize that I could probably accomplish this in the UNIX environment using the appropriate ioctl, but unfortunately my program was developed in the Aegis environment and I'm not quite ready to change it to UNIX (at least not until SR10 hits the streets.) You would really like to do this in a device-independent manner, so that your program doesn't have to find out what kind of a tty it has. The only supported way I know of to do this is with ioctl(). You don't have to "change it to Unix" to take advantage of ioctl(). Just make the ioctl call, passing in the ios stream id as the file descriptor. There isn't really an internal distinction between "aegis" programs and "unix" programs. (Well, except for case distinctions in file names). I often mix "aegis" system calls with "unix" system calls within the same program. If your program is written in pascal, you may find it easiest to write a little one-line C program to call ioctl(), and bind it in with your program. -------