5 ms·
Leaving Arizona – the Story of the Motorola 6800 part 2 and creation of the 6502
- airbreather 3y agoThere is also the 6809 and 68HC11 which were primarily used in embedded applications. An absolute truckload of car computers used the 68HC11, plenty of I/O, interrupts etc but only 8 bit. Maybe a good thing.
- Scubabear68 3y agoMy memory is dim on this (having last done 6502 assembly almost 40 years ago), but the extreme lack of registers on the 6502 meant many programs were a tedious, endless parade of lda, sta instructions.
- pstuart 3y agoIt was the first CPU I learned assembly on, also 40 years ago ;-) Yes, the constrained registers made things challenging but I have positive memories about the experience. I was introduced to Chuck Peddle ~20 years ago at a friend's wedding and got a chance to talk with him (it was kind of like meeting a rock star for me). What stuck with me was him recounting that his travels to Sri Lanka for a business there convinced him that the bustling cities in south east asia were breeding grounds for a pending viral disaster that would cover the globe thanks to advances in air travel. When Covid came along I felt like he was somewhat validated but fortunately not to the degree he had forecasted.
- eru 3y agoWell, for all we know, Covid came out of China and did not hit South East Asia any harder than any other region. (Even more so, if you control for wealth, I guess?)
- selcuka 3y agoNot only that, but X and Y registers were slightly different too. You could use one for indexing in a certain way, but not the other (it's been 30 years for me, but still the memory is hazy). There were no 16-bit registers a la Z80 either.
- dietrichepp 3y agoThe main difference between X and Y is in the indirect addressing modes. You can use X as an index when you are looping through an array of pointers. You can use Y as an index when you are looping through an array, where you have a pointer to the beginning of that array. There are also a couple operations that always use X as a source or destination. There’s TXS/TSX, but no TYS/TSY. https://www.masswerk.at/6502/6502_instruction_set.html https://www.masswerk.at/6502/6502_instruction_set.html
- dietrichepp 3y agoI think of it as having a nice set of 256 “registers”, in the zero page at addresses 0-255. I think of the A register as kind of an intermediate location for data that is going from memory to the ALU or the ALU to memory. The article says as much: > In effect the 6502’s ‘page zero’ in memory provides a large number of ‘pseudo’ 8 and 16-bit registers, slower than real registers, but still faster and more versatile than having to use other parts of memory. A skilled programmer making effective use of ‘page zero’ could write code that was fast when compared to other 8-bit designs. I haven’t done a lot of 6502, though. I learned Basic on the Apple II when I was young but moved to Think Pascal, HyperCard, and CodeWarrior on the Mac.
- bogantech 3y ago> I think of it as having a nice set of 256 “registers”, in the zero page at addresses 0-255. It becomes a pain making sure the monitor/bios and any programs don't stomp on each others zero page locations though. Then if you start daydreaming about multitasking you have to worry about shoveling the contents off somewhere else whenever you switch tasks. The 65816 at least can relocate zero page & the stack but if you're going 16 bit you're better off going M68K
- Brananarchy 3y agoBetter off unless you're targeting the SNES
- artemonster 3y agoI loved the simplicity of it. This was my first assembly that I have learned (at 15) and I had SO MUCH FUN with it. Maybe this is "first love" bias, but nothing else compared with the fun factor later on (AVR, PIC, X86, RISC-V)
- bArray 3y agoNot really, I think it would be better to implement a series of smaller functions and utilize the stack [1]. That way you avoid lda and sta'ing tonnes. I much preferred the 8086/8088 instructions though [2], pop and push are nice to have. [1] https://en.wikibooks.org/wiki/6502_Assembly#Stack https://en.wikibooks.org/wiki/6502_Assembly#Stack [2] https://en.wikipedia.org/wiki/X86_instruction_listings#Original_8086/8088_instructions https://en.wikipedia.org/wiki/X86_instruction_listings#Origi...
- colanderman 3y agoThe stack only helps a little. Even basic operations like "add two numbers together" require the use of memory (as there is no opcode to add two registers together).
- FullyFunctional 3y agoI like this story as it goes a long way to explain why the 6502 is the way it is. Having grown up with both Z80 and 6502 essentially in parallel, I'll be the contrarian who never liked either, but will admit that it would have been hard to do better than 6502 did in the given area constraints. (Z80 however could have done so much better - the 128+ bits of architectural state could have been used far better and even have allowed a 16-bit architecture).
- ggm 3y agoTo me, The 6502 kind of represented best-of-breed but a bit of a dead end. I couldn't see a 16-32 bit story. It's like it hit the spot, and stopped growing. The 6800 begat the 68000. It had virtual memory management. That launched ten or more models of workstation and hit the magic '3M' window: a MIP, a Megabyte of memory and a Million pixels. 68000 led to SPARC because Sun decided to go into the RISC business itself. I used Motorola workstations alongside Sun, for a Cray-1 project I was on the periphery of: they were the ones Cray shipped to us, passing the Cray-1 on from another customer (Boeing) and they were fine, if remarkably (physically) large machines. Like they'd got the idea of "this is a workstation" in the Microvax era, and never quite shrunk down. I had a 6502 box (the Acorn Atom, a precursor to the BBC micro) and I used others, But I kind of wished the 6800/0 series had been bigger, and we'd been in that world more than Intel. it was nicer. it felt nicer. It felt like an instruction set Gordon Bell would have liked. It made sense if you came from a pdp-11. Maybe I'm addicted to network byte order computers.
- classichasclass 3y agoOh, I bet you'd have loved the TMS 9900. Tons of registers with switchable windows, mini-computer oriented ... and big-endian.
- ggm 3y agoLooks good, but from a business perspective, another dead end -What I read says TI decided to get out of the general CPU business. Probably it means they couldn't find somebody interested in buying into this ISA and chipset to sustain their investment in developing it, where they had solid business in the other specialised spaces. Yes, heaps of registers which map into the address space means (I am guessing) simple C compiler and Unix porting, once virtual memory is there. I wonder why nobody ran with it?
- FullyFunctional 3y agoThe TI-99/4A was atrocious on many level, but the reason for the abysmal performance is well documented on Wikipedia -- the architecture was inherited from TI-990 which assume fast 16-bit memory and TMS9900 had neither.
- PeterStuer 3y agoI had both a Z80 (Sinclair Spectrum) and a 6502 (Commodore 64) machine. For programming, the Z80 was by far the more elegant instruction set. In the next generation, I conciderd the Motorolla 68000 to be the 'feels good' successor of the Z80, and Intel's 8086 the 'chaotic mess' heir of the 6502.
- klelatti 3y agoThe really remarkable thing about the 6502 is how the designers managed to get such strong performance out of such an economical design. It used less than half the transistors of the Z80. As a result it really was the design that helped to kick start the home computer market. The original Arm team were big fans and the ARM1 followed in that tradition of making the most of the resources available. I guess we could say there would be no ARM without the 6502. (Disclosure - I wrote the original post)
- Duanemclemore 3y agoThe Advent of Computing episode on the 6502 simply says the team "really didn't want to go to Texas" as if it was a lifestyle preference. The context here makes it make much more sense.
- mlinksva 3y agoSad to read of a relocation (Phoenix to Austin) breaking up the band, so to speak. But glad the result could be more competition. Curious if any more has been published with Motorola management's rationale for the move. None of the states involved (Arizona, Texas, Pennsylvania) are California, but noncompete enforcement isn't mentioned. Curious if that played any role in the Motorola/MOS Technology dispute; naive searching not turning up.
- klelatti 3y agoFrom the Oral History [1] on the rationale for the move: > [Bill] Lattin: And Jack Henneshen [senior Motorola manager], it is claimed that he wanted to move down there because he wanted a windmill on his property. > [Tom] Bennett: I thought it was the Texas football games. <laughter> [1] https://archive.computerhistory.org/resources/access/text/2015/06/102702020-05-01-acc.pdf https://archive.computerhistory.org/resources/access/text/20...
- dboreham 3y agoHopefully this debunks the confused reporting recently that the 6502 was designed "to compete with the 4040 not the 6800". The goal was to sell it for the same price as the 4040, but the design was entirely to do with making something like the 6800 but cheaper.