On 5/1/25 12:20 AM, Al Kossow wrote:
On 4/30/25 8:38 PM, Jonathan Gray wrote:
Chris was part of the Nu project.
"Was a principal developer of the NuMachine"
"developed a family of portable C compilers for the (then) newly
available microprocessors. These compilers were widely distributed as
the first C implementations for the x86 and 68K processors."
https://people.csail.mit.edu/cjt/resume.html
I found most of the yearly LCS reports have been digitized to DTIC
which answered a bunch of my questions about who was doing what at
that time
I've archived them at
http://bitsavers.org/pdf/mit/lcs/progress_reports
Some background, though the MIT LCS progress reports should cover much
of this. I won't attempt to put any dates.
Chris Terman was one of the graduate students in the RTS group. Since
VT-52 terminals were relatively scarce, he designed and built his own
with a larger screen - something like 40 lines by maybe 120 or 132
characters, called the "Termanal". I don't remember if it used an 8080
to handle the control sequences in the data stream or something else.
He then got interested in designing a terminal that could display bit
map graphics, to be comparable to the graphics used on the Lisp Machines
just being built by the MIT-AI lab. I had stumbled across one of the LCS
progress reports that credits Professor Steve Ward and one of the
undergraduate staff, Rae McClellan in assisting the design of this bit
graph which was named the "Nu Terminal" (I don't think it was the "Nu
Termanal"). This used an 8086. A couple of these were built. One of the
undergraduate students, Jon Sieber, had been a member of an Explorer
Post in Murray Hill where Dennis Ritchie was the advisor. Jon would
regularly bring UNIX tapes from the Research Lab and included things
like early versions of the Portable C Compiler and the Circuit Design
Aids. Chris used the Circuit Design Aids to design wire-wrap boards for
the Nu Terminal and the RTS lab got a semi-automatic wire wrap machine.
Some students and staff took turns doing the actual wire wrapping. My
contribution was writing some simple software that simulated a paper
tape reader for the wire wrap machine.
An undergraduate student, Mike Patrick, did his bachelor's thesis
writing a table driven assembler and constructed tables for the 8086 and
I think an 8080. Later there were drivers for the Zylog Z8000, the
National Semiconductor NS16000 and the Motorola 68000. I contributed a
small bit of code for doing optimal choice of short vs long branches (to
branch to an address more than +/- 127 bytes, you had to branch around a
longer jump instruction).
Chris Terman did the work of modifying the Portable C Compiler to
generate code for the 8086, the Z8000, NS16000 and MC68000. I think we
may have built one machine with the Z8000, but quickly settled on using
the MC68000, primarily because of the 32-bit support (one progress
report says that Zenith was supposed to build multiple Z8000 based
machines, but I don't remember those. The NS16000 had better memory
management, but I don't think we ever actually received any CPU chips.
Anyway, these compilers were what was distributed, and the MC68000
compiler in particular was used by almost all the companies that came
out the MC68000-based Unix machines. Apollo was a notable exception, but
Apollo wrote their own operating system from scratch rather than Unix.
Side note: Bill Poduska came to visit Steve Ward and before the visit
Steve was all excited, but was disappointed that Bill was not going to
use Unix.
Before the RTS group used Unix, they had written a small timesharing
system for the PDP-11/45 that was used in the 6.031 introductory
computer science course taught by Mike Dertouzos. Chris was involved in
maintaining that, though I think Steve Ward was probably the main
implementor. Chris had also spent too many hours changing address
jumpers on Unibus and other controllers as well as tweaking Unix mkconf
files, and thought that while the 4BSD autoconfiguration was an
improvement, there should be a better way. Chris and Steve designed the
Nu bus, and the Nu Bus was used in the MC68000 boards. Eventually it was
picked up by Apple.
Chris was one of many students who took the Mead/Conway LSI design
course and ended up abandoning his research on portable compilers in
favor of simulating LSI designs. He was also a co-founder of Symbolics
and designed the controller for their laser printer before returning to
MIT as a Lecturer and sponsored research staff.
There were also proposed follow-on software projects related to the Nu
terminal. One was Trix. Steve Ward said he didn't know what an "ics"
was, but Multics clearly had too many, and Unix had too few, hence Trix.
Jack Test was hired to do a lot of the development. Wikipedia has a
reasonable summary of Trix, as far as I remember, but I had left RTS to
join Masscomp in late 1981/early 1982, and I know Jack Test was an early
employee of Alliant Computer so he left Trix probably in 1982.