[ih] NCP and TCP implementations

Jack Haverty jack at 3kitty.org
Tue Jul 21 19:44:48 PDT 2020

More recollections -- Jim Mathis' TCP implementation was done for use on
top of MOS, the SRI OS which apparently ran on various PDP-11 based
devices such as the Packet Radios, Port Expanders, et al.  We used it at
BBN in LSI-11 based systems.

Jim's MOS-hosted TCP was what I received at ARPA's direction in 1977, to
use as a basis for implementing the first Unix TCP.   I used a lot of
Jim's code that did the TCP state diagrams, buffer management,
"Transmission Control Block", etc., but of course had to change all of
the system and "user" interface code.  Everything was in Macro-11
assembler, although I used a PDP-10 (Tenex) to cross-compile for the
11/40 where Unix ran.  I don't think I had to do much if anything to
make the Macro-11 code able to assemble using the PDP-10 tools.

It might be interesting to compare Jim's TCP with my Unix version to see
how much "common DNA" remained.   My code is an old paper listing
though, so it won't be as simple as just running 'diff' on the two.

Dave Mills "fuzzballs" were -11 based and also had TCP.   But I don't
recall ever knowing whether that was an implementation from scratch, or
if it was also derived from Jim's code.


On 7/21/20 6:43 PM, Noel Chiappa via Internet-history wrote:
>     > On 20.03.10, vinton cerf via Internet-history wrote:
>     >
>     > Steve Kirsch asks in what languages NCP and TCP were written.
>     > ...
>     > Another version was written for PDP-11/23 by Jim Mathis but not clear in
>     > what language.
> I think I answered this when it was first posted, but I now have some
> additional data (I think).
> It was written in MACRO-11; PDP-11 assembler with a powerful macro capability.
> After some poking around in a copy of the file system of the v6 Unix
> timesharing system of the CSR group at MIT, which has all sort of goodies in
> it (including a copy of the NCP for v6 Unix), I have recovered a copy of that
> TCP, if anyone wants it.
> I'm not sure if it was done for the -11/23; we got MOS (Jim's OS, and other
> software, including the TCP and an early version of the Port Expander codea)
> early on, and I seem to recall that the -11/23 didn't come out until after we
> had MOS. I'd have to look up exactly when the KDF11 was released to be sure, if
> it's important. MOS had conditionals to work on the -11/03 and also the -11/20
> and -11/40 (binary for the -11/40 will run on the /23). I think the TCP, etc
> were written for the -11/03.
>     > Dave Clark did one for IBM PC (assembly language/??)
> No, but Dave did I think at least two others; possibly one in BCPL? for the
> Tripos operating system from Cambridge, and definitely one in BCPL for the
> Alto (MIT got several as a donation from Xerox). Before the latter, he also
> worked on the Multics one (in PL/I) although someone else whose name my
> failing brain can't remember at the moment worked on that before him. The Alto
> one was later translated into C by Larry Allen for the CSR v6 Unix, which I
> used as the base on one I did for Bridge.
> The one for the PC was done by John Romkey and David Bridgham, in C; the CSR
> machine dump has that one too, if anyone wants it.
>     Noel

More information about the Internet-history mailing list