arnold@gatech.UUCP (Arnold D. Robbins) (02/03/84)
My brother is an electrical engineer working on a VAX running VMS (3.4, he thinks), at a company not on the net. He is using Fortran. He has a device on the same line as his terminal. He would like to be able to tell the vax "here comes some raw data, do no processing on it", then flip a switch and have the device dump into the vax. The idea is to get VMS to ignore control characters, etc. If he had a function a la getch(c) which would return the raw characters to his fortran program, he would be satisfied. I am posting this to unix-wizards in the hope that some of you who have vaxen running both os's (to be pitied, but that is not the point) are also VMS wizards. I am also posting to lang.f77 since he's working in fortran. Essentially, he needs the equivalent of "stty raw" under VMS. Please reply to me, and I will send him any responses. ALL help is appreciated. Of course, he should be running Unix, but their vax doesn't have enough memory either (only .5 meg). It seems that their management is penny wise and pound foolish...... Thanks in advance, -- Arnold Robbins CSNET: arnold@gatech ARPA: arnold.gatech@CSNet-relay UUCP: ...!{akgua,allegra,rlgvax,sb1,ut-sally}!gatech!arnold Did'ja ever have one of those re-incarnations?
leichter@yale-com.UUCP (Jerry Leichter) (02/06/84)
The literal equivalent of stty raw for VMS is SET TERMINAL/PASSALL; to turn the terminal back to normal mode again, use SET TERMINAL/NOPASSALL. (INTERACTIVE is equivalent to NOPASSALL). Often the easiest way to do this is to build a command procedure to do the SET TERMINAL's, and call up the progra. Note that a terminal in PASSALL mode is STILL "record oriented"; it will not necessarily return stuff a byte at a time. A program can set the terminal to PASSALL mode directly, and further it can do it on an I/O-request at a time basis - except for "immediate- action" characters, like CTRL/Y - since VMS has a true full-duplex characters; no interpretation (except for immediate action - technically "out of band" characters) gets done until the program tries to read them. It isn't hard, though it is quite tricky if you've never done that sort of stuff before, to do the required QIO calls, either in MACRO or directly from FORTRAN. Or, you can actually get the code to do it out of the DECUS C support library (function kbin() in VAXLIB, the VAX-11C compatibility library). kbin() doesn't do PASSALL manipulation, but that would be easy to change. -- Jerry