Ben Eater (http://beneater.net/) makes a neat video series and accompanying product kit where you build a 6502 on a breadboard, if you're looking for something a little more approachable than this (very cool) project!
The console uses a slightly cheaper version, the 6507 I think. Same chip, just smaller address line and no interrupts (!)
Instead you ran a "wait for the cathode ray to reach the right side of the screen" in order to time everything correctly.
Very fascinating stuff, I recommend anyone interested in the above dive in and give it a shot.
All you need is an editor[1] (I found one online!) and the stella manual[2].
There's something nice about having the entire machine spec in one book instead of leaning on stack overflow...
[1] https://8bitworkshop.com/v3.8.0/?platform=vcs&file=examples%...
[2] https://cdn.hackaday.io/files/1646277043401568/stella.pdf
http://www.6502.org/users/andre/osa/oa1.html
This is basically the same CPU as in the NES.
https://github.com/fachat/MicroPET
It's quite clever. At it's core, it's PET clone.
But deeper, it's not just a PET clone, but 4 other machines in the PET series.
On top of that it's based on a 65816, has B&W 640x480 VGA graphics, as well as several different text modes. As a cherry on top, it can run 4 "virtual" PETs simultaneously.
This is much closer to a machine that I'm interested in. Fundamentally, a fast 65816 with memory (at least 1MB), UART, and access to a "full speed" USB bus (12.5Mbits), which it boots off of (it could also boot off of an SD Card).
This machine is close. The SPI to the Ethernet and USB is 6MHz, and driven by the CPLD rather than bit banged off the CPU.
I feel that modern computers are so powerful that they are productivity sappers. For me to be productive, I think a system with low latency but otherwise very limited would be the best.
It's like what a friend said in college about getting a dual monitor setup: "Your productivity doubles until you realize you can watch movies on the other one"
https://spritesmods.com/?art=picframe&page=1
I often wonder why the manufacturers - besides the photoframe usage - don't sell an "open" version with some toolkit to let people have fun with these devices.
Of course, they’re way more expensive than an Arduino Mega, which is approximately as powerful…
This is what you want, like, 99.9% of the time.
The 6502 just puts its address and data bus on pins, and you can make the memory map for your computer however you want, as long as you are willing to wire up the logic. There's no privilege for on-chip resources... everything is off-chip and completely equal. With the AVR, the resources (RAM, flash, peripherals) are completely fixed but much, much faster. There are a ton of chips you can buy with SPI / I2C interfaces if you want the AVR to do something interesting, and you drive them with the on-chip peripherals. The on-chip peripherals get to sit in memory somewhere, but the external ICs don't. With the 6502, you put things in memory somewhere, figure out a way to decode addresses on the bus, and use a parallel interface for everything.
A 6502 is a CPU in the "traditional sense". It has limited internal state in the form of a few registers, and communicates with the outside world with address lines and data lines; I only simplified a little there. Everything else is external: RAM, ROM, any external devices on a different bus (I2C etc.), even timers and GPIO need external circuitry with usually other ICs.
An AVR on the other hand tends to have all of that stuff (or at least a sizable subset) built in. That's, obviously, enormously convenient, and often means that with the AVR itself and just minimal external circuitry you have your needs covered. But it's less educational, you've rather plugged a computer into your circuit than built a computer.
Lots of us grew up with 6502 based machines.
Probably the main advantage of a 6502 is more RAM/EEPROM (as 8bit microcontrollers are pretty limited that way) and more of a hardware/software ecosystem to work with.
Way easier to breadboard and write opcode for then, and more powerful than the Intel 4004 and 8008 (what would eventually become the 8086..the great-great-great grandfather of the i9's we now use of course), my very first working "computer" used a 6502 at its heart for my senior project...we attempted to build a voice-activated phone and actually got something that would pick up and shut off the phone with some noise, but obviously a working voice-activated phone was something that was still many years away.
Also, I remember writing an opcode instruction emulator for the chip as a extra-credit project for one my classes. I wrote a really nice emulator on my beloved Atari ST and, much to my horror, discovered a horrendous bug in he C compiler I used for the project, almost ruining both the project and my grade for the quarter.
The program had a graphical representation all all the primary subsections of a basic computer...CPU, disk memory, the various busses, and some other things that my old brain can no longer remember, and the program would step thru the processors opcodes and show, with literally the 1s and 0s on the screen, how all the parts of the computer processed the opcode instruction set into something that coordinated all the chips into doing very useful stuff.
The problem was that due to some sort of crazy hex arithmetic bug in the compiler, one of the values at one of the nodes was stuck at like x0E or something like that...and no matter what I tried to do to debug it, I could not get the damn thing to work perfectly. I thought I was going to fail the class for sure, and it wasn't even my fault!
Thankfully, I was able to show the results in pure binary form, and the rest of the program was quite impressive. Also, my professor was a HUGE fan of the Atari ST (probably because it used the 68000 and wasn't Intel), so the day of me showing him my work wasn't a total failure...in fact, his face totally lit up when I asked him if I could pop the floppy into the ST in his office, and we verified that, yes, the bug was there in all versions of the compiler.
Only one other student had chosen to do the assignment, and he had used a minicomputer from his work to do it and his results where shown in reams of printouts where mine was there graphically represented in real time updates as you stepped thru the opcode instructions. I remember its addressing modes and GP registers made writing opcode a breeze as you didn't have to waste cycles juggling data and memory addresses at all.
[edit] wow...sorry this was such a long post! I just got lost in remembering old times...
Projects like this are more for folks who are looking to build their own computers from scratch. Typically, this is for someone who's more into hardware.
Personally, I enjoy both. I have probably 6 or so kit computers at this point. FWIW, the two that I've enjoyed the most are Ben Eater's breadboard 6502 project and the nand2tetris series which is all done in software.
The Commander X16 will be more of completed commercial project where the appeal is more using the computer to write software than building the computer itself.