On 2023-11-15 02:16, S Johnson wrote:
I had to manually move C81ODL.TSK and C81RFM.TSK from [1,2] to
[0,55]. Then it worked just fine. Except I am find some strange
behavior in the compiler.
bill
What kind of strange behavior? I haven't really gotten into C81 hard yet, but compiled a simple Hello world program fine. I do notice that terminal cursor placement (DISPLAY-AT) isn't always the same on different devices. On the simh console set as
VT100, it works properly, a terminal connected via putty to the DZ device prints the escape sequence. Still puzzling that one out. It may be a configuration issue with the DZ connections. I've got a few other irons in the fire developing a printer
emulator etc so this really isn't a serious priority.
With regards to escape sequences, one have to understand a couple of
things about RSTS/E as well as escape sequences...
First of all, moving the cursor is done by the escape sequence CSI y ; x H
Now, CSI can be either ESC [ or the 8-bit sequence CSI.
ESC is 033, and CSI is 0233. So basically, CSI is ESC with the high bit set.
Some terminal emulators don't understand the 8-bit sequence, and only understands the 7-bit equivalent. ESC [ in this case.
I hope that is simple enough and straight forward.
Now comes RSTS/E. The terminal driver in RSTS/E tries to be helpful by
usually printing most control characters out in a visual representation.
This means that if you try and print an ESC, you will actually not get
an ESC out, but instead a dollar sign, which is how RSTS/E visually
represents the ESC. In order for the terminal driver to not do this
visual representation, you need to set the high bit on the ESC. If that
is done, then RSTS/E will not convert the character to its visual representation.
Now, here is where it then gets tricky. As observed above, ESC with the
high bit set can be interpreted as CSI. But if you send ESC [, with the
high bit set on the ESC, the terminal can see CSI [, which is an
"illegal" sequence, and the terminal aborts the escape sequence processing.
So what you need to do is tell the terminal that it should only use
7-bit controls, even if you are running in 8-bit. And possibly strip off
the 8th bit. However, if you are using Latin-1, that would also mean any Latin-1 characters get corrupted. Or else if you can tell RSTS/E that
you want 8-bit controls, and get it to output CSI without any left bracket.
I'm afraid I'm not enough of an expert with RSTS/E, or with enough
experience to give more details on how to solve this beyond the
information here. I used to use RSTS/E 40 years ago. Since then I've
mostly been on the RSX side, where this problem don't exist.
And I don't really know Cobol. I located the RSTS/E manuals because I
couldn't find the RSX ones, and the basics of the compiler is the same
on both OSes.
Johnny
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)