[fa.info-vax] VMS RMS

info-vax@ucbvax.ARPA (03/24/85)

From: Rudy.Nedved@CMU-CS-A.ARPA

Is there a way to tell VMS to treat normal SYS$INPUT, SYS$OUTPUT and
SYS$ERROR as one character block sequential device so that a $GET
and a $PUT of one character gets the character(s) typed and does not
wait until EOL or control characters are typed.

I can't change the library that I am using to use QIOWs on the terminal
and I have the terminal in PASSALL/NOECHO....but it still waits for
new-line or a control character.

Thanks,
-Rudy

info-vax@ucbvax.ARPA (03/29/85)

From: geacc022%timevx@cit-hamlet.arpa

>>Is there a way to tell VMS to treat normal SYS$INPUT, SYS$OUTPUT and
>>SYS$ERROR as one character block sequential device so that a $GET
>>and a $PUT of one character gets the character(s) typed and does not
>>wait until EOL or control characters are typed.

>Use "QIO" instead of "QIOW".  It will stop reading when enough characters
>have been read.

Wrong!	 $QIO  waits  for  no man -- it returns immediately after
queueing  the  I/O  request.   (It's  used  for  asyncronous I/O;
presumably you use an event flag or a nASTy routine to detect I/O
completion.)  $QIOW is simply a $QIO followed by a $WAITFR.

You  can get RMS to do this, but not with the $GET service -- you
must  use  the $READ service (specifying the BIO bit in the FAB's
FAC  and the RAB's ROP).  Specify that you have a one-byte buffer
and  things will work.	The RNE and RNF bits in the ROP field are
ignored, but you say the terminal is already set /NOECHO/PASSALL,
so that's OK.  (RNE = read no echo; RNF = read no filter).

When I looked at how our library here does it, we use $QIOWs with
the  terminator set set to -1's (every character is end of line).
It can also be done by reading into a 1-byte buffer.

Caveat:  We're	still  running	VMS 3.6 here; but I can't imagine
things	have changed all that much for V4.  (although I hope they
fixed it so the RNE/RNF bits are processed by $READ).

			Gary Ansok
			GEACC022%TIMEVX @ HAMLET
			GEA @ CALTECH.BITNET
			...ucbvax!cithep!timevx#geacc022

"All the world loves a straight man."