Smallest TCP/IP code?

From: Tom Jennings <>
Date: Fri Feb 18 14:59:09 2005

On Fri, 18 Feb 2005, Paul Koning wrote:

> >> Anyway, the BSD 2.x code might be helpful; after all that fits
> >> into a PDP-11. And it's written in C.
> Jochen> I just thought the same.
> >> As for the compiler, you could do a Nova port for GCC... :-)
> Jochen> Or modify the 2.x BSD cc to emit code for the Nova... I know
> Jochen> that the old BSD PCC was extended to support ANSI C and emit
> Jochen> PDP-10 code for the PDP-10 port of NetBSD because PCC is so
> Jochen> small and simple. --

Well I'll talk to Bruce about the native compiler first of course
but cross-compilation did occur to me, but slogging code in and
out of the machine would suck.

> Interesting. But there is also a PDP-10 port of GCC, see
> Also, GCC already supports the PDP-11, which suggests that a Nova port
> might not be all that hard. (Certainly easier than the PDP-10 port
> was, with its funky word size.)

A compiler for the pdp-8 would be much closer. Have you looked at
the Nova instruction set? It's very old-fashioned. A lot of
parallelism; one 16-bit logical/arith order can do, in one cycle:
1) effective mem addr calc, 2) three carry flag setups, the 3) op,
4) shift left or right, 5) source/dest register, and 6) "no load"
to throw away the result (for comparisons, etc).

Unfortunately except for page 0 there's no "direct addressing" eg.
you cannot say "JUMP 12345" or "load 23456". It has to reference a
register for address of a memory-indirect (using bit 0 as indirect
indicator) (bit0 is on the left, 15 on the right).

My nova 4 (and eclipse) has a stack and frame pointer, but the
others don't. You have to roll your own.

Probably not the easiest arch to port a modern compiler to.
Received on Fri Feb 18 2005 - 14:59:09 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:37:39 BST