|
I really don't understand how you can be having difficulty here - or how
you can possibly expect to be machine independent!
There are two distinct issues.
(1) Reading non-text, non-terminated input from the terminal.
No-echo almost certainly required.
(2) Writing non-CRLF terminated output to the terminal.
The ONLY reasonable solution is with a screen management package, either as
found in the RTL or written by you. This package then has to be ported to
the new h/w.
/Bevin
|
| Unfortunately, there are several distinct issues here. First, I don't
believe the VMS screen management package knows how to READ keys
from the keyboard. Second, the problems Bevin brings up are shared
by a number of software products, some of which, like DECtalk, don't
have screens.
I wrote a DECtalk support library which has a small number of
system-independent I/O routines (open, close, read/write characters,
trap CTRL/C) which works on rsx, rsts, vms compatibility, vms native,
and several flavors of Unix. The code is reasonably efficient
on these systems -- it tries to avoid doing one QIO per input byte.
Included in this package is a parser for Ansi-standard escape
sequences.
If you can call VMS SYS$ functions from Pascal, you should be
able to rewrite relevant parts of the library to suit your needs.
You would do all reads using the escape-sequence parser -- it
returns either a single character or a fully-parsed escape sequence.
You can also call the putsequence routine to convert a parsed
sequence to a character string for output to the terminal.
All source code is stored on REX::SYS$SYSDEVICE:[DTLIB.SOURCE].
Martin.
|