Q&A With Bill Mensch, co-creator of the 6502
spectrum.ieee.org
spectrum.ieee.org
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.
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.
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.
Atari 400/800 6502 asm were glory days for me.
Since the main motivating interest was trying to get usable sprite-like animation working for a game I wanted to create, not being able to switch out of character mode without hanging the machine and having to start all over again was a leaden and demotivating drag. Especially because the thing did not instantly reboot but rather, loaded MS-DOS two-point something from floppy at a couple minutes a pop, and then loading up masm with much disc swapping involved the whole time due to the machine having only 256k.
I felt very bad and didn't want to tell my parents about this because they had spent a great deal of their at the time squarely middle class disposable income to get me the machine, and on masm itself, which wasn't particularly easy to get ahold of in the middle of farmland nowhere. And because I knew they meant well, trying to get me on track with a machine that appeared to be the dominant platform at the time and thus worth the extra cash to give me a head start. almost crushed all interest I had in programming, the obscene frustration of having to trial and error calling an interrupt or something, guessing at what the parameter could be and having no idea which out of the 220 (or more) possibilities would be the one that worked. This is not even getting into the perplexing and arcane yak shaving involved in dealing with the stupid x86 segmented memory model ( which I tried to avoid as much as possible, and just fit everything inside a single segment). I didn't understand why it was set up the way it was, so it was purely mechanical "how" ritual memorization without any context or insight.
Even as a 12 year old with nothing to do all summer, I did not have enough time ro sit there cycling the power and to waiting 7 or 8 minutes between reboots. And God forbid the thing broke due to all the power cycling, or chewed up one of the expensive, (for a 12 year old), system disks.
I had no idea how much I was missing by having a supposedly higher end "real computer" . Other me, indeed be thankful you dodged that bullet.
BASIC→Z80→6502→6802→6805→68000→8086→Pascal→...
And honestly, 6502 was the odd one out that felt like programming in mud.
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!)
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.
I guess the flip side was, Motorola had to create all that in-house, and the price of the ecosystem reflected that. MOS dumped cheap chips into the world at just the right time and got hobbyists to do the work for free, sometimes with superior results. Probably no one could've seen that coming in 1975.
In a ~ $1300 computer (Apple II, ca. 1977) how price sensitive was that CPU market to $9?
The 6800 was ~ $175 in 1974 - that does seem like a clear gulf to the other two. https://en.wikipedia.org/wiki/Motorola_6800
See also: The Raspberry Pi.
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.
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!!
Clearly, as evidenced by 6501 drop in pin compatibility followed by Motorola lawsuit settled for $200K and pin configuration change.
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.
https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781...
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.
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.
So... carmaker includes (successful) feature x, y or z in their new car. And not willing to seem dumb, for competitors the tendency is to include x, y or z as well?
That turns x/y/z into checkbox items. And every new car model will feature them. Exactly what I complained about, right?
As opposed to going your own way. Or choosing a select subset of features & stick to that. Even if some % of your customers disapprove.
Do all cars need motorized windows? Hand cranks used to do the job. But good luck finding a modern car whose designers think so. Clearly not a design choice that varies between brands, but one of those 'checkbox items' for modern cars.
Let's take a better example of touch screen units. One company did it, and others followed. Now, the trendsetters will be the ones removing them. What was the first company to remove the cigarette lighter and ashtrays? Who was the first to add motorized mirrors so they could be adjusted from the driver's seat?
Have you actually ever used hand cranked windows? Nobody wants to go back to them. If a company releases a car with hand cranked windows and motorized windows but they see that everyone prefers the motorized windows, why would they continue to offer the hand cranked?
I think you're trying to lump a lot of decisions into a category that they don't belong. The manufactures see the numbers and trends. They make decisions. When touch screens came out, everyone thought they were the shiznit. It wasn't until lots of use did people start realizing that the tactile buttons were actually a good thing. There are some misses to be sure, but you act like there's zero research into it. Which just seems immature.