Preserving Great Tech For Posterity — the 6502
trebonian writes "For great old hardware products like the MOS 6502 (used in the Apple II, the C64, the Nintendo NES), the details of the designs have been lost or forgotten. While there have been great efforts to reverse engineer the 6502 from the outside, there has not been the hardware equivalent of the source code — until now. As Russell Cox states: 'A team of three people accumulated a bunch of 6502 chips, applied sulfuric acid to them to strip the casing and expose the actual chips, used a high-resolution photomicroscope to scan the chips, applied computer graphics techniques to build a vector representation of the chip, and finally derived from the vector form what amounts to the circuit diagram of the chip: a list of all 3,510 transistors with inputs, outputs, and what they're connected to. Combining that with a fairly generic (and, as these things go, trivial) "transistor circuit" simulator written in JavaScript and some HTML5 goodness, they created an animated 6502 web page that lets you watch the voltages race around the chip as it executes. For more, see their web site visual6502.org.'"
I learned it while on vacation in europe in 1981 prior to my even knowing BASIC or FORTH on the Apple ][ line of computers. It was the most important step in my otherwise stellarly mediocre life as a senior software engineer with NeXT and Apple. Its great to see others taking a lasting approach to the chip that made the most impact on me and others in my industry. Thank you! BTW, did you know there is at least one logic bug in the CPU? :) Its fairly well known now, find it and you will have a bit of history on your hands.
Yes, but the difference ain't much.
I live in constant fear of the Coming of the Red Spiders.
It was 1983, my Commodore Vic 20 (bought delivering newspapers) was soon to be replaced by a Commodore 64 (bought the same way), and nobody understood my fascination.
Except, apparently, for Richard Mansfield, whose book I devoured. I remember trying to figure out how the heck to get the opcodes into memory. I had nobody to teach me what peek and poker were about, so it took a while.
It's also possible to say that the 6502 and 6510 were perhaps the very last processors that I understood in real, intricate detail. Once I hit the 286 it might as well have run on magic pixie dust. I can't remember ever masking interrupts on an x86. I've only written in languages at the level of C or higher ever since., and I've never embedded assembler to fine-tune performance.
My geek level has diminished.
Did you know that the very first 6502 layout had an unused space reserved for an electrical outlet? No, not an electrical outlet on the chip, silly! An electrical outlet on the wall of the designer.
I was writing the software for a firmware-based gasoline pump based on the 4040 when the Mostek 6502 was announced. The pricing and power were a huge breakthrough - we could now afford to use an 8-bit processor instead of 4-bit, and the chip was way easier to interface. We arranged a visit to Mostek and came back with a prized pre-production chip with the lid soldered on. We met Chuck Peddle, and he showed us a prototype of the KIM development board. We also took back with us a 9-track tape of a 6502 assembler (written in Fortran) for installation on the local university's timesharing system, which at the time sold time to the public.
We also met the chip designers and saw the original hand-drawn layout for the chip. No automatic routing software - just drawing on a huge sheet of paper on one wall of one of the guy's offices. There was actually an area of silicon that could not be used because there was an electrical outlet on the wall that they needed for something in the office, so they just didn't draw on that part. The finished design was then rendered in Rubylith, and we were shown a "cell library" which consisted of a set of large drawers with various circuit elements pre-cut in Rubylith.
Since the KIM was not yet available, we built our own development system - first wirewrapped, and later a set of circuit boards, using 44-bit edge connectors and defined a bus We let my friend Rene use the circuit board layouts we had, and he did some additional boards himself, laying down black tape on mylar. We were given a monitor program that would allow us to load paper tapes produced on a TTY connected to timesharing system and do some debugging.
It was a really fun and easy chip to program, and I worked on several other firmware projects using the 6502 over the next few years. I did some 6800 as well, but always preferred the 6502.
6502 made up for lack of registers with extra addressing modes, but they were relatively uniform across the instruction set, making the instruction set simpler and more orthogonal, whereas many x80 instructions designate specific (and different) registers for operand, making the instruction set rather ugly. You could see the nasty root of x86 instruction set even then, although, as you said, it wasn't so bad because 8080/z80 was much simpler.
6502 didn't have multiply either, and it's true z80 was more powerful in several ways.
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
That isn't all that uncommon. I guess no one recalls the 2009 news stories about the classified "fogbank" material in nuclear warheads. When the gov't wanted to upgrade some nuclear warheads, it was discovered that the material wasn't documented, and no one remembered how it was made.
I couldn't find anything on the lost vacuum tube design, but I wouldn't be totally surprised. There have been plenty of things over the years that were superseded by something better, and the predecessors were forgotten about. Trade secrets often include keeping very little documentation about them, so they won't be accidentally released (or stolen).
I've worked with quite a few things over the years where a working copy existed, but you couldn't replace it. Sometimes it took a virtually clean room reverse engineering to replace it. Sometimes it was hardware. Sometimes it was some application (like a server-side app) where it had been compiled once a decade ago, and no one had a clue where the source was. Well, they *did*, it was just "oh, well Bob did it on his computer. He left 8 years ago. We don't know where to find him", and his desktop had been reformatted, handed down through several other people, and finally retired to the trash a few years before.
For stuff like vacuum tubes, and ancient apps that don't run on modern hardware, it's usually worth doing it fresh. For things like classified materials that keep nukes from spontaneously exploding, that knowledge can be virtually irreplaceable. There are various lost arts, that if you have to fall back to raw materials, we'd be screwed. I like using the loss of civilization and modern technology as an example. If you, I, and a few thousand skilled Slashdotters were dropped on an deserted island (or an alien but Earth-like) planet, how long would it take for us to raise technology from nothing to build a working computer? Assuming an abundance of easily identifiable raw materials, like "hey, that's iron ore", maybe we could build a forge, and make some decent hand tools. We may be able to build primitive radios, but I doubt we'd ever get far enough fab the first solid state chip, much less a CRT or LCD screen, before the first generation died off of old age. The second generation may have a clue, but no true memory of the technology in working form.
Consider other "high tech" items. I love the car analogies, so we'll go in that direction. :) Could we build a car? I know quite a few of us know a lot, but could we actually design and fabricate one from scratch, even with another car as a template. Sure as hell in such a scenario we'd never build the first ECM. Could we get as far as a primitive carburetor? Who am I kidding, we'd probably get stuck on something like how to make tires. :) That's assuming no meeting-hungry managers or aspiring politicians were in the aforementioned group. If that happened, we'd end up stuck in endless meetings forming committees to discuss every feature, and we wouldn't get the first item put down on paper because how to make paper and a pencil would be stuck in committee for the rest of our lives.
The idea of "lives" may be rather short anyways. How many of us are hunter/gatherers and farmers? Not enough to start from scratch.
Kinda ruins those fun aspirations of colonizing alien planets, doesn't it? 1,000 space nerds fly to and are dropped off on a habitable planet circling one of the closest stars, just to die of starvation before establishing a society capable of self sustaining itself, because we don't have the skills to bring our technology up to "modern" levels.
Serious? Seriousness is well above my pay grade.