A purple PCB with many DIP chips including a 6502

Hackaday Prize 2022: Reuse Those DIP Chips To Make A 1980s-Style Single-Board Computer

With the Great Chip Shortage still delaying deliveries of new components, now might be a good time to look around your lab and inspect those piles of chips that you thought “might come in handy one day”. Chances are you’ll find a good stack of 74xx series logic, once ubiquitous but today mostly obsolete thanks to powerful microcontrollers and FPGAs. It would be a shame to let them go to waste, so why not use them to make a neat 1980s-style computer?

With this idea in mind, [Anders Nielsen] designed the ABN6502: a single-board computer based on the venerable 6502 processor, but with relatively modern interfaces like a VGA monitor output, a PS/2 keyboard connector and even a wireless module to simplify firmware uploads from a PC. One design requirement was to minimize the number of new components needed; the average hacker interested in building the ABN6502 will probably have many of the chips lying around somewhere in their workshop.

The component list reads like a typical bill of materials for a 6502-based computer, but comes with a lot of flexibility to allow for part subsititution. For the CPU, both the classic NMOS 6502 as well as the modern CMOS-based 65C02 are supported, along with their 6522 companion chip that provides I/O ports and timers. A ROM socket can hold either modern, fast flash chips or traditional but slow UV-erasable EPROMs.

Instead of using DRAM chips with their complicated refresh requirements, [Anders] went for 32 KB of SRAM to implement the main memory; unaffordable in the ’80s but easily available today. Standard 74xx series logic chips glue all the components together, again with several options to add or remove features as the user prefers. Pin headers bring out the I/O ports for easy connection to external peripherals.

The ABN6502’s software library is currently limited to a bootloader, but a complete development toolchain based on the CC65 compiler should make it easy to develop all kinds of programs on this platform. We’ve already featured the clever wireless ROM flashing system, as well as a demonstration of the 6502 driving RGB LEDs.

Continue reading “Hackaday Prize 2022: Reuse Those DIP Chips To Make A 1980s-Style Single-Board Computer”

The Thin-Film Flexible 6502

While our attention is mostly directed towards ever smaller-integrated silicon circuits providing faster and faster computing, there’s another area of integrated electronics that operates at a much lower speed which we should be following. Thin-film flexible circuitry will provide novel ways to place electronics where a bulky or expensive circuit board with traditional components might be too expensive or inappropriate, and Wikichip is here to remind us of a Leuven university team who’ve created what is claimed to be the fastest thin-film flexible microprocessor yet. Some of you might find it familiar, it’s our old friend the 6502.

The choice of an archaic 8-bit processor might seem a strange one, but we can see the publicity advantage — after all, you’re reading about it here because of it being a 6502. Plus there’s the advantage of it being a relatively simple and well-understood architecture. It’s no match for the MHz clock speeds of the original with an upper limit of 71.4 kHz, but performance is not the most significant feature of flexible electronics. The production technology isn’t quite ready for the mainstream so we’re unlikely to be featuring flexible Commodore 64s any time soon, but the achievement is the impressive feat of a working thin-film flexible microprocessor.

Meanwhile, if you’re curious about the 6502, we took a look at the life of its designer, [Chuck Peddle].

Two circuit boards connected with wires

Glow In The Dark Computer Memory Illuminates The Fundamentals

Computer memory has taken on many forms over the years, from mercury-based delay-line tubes to handwoven magnetic core. These days, volatile storage using semiconductors has become ubiquitous with computing, but what if there was a better way? [Michael Kohn] has been working on a new standard for computer memory that uses glow in the dark stickers.

Clearly we jest, however we’re still mighty impressed by the demonstration. Eight delightful star-shaped phosphorescent stickers represent eight bits of memory, totaling one byte. The glow in the dark material is stuck to the inside of short cylinders, each of which contains a white LED and a phototransistor. The memory array is wired up to an iceFUN FPGA board, which is then connected via level shifters to a Western Design Center MENSCH single board computer.

Continue reading “Glow In The Dark Computer Memory Illuminates The Fundamentals”

An NRF24L01 module soldered onto a 6502 single-board computer

Wireless Bootloader Saves You From Swapping ROM Chips

Flashing your code into an Arduino, an ESP32 or any other modern microcontroller platform is pretty straightforward: connect the device through USB, fire up the appropriate software platform, and press “program”. But those who followed embedded programming classes in the ’80s and ’90s will remember a more complicated procedure that consists of swapping EPROM chips between a programmer, a target board and a UV eraser. Veterans of that era might even remember how you could overwrite a previous program with NOPs and place new code behind it, to save yourself a trip to the “blank chips” bin.

If you’re a retrocomputer enthusiast and would like to have the easy programming of modern tools, but the authenticity of a self-contained ROM-loading computer, you might want to check out [Anders Nielsen]’s latest design of a wireless boot loader for a 6502 single board computer. The target platform for this project is a beautiful custom-made 6502-based retrocomputer that [Anders] documented in detail on his Hackaday.io page.

The basic idea here is to have a wireless receiver on the target system that receives data from a transmitter connected to a modern PC. When you click “program”, the object code is sent to the 6502 machine, stored in RAM and executed. The wireless link is implemented with a pair of nRF24L01 2.4 GHz modules that communicate through SPI. Since [Anders]’s Mac Mini doesn’t come with GPIO ports he hooked up the transmitter to a Raspberry Pi which he controlled through a network link.

On the 6502 side he wrote a bootloader in assembly language, which bit-bangs the SPI protocol to communicate with the wireless module. A simple user interface is included to allow the user to control the loading and running of programs. All code and hardware documentation is available on Github for use by anyone with a similar 6502 system.

Those nRF24L01s are versatile little things: we’ve seen them being used to transfer anything from MIDI data to TCP/IP links, as well as code for other microcontroller platforms.

Continue reading “Wireless Bootloader Saves You From Swapping ROM Chips”

6502 Goes FPGA (Again)

While there has been no shortage of FPGA-based recreations of classic processors, we always enjoy seeing a new approach. Last month [Some Assembly Required] took on the challenge to recreate a classic computer from the ground up and started with a 6502 implementation in Verilog. You can see in the second video below that he’s made good progress and there are apparently more videos to come.

The ROL instruction is the subject of the second video. We liked the approach of looking at what the instruction does and how many cycles it takes on different variants It is always good to make sure you know exactly what you are trying to accomplish before you get started.

Continue reading “6502 Goes FPGA (Again)”

WS2812s On A 6502

We can still remember when the WS2812 LED first came into our consciousness, way back in the mists of time. The timing diagrams in the datasheet-of-questionable-veracity made it sound quite tricky, with tight timing tolerances and essentially a high-speed two-bit PWM data protocol at 500 kHz. It was a challenge to bit-bang with an ATtiny85 back then, but there’s no way something as old and crusty as an Apple II would be up to snuff, right?

[Anders Nielsen] took up the challenge of getting the venerable 6502 processor to drive Neopixels and won! After all, if the chip is good enough for Bender and the Terminator T-800, it should be able to blink some colored LEDs, right? The secret sauce is shift registers!

Specifically, [Anders] abuses the 74LS165 parallel-in, serial-out shift register for his dirty work. Instead of bit-banging the WS2812’s “long high is a 1, short high is a 0” signal directly, the first few bits of the shift register are hard-wired to VCC and the last few to GND.

The bits in the middle determine if the pulse shifted out is long or short, and they’re set by the 6502, through a 6522 VIA chip, just like the Apple II would have. Clocking the data out of the shift register handles the timing-critical stuff. Very clever!

Video below the break.

Continue reading “WS2812s On A 6502”

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]