[comp.lang.c] C for PDP11s

jbvb@mit-borax.ARPA (James B. VanBokkelen) (11/14/86)

In my last job, I managed/developed code for LSI11s and T-11s using the
DECUS C compiler running on RSTS/E and RT11.  The compiler supports
a .PSECT extension that greatly aids the development of ROMed systems,
and has a fairly simple and robust calling convention that simplifies
integration into assembly-language systems (our real-time O/S was all
MACRO, and we decided to add support for inclusion of DECUS C modules
- it took about 2 man-months, including testing).  The compiler and
libraries are all MACRO-11, and can be built and run on RT11, RSTS/E,
RSX and VMS (in compatibility mode).  It would be fairly difficult to
port it to Unix, except on an 11 equipped with a DEC-format assembler
(I have seen one, ported from DOS-11 long ago, in use at one college).
It would be essentially impossible to use it as a cross compiler,
except from a Vax with compatibility mode.

It comes with some pretty good utilities, but doesn't support a lot of
modern C features, like structure returns and assignments, variable
definitions on block boundaries, and bit fields.  We did several big
stand-alone systems, a lot of RT11 code, and a number of fair-sized
RSTS/E utilities, and only got burned once by a compiler bug (the I/O
library was not so clean, though, but certainly useable - all of the
utilities ran out of the box when initially compiled).  It will only
do floating point if there is a hardware FPP.  The only point of
comparison I know with Whitesmiths is that the DECUS I/O library is
more Unix-like, and that DECUS gives you source, where Whitesmiths has
a support number.  My former employer is still using the DECUS C.

jbvb@ai.ai.mit.edu
James B. VanBokkelen
FTP Software Inc.
(617) 864-1711