5 ms·
Q&A With Bill Mensch, co-creator of the 6502
- phendrenad2 3y agoSo the WDC MyMENSCH is named after him?
- systems_glitch 3y agoOK folks, here it is, the IEEE Spectrum article where Bill Mensch says, directly, that the 6502 was intended to compete with the Intel 4040 for low-cost embedded applications and says, again directly, that it was not intended to compete with the 8080 and 6800.
- rasz 3y ago>not intended to compete with the 8080 and 6800 Clearly, as evidenced by 6501 drop in pin compatibility followed by Motorola lawsuit settled for $200K and pin configuration change.
- systems_glitch 3y agoSupposedly the drop-in compatibility was so they didn't have to also design a development board right out the gate. I don't know what one could want for a more direct, firsthand account of what it was or wasn't designed to compete with -- Bill Mensch is the guy who did the silicon tape-up for the thing!
- klelatti 3y agoThanks for sharing this - it's a great interview. I do think there is a subtlety about the 'wasn't intended to compete with the 6800' line though. Chuck Peddle recognised the market for a much cheaper version of the 6800 which Motorola refused to make, possibly because they couldn't make it that cheaply with the contact lithography process they were using. So Peddle went off to MOS Technology (taking lots of Motorola engineers with him including Mensch) to make the cheaper version. To achieve that goal, they had to cut down on some of the 6800's features. Reducing the size of the stack pointer, only one accumulator, and so on. As it turns out, the end result - the 6501/2 - was actually very competitive with the 6800. So whilst the original intention wasn't to compete with the 6800, in the end it did compete with it very successfully in some important markets. Of course, in addition MOS Technology didn't have the resources of Motorola and so also couldn't compete with them in terms of support, peripherals and so on. Note: I wrote the original post on the 6800 that led to the discussion [1] and I'm now deep in the writing of Part 2 of the 6800 story. (So I've now provided spoilers for Part 2!) [1] https://news.ycombinator.com/item?id=38616591 https://news.ycombinator.com/item?id=38616591
- systems_glitch 3y agoThe 6502 absolutely did evolve to compete (and overtake, in some fields) the 6800, no doubt about it! The motivation of competing on the embedded market (whether you see that in Bill Mensch's IEEE interview quote, or Chuck Peddle's lamenting that customers didn't like the $300 tag on the 6800) explains a lot of the design choices though, especially when considering support chips like the 6530 mask-programmed RRIOT. Thanks for a great 6800 writeup, and I look forward to the follow-up! I feel like the 6800 does not get the love it deserves from the current generation of hackers.
- klelatti 3y agoThanks so much! There is so much to cover in Part 2 so it might take a little while. Completely agree that the 6800 needs more love. It was a really important design. PS I'd not seen Mensch's comment that Peddle's intention was to raid Motorola for engineers before - that's an interesting angle!!
- systems_glitch 3y agoYeah I'm sure the corporate raid had something to do with Motorola dropping the hammer on them over the 6501 pinout. Bill Mensch has said really it was just so they didn't need to design a development system right out the gate, and that they figured other engineers would appreciate that. Seems like it alone wouldn't have been enough to get Motorola mad, especially since they must've known they were just bogging MOS down, and that the pinout wasn't legally defensible reasoning to stop production (MOS and second sources later continued with the 6512, which is effectively 6800 pinout with very, very minor changes).
- RetroTechie 3y ago> As it turns out, the end result - the 6501/2 - was actually very competitive with the 6800. So whilst the original intention wasn't to compete with the 6800, in the end it did compete with it very successfully in some important markets. Another subtlety: the ecosystem. Obviously a cheaper cpu encourages usage in more places. Read: more users & more designers working with it. Over time, that means more tools (including better ones), more OSes to run on it, more application software, more code examples, more existing systems that can be used to kick-start a new design, more knowledge in the field to work around quirks, etc. Often that ecosystem weighs heavier than cpu features, price or performance. Yeah a 'nicer' cpu will drop in price. But by then it's late to the party.
- dusted 3y agoShould be noted that the 6510 was used in the C64, and while it's a superset of the features of the 02, you can't simply put a 02 in a system that makes use of the additional features of the 10. However, it's sufficiently similar that an adapter with the extra logic implemented in discrete gates and transistors has been achieved (the 10 has an IO port and can tristate, which the 02 cannot).
- systems_glitch 3y agoYeah there's a bunch of 6500 series CPUs with various changes! I'm hacking on a SBC that uses the 6507 at the moment, this particular SBC was a replacement for some industrial control board using random logic sequencing (no CPU). The cut down 6507 saved space and let the designer get everything into the allotted space on a two-layer board.
- ksherlock 3y agoAIUI, the main difference is that memory locations $0000 and $0001 are used for the 6510 i/o port. So dropping a 6510 in a system that makes use of those perfectly valid memory locations won't work either.
- dusted 3y agoindeed, the ports at 00 and 01 and that pin 5 could be pullsed low by external logic to have the 6510 tristate it's bus pins so external logic could control the bus, this was used by the VIC2 chip in the C64.
- systems_glitch 3y agoSame issues with e.g. the Rockwell R6500 single-chip microcomputer family -- the actual microcontrollers, not their second-source MOS 6500 family chips. Rockwell put I/O stuff and stack both in zero page to make more efficient use of limited ROM space, and allow operation with only the tiny amount of on-chip RAM! A lot of stuff can be restructured to live with it, but almost nothing "just works."
- RetroTechie 3y ago"BM:Rod Orgill and I had completed the designs of a few microprocessors before the 6501/6502. In other words, Rod and I already knew what was successful in an instruction set. And lower cost was key. So we looked at what instructions we really needed." If only this minimalism mindset were more commonplace! Many products today seem like the result of an endless race to include everything & the kitchen sink, to one-up a competitor with yet another feature. Especially on the software side of things. Yes there's a (relentless) drive to minimize manufacturing costs, logistics, or money spent on support. But rarely on minimizing / simplifying products themselves. If carmaker puts a cup holder in their car & customers like it, competitors' next cars 'must' include a cup holder too. Rinse & repeat ad nauseum. In contrast, taking something out and still have the product be useful, seems like a Zen mastery black art that few designers practice. Let alone companies they work for. One example: occasionally I take broken electronics apart. Sometimes to see if there's parts worth scavenging. Often out of curiosity, to have a look at design details. And have grown some appreciation of Chinese' manufacturers tendency to snip parts from products (aka Muntzing). Use a thinned pcb trace as fuse. Or: use a single diode instead of a bridge rectifier. Yes, it only uses half of the AC cycle. Electricity producers might frown at that. All else being equal, requires 2x capacitance. But.. for small capacitor values, diode + bigger capacitor is likely cheaper. And saves 1 diode voltage drop (+ associated losses). Crude, but brilliant in a way. Simplified design that still does the job.
- lisper 3y agoUltimately these decisions come down to value judgements. Which is better, more simplicity and lower cost, or more robustness and longer service life? Because often it's one or the other.
- dylan604 3y ago> If carmaker puts a cup holder in their car & customers like it, competitors' next cars 'must' include a cup holder too. Rinse & repeat ad nauseum. I think this doesn't reinforce your argument in the way you intended. A car manufacturer isn't going to look at a competitor and see what items need to be removed to lower cost when that item, as you've stated was a success since customers like it, it would be dumb to not include it. You don't want to not include liked items. You want to not include the items the customers do not like.
- weinzierl 3y agoI learned 6502 assembly as my second programming language after BASIC. I don't remember how I felt about it, because it was all I had, but I do remember two things: 1. 6502 assembly made a lot of sense to me, even its quirks kind of made sense 2. When I switched to the 80386 nothing made sense and I simply hated it. I think it is fair to say that if I had to start with x86 I probably would have never gotten into programming.
- NikkiA 3y agoFor me it was: BASIC→Z80→6502→6802→6805→68000→8086→Pascal→... And honestly, 6502 was the odd one out that felt like programming in mud.
- chihuahua 3y agoI agree with both of those points. I learned 6502 and 68000 assembly language. Then I bought an 80286 assembly language book, started reading it, become disgusted, and returned the book to the store.
- danbmil99 3y agoSo very true. I think basically x86 architecture was meant to be compiled from C, not assembled. It might as well have been COBOL for all I cared. Atari 400/800 6502 asm were glory days for me.
- systems_glitch 3y agoI learned 8080/8085 assembly before looking at x86, and while I can figure out x86 well enough it's still a mess! I don't know that prior experience necessarily makes x86 look any less ugly :P
- karmakaze 3y agoSame here, Atari 400. I did get to see some 6809 and 68000 assembly around the time of seeing x86 (and before I wrote any) that I accepted it--but still disliked it. Don't know what I disliked more: direction flag, all registers are special, segments. The weird instruction/register usage is likely one reason why x86 was faster/cheaper than programmer-friendly processors like M68k--which also made the 6502 a success.
- Dwedit 3y agoMy favorite part of the 6502 is that you can write the instruction set as 4 columns by 8 rows, and see the really simple pattern. https://pastebin.com/rCN932a0 https://pastebin.com/rCN932a0 When you see it in rows and columns, you can see how you have these addressing modes that correspond to the row number most of the time: 0: X,indirect 1: zeropage 2: immediate 3: absolute 4: indirect,Y 5: zeropage,X 6: absolute,Y 7: absolute,X Then you can see that Column 2 is the arithmetic instructions: ORA, AND, EOR, ADC, STA, LDA, CMP, SBC And column 3 is the Read-Modify-Write instructions: ASL, ROL, LSR, ROR, STX, LDX, DEC, INC. And that fourth column of invalid instructions turns out to be a combination of the second and third column, effectively doing an arithmetic operation and a RMW operation at the same time, even for addressing modes normally not supported.
- wvenable 3y agox86 has a similar regular instruction pattern except that it's in octal: https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781f2f3c0353da https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781...
- systems_glitch 3y agoYup, that inherits from the 8080. The RST instructions made so much more sense after reading that in one of the Intel handbooks!
- teo_zero 3y agoActually the 6502 equipped the VIC-20. IIRC the C64 mounted is successor called 6510.