cancel
Showing results for 
Search instead for 
Did you mean: 

VMS DCL

 
Gilbert Pereira
Occasional Advisor

VMS DCL

Does any one have the code to create symbols for the down arrow and the ? mark.
12 REPLIES 12
Hoff
Honored Contributor

Re: VMS DCL

These keys are a control sequence and a single key that is sent from the terminal to the host; from the human to the application.

Sending these control sequences from the host outwards to the terminal will not have the desired effect. The terminal will consume the sequence associated with the down arrow key and display a question mark.

If you're looking to run an existing application under software control (as I suspect is the case), the usual approach there involves pseudo terminals. These allow you to have your application mimic a human and what a human will see in a screen-based application, and to pass the key sequences into the target application.

As for the literal question, you can use the DCL symbol and its square bracket notation to insert non-printable characters into a string. Here's an example of sending an control sequence from the host to the terminal:

http://64.223.189.234/node/150

This particular control sequence is one that is interpreted by the terminal.

And the question mark, being printable, can be inserted into a symbol such as this:

$ foobar = "?"

But these likely won't work, if you're looking to run a DCL procedure. The I/O is going in the wrong direction. And the down-arrow implies there is screen handling here.

So what are you up to here, and what versions and platforms are involved? (There may well be other approaches.)

Stephen Hoffman
HoffmanLabs LLC

Gilbert Pereira
Occasional Advisor

Re: VMS DCL

Stephen

I am trying to creae a DCL command procedure to execute in Cache in the AES GWS application the adding of a printer to the table. There are several screens to go throught to reach the area I require. I am not even sure if this will work, however I will not know if I do not try.

At one point when doing interactive I have to select Printers using the down arrow and then with the space bar indicated that this is my selection, followed by F10 key, at which point I enter the required information to add the Print Queue to the table.
Hoff
Honored Contributor

Re: VMS DCL

I/O output from the DCL procedure goes out to the terminal, and is (if recognized and processed) displayed there. There's no magic "reflector" out there.

You could write to one serial line and wrap back to another serial line. That's an older approach toward implementing a reflector.

Call up the Cache folks and see if there's an API for this, or if an API can be added. If there's not an API, you're off working on what amounts to screen scraping and such, and that usually ends up involving pseudo-terminals. (And the pseudo-terminal approach avoids needing a terminal line wired back around to another terminal line.)

Hein van den Heuvel
Honored Contributor

Re: VMS DCL

The Cache tool is unlikely to be willing to 'talk' to anything but a real (faked) terminal. Still RTFM, try or ask them! There might just a an api or a command-line driven version of the tool. Actually ... a good few GUI tools just contruct a command line and are just a wrapped around a real program.

Badge jobs can only provide basic, new-line-terminated input toa program.

The psuedo terminal driver will allow you to construct a tool to do this, but that' probably more effort than it is worth... for a few (dozen) occurences.
I do not know whether someone made this into a general purpose 'expect' like tool.
http://h71000.www7.hp.com/doc/732FINAL/aa-pv6sf-tk/00/00/46-con.html
Check out: sys$examples:ALPHA_LOGGER.C


If you happen to have it, then the DEC Test Manager (DTM) may well be suitable to drive this repeatedly with minor variances.

Finally, hwo about using outside driver, like a telnet session with 'expect' from a unix box or 'auotit' from windows.

Sorry, no solution, but those would be the things I would check out if it was my problem.

hth,
Hein.
Andy Bustamante
Honored Contributor

Re: VMS DCL


You can use pipe to feed Cache input. For example to monitor licensing:

$ send = "write sys$output"
$ lstatus == "pipe ( send ""D ^CKEY"" ; send ""H"" ) | cache | search sys$pipe/nohigh ""currently available"" "


Andy
If you don't have time to do it right, when will you have time to do it over? Reach me at first_name + "." + last_name at sysmanager net
Phil.Howell
Honored Contributor

Re: VMS DCL

have you tried using alternative keys in your application? Maybe standard control keys could do the screen navigation you need.
CTRL-I (tab) may get you to the next field but you could also try CTRL-J CTRL-L CTRL-M
If the terminal is in line edit mode then CTRL-V can be used to turn off the interpretation of some keys.
Also CTRL-X or CTRL-Z may be an alternative to F10
Phil
Gilbert Pereira
Occasional Advisor

Re: VMS DCL

I forgot to mention that we are using Reflections and I want to run this job interactive calling a subroutine after the input is provided from the operator.
Gilbert Pereira
Occasional Advisor

Re: VMS DCL

Phil

Where I can find the code to create a symbols for the keys you mention?
Hoff
Honored Contributor

Re: VMS DCL

Where can you get the codes? Maybe from the manuals? The terminal manuals have tables of ANSI and MCS characters, as does the OpenVMS I/O User's Reference Manual available at:

ftp://ftp.hp.com/pub/openvms/doc/AA-PV6SG-TK.PDF

Look in the appendix.

Details on how escape and control sequences are constructed are in the Terminal Driver chapter in that same manual.

Various VT-series terminal manuals are available from sources around the 'net, including the http://vt100.net/ site.