Not a bad talk, considering that the guy wasn't even alive when the original 6502 was designed. He was confused on a few minor points, some of which Wikipedia clears up.[1][2]<p>a) There were really two chips done, the 6501 and 6502. The difference was in a few pins, the 6501 was fully pin-compatible with the 6800, the 6502 was easier to use in a system design since it did not require a two-phase non-overlapping 5V rail-to-rail clock.<p>b) The 6501 cost $20, the 6502 cost $25. Quantity 1. They ran at 1 MHz. You could send a letter to the company in Pennsylvania, with a check enclosed, and buy 1 chip for that price. Try buying one CPU chip from Intel nowadays. :)<p>c) The lawsuit by Motorola that he mentions resulted in MOS agreeing to discontinue the 6501. But that didn't matter much for 99% of their potential customers. First, the pin differences were very minor. Second, the TTL-level clock input in the 6502 meant that an external clock driver chip wasn't needed.<p>[1] <a href="http://en.wikipedia.org/wiki/MOS_Technology_6502" rel="nofollow">http://en.wikipedia.org/wiki/MOS_Technology_6502</a>
[2] <a href="http://en.wikipedia.org/wiki/Motorola_6800" rel="nofollow">http://en.wikipedia.org/wiki/Motorola_6800</a>
Here is an excellent interview with the lead designer of the 6502 - Chuck Peddle.<p><a href="http://retrobits.libsyn.com/show-123-an-interview-with-chuck-peddle-part-i" rel="nofollow">http://retrobits.libsyn.com/show-123-an-interview-with-chuck...</a>
There are some cringeworthy aspects to this talk if you know the story. That does not actually distract because it is interesting watching someone tell the story when they revere the 6502 yet have not coded for it.<p>At the time that the 6502 hit the computer scene in a mass-market way it wasn't like you coded your code straight into a computer. Instead you actually wrote code out on paper. Then you looked up the opcodes and typed them into a margin. That was what you typed in on many personal computers of the time. The BBC micro had assembler options that you could drop into on BBC Basic, so, if you wanted to do something really cool then assembly was an option.<p>This was in the pre-internet era where you might have a few books and plenty of magazines - piles of them, normally, every back issue kept. You could not Google answers and have some SO answer pop up seconds later. You would have to rifle through the indexes on the few books you had. This was not an obstacle to learning, you could actually memorise the whole instruction set and be fairly sure of what the opcodes were. So, in a way, you could be your own Google.<p>I had exposure to Z80 before 6502, I also had some 6809 and 68000 knowledge. However, if you were new to programming it required quite a conceptual leap to know what an index register could do. Then things like the alternate registers - what do I do with these, please? Hence, the little 6502 was nice and easy. Although there were just the three registers you could master them and do what you needed to do with just that.<p>To a certain extent the 6502 forced people to build a proper computer without getting the CPU to do things like drive the display (Sinclair). You didn't really have to care about system interrupts for things outside your code plus the performance was pretty good in comparison to those systems that had a Z80 'do everything'.<p>Although Z80 might be a bit hard as a beginner, 6502 was a bit more manageable. With concepts learned on the 6502 you could go on to the other CPUs with relative ease, e.g. 68000 was easy if you knew 6502.<p>Going back to the talk, I had it easy - manuals, complete computers you could buy, even dot matrix printers. Plus community in those magazines. The generation before me that actually made the stuff I picked up they were on punched cards and reel-to-reel tapes. I cannot imagine how hard it was for them or the realities of how it was to problem solve given tools available. However, I imagine that leap is similar to the leap required by this speaker to understand the little takeaway here - you could actually program the 6502 without being overwhelmed by the size of the instruction set and, through doing so, get pretty good at it.
Given it's a 6502 talk at some kind of Ruby on Rails event, here's a 6502 emulator in Ruby I was working on: <a href="https://github.com/pda/c64.rb/blob/master/c64/instructions.rb" rel="nofollow">https://github.com/pda/c64.rb/blob/master/c64/instructions.r...</a> (I've since moved to a Go version)
he sort of misses that the 8080 and 6800 were in the market before the 6502 - it was a latecomer.<p>The big architectural advance was two index registers, otherwise it was really sort of a 6800 (from a programmer at the times point of view)<p>As mentioned above having a clock that could be created by meere mortals was a big advance (previoud chips required you to be able to drive what must have been a complete unbuffered clock tree - rail to rail voltages and high peak current.<p>The thing he misses about yield is that for a fixed per wafer defect rate there's a point where reducing die size to 1/4 reduces the yield fallout by almost that much