Hello Paul,
Thanks for the detailed and, as always, very informative response!
In retrospect, perhaps some of my wording is unfortunate and/or 
insufficient.  Let me try to clarify/elaborate:
 
------------------------------------------------------------------------
  On Nov 20, 2022, at 11:09 PM, Thomas
DeBellis<tommytimesharing(a)gmail.com>  wrote:
 So MIM:: is sending an OS Type of 12, just like it's supposed to, and Tops-20
doesn't recognize this.  The recovery works well enough, it seems, Tops-20 DAP merely
whining, but carrying on.  So I'll fix that. [...] 
 On 11/21/22 9:25 AM, Paul
Koning wrote:
 I may have said this before, but....  applications like FAL should NOT base decisions on
the received type codes.  Those are actually a protocol design error; use them only for
informational displays. 
Yes, you've said it and I think maybe more than once.  This is an 
important point and I don't disagree.  Hardly.  You may recall that, 
based on your observation, I changed Kermit-20 (and SETHOST, I think) to 
check the NRT protocol type instead of the OS Type.  There, I only use 
the OS Type to print nice informative messages.
For what it's worth, neither Tops-20 NFT nor FAL have any VMS specific 
code.  NFT will parse an OS Type keyword, yet it does nothing but hand 
the OS Type code to DAP.  Historically, DAP largely used that 
information to handle how the VAX was acting incorrectly with the 
apparent tacit understanding that the behavior would be remediated.  
Edit 106 is instructive:
    The maximum value of DPMXM was lowered to ^d1636 if the user said
    /OSTYPE:VMS in SET DEFAULT.  This is the largest it can be and still
    allow VAX FALs to function if the VAX users accounting file allows
    BYTLM to default to 4K. If BYTLM is too small for DPMXM, then the
    VAX FAL hangs.  If all VAX users have BYTLM raised, then DPMXM can
    also be raised. Doing this provides better performance.  Note that
    the next release of VMS FAL should include a patch to solve this
    problem.  When NFT/FAL-20 is shipped with DECnet-20 Phase III this
    patch should be removed.
This was, in fact, eventually removed as part of Edit 161, viz:
    Remove edit 106 to DAPLIB which compensated for BYTLM being too
    small on a VAX/VMS account prior to DECnet-VMS V.3.1 and VMS V3.4. 
    This eliminates "data overrun" errors seen when transferring files
    from a -20 to VAX running VMS V3.4 or greater.
Among other things, OS Type byte is still used to pick the default file 
mode, viz:
    .MD1==^D1      ;/IMAGE
    .MD2==^D2      ;/IMAGE/FIXED
    .MD3==^D3      ;/IMAGE/VARIABLE
    .MD4==^D4      ;/IMAGE/MACY
    .MD5==^D5      ;/MACY
    .MD6==^D6      ;/MACY/FIXED
    .MD7==^D7      ;/MACY/VARIABLE
    .MD8==^D8      ;/ASCII
    .MD9==^D9      ;/ASCII/FIXED
    .MD10==^D10    ;/ASCII/VARIABLE
    .MD11==^D11    ;Print file format
    .MD12==^D12    ;Fortran format
Tops-20 DAP has a lot of special cases to handle the PDP-10's variable 
byte sizes.  There is no more any special casing for VMS as far as I can 
tell.  The only other OS type specific special casing that I see is for 
RSTS/E, but I have not reviewed that in depth, yet.
   I'm
wondering whether I should double check the FILESYS byte.  Probably. 
 The decisions
on how to handle all the many choices that DAP offers is from the capability flags -- 60
or so in the more recent protocol specs.  If one side needs to know whether the other side
can do X, don't do "if it's RSTS it can't do X" but rather
"does the flags field say the other side can do X?".  That way you won't
make the mistake VMS did, breaking when another OS adds a new feature. 
 
Yes, but I didn't mean base decisions on the FILESYS byte.  What I meant 
was, "I wonder where else Tops-20's DAP has different numbers than what 
is specified in DAP V5.6?  I ought to at least double-check whether the 
FILESYS byte definitions jive."  I have and they do.
   It seems the
best way to go is to simply mimic the RSX naming paradigm; that is, RSX OS$XXX would go to
.OSXXX. 
 I'm not sure what "naming paradigm" means.  Is that about parsing name
strings?  The way I remember it is that a single set of rules works for everything
interesting.  Directories are in [ ] or < >; versions are delimited by dot or
semicolon.  That excludes some oddball cases -- protection codes in <> for RSTS,
directories in ( ) for RSTS (that was for IBM 2741 terminal support).  Those aren't
all that important and have workarounds on those systems.  Unix doesn't fit at all;
those names have to be handled by using quoted strings.  (Handling quoted names is
important for that reason, and also to deal with anything else strange a user might want
to hand you.) 
 
That's an excellent point, and this is, in fact, done.  However, it is 
not what I meant.  I simply meant what sort of naming convention should 
I follow when coining new symbol names and that it seemed to me that it 
might be useful to either follow or at least mimic or 'rhyme' with what 
Johnny sent me for RSX.  In other words,
    RSX
    Symbol 	RSX
    Value 	RSX
    OS Type 	Tops-20 DAP
    Symbol
    OS$RT 	1 	RT-11 	.OSRT
    OS$RST 	2 	RSTS 	.OSRST
    OS$11S 	3 	RSX-11S 	.OSRXS
    OS$11M 	4 	RSX-11M 	.OSRXM
    OS$11D 	5 	RSX-11D 	.OSRXD
    OS$IAS 	6 	IAS 	.OSIAS
    OS$VMS 	7 	VAX/VMS 	.OSVAX
    OS$T20 	8 	TOPS-20 	.OSTP20
    OS$T10 	9 	TOPS-10 	.OSTP10
    OS$RTS 	10 	RTS-8 	.OSRTS
    OS$OS8 	11 	OS-8 	.OSOS8
    OS$MPL 	12 	RSX-11M+ 	.OSRXP
    OS$COP 	13 	COPOS/11 	.OSCOP
    OS$POS 	14 	P/OS 	.OSPOS
    OS$ELN 	15 	ELAN 	.OSELN
    OS$CPM 	16 	CP/M 	.OSCPM
    OS$MSD 	17 	MS-DOS 	.OSMSD
    OS$U32 	18 	Ultrix-32 	.OSU32
    OS$U16 	19 	Ultrix-11 	.OSU16
Here, the red means the corrected Tops-20 DAP symbol definitions and the 
green are the new definitions.  You will note that the last three 
letters for these new symbols are the same as RSX and I thought there 
might be some value in that as a reminder when trouble-shooting.
Maybe naming convention is the better term than paradigm?