[HN Gopher] The 8-bit era: Eight processor designs
___________________________________________________________________
The 8-bit era: Eight processor designs
Author : rbanffy
Score : 106 points
Date : 2023-12-04 11:47 UTC (11 hours ago)
(HTM) web link (thechipletter.substack.com)
(TXT) w3m dump (thechipletter.substack.com)
| gallier2 wrote:
| In the list of applications of the 6502 architecture there is one
| big missing entry. Good old phone line modems using Rockwell
| chipsets (Hayes modem) that went up to 56Kbit/s. The central
| controller of the Rockwell chipset was an embedded MPU based on
| 65C02 kernel that were clocked to up to 75MHz (that's the fasted
| I had seen). The fact is relatively unknown as NDA with Rockwell
| were extremely tight.
| vidarh wrote:
| Less impressive, but something which was still fun to me when I
| had an Amiga: At least some Amiga _keyboards_ used a SOC with a
| 6502 core.
|
| One of my Amiga's had 4 CPU families: A 6502 core on the
| keyboard, a Z80 on the SCSI controller, an x86 on a bridge
| board (the Amiga 2000 had ISA slots, and one of them was in-
| line with a Zorro slot so you could get a board that let you
| run x86 software using a window on the Amiga desktop as the
| output; I don't remember if the bridge board itself was an 8088
| or 8086, but I upgraded it with a 286 accelerator card) and of
| course the 68000 (+ a 68020 expansion)....
|
| Looks like it's this one I remember:
|
| https://www.amiga-stuff.com/hardware/6500_1.html
| actionfromafar wrote:
| The ABC computers used a Z80 in the keyboard and a Z80 as
| main CPU. Weird times. :)
| layer8 wrote:
| The 1541 floppy drive for the C64 used a 6502, almost the
| same as the C64's 6510 CPU. Some C64 software co-opted the
| floppy drive's 6502 as a coprocessor.
| rzzzt wrote:
| There's a demo that plays entirely out of the 1541, you
| can disconnect the rest of the computer:
| https://youtu.be/zprSxCMlECA
| microtherion wrote:
| The 4040 drive for the Commodore business line had TWO
| 6502 equivalent CPUs. I used to tease a friend who owned
| one that his floppy drive was smarter than his computer.
| rbanffy wrote:
| > Some C64 software co-opted the floppy drive's 6502 as a
| coprocessor.
|
| In that sense, the 8-bit Commodores were a bit like
| mainframes - one could load a data transform program to
| run on the floppy drive and run it without bothering the
| host. I believe it goes a bit further than the Atari
| family in that.
| rbanffy wrote:
| Now I got curious: I have the impression the 2000 wouldn't be
| able to see the ISA bus unless a bridgeboard with an x86 was
| there. Is that so or could the 2000 see the ISA boards
| regardless of the bridge board?
| spicyjpeg wrote:
| There is an even bigger missing entry: toys. The Chinese
| company Sunplus/GeneralPlus has had a near monopoly on toy
| microcontrollers for over two decades at this point and the
| vast majority of their lower-end offerings are based on trimmed
| down 6502 derivatives, usually expanded with dedicated hardware
| for tasks like audio playback. Notably, the original Furby [1]
| and many Tamagotchi models [2] use such chips.
|
| [1] https://archive.org/details/furby-source
|
| [2] https://spritesmods.com/?art=tamasingularity&page=2
| SeanLuke wrote:
| These are iconic in the sense of "historical and influential".
| But I think only the Z80 and 6502 still have a big community
| still excited about them as 8-bit processors specifically, which
| I thought was the basis of the piece.
|
| I wonder if to this we should add the Atmel Atmega328P, which is
| omnipresent in microcontrollers, not the least of which is the
| Arduino. It's always described as "8-bit" though it has wider
| addressing than that and is capable of doing 16-bit and 32-bit
| math. It's a Harvard architecture.
| PaulHoule wrote:
| I like the AVR-8 which is a nice bookend to the 8-bit era in a
| lot of ways. It has more registers than the IBM 360 and also
| gets great performance with that Harvard architecture avoiding
| the very complex system of caching and pipelining you see in
| modern computers to fight latency.
|
| Unlike many of those 8-bit computers the AVR-8 doesn't have any
| 16-bit arithmetic other than increment/decrement address modes
| that use the X, Y and Z register pairs unless you count the 8x8
| MUL instruction that returns a 16-bit result or the MOVW
| instruction which copies a register pair and not just 1
| register.
| brotchie wrote:
| Z80 + some mods = Sharp LR35902 used in original Gameboy
| 6502 + some mods = 6502 used in original NES
| krallja wrote:
| The Gameboy is not a Z80, it's a separate 8080-descendant
| sibling.
|
| The NES had zero modification to the 6502 core, except that
| the binary-coded decimal flag was hardcoded to always be off
| (to avoid infringing on the one patent that MOS filed; chip
| design was not copyrightable at the time).
| JKCalhoun wrote:
| Motorola's 68HC11 then. But these are microcontrollers, not
| microprocessors (although the distinction seems a little
| nitpicky).
| AnimalMuppet wrote:
| I think the distinction _then_ was more like non-existent.
| Most chips then didn 't have on-board peripherals (for some
| value of "then"), so a CPU-intended-to-be-a-microcontroller
| and a CPU-intended-to-be-a-microprocessor looked _very_
| similar.
|
| Now we've added things to microcontrollers (serial ports,
| GPIO pins, timers, etc.) and other things to microprocessors
| (FPUs and memory managers). But back in the day, was a Z80 a
| microcontroller or a microprocessor? Yes.
| JKCalhoun wrote:
| I have always assumed the distinction was whether it had
| its own on-board memory or talked over the bus to external
| memory. That's a kind of who-cares thing in my mind.
| AnimalMuppet wrote:
| Oh. Hmm. Yes, I could see that.
|
| [Edit: "Memory" including both RAM and ROM.
| Microprocessors usually didn't have code - even boot code
| - in internal ROM.]
| kps wrote:
| Today I would make the distinction between those that are
| readily end-user programmable (microprocessors) and those
| that aren't (microcontrollers).
|
| Certainly many in this article were originally designed for
| what now would be microcontroller applications, but the fact
| that they couldn't then do on-chip ROM let hobbyists
| repurpose them into general-purpose _microcomputers_.
| classified wrote:
| I'm beginning to hate Substack with their stupid popup window.
| JKCalhoun wrote:
| Yeah, I turn on Reader mode in Safari for every sub stack site
| I wander in to.
|
| I wonder why popups are some kind of web design go-to these
| days? Don't they get feedback from users that we hate these
| annoying things?
| cabalamat wrote:
| > Don't they get feedback from users that we hate these
| annoying things?
|
| I suspect they don't care.
| coldpie wrote:
| NoScript[1] & Kill Sticky[2] are mandatory for browsing the
| modern web.
|
| [1] https://noscript.net/
|
| [2] https://github.com/t-mart/kill-sticky
| layer8 wrote:
| A/B testing doesn't expose the hate.
| codedokode wrote:
| I simply closed the tab. That's too hostile and annoying and I
| don't want to be treated like this.
| nerpderp82 wrote:
| Substack could be the Medium replacement we all seek, but this
| pop up proves it isn't that. It should "just" add the publisher
| to a sidebar. I don't pay attention to my email either. This
| just creates more Internet Exhaust.
| Jeema101 wrote:
| Here's an interesting fact that I didn't know until very
| recently: the original 40-PIN DIP Z80 is still made today, by
| Zilog:
|
| https://www.digikey.com/en/products/detail/zilog/Z84C0008PEG...
|
| I guess we're still living in the 8-bit era, technically. ;)
| rwmj wrote:
| Zilog make loads of 8 bit microprocessors still:
| https://www.mouser.co.uk/c/semiconductors/embedded-processor...
| JKCalhoun wrote:
| 65C02 is under $2 on AliExpress.
| krallja wrote:
| Western Design Center (Bill Mensch's firm) still offers
| physical 6502/65816 and supporting chips, too:
| https://www.mouser.com/ProductDetail/Western-Design-Center-W...
|
| (Most of his money is made in licensing the soft core, but I
| love that he continues to support the hobbyist market by making
| ridiculously obsolete 40-pin PDIPs!)
| KANahas wrote:
| I suppose old hardware restoration falls under the "hobbyist"
| label?
| krallja wrote:
| Absolutely!
| spicyjpeg wrote:
| The 8008, F8 and SC/MP, while arguably important from a
| historical standpoint, never gained widespread commercial
| adoption in the way the 6502, Z80 or 8080 derivatives (including
| the Z80 itself) did. The 6800 got some popularity in embedded
| applications, but was quickly superseded by the 6809 which
| managed to stay relevant all the way up to the late 90s.
|
| A glaring omission in this list is the Intel MCS-51 architecture,
| which - despite being horrible to program for in this day and age
| - still powers billions of devices worldwide, with 8051
| derivatives often being embedded as a housekeeping core into all
| sorts of specialized ASICs and 8051-compatible microcontrollers
| being the staple of cheap electronics. It was never meant to
| compete with general purpose processors such as the Z80, and its
| awkwardly limited instruction set reflects that, but it still
| managed to become the de facto CPU architecture for monitors,
| power tools, RGB lighting, SD cards and whatnot.
| klelatti wrote:
| Hi, Author here. Apologies, I should have made it clear that
| this was intended to be a short list of microprocessors only,
| mostly to leave room for a follow up on microcontrollers like
| the 8051. Completely agree that the 8051 deserves a place on
| any list of important 1970s architectures.
|
| If anyone is interested in the results of the poll which looks
| like a dead heat between the 6800/9 and Z80, then the winner
| was Motorola. So I'm now deep in research on the 6800,
| hopefully to result in a post in the near future.
| jhallenworld wrote:
| On the 6800/6809: don't forget to look at the Fairlight CMI
| and the Qasar M8 developed by Tony Furse: the sampling
| synthesizer that was the sound of the 80s.
|
| This past summer, Tony has been retrieving his 8-inch
| Motorola Exorciser floppies. He encouraged me to work on my
| Motorola Exorciser emulator- it now emulates a 6809 version
| of the Exorciser:
|
| https://github.com/jhallen/exorsim
|
| (check out the long discussions in the issues...)
|
| "Blue Monday" on QasarBeach Fairlight CMI emulator:
|
| https://www.youtube.com/watch?v=SPXqM7qrkfc
| swagempire wrote:
| Fairlight is great-- DX7 though was really the sound of the
| 80s...
| jhallenworld wrote:
| I was trying to find which CPU was used for the DX7..
| didn't find it, but did find that Ken Sherriff reverse
| engineered the sound chips:
|
| https://www.righto.com/2021/11/reverse-engineering-
| yamaha-dx...
|
| Well I found the schematics: it uses a 6805 and a 6303!
|
| http://www.midimanuals.com/manuals/yamaha/dx7/schematics/
| yam...
| HeyLaughingBoy wrote:
| Ha. I have a love-hate relationship with the MC6805. On
| the one hand, I built a lot of devices based on the
| 68HC05 series. On the other, having to implement a 16-bit
| division routine on one was what made me swear off
| assembly language for good.
| diydsp wrote:
| it would be reductive to chalk up the sound of the 80s to
| any one synth. Especially when the Fairlight was
| responsible for a number of iconic songs:
| http://ghservices.com/gregh/fairligh/topsong/
|
| This is a good overview of key 80s gear, including the
| E-Mu, Linn Drum, DX7, Fairlight, Mirage, etc.
| https://www.musicradar.com/news/10-synths-that-defined-
| the-8...
| jhallenworld wrote:
| Also used in a bunch of movie soundtracks:
|
| https://forum.vintagesynth.com/viewtopic.php?t=72349
|
| https://www.youtube.com/watch?v=nnpYowxlwsU
| dfawcus wrote:
| Maybe it is region dependent?
|
| The Z80 was still being used in embedded designs in the 90s.
| One company I worked at was still supporting Z80 systems and
| s/w at least until around '94. Possibly later, as I didn't work
| on those.
|
| In the UK, I never saw a 6809 used in embedded designs (late
| 80s - mid 90s), I did see plenty of Z80s and 8051 derivatives.
|
| However by that period (late 80s on) a lot of those embedded
| designs were using NEC V20/V30, as they made for easier systems
| to program than plain 8bit systems; plus the price range of the
| systems I had experience with allowed it.
| gallier2 wrote:
| Motorola's embedded cpu's had strange numbers that would make
| it difficult to recognize to which cpu family it belonged.
| 68705 were 6800 derived, 68302 were 68000 derived. As for the
| 6809 it l ooks like that there were no embedded derivatives
| of it. 68HC16 seems to be a 16 bit extended 6800 using a
| similar technic as 65816 to extend the 6502.
| gallier2 wrote:
| NEC V20/V30 not that much but 80186 and all their specialized
| embedded variants from Intel (80186EA/EB/EC) and AMD (Am186EM
| _) were extremely appreciated as it allowed to use normal MS-
| DOS compilers and software.
|
| _ Am186EM we loved that one. 100 pin PQFP with unmultiplexed
| bus, CMOS up to 40Mhz, including UART, SPI etc.
| HeyLaughingBoy wrote:
| My first commercial embedded design used a 6809. That was
| also the last time I ever saw one used in the embedded space!
| As fun as the 68HC09 was, the 68HC05 and 68HC11 were better
| choices.
| microtherion wrote:
| As an example of today's continued presence of the 8051,
| there's the CH559 family, which adds USB interfaces to the
| 8051: https://www.wch-ic.com/products/CH559.html
| zabzonk wrote:
| i loved the 6809 - more addressing modes than you could shake a
| stick at, but most of the assembler code i wrote in the 1980s was
| for the Z80 (which i also liked) and the 6502 (which i didn't).
| rodlette wrote:
| Stupid question: what's so special about the 8 in 8-bit CPUs?
|
| > Simplicity > > With some practice, you could keep the whole of
| an 8-bit processor's instruction set in your head.
|
| Is it just a matter of replacing all instructions/chips/buses to
| be 32 bit/lane? Or is it just that in practice the 32 bit CPUs
| have more complex ISAs?
|
| The reason I ask is that I'm learning RV32I, and writing a simple
| implementation, and wondering if there's any additional didactic
| value in me learning 8-bit CPUs.
| cmrdporcupine wrote:
| My take: In the real world code deals with 8-bit byte values
| all the time. So an 8-bit CPU is sort of the minimum
| "practical" world architecture for getting things done. So it's
| interesting from that POV.
|
| Also because of the above, 16/32/64-bit ISAs have to support
| dealing with bytes, so they end up either including
| instructions to explicitly deal with them, or constantly having
| to mask the upper bits of values/registers.
|
| Unfortunately 8-bit CPUs were also almost always tied with
| 16-bit address buses. Back then when memory was super costly,
| this was fine. But later on, it became their biggest limitation
| and all sorts of awkward paging/segmenting stuff was caked on
| top in order to make them work with memory sizes greater than
| 64k.
|
| I sometimes wonder how things would have gone if we'd settled
| on having "bytes" be 12-bits (like the PDP-8) or something
| instead, with the first gen of address buses being 24 bits.
| That would have made the first generation of home computers
| have a lot more longevity.
|
| Hell, I believe the PDP-11 only had 16-bit registers, imagine
| if we'd just started our journey that way.
| rodlette wrote:
| TFA explains:
|
| * "Graphics and sound weren't hidden behind 'APIs'."
|
| * Programs were written in 8 bit assembly
|
| * Generally, the 8 bit CPU was considered a complete package,
| rather than just one small piece as RV32I is.
|
| Those sound nice to have for didactic purposes. 32 bit could do
| that, but the RISC-V ecosystem/community seems keener on
| integration with wider world, rather than keeping a small
| complete system.
|
| I'll check out some 8 bit ecosystems/communities. Video game
| space seems active? Or maybe there's a RV32I community for
| writing retro style games, with some simple graphics support?
| rodlette wrote:
| > Or maybe there's a RV32I community for writing retro style
| games, with some simple graphics support?
|
| Wow, https://github.com/dan-rodrigues/icestation-32 looks
| cool. Sorry for the comment spam. :)
| throwaway6977 wrote:
| Cool link, reply more if you find them!
| cmrdporcupine wrote:
| I started an FPGA hobby project a few years ago (Before
| Covid[tm]) that tied a PicoRV32 core to my custom hand-made
| 80s-style "video chip" VDP type + direct access to SRAM with
| the hopes of making something like a "Retro-V"; boot straight
| to a BASIC (or Lua or something) prompt, etc. I had it
| supporting text generation, and most of the stuff to do
| simple tiles/sprites, and booting into a little custom
| "kernel."
|
| I stalled once I started trying to integrate with the SD Card
| on my dev board. It got un-fun and then I got distracted by
| the apocalypse.
|
| But I still think it's a neat idea, to tie RISC-V to that
| kind of "instant on" hobbyist architecture.
|
| EDIT: looks like this "IceStation" project ended up doing
| mostly what I was intending, and started not long after me,
| but actually shipped something. Mine was targeting a Xilinx
| Artix-7 board, tho.
| flohofwoe wrote:
| I think it's the combination of those cheap CPUs with 80s home
| computer hardware, where the hardware was designed as "game
| engine API", e.g. you just needed a handful of instructions to
| define a sprite and move it around on screen, without any
| library or driver inbetween. And those systems were hard-
| realtime. All timing was predictable down to the clock cycle,
| which allowed to synchronize rendering code with the video beam
| by cycle-counting.
|
| These are things that are no longer possible on modern
| computers (but in return we gained a lot of performance by
| decoupling hardware components).
| cbm-vic-20 wrote:
| One of my "some day", "probably way more effort than I want to
| spend" projects would be to create a 40-ish-pin DIP module that
| contains a RV32 core and has a 6502-like pinout so you can
| build small homebrew computers that use the RV32 ISA. There are
| a _ton_ of comporomises that would have to be made, but that 's
| part of the fun.
|
| Most of the small RV32 microcontrollers have a low pin count
| lots of on-board devices, and it's not as straightforward as
| gluing together a CPU, RAM, ROM, and some IO devices on a
| breadboard.
|
| Basically, an answer to the questopn "how would a breadboard
| computer built in 1977 look if the RV32 ISA existed?"
| tenebrisalietum wrote:
| 8-bit CPUs have 8 data pins (D0-D7) and anything going in or
| out of the CPU is doing so 8 bits at a time. This includes all
| external accesses such as RAM, ROM, and I/O.
|
| But 8-bit CPUs have more than 8 address lines, because 256
| bytes total for combined RAM, ROM and I/O space is not useful.
| That number I think is typically 16 although Signetics 2650 had
| only 12 (with the instruction set only supporting 12-bit
| addresses), and the Atari 6507 (6502 derivative) had 13
| (instruction set still supporting 16-bit addresses but the
| upper 3 bits of addresses were basically ignored).
|
| > Is it just a matter of replacing all instructions/chips/buses
| to be 32 bit/lane?
|
| Depends on the 8-bit CPU really.
|
| - The Z80 lets you combine specific register pairs to work with
| 16 bits and address memory through them.
|
| - The 6502 does not, but has the whole "zero page" thing where
| the first 256 bytes of RAM can contain 16-bit data and
| pointers.
|
| - Both the Z80 and 6502 have a stack pointer register (the
| 6502's being 8-bit and fixed to point to RAM locations
| 512-767). But the 2650 had an internal 8-byte stack and stack
| pointer.
|
| - The 8051 (and the 8048 I think) has lots of instructions for
| manipulating individual bits in registers and RAM, and also has
| a division between the memory that opcodes are fetched from
| versus data. None of the above work like that (the F8 might).
| rodlette wrote:
| Wow. If anything, working around 8 bit's limitations seems to
| make 32 bit look simpler in comparison.
| jmcgough wrote:
| Pretty USA-centric. What about
| https://en.wikipedia.org/wiki/Ricoh_2A03 ?
| a_cardboard_box wrote:
| That has a MOS 6502 core which was covered in the article.
| flohofwoe wrote:
| ...which can be seen nicely here:
|
| https://floooh.github.io/visual2a03remix/
|
| The 6502 CPU is in the lower-right quadrant.
|
| (and here for comparison the 6502 on its own:
| https://floooh.github.io/visual6502remix/)
| rbanffy wrote:
| IIRC, the rest of the die is the sound hardware.
| cmrdporcupine wrote:
| _The 6809 was the last of the 'classic' 8-bit microprocessors,
| used in home and small business computers of the 1970s and early
| 1980s. It was backwards compatible with the 6800 but added more
| instructions._
|
| This isn't really properly correct. The 6809 was backwards
| compatible with the 6800 only at the assembly source code level,
| not the opcode level. That is, I believe you could run your 6800
| code through a 6809 assembler and probably get a valid program,
| but 6800 binaries would not run. The opcode encoding was
| different.
|
| Also does a bit of a disservice to the 6809 to just call it a
| successor to the 6800, as it is in many ways the most "deluxe" of
| all the 8 bit processors. It wasn't just more instructions, but
| more/wider registers, as well.
| spogbiper wrote:
| I was spoiled learning assembly code on the 6809. When I tried
| to move to the 8086 everything felt cumbersome and weird.
| joezydeco wrote:
| I still have a Motorola 6809 TRM that has artwork right on the
| cover about how the 6809 was a "bridge" processor to transition
| you from the 6800 to the 68000.
|
| https://m.media-amazon.com/images/I/51Pu7b17-CL._SR600%2C315...
|
| Let's all pour one out for the D register.
| cmrdporcupine wrote:
| Kind of weird though, the 6809 was developed concurrent to
| the 68k, by an entirely different team at Motorola and its
| instruction set looked nothing like the 68000. The only thing
| they had in common was the "68" prefix and big-endian-ness.
|
| I guess there was also the ability to interface the 68k with
| 6800/6809 support chips on the bus, though.
|
| The 68000 was very VAX and PDP-11 inspired.
| stcredzero wrote:
| Apparently, there have been 4 bit microprocessors made!
|
| https://en.wikipedia.org/wiki/4-bit_computing
| microtherion wrote:
| And bit-slicing microprocessors, where you could build up your
| register width in multiples of 4 bits just by running several
| of them in parallel: https://en.wikipedia.org/wiki/AMD_Am2900
| HeyLaughingBoy wrote:
| Yep. A lot of older kitchen appliances ran on 4-bit
| microcontrollers for cost reasons.
| RetroTechie wrote:
| Surprisingly, in the list on that page OKI isn't even
| mentioned.
|
| I had a small OKI databook once with a variety of 4-bit cpus in
| them (most if not all CMOS, iirc). Obviously geared towards
| deeply embedded uses like toys, sensors, basically: battery
| powered uses where speed isn't important but every uA counts.
|
| Allthough it's possible those OKI parts where just 2nd sources
| of ones in the WP list.
___________________________________________________________________
(page generated 2023-12-04 23:01 UTC)