[TUHS] ATT 3b2

Michael Davidson michael_davidson at pacbell.net
Tue Feb 21 16:58:48 AEST 2006

dmr at plan9.bell-labs.com wrote:

>The 3B2 was not the same machine as the one in 5ESS, which
>was/is the 3B20D, a fairly large duplexed machine (two processors
>that mutually checked each other).  The 3B2 was a desktop.
>The 3B20D wasn't sold commercially, as far as I know.  There
>was a 3B20S (multi-cabinet) that at least nominally
>was commercially available.
>Their ISAs were not quite the same, but some assembler language
>tricks made the assembler-level languages look quite similar.
That brings back memories ...

If I remember correctly, all of the "real" members of the 3B family
(i.e. 3B2, 3B5, 3B15 and 3B20) shared a common "virtual"
instruction set called (I think) IS25 - it was the job of the assembler
to translate IS25 into the actual machine code for the specific
processor used in each machine.

IS25 was a little curious because it only defined those instructions
that were likely to be of use to the C compiler - thus there was a
"push" instruction so that the compiler could push function arguments
onto the stack, but no "pop" instruction because the C compiler
never generated it.

The 3B2 was also quite "ahead of it's time" in having a soft power
switch (i.e. one that signalled the sytem to shut down and power
off rather than simply cutting the power) and the ability to (attempt
to) reconfigure itself when new hardware was installed. This latter
feature involved automatically relinking the kernel and rebooting
the system and it was not uncommon to get into an infinite loop
where, each time the system booted, it decided that the current
system configuration didn't quite match the booted kernel and
proceeded to relink yet another kernel and reboot.

More information about the TUHS mailing list