Yes, I need to do a (short) .HLP file and (longer) .DOC file for SETND2.  Since the keyword parsing is compatible for the previous version's (SETNOD) subset of the functionality, that suggests the .HLP file should be able explain both of them.

I'll keep this email flagged and prioritize doing that documentation before fixing HSTNAM and finishing EFTPSR, which are what remain to release everything (call it 'PANDA II').  I'd call it MME (MRC Memorial Edition), but he'd probably be horrified at what I've done to HSTNAM (see previous).

Right now, I'm finishing up some code for 'high precision' uptime.  Right now, Tops-20 can not set a time and day with any closer resolution than 0.329588586 (which is almost, but not quite ⅓) of a second, meaning I can never put an NTP client up.  This is despite a 1 mHz internal clock and internal structures to handle 100 kHz (DK10) resolution.

Of course, doing this broke some other things, so right now I'm fixing that...

You'd think I'd learn my lesson about rabbit holes.  After all, there are only so many tuits...

On 9/30/23 7:01 PM, Johnny Billquist wrote:

Thomas, if you could write up how to use SETNOD, I'd be happy to put that into my documentation. It's been a long time since I did anything in T20, and this is one of the things I played very little with...

Doc have been placed at http://mim.stupi.net/hecdb.htm

  Johnny

On 2023-09-30 20:37, Thomas DeBellis wrote:

It is a true statement that the format of FIX.T20 file is compatible the NCP sub-mode of Tops-20 OPR, viz:

    NCP>set noDE 2.251 namE SCONOS::
    NCP>
    14:03:47     NCP

    Request # 344; Set Node Completed
    NCP>shoW noDE 2.251
    NCP>
    14:03:55     NCP

    Request # 345; Show Node Summary Completed

    Remote Node = 2.251 (SCONOS)

       State = Unreachable
    NCP>

This is by design because the file is actually handled by something else, SETNOD.  SETNOD parses the file, and produces a binary format file which can be directly swallowed by the NODE% JSYS' .NDINT function. So that's a few JSYi and you're done.  This is really important at boot time when a lot of stuff is cranking up.

Otherwise, using OPR will be very slow.  In addition to parsing the indicated text, an IPCF message has to get built which is then sent to Orion who then hands off to NMLT20 to do the work.  So that's a bunch more JSYi and five context switches for every node.  You really don't want to do this at boot time as there are timing and resource issues you can bump into and it slows down the boot.

Unfortunately, there is undocumented behavior in Tops-20 that, if you redefine a node in another area, everything is fine.  If, instead,you try to do this to a node in the same area, you'll get a cryptic error.  You've got to delete the node first.  However, to find that out, you need to make a lot of changes to the monitor to get the secondary error code back and have SETNOD to display it.

I did all that plus entirely rewrote SETNOD to be aware of the node deletion requirement before putting in the new definitions.

This is all done by a something-weekly batch job that pulls the FIX.T20 file down and then has SETND2 parse it.  If there are no changes, then nothing happens.  If there are changes, then SETND2 does things the right way and only puts in the updates; maybe a handful of nodes. I would imagine that I could have 'fixed' the monitor to do this itself, but I was unsure as to why the behavior was as it was in the first place and thus I fixed it in user mode.  Such incremental updates are also more efficient for the monitor.

This has all worked uneventfully for well over a year on TOMMYT:: and VENTI::, although I do tinker with the code from time to time when the mood strikes me.  One thing I did was to do a multi-forking JSYS trapping based simulation mode (using TFORK%) to allow me to do testing without choking the monitor.  That enable me to do things with thelocal executor that Tops-20 only permits once per boot.

This will all get posted as PANDA II when I get out of all the rabbit holes I'm in.

Meanwhile, I'm not aware of any 20 site regularly updating their node database.  I couldn't say about Tops-10.

DATATRIEVE sounds awfully familiar.  Was there a 36 bit version ofit?
------------------------------------------------------------------------
On 9/30/23 8:32 AM, Johnny Billquist wrote:
    .
    .
    .

FIX.T20 - This is a script for TOPS-20.

    .
    .
    .

TOPS-20:

Grab MIM::HECNET:FIX.T20 and run in in the NCP submode of OPR (if I remember the setup correctly).