Post by Johnny BillquistPost by Dennis BoonePost by Nootrac90Between Dennis and Johnny, I got the idea of how to make it work.
I ended up using chr$(155) for the escape code (27+128) and had
to switch terminal emulator software to make the codes do what I
expected them to do.
If memory serves, setting the 8th bit on the ESC (155) gives you the
CSI character referred to by all the references, and is equivalent
to the ESC plus the [. Doing it this way assumes an 8-bit-clean path
from the program to the terminal emulator.
That is true in a general sense, in that CSI is (155) in Latin-1 and DEC
MCS. However, as I said before, RSTS/E is playing tricks. If you print
an ESC (33), the RSTS/E terminal driver will print out a '$' instead In
order to print the actual ESC character, you need to set the high bit.
RSTS/E will strip it off, but print the ESC literally. So no, in this
case you are *not* getting a CSI. You actually cannot print a CSI
character from RSTS/E, unless you set the terminal in some special mode
perhaps.
All from memory, as usual, but I think I remember this right.
Johnny
There is a binary output mode that can be applied to the write, that will
pass all characters as is (including retaining the sign bit on the CSI
if the terminal is eight-bit enabled.) This is overloaded on the
"record" keyword (value = 4096%, IIRC.) The record keyword tells the
i/o system what disk block to read or write (hence the name), but would
otherwise be meaningless on terminal I/O, so used to encode special flags
instead. (Remember, it's trying to fit all this in 16 bits!)
--
John Santos
Evans Griffiths & Hart, Inc.