Trying to unravel some of this very informative thread.
 
------------------------------------------------------------------------
 On Nov 21, 2022, at 2:41 PM, Johnny Billquist <bqt(a)softjar.se> wrote:
 Yeah. NRT is a bit odd. And unless I remember wrong, some variant 
 don't even send anything at the start, so it's even more screwball to 
 identify what you should try and speak.
 ------------------------------------------------------------------------
  On 2022-11-21 20:53, Paul Koning wrote:
 I haven't seen any NRT servers that fail to send a config saying what 
 flavor they are.  Only the server does; the client expects the server 
 to speak first after connection is made. 
------------------------------------------------------------------------
 On 11/21/22 5:52 PM, Johnny Billquist wrote:
 You forget fast. :-)
 Here is what I wrote in August this year:
 [...]
 So basically, the TOPS-20 NRT server is not sending anything when you 
 connect, 
Am I understanding you correctly?  Are you sure about that?  May I ask 
you to send me an example where this happens?  Paul's recollection 
agrees with my experience.  Also, the monitor code for NRT (in 
NRTSRV.MAC at NRTRSS) _specifically_ sends a configuration message after 
accepting the connection (I just checked), an interesting comment being:
    CFGLEN==10                      ;BYTES IN CONFIG MESSAGE
    CFGMSG: BYTE(8) 1,1,0,0,10,0,10,0
    ;       Config--' ^ ^ ^  ^ ^  ^ ^
    ;                 ? ? ?  | ?  | ?
    ;       System=TOPS20----'    |
    ;       Protocol=TOPS20-------'
So if you are not seeing that, there is another bug for me to find.
  Looking at the TOPS-20 client, there don't seem to
be any system 
 checking or init message at all.  
That's not my experience nor my understanding
of the current code base.  
Neither SETHOST or Kermit-20 will display output until they get a 
configuration message.  However, they will accept input because they are 
running different forks for input and output.
I have tested this on a number of systems on HECnet.  You can start 
typing because you are running asynchronously, but eventually you will 
gronk when SETHOST gets the wrong OS type byte (the *wrong* way to do 
it) and Kermit-20 detects an incompatible Protocol (the *right* way to 
do it).
It is a true statement that VERY old versions (Phase II, circa 1979) of 
Tops-20 NRT servers and clients don't do any system checking.  However, 
they are connecting on port 200 instead of 23.  The Phase II 'protocol' 
(if you can even call it that) does nothing more than transfer data to 
and from a PTY.
  Linux is after all just another Unix in this sense,
and would suite 
 very well into just pretending to be Ultrix.  
They certainly sure do smell the
same.  However, having programmed both 
Ultrix and Linux, I can tell you that there are some significant API 
differences, particularly in the area of shared memory and semaphores.  
And the differences in shells and other programs are not always 
negligible.  However, your point is valid enough.
 > But by that reasoning, all RSX-11/M variants
should use the same 
> code, and likewise RSX-11/D and IAS should share a code.  After all, 
> they are essentially the same OS... 
An even better point, IMHO.
   In any case,
the main point is that OS code 192 is a code with a well 
 defined meaning, so for an NFT to complain about it isn't simply a 
 violation of the "be lenient in what you receive" rule, it's a direct 
 violation of the definitions in the protocol spec. 
 Agreed. 
 
Indeed, I would go even further: in my opinion it is the hallmark of 
poorly written code to simply give up and drop dead.  I would say at 
least half of our efforts at Columbia were spent tracking down and 
either fixing bugs or writing code to recover from them. CMU couldn't 
figure out a DECnet memory leak in the 4.0 timeframe, but had an 
interesting program that would go through the free list and return the 
memory so the system didn't crash.  They called it "DECnet Liquid 
Plumber".  It was a fine hack until the problem was finally tracked down.
Telephones would explode when a large timesharing system went down...  
It was the last thing you ever wanted to happen.