
Two bits per transistor: high-density ROM in Intel's 8087 floating point chip - magnat
http://www.righto.com/2018/09/two-bits-per-transistor-high-density.html
======
jacquesm
That's a super neat trick, I would have never suspected it from looking at the
initial die shot.

The later 80387/80386 combo had an interesting property: you could clock both
at different rates, even though they normally shared a clock line from the
crystal oscillator, apparently the interface between the two chips was
resilient enough that it would work in a mostly asynchronous fashion.

After reading about that I figured I'd put it to the test, and cut off a leg
from an 80387 to solder a short wire to the remains and this in turn to an IC
socket that you could then try to put different oscillators in, running some
benchmark to ensure that it was stable.

It worked like a charm and I gave a 3D demo in front of an audience in an
Amsterdam planning committee about the construction of a new building for 'the
Meervaart' in Amsterdam west. The demo went off without a glitch, and I was
super happy with my little hack that allowed a much larger number of objects
(buildings) to be shown in the display in real time than would have been
possible otherwise.

~~~
stuaxo
Very nice, is the a video?

~~~
jacquesm
I wish. We're talking early 90's here, maybe even a bit earlier than that (I
could find out the exact date if I dig hard enough).

I was lucky enough to be able to get a beamer with enough lumens that it could
be used for an audience that large, a giant NEC iirc.

The display was 800x600x24, hidden line removal was done by back-to-front
drawing, double buffering courtesy of a TSENG card that had enough ram to have
two full screens worth of data. The card could have gone higher but the beamer
only did 800x600 (which was pretty good, most of them at the time only did
640x480).

It did about 10 fps or so with a few hundred objects, all simple blocks of a
certain color extruded from a scan of an aerial photograph (which I still
have, one of the oldest things I still have related to my work). The idea was
to get people to look at the new situation from the vantage point of their
house.

By todays standards it was totally lame, but back then it was awesome, a
couple of years later I bought an Indy and never wrote another line of 3D->2D
code but I loved that work.

Intersting tidbit: I got paid with a car, a rusty old Citroen DS that I took
the engine out of to rebuild my own.

Fun memories.

------
magnat
Note this gem in the footnotes:

> Ion implantation was also used in the Z-80 microprocessor to create some
> transistor "traps", circuits that looked like regular transistors under a
> microscope but received doping implants that made them non-functional. This
> served as copy protection since a manufacturer that tried to produce clones
> on the Z-80 by copying the chip with a microscope would end up with a chip
> that failed in multiple ways, some of them very subtle.

~~~
jacquesm
Hehe. That reminds me. On an Atari ST based CAD/CAM system I wrote we used a
similar trick: a hair thin wire inside the DB25 shell of the Centronics port
connected two pins together. In the software we checked for the presence of
that wire and if it wasn't there we'd do a huge malloc causing the program to
abend with an out of memory error.

Every now and then we'd get people complaining about the software using too
much memory but they would never want to leave a phone number or other contact
details behind. I don't think anybody every found out about that while the
machine was still in production, it was very hard to spot and you had to drill
apart the db 25 shell by destroying the two small rivets that held it
together. Super silly copy protection but quite effective.

~~~
CamperBob2
So this was a dongle that you guys shipped with your system?

~~~
jacquesm
A dongle is something external to the computer, this was a very small
modification of the motherboard.

------
mdaniel
If this stuff interests you, and you're not already aware, the "Unnamed
Reverse Engineering podcast" will be worth a listen:
[https://reverseengineering.libsyn.com/rss](https://reverseengineering.libsyn.com/rss)

I only recently discovered it, and am about 6 episodes into it, but they've
had interesting guests, the show notes have good links, and I actually
recognized Ken's domain from the last episode I listened to (by coincidence):
[http://reverseengineering.libsyn.com/005-circuits-that-go-
to...](http://reverseengineering.libsyn.com/005-circuits-that-go-to-nowhere)

------
dfox
One notable design choice is the row multiplexer, from schematic perspective
it is completely redundant (and only contributes additional transistors) but
is there presumably to make the ROM shape more suitable for overall chip
layout (ie. trading complexity for more squarish-shape of the circuitry). Nice
trick is that this mux is on the analog side which saves both on paths through
mux and number of output ADCs.

------
jepler
I had e-mailed Ken Shirriff a few months ago to ask whether he might tackle
this topic. I'm thrilled that he has! Thank you!

