Ha! This guy ?JDB? who wrote the Fortran program in 1987 was a genius, much like me ?
I implemented this exact same method to explore my Dip_Pi Wifi module that provides
network functionality to my Raspberry Pi Pico.
The network functions of the module are driven by sending AT-commands to a UART on the
module. Using an interactive loop, I determined the correct sequence of AT commands (in an
interactive loop) to get it to connect to the local WiFi access point, and then set up a
TCP-session to a time server to set the RTC, and then to a (local VMS) mail server to send
a mail. That led, finally, to a script of AT-commands that are fed to the Pico main
thread, while the second Pico CPU deals with a read loop in a second thread to process the
received data. Semaphores and all.
Now, explain to 1987 JDB what a Pico is, and how it compares to his PDP-11.
Wilm
From: owner-hecnet at Update.UU.SE <owner-hecnet at Update.UU.SE> On Behalf Of Paul
Koning
Sent: Thursday, December 16, 2021 4:43 PM
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] DECnet/E programming manual / examples
On Dec 16, 2021, at 8:03 AM, Wilm Boerhout <wboerhout at
gmail.com <mailto:wboerhout
at gmail.com> > wrote:
Hi folks,
I need to port a simple DECnet task-to-task program to RSTS/E V10.1, DECnet/E V4.1
Do any of you PDP-11 buffs have a DECnet/E programming manual. I know bitsavers
doesn't.
A small example in Fortran, Basic, Basic-Plus will also do.
The functionality, expressed in VMS DCL, is as follows:
$ open /read /write NETCHN REMOTE::?150=?
$ write NETCHN ???f$trnlnm(SYS$NODE)??
$ read NETCHN time
$ close NETCHN
Thanks,
Wilm
The simplest way would be to use the "high level interface" library (DNEHLL),
which is callable from BP2 and Fortran. There's also a simpler interface called the
"concise Cobol interface" which I suspect is useable from other languages too.
They are documented in the manual, but that brings us back to the previous question...
:-(
I looked through my sources for sample code that uses these, have not found any really
short examples. The attached Fortran program uses the library, it offers access to each
of the functions interactively.
The thing to remember with RSTS is that, unlike most or all of the others, its DECnet data
service is a segment service rather than a message service. In other words, the OS makes
the application worry about breaking application messages into NSP segments, and the
beginning-of-message and end-of-message flags are supplied by the application. It's
possible to do bad things that won't bother other RSTS network programs but confused
other operating systems, for example by sending messages without ever setting EOM.
I've also seen some buggy programs that send the first segment without BOM, which
probably won't break stuff but certainly is not correct. When dealing with short
messages as in your example, you'd just set BOM and EOM both, and expect EOM in the
incoming message.
paul