Steve thank you for the recollections, that is precisely the sort of story I was hoping to hear regarding your Interdata work.  I had found myself quite curious why it would have wound up on a shelf after the work involved, and that makes total sense.  That's a shame too, it sounds like the 8/32 could've picked up quite some steam, especially beating the VAX to the punch as a UNIX platform.  But hey, it's a good thing so much else precipitated from your work!

Also, those sorts of microarchitectural bugs keep me up at night.  For all the good in RISC-V there are also now maaaaany fabs with more license than ever to pump out questionable ICs.  Combine that with questionable boards with strange bus architectures, and gee our present time sure does present ripe opportunities to experiment with tackling those sorts of problems in software.  Can't say I've had the pleasure but it would be nice to still be able to fix stuff with a wire wrap in the field...

- Matt G.

P.S. TUHS cc as promised, certainly relevant information re: Interdata 8/32 UNIX.
------- Original Message -------
On Friday, August 4th, 2023 at 6:17 PM, scj@yaccman.com <scj@yaccman.com> wrote:

Sorry for the year's delay in responding...   I wrote the compiler for the Interdata, and Dennis and I did much of the debugging.  The Interdata had much easier addressing for storage: the IBM machine made you load a register, and then you had a limited offset from that register that you could use.  I think IBM was 10 bits, maybe 12.  But all of it way too small to run megabyte-sized programs.  The Interdata allowed a larger memory offset and pretty well eliminated the offsets as a problem.  I seem to recall some muttering from Dennis and Ken about the I/O structure, which was apparently somewhat strange but much less weird than the IBM.

Also, IBM and Interdata were big-endian, and the PDP was little-endian.  This gave Dennis and Ken some problems since it was easy to get the wrong endian, which blew gaskets when executed or copied into the file system.  Eventually, we got the machine running, and it was quite nice: true 32-bit computing, it was reasonably fast, and once we got the low-level quirks out (including a famous run-in with the "you are not expected to understand this" code in the kernel, which, it turned out, was a prophecy that came true.   On the whole, the project was so successful that we set up a high-level meeting with Interdata to demo and discuss cooperation.  And then "the bug" hit.  The machine would be running fine, and then Blam! it has lept into low memory and aborted with no hint as to what or where the fault was.

We finally tracked down the problem.  The Interdata was a microcode machine.  And older Unix system calls would return -1 if they failed.  In V7, we fixed this to return 0, but there was still a lot of user code that used the old convention.  When the Interdata saw a request to load -1 it first noticed that the integer load was not on an address divisible by 4, and jumped to a location in the microcode and executed a couple of microinstructions.  But then it also noticed that the address was out of range and entered the microcode again, overwriting the original address that caused the problem and freezing the machine with no indication of where the problem was.  It took us only a day or two to see what the problem was, and it was hardware, and they would need to fix it.  We had our meeting with Interdata, gave a pretty good sales pitch on Unix, and then said that the bug we had found was fatal and needed to be fixed or the deal was off.  The bottom line, they didn't want to fix the bug in the hardware.  They did come out with a Unix port several years later, but I was out of the loop for that one, and the Vax (with the UCB paging code) had become the machine of choice...


---
 


On 2023-07-25 16:23, segaloco via COFF wrote:

So I've been studying the Interdata 32-bit machines a bit more closely lately and I'm wondering if someone who was there at the time has the scoop on what happened to them. The Wikipedia article gives some good info on their history but not really anything about, say, failed follow-ons that tanked their market, significant reasons for avoidance, or anything like that. I also find myself wondering why Bell didn't do anything with the Interdata work after springboarding further portability efforts while several other little streams, even those unreleased like the S/370 and 8086 ports seemed to stick around internally for longer. Were Interdata machines problematic in some sort of way, or was it merely fate, with more popular minis from DEC simply spacing them out of the market? Part of my interest too comes from what influence the legacy of Interdata may have had on Perkin-Elmer, as I've worked with Perkin-Elmer analytical equipment several times in the chemistry-side of my career and am curious if I was ever operating some vague descendent of Interdata designs in the embedded controllers in say one of my mass specs back when.
 
- Matt G.
 
P.S. Looking for more general history hence COFF, but towards a more UNIXy end, if there's any sort of missing scoop on the life and times of the Bell Interdata 8/32 port, for instance, whether it ever saw literally any production use in the System or was only ever on the machines being used for the portability work, I'm sure that could benefit from a CC to TUHS if that history winds up in this thread.