[HN Gopher] Q&A With Bill Mensch, co-creator of the 6502
       ___________________________________________________________________
        
       Q&A With Bill Mensch, co-creator of the 6502
        
       Author : systems_glitch
       Score  : 80 points
       Date   : 2023-12-13 14:28 UTC (8 hours ago)
        
 (HTM) web link (spectrum.ieee.org)
 (TXT) w3m dump (spectrum.ieee.org)
        
       | systems_glitch wrote:
       | OK 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.
        
         | klelatti wrote:
         | Thanks 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
        
           | systems_glitch wrote:
           | The 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 wrote:
             | Thanks 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 wrote:
               | Yeah 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 wrote:
           | > 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.
        
             | systems_glitch wrote:
             | That is true, but the 6800 came with a _massive_ ecosystem,
             | all available directly from Motorola! They had reams of
             | useful documentation, including complete, tested
             | implementation guides for things like POS terminals, early
             | simple ECUs, smart disk subsystems, etc. You could build
             | all of those things with chips bought directly from
             | Motorola, engineered to be 100% compatible and easy to
             | interface. For many small systems, you didn 't need any
             | non-Motorola parts other than passives.
             | 
             | 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.
        
             | imglorp wrote:
             | TFA says the 4040 ~ $29 and 6502 target ~ $20.
             | 
             | 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
        
               | klelatti wrote:
               | Not 100% sure I understand your question but if you're
               | asking about 4040 vs 6502 as contenders for Apple II in
               | 1977 - the 4040 was a much more limited design than the
               | 6502 and would not have been viable as the Apple's CPU.
        
               | systems_glitch wrote:
               | The Apple 1 could run either the 6502 or 6800! Probably
               | experience with that dictated that people wanted the
               | 6502. Apple also gained enough pull with MOS that at some
               | point they got some say in the feature set of the 6522
               | VIA.
        
       | dusted wrote:
       | Should 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 wrote:
         | Yeah 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 wrote:
         | AIUI, 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.
        
           | systems_glitch wrote:
           | Same 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 wrote:
       | _" 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 wrote:
         | Ultimately 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 wrote:
         | > 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.
        
           | RetroTechie wrote:
           | > as you've stated was a success since customers like it, it
           | would be dumb to not include it.
           | 
           | 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.
        
             | dylan604 wrote:
             | Well, to start, you chose cup holders which means to me you
             | weren't being very serious.
             | 
             | 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.
        
       | weinzierl wrote:
       | I 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.
        
         | chihuahua wrote:
         | I 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.
        
         | systems_glitch wrote:
         | I 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
        
       | Dwedit wrote:
       | My 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
       | 
       | 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.
        
       ___________________________________________________________________
       (page generated 2023-12-13 23:00 UTC)