Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!pasteur!ucbvax!ISUMVS.BITNET!GG.SPY From: GG.SPY@ISUMVS.BITNET ("John Hascall") Newsgroups: comp.os.vms Subject: Re: single char input in VAX C Message-ID: <8803130715.AA24642@ucbvax.Berkeley.EDU> Date: 11 Mar 88 14:35:57 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 33 > From: F026@CPC865.UEA.AC.UK > Subject: single char input in VAX C > > (as far as I know) the only way you can get single character input on a VAX > is to use the $QIO (Queued Input/Output) system service, which involves > setting what is effectively an interrupt vector which you then have to > service. To make it simpler, VMS also has the $QIOW (QIO with Wait) which > will wait for your 'interrupt'. Look it up in the System Service Manual. > > Mike Salmon To elucidate: #include #include typedef struct IOSB { unsigned short status; unsigned short count; unsigned long other; } IOSB; typedef unsigned short CHANNEL; $DESCRIPTOR("TT",tty_name); unsigned long status; CHANNEL tty_chan; IOSB tty_iosb; char inchar; status = SYS$ASSIGN(&tty_name,&tty_chan); /* only need to do this once */ status = SYS$QIOW(0,tty_chan,IO$_READVBLK,&tty_iosb,0,0,&inchar,1,0,0,0,0); John Hascall Iowa State University Computation Center GGUUU@ISUMVS.BITNET