On 2024-06-17 23:36, Thomas DeBellis wrote:
Actually Tops-20 finger does functions exactly the
same whether you are
local or network; that is, a line of text is parsed from primary input
(.PRIIN) and the resulting output is typed on the terminal or primary
output (.PRIOU). What happens in the network case is that the backing
JFN's for .PRIIN and .PRIOU are changed from the controlling terminal
(I.E., .CTTRM) to the network JFN with the SPJFN% JSYS.
Hmm? How does command line processing work under TOPS-20?
If you type:
@ FINGER MIM::
would the finger program be started, and it would do a read from the
terminal to read a line, and it would actually get the command line
"FINGER MIM::", or actually, would it get "MIM::" in that case?
Because
that is how it would need to be in order to work the same if it came via
DECnet.
When running as such in 'server mode', Finger
has no idea of what is
going on. It literally can not tell the difference in input source
unless it does some terminal specific things, which it largely doesn't
do. This is how the NETSRV daemon implements the Finger TCP service.
Well, my questions are specifically about how it get some command line
stuff here. For the rest, for sure I can see that it wouldn't be aware,
or have any need to.
Similarly, when finger is run as a client and asks for
a network
connection, the protocol is deduced by a table lookup and the line it
has is simply shoved over the connection. The only difference is in the
syntax for the constructed JFN. Code exists for TCP and Pup and it's
simple enough to put in a DECnet entry. I might do that to try itout.
The "line it has" it what my question is about. If you run locally, I
wouldn't expect it to talk to anything, but simply pull out the
information from the local system itself. Are you saying that the client
always calls a separate backend under TOPS-20?
Regarding Batch, it would be difficult to imagine a
valid use case for
IDLE%. CPU time is probably fine as it takes processor time to consume
characters. That being said, it's possible that you could have a
background task that pops every so often to do some minor thing while
the main fork could be wedged. It all seems a little contrived.
Yeah. I would generally not consider batch jobs to make sense to talk
about in the context of idle processes.
I bring it up because the Tops-20 pseudo-terminal
implementation is
accurate enough so that I can test certain arcane features such as
parity with Kermit-20. When I use Kermit-20 to establish a local
connection over a PTY, it works fine, viz:
User Personal name Job Subsys Idle TTY Console location
SLOGIN Thomas DeBellis 8 EMACS 1:21 44 iSnack.Laurel:
Development, Large
--> 10 FINGER 46 iSnack.Laurel:
Secondary Testing, Kermit-20
--> 12 EXEC 14. 21 Job 10, SLOGIN, FINGER
You can see that I haven't typed anything into job 12 for fourteen
minutes since I pushed to an EXEC to run the finger.
This doesn't happen with the Batch controller, so I've wondered what it
might be doing that clears idle.
Obviously I have no idea. :-)
Johnny
------------------------------------------------------------------------
On 6/17/24 3:57 PM, Johnny Billquist wrote:
On 2024-06-17 21:37, Thomas DeBellis wrote:
The finger server simply listened on a
particularly port and when a
connect was accepted, it was handed off to a fork with finger mapped
and the primary I/O JFN's were set to the network connection. I
don'tsee that it is on the PANDA distribution, but it's an easy thing
to write.
From a DECnet perspective it's definitely easy. Connection
estavlished, client sends one line in the same format as the command
line, server responds, just like if you'd get a line and process locally.
I would expect that either the TOPS-20 version also does things
slightly differently for DECnet than local, or else it's not
compatible with the RSX (and I assume VMS) version.
For a local processing, the command line is provided as a part of
starting the process, while over DECnet it will need to read a command
line from the DECnet connection. But from there on, it's pretty much
the same story either way.
As I recall, it doesn't quite work right with
a batch job, but since
there is nobody there, this doesn't really matter. Idle time inthat
case is detected by CPU consumption.
Idle for batch jobs would be weird. As soone as one thing is
completed, the next thing should be started. Where would any idle time
be? Unless there is something like a sleep at the CLI prompt level.
Johnny
_______________________________________________
HECnet mailing list -- hecnet(a)lists.dfupdate.se
To unsubscribe send an email to hecnet-leave(a)lists.dfupdate.se
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol