LPTSPL has been able to do printing to different devices for quite some time; at least since Tops-20 3A.

At that point, LPTSPL would print to a magnetic tape that could be taken to another system.  This was used for special printers such as a Xerox 9700.  The other thing it could do was print to a remote DECnet based workstation, known as a DN200.  This indeed had a PDP-11 in it which was downloaded with the appropriate code over a synchronous line from a DN20 (connected to the 20 via a DTE).  The network code in LPTSPL had one of my favorite conditional names of all time: NURD, for Network Unit Record Device.

There were thus two ways to get other devices.  One was to make them function as a variation of a magnetic tape.  Columbia's serial Printronix TTY: based printers were done this way.  The other way was to look like a NURD.  What I did was wrote a program that looked like a DN200, called LSRV.  The first 20 to 20 network print was done in 1980 with LSRV; got me my first merit raise.

All of the NURD code for LPTSPL still exists, but LSRV sadly does not.  Carnegie-Mellon went a 3rd way by linking DAPLIB in and using that to do DAP printing.  A lot of modifications had to be made in order to make DAPLIB be able to handle the LPTSPL co-routines.  That was really hairy when I ported the CMU code to our LPTSPL in order to get Scribe to work right (its 9700 output was not documented and had to be reverse engineered)

I am unaware of any TCP: support in LPTSPL of any kind; it doesn't know from lpr, even though this is trivial.

There is something called TCPSPL, which is a vastly modified LPTSPL with full multi-forking.  It's nearly a full rewrite.  Since GLXLIB is not re-entrant, the routines that it uses had to be rewritten to support this and are specific to TCPSPL.

About four years or so ago, I had been working on a multi-forking high performance version of BATCON, but I was looking at the approach of making GLXLIB re-entrant.  A printer spooler for TCP: would be straightforward enough to adapt from this.

Then I joined HECnet which has provided me with a great abundance of bugs to fix, features to finish and enhancements to make.  And many rabbit holes...


On 5/4/22 7:28 AM, Peter Lothberg wrote:

Tops20 lptspl can write to a printer over DECnet (printer on VMS box), a printer on a serial port, a printer on a LAT server and a printer attached to the PDP11 in the KL...

There was code to print over IP, but I can't find it.

-P