4 ms·
To be pedantic, the 6502 is luxury compared to the PDP-8. It has twice the number of instructions, more registers, and... a stack. Without a stack, Digital used
by rahen 4y ago
To be pedantic, the 6502 is luxury compared to the PDP-8. It has twice the number of instructions, more registers, and... a stack.
Without a stack, Digital used a convoluted trick to implement their subroutines. They would store the current PC address at memory location 0, branch to the subroutine, then branch back to the address referenced at location 0 when the routine was done.
Then we have the EE implementation. Digital came up with all the tricks in the book to save components: wired OR gates, gates that act as NAND or NOR depending on the input voltage, diode-capacitor gates and more.
The "straight" 8 is an EE marvel. Without any extension such as floating point arithmetic, they managed to engineer its logic in DTL using an outstandingly low count of 1409 transistors. I don't think anything has ever come close to that. In comparison, a 6502 requires around 3500, more than twice the straight 8.
And the PDP-8 could use multiple disk storage and teletypes at the same time, drive lab equipment, run an OS, have several users... it was quite more versatile and useful than 6502 8-bit computers.
This makes the PDP-8 one of the more interesting computer architecture to study, and indeed it has been used as a reference in many EE books. In particular, check out "The Art of Digital Design", Prosser, 2nd edition, which re-creates one in TTL logic.
- CyborgCabbage 4y ago6502 does not have native mul and div
- rahen 4y agoYou're right, my bad. Edited.
- kragen 4y ago1409 transistors, 10148 diodes, 5615 resistors, and 1674 capacitors, according to http://www.pdp8online.com/straight8/functional_restore.shtml http://www.pdp8online.com/straight8/functional_restore.shtml. There have definitely been simpler computers than that. For example, the https://en.wikipedia.org/wiki/LGP-30 https://en.wikipedia.org/wiki/LGP-30 had 113 vacuum tubes, 1450 diodes, and probably also some ungodly number of resistors, capacitors, and inductors. Unlike the "straight 8", but like the PDP-8/S, it was bit-serial. Many of the tubes were in 15 flip-flops, which provided restoration (amplification), inversion, and sequentiality (that is, memory, as opposed to pure combinational logic). To quibble a bit about the 6502, it was a bit more complex than the -8, but not by nearly as much as you say. The 6502 had 4528 transistors, including diode-connected transistors and depletion-load transistors used as pullup resistors. In its NMOS logic, an N-input NAND gate required N enhancement-mode transistors and a depletion-load pullup; in the straight 8's DTL, an N-input NAND required one transistor, a pullup resistor, and N diodes. So 1409 transistors is more or less 1200 (inverting) logic gates, and 4528 transistors is probably closer to 2000 gates. The Intersil 6100 was a CMOS PDP-8, with 2N transistors per N-input NAND. It had 4000 transistors, which is probably also about 1200 inverting logic gates, but it included the EAE. Further comparison at https://retrocomputing.stackexchange.com/questions/5843/pdp-8-transistor-count https://retrocomputing.stackexchange.com/questions/5843/pdp-.... To quibble a bit about subroutine calls, JMS didn't store the current PC at memory location 0; it stored it at the operand address, then continued execution at the next memory word after that. So the called subroutine had its return address just before the beginning of its code. This mechanism doesn't directly support recursion but at least it does directly support more than one level of subroutine calls, which your alternative wouldn't.