From mboxrd@z Thu Jan 1 00:00:00 1970 From: michael_davidson@pacbell.net (Michael Davidson) Date: Mon, 20 Feb 2006 22:58:48 -0800 Subject: [TUHS] ATT 3b2 In-Reply-To: References: Message-ID: <43FABA28.1060408@pacbell.net> 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.