Here’s A 100 MHz Pin-Compatible 6502 Replacement

The MOS Technology 6502 CPU was a popular part in its day. In various modified versions, it powered everything from the Commodore 64 to the Nintendo Entertainment System, and showed up in a million other applications too. A popular variant is the 65C02, and [Jürgen] decided to whip up a pin-compatible FPGA version that runs at a blazing 100MHz.

The CPU core was borrowed from work by [Arlet Ottens] and extended with 65C02 functionality by [Ed Spittles] and [David Banks]. [Jürgen] then packaged that core in a Spartan-6 FPGA and placed it on a small PCB the size of the original 65C02’s 40-pin dual inline package.

The FPGA is set up to access the external CPU bus with the timing matched to the clock of the host machine. However, internally, the CPU core runs at 100MHz. It copies RAM and ROM from the host machine into its own internal 64 kilobyte RAM, minus the areas used for memory-mapped I/O by the host. The CPU then runs at full 100MHz speed except when it needs to talk to those I/O addresses.

It allows the chip to accelerate plenty of tasks without completely flipping out when used with older hardware that can’t run at anywhere near 100MHz. The pin-compatible design has been tested successfully in an Apple II and a Commodore 8032, as well as a variety of vintage chess computers.

We’ve seen the opposite before too, with a real 6502 paired with a FPGA acting as the rest of the computer. If you’ve got any cutting-edge 6502 hacks of your own (not a misprint!), let us know!

[Thanks to David Palmer for the tip]

David Murray and Kevin Williams with an early X16 prototype

Commander X16: A Dreamy 8 Bit Computer Comes Closer To Reality

Imagine the ultimate homage to 1980s 8-bit home computers. It might  look like [David Murray] aka The 8-Bit Guy’s Commander X16.

As a core group of geeks, hackers, and developers age, we yearn for the computers of our youth. VIC-20s, Commodore Pets, 64s, 128s, Ataris, Apple IIes, and the list goes on and on. For many of us, our first hands on experience with a computer was with such a machine that is now called “retro”. Sadly, many of these relics are getting more expensive as demand increases and supplies dwindle. Working examples are harder to find, and even those can break down. Original monitors, peripherals, and accessories are also getting scarcer. This is all quite understandable when we consider that some of these classics are over 40 years old.

What was it that we loved about these old rigs that makes them so attractive? [David] decided to distil what makes a classic a classic, and then turn that list into a spec list for what he calls his “Dream Computer”. He found that things like a printed and spiral bound manual were a big part of the charm and utility of these early home computers. Booting directly to a prompt and being able to directly control the hardware was another highly desirable trait.

[David] also took the time to determine what people don’t like about these retro machines: Wacky keyboard layouts, composite video output, and glacially slow storage. Swapping multiple floppies to load a program or respooling a cassette tape is just as undesirable in 2021 as it was in 1981. Who knew?

X16 Prototype #3
The X16’s’ prototyping is still in progress.

The result of [David]’s research is the Commander X16. Inspired by the VIC-20, it’s a fresh take on the retrocomputer that only uses parts that are currently available. You can see the first video in a series about the development of the X16 below the break. Be aware that a lot of progress has been made since the video came out in 2019, but it still provides an excellent starting point for learning about the project.

The X16’s specifications read like dream list made in the mid 80s: 256 color VGA, up to 2MB memory, an 8 MHz 6502, plenty of expansion ports, and even ports for SNES style controllers.  And what else will this dream machine include? You guessed it: A spiral bound manual!

It’s not possible to list all of the great features of the X16 in this space, so check out the Commander X16 FAQ for all the details. If this project makes your heart go pitter patter, you may be interested to know that they need help with software development! An emulator is available for development. The goal is to have a healthy software ecosystem in place when the X16 launches.

You may also enjoy reading about other 6502 retrocomputer reports such as this “Brain in a vat” 6502 computer, or a guided tour of the birthplace of the 6502 and the Commodore 64 with our very own Bil Herd.

Thank you to [Truth] for bringing us a report of this fine project via the Tip Line. Keep those tips coming!

Continue reading “Commander X16: A Dreamy 8 Bit Computer Comes Closer To Reality”

Gaming In Different Languages

One of the perks of using older hardware is its comparative simplicity and extensive documentation. After years or decades of users programming on a platform, the amount of knowledge available for it can become extensive. This is certainly the case with the 6502 microprocessor, used in old Apple computers and some video game systems from the ’80s. The extensive amount of resources available make it a prime candidate in exploring various programming languages, and their advantages and disadvantage.

This project looks into those differences using a robot game, which has been programmed four different ways in three languages. [Joey] created the game in Python first and then began to port it to the 65C02, a CMOS variant of the 6502. The first iteration is its assembly language, and then a second iteration with optimized assembly code. From there, he ports it to C and then finally to Forth. Each version of the game is available to play in a browser using an emulator to run the 6502 hardware.

Since the games run in the browser, other tools are available to examine the way the game runs in each language. Registers can be viewed in real time, as well as the values stored in the memory. It’s an interesting look at an old piece of hardware and of its inner workings. For an even deeper dive into the 6502, it’s possible to build a working computer on breadboards using one.

Review: Single Board 65C02 And 65C816 Computers

The 6502 is a classic piece of computing history. Versions of this CPU were found in everything from the Apple ][, to the Nintendo Entertainment System, and the Commodore 64. The history of the 6502 doesn’t end with video games; for the last forty years, this CPU has found its way into industrial equipment, medical devices, and everything else that doesn’t need to be redesigned every two years. Combine the longevity of the 6502 with the fact an entire generation of developers first cut their teeth on 6502 assembly, and you have the makings of a classic microprocessor that will, I’m sure, still be relevant in another forty years.

The cathedral of The 6502 is Western Design Center. For more than 35 years, WDC has been the home of 6502-related designs. Recently, WDC has been interested in the educational aspects of the 6502, with one of the VPs, [David Cramer], lending his time to an after-school club teaching opcodes.

The folks at WDC recently contacted me to see if I would give their hardware a close look, and after providing a few boards, this hardware proved to be both excellent. They’re great for educators adventurous enough to deviate from the Arduino, Processing, and Fritzing zeitgeist, and for anyone who wants to dip their toes into the world of 65xx development.

Continue reading “Review: Single Board 65C02 And 65C816 Computers”

Hacklet 38 – 6502 Projects

The 6502 CPU is probably the most famous of all the 8-bit processors out there, whether in the form of bare chips for homebrew computers, or as slightly modified derivative chips found in everything from the C64, the NES, and the BBC Micro. For this edition of the Hacklet, we’re taking a look at all the 6502-based builds on hackaday.io.


6917521396192751941There aren’t many transistors on a 6502, making it perfect for implementing on an FPGA. [Michael A. Morris] has an Arduino FPGA shield, and his soft-6502 project is called Cameleon. There’s a bunch of SPI Flash and FRAM on board, and the 128kB of (parallel) SRAM on the board is more than enough to handle any computational task you can throw at it.

Since the Cameleon is built on programmable logic, [Michael] thought it would be a good idea to put some of those unused opcodes to use. There are instructions for coprocessor support, and a bunch of instructions specifically designed to make the Forth implementation easier.


4244551421640813832Maybe programmable logic isn’t your thing, and you’d just like a simple computer like the Ohio Scientific or the Apple I. The L-Star is for you. That’s [Jac Goudsmit]’s build featuring a 6502, a Parallax Propeller, and little else.

The Parallax Propeller is a powerful (multi-core!) chip that’s easily capable of handling video out, keyboard in, and serving up the ROM and RAM of a computer. [Jac]’s build does it all beautifully, and if you’re looking for the easiest way to run code on a 6502, this is how you do it.


6502s were found in just about everything, and while poking around at the local e-waste recycler, he stumbled upon something rather interesting. The case badges screamed, “BS medical device”, but after poking around a bit, he figured out this was an MTU-130 system, a machine that was apparently the top of the line in its day.

There’s some weird stuff going on in this machine – 18-bit addressing and 80kB of RAM. So far [Eric] has managed to dump the ROM, and he’s taking a look at the floppy controller board to see if he can figure out how it’s mapped. It’s one thing to figure out what’s broken on an Apple II or C64; those are well documented machines. It’s another thing entirely to figure out a machine very few people have heard of, and we tip our hat to [Eric] and his efforts.


4000511410347834190Here’s a build that both does and doesn’t have a 6502 in it. [BladeRunner]’s SheMachine is a single board computer that has a 65c816 in it. The ‘816 is an interesting beast that operates as a standard 6502 until a bit is flipped in one of its registers. After that, it has a 24-bit address space for addressing 16 Megabytes of memory, 16-bit registers, but is still completely backwards compatible with the 6502. Yes, it does have weird interleaved address pins, but we can only imagine what the world would be like if this chip came out a few years earlier…

[BladeRunner] is designing the SheMachine with 1MB of SRAM – more than enough, really – and is mapping all the memory through a CPLD. That’s how you should do it, anyway.

THP Entry: A 6502 SBC Robot (On Multiple Boards)

SBC

Robots have always been a wonderful tool for learning electronics, but if you compare the robot kits from today against the robot kits from the 80s and early 90s, there’s a marked difference. There are fairly powerful microcontrollers in the new ones, and you program them in languages, and not straight machine code. Given this community’s propensity to say, ‘you could have just used a 555,’ this is obviously a problem.

[Carbon]’s entry for The Hackaday Prize is a great retro callback to the Heathkit HERO and robotic arms you can now find tucked away on a shelf in the electronics lab of every major educational institution. It’s a 65C02 single board computer, designed with robotics in mind.

The 6502 board is just what you would expect; a CPU, RAM, ROM, CPLD glue, and a serial port. The second board down on the stack is rather interesting – it’s a dual channel servo board made entirely out of discrete logic. The final board in the stack is an 8-channel ADC meant for a Pololu reflective sensor, making this 6502 in a Boe-bot chassis a proper line-following robot, coded in 6502 assembly.

[Carbon]’s video of his bot below.


SpaceWrencherThe project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.

Continue reading “THP Entry: A 6502 SBC Robot (On Multiple Boards)”

Another Take On The 6502 Computer

another-take-on-the-6502-computer

[Mark] is just starting off on his own 6502 computer odyssey. He was inspired by some of the other projects we’ve seen around here, like [Quinn Dunki’s] Veronica Project, but with a spin that leverages modern processors to alleviate some of the messy work. As you can see above, there’s an Atmel chip perched above the 65C02 processor. This chip not only feeds the processor data (through all those slightly diagonal yellow wires) but also provides the clock signal and operates the reset and bus enable lines.

This is more of a hello world post for [Mark]. The chip is simply running NOP commands right now. But it shows that the basic idea works, and the video after the break lets us see another time-saving aspect of the circuit. He’s using a character LCD to display memory location and data values. The plan is to get a blog going, which he’s hesitant to do as it takes valuable hacking time away from the project. We disagree. The write-up (although incredibly fun for us to read) ends up being a reference manual for him once the project starts to get really hairy.

Continue reading “Another Take On The 6502 Computer”