[HECnet] DECnet performance problems (on TOPS-10)

Paul_Koning at Dell.com Paul_Koning at Dell.com
Fri Sep 2 02:01:18 PDT 2011


Yes, the goal of Cterm was to be very clever, which is why it looks like an abstraction of the VMS terminal QIO facilities.   Or, I think, the union of those and the TOPS-20 terminal I/O facilities.   And in spite of that extreme complexity it is really only good for those; it is such a bad fit for, say, RSTS, that the attempt was never made.   (It's also a very big protocol, but the bad fit was at least 50% of the reason.)

Rterm for RSTS is pretty simplistic.   It works essentially like telnet local echo line mode normally, but it detects a couple of state changes on the controlled terminal: if echo is disabled, the local echo is likewise disabled.   And if the terminal driver goes into any kind of mode where line mode no longer works right -- ODT, binary mode, TECO mode, etc. -- it switches to no echo character at a time mode.   So, for example, TECO works, but you can tell that it all of a sudden got slower.

	paul 

-----Original Message-----
From: owner-hecnet at Update.UU.SE [mailto:owner-hecnet at Update.UU.SE] On Behalf Of Johnny Billquist
Sent: Thursday, September 01, 2011 7:51 PM
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] DECnet performance problems (on TOPS-10)

On 2011-09-01 17:25, Bob Armstrong wrote:
TOPS-10 and RSTS (and RT-11) echo the keystrokes as they occur, while 
RSX and VMS echo when the read occurs.

    Ah, I never thought about it before, but that's very profound and 
clearly true.   And easily demonstrated too - do some command on VMS 
that takes a minute to execute, and then type ahead.   You won't see 
anything echoed.   On
TOPS10 in the same circumstance, you will.   I don't remember offhand 
how
TOPS20 behaved (it's been too many years ago).

A short experiment on TOPS-20 suggest that it only echoes once the character is actually read, which also would make sense since things would become rather weird and fouled up with completion, character recognition and so on in TOPS-20 if echo didn't take place at the right place and time. What a character actually will do depends on the context in TOPS-20.

But it was a simple test, and I might just have failed to cause enough of a delay...

And the same is somewhat true in RSX and VMS as well (well, it's actually true in any OS, but most don't take it into consideration).

As Paul also mentioned, the echoing of a newline is different in RSX than RSTS/E. Technically, this is not related to input at all, but only output. Whenever a CR+LF is output in RSX, the LF is surpressed until the next character is written, and only output when something else needs to be printed. The same is actually also true in VMS. However, this behavior is depending on you using the terminal drivers own newline processing function. If you just output the CF and LF characters in your text stream, the LF will not be surpressed.

Another point is the character-at-a-time mode. I don't know exactly how rterm (or whatever) does this, but it's not really comparably to telnet. 
There is no "raw" mode in telnet (I only finished implementing my telnet client for RSX last week, so right now all the details are very fresh in my head :-) ).
However, it is probably fair to say that TOPS-20 in general reads each single character, and not a line at a time. So any terminal protocol needs to do the same for things to work right. In telnet, the most relevant part here is the echoing function, where you, for interactive sessions, normally have remote echo turned on. With local echo, you normally do a line at a time in telnet, but there is really no difference between doing line at a time and character at a time from the telnet protocol point of view. However, interactive users would not be impressed if you have remote echo, and only send the characters when you have entered a whole line (obviously).

If you want to do the same as TOPS-20 in Unix, however, you will turn on "raw" mode in Unix. :-)

Speaking of rterm by the way, I don't know much about it (obviously), but either it got to be a very clever protocol, or else it works the same as telnet with remote echo. If it's clever, then it needs not only be able to handle if you want to input without echoing, but also if you want binary reads (no terminators), special terminators, special keys meaning special functions, and god knows what else.
I think CTERM atleast tries to be clever here, which is why it is such a mess. Notice how VMS line editing partially works when doing SET HOST to a non-VMS system. Ugh!

	Johnny

-- 
Johnny Billquist                                   || "I'm on a bus
                                                                    ||   on a psychedelic trip
email: bqt at softjar.se                         ||   Reading murder books
pdp is alive!                                         ||   tryin' to stay hip" - B. Idol



More information about the Hecnet-list mailing list