On Mar 3, 2020, at 6:57 PM, Thomas DeBellis
<tommytimesharing at gmail.com> wrote:
You've put your finger on something that's puzzled me for quite some time about
Tops-20's lexical implementation.
There is no standardized syntax in the generalized parsing interface (COMND% and GTJFN%)
for using numeric node names. If you ask COMND% to parse a node name and do not shut off
standard syntax, then you must specify a maximum six character word which conforms to the
SIXBIT character set followed a double colon, which looks like what you would think it
would, viz: VENTI2::
However, the integration into the monitor isn't as seamless as it appears to be under
VMS. In order to make a connection, you must build a special string for GTJFN% to
swallow. Let's suppose I wanted to grab the latest node list from MIM:: (which I do
on a weekly basis); you would type MIM::FIX.T20;0 as the source to NFT. That's not
what GTJFN% wants and you must transmogrify the string into DCN:MIM-FAL. Once that
connection is open, you negotiate DAP and then ask MIM:: to send the file.
There is no standardized "[a.b.c.d]" syntax such as what you might use to get
to an IP4 host which is neither in the DNS nor host tables. You can use COMND% to parse
for a number optionally followed by a dot and another number and the operator NICE
interface (NCP) does in fact do this. Indeed, it is the only interface besides SETNOD
which does this (in order to define nodes). So I can give an area.address to NCP as an
argument to a TELL verb in order to get remote information.
...
Curiouser and curiouser. Do the above two functionalities exist in other operating
systems?
The area.node notation, and the Phase 3 numeric address notation, were intended to be
standard, not just limited to NCP. And indeed DECnet/E (in RSTS) does both:
$ dir 1.13::[decnet]nodenames.dat;0
Node: 1.13
User: guest
Password:
System Password:
Directory 1.13::DU1:[DECNET]
Name .Typ Size Prot Access Date Time UIC
NODENAMES.DAT;254 30/30 < 40> 28-Feb-20 28-Feb-20 01:08 [7,14]
Total of 30/30 blocks in 1 file.
$ dir 1037::[decnet]nodenames.dat;0
Node: 1037
User: guest
Password:
System Password:
Directory 1037::DU1:[DECNET]
Name .Typ Size Prot Access Date Time UIC
NODENAMES.DAT;254 30/30 < 40> 28-Feb-20 28-Feb-20 01:08 [7,14]
Total of 30/30 blocks in 1 file.
These are DECnet kernel features. The connect call takes a 6-character ASCII node
argument, and if that's numeric string (possibly with a . in it) it's interpreted
as a node number in the way shown. Of course, 63.1023 doesn't fit in 6 characters so
for that one you'd be forced to write it as 65535.
paul