19 comments

[ 4.2 ms ] story [ 42.6 ms ] thread
It's easy to forget how much innovation divergence was happening in the early 70s. Up till the late nineties we speculated that ISAs other than x86 (spec. RISC designs) would win in the end.

Imagine these 8 bitters were mostly hardwired, with less than a million transistors.

Way less than a million! I believe usually in the order of thousands.
The 8-bit monolithic CPUs of the seventies all had a few thousands transistors.

The first generation of true 16-bit CPUs, i.e. Intel 8086, Motorola MC68000 and Zilog Z8000, had almost an order of magnitude more transistors, i.e. in the range of 15000 transistors to 50000 transistors.

The first true 32-bit CPUs, like the National 32000 series, Motorola MC68020 and Intel 80386, had a few hundred thousand transistors.

By the end of the eighties, the second generation of 32-bit CPUs reached 1 million transistors.

A 486 already had over a million transistors. These are in the thousands.
It depends on how you want to treat the internal (not seen by user or compiler) decoding that both AMD and Intel are doing; some would argue that these CPUs are RISC chips that decode x86 and x64 instructions into their own RISC implementation.
> ISAs other than x86 (spec. RISC designs) would win in the end

They're correct: ARM won the mobile space, won Apple, and is very gradually seeping into wider availability for other operating systems.

Never mind the majority of raw FLOPS these days are almost certainly going through GPU architectures.

I did some assembly programming on the Fairchild F8 mentioned in the prequel article. Quaintest feature: Doing a “long” jump (more than 127 bytes away) would cause the accumulator register to be clobbered. Presumably, there was nowhere else to store the high (low?) order address byte routing things around to the PC register. This was also a problem for the debugger (in ROM on the development system), since continuing from a breakpoint necessitated a long jump, so it couldn’t restore the accumulator. So, the debugger would just simulate instructions until it hit a jump, which it could then jump to. Or something like that. Fairchild provided a listing of the source to the debugger / emulator, and the line that simulated messing up the accumulator during single-stepping was commented “The F8 Touch!” It made an impression 50 years ago.
The RCA-1802 was used in the COSMAC Elf computer which was described as a hobbyist project to build in a series of articles in Popular Electronics 50 years ago. The Elf may be obscure but one thing developed on it (or its successor, the COSMAC VIP), CHIP-8, lives on -- it was (by some definitions) the first "fantasy console" like Pico-8 and TIC-80 today -- a virtual machine designed for writing action games.

https://en.wikipedia.org/wiki/COSMAC_Elf https://en.wikipedia.org/wiki/CHIP-8

The Signetics 2650 found its way into a bunch of arcade games by lieu of British company Century Electronics. I have a conversion kit of theirs installed into a Donkey Kong Jr. board, which outright replaces DK Jr.'s Z80 with a daughterboard containing the CPU. Always wondered why they chose that in particular, it's not a very common chip, and just using the Z80 that was there and replacing the ROMs was the more common option for conversion kits like that.
Given the era, I wouldn't be surprised if it came down to "someone on the development team liked that part". (Or "someone in the purchasing department got a bunch of them really cheap".)
Slightly orthogonal, but I'm curious how much effort is going into capturing historic hardware in accurate FPGA representation?

There'll come a day when the final physical 6502, 80486 (etc etc) powers off for the final time, and it seems like these technologies would be worth preserving. (I'm sure this is much easier said than done, not trying to minimise the effort involved.)

Is there a project that does something like this?

The 6502 is one of the most heavily preserved technologies: http://www.visual6502.org/JSSim/index.html

Full die capture, full transistor level simulation.

Most of the others are being emulated in proportion to their importance to games, in arcade machines and consoles. Those emulations are going to be as cycle-accurate as required.

There are some issues around things like the Yamaha synth chips, which are mixed-signal and depend on analogue properties that can be difficult to emulate.

A lot of effort goes into accurately emulating historic processors in the MAME project, as well as other vintage hardware. It's generally accurate enough that MAME is regularly used to emulate vintage hardware when reverse-engineering devices.
Question: I once heard somebody talk about a micro-controller (with a minimal instruction set) where every register could be the program counter. It did not have jump or call instructions. You had 'emulate' those with the instruction (possibly conditionally) that changed the assignment of the program counter to one of the instructions. If I am not mistaken, it had eight registers. Does this ring a bell?
The article kind of disses the Intel 8085. For those of us with 8080 code bases that were never going to be rewritten for the Z80, it was a welcome upgrade. On the paper dryer process control systems I was working on in 1979, the 8085 based Intel 80/30 Multibus SBC could be dropped in for the older 8080 based 80/20 SBC with no changes and provide a significant 2.5X performance upgrade.