Hackaday Prize 2023: Scratch Made 8-Bit Educational Computer

To demonstrate the functionality of an 8-bit computer processor at a very basic level,  [Mazen Gomaa] assembled a Homemade 8-Bit Educational Computer using common CMOS logic chips, a handful of prototyping boards, and an impressive number of carefully connected wires. [Mazen] was inspired by Ben Eater’s 8-bit TTL Breadboard Computer but opted to solder the chips and other components onto proto boards instead of using solderless breadboards.

The 8-Bit computer is based on the Simple-As-Possible (SAP) computer architecture described in the book “Digital Computer Electronics” by [Paul Malvino] and [Jerald Brown]. These useful educational examples demonstrate data, computer logic, and even programming in the context of basic electronic components. Tinkering with such simple computers provides a real “zeros and ones” exposure to computation.

[Mazen] added some additional features and functionality to his computer, including an instruction keypad, an address keypad, a dot matrix memory data viewer, a Schottky diode matrix ROM, and a boot loader that initializes the RAM with data stored in ROM. With clock speeds up to 100 Hz, the computer consumes around 300-500 mA of current.

Future plans include expanding the memory and instruction set from the present 128-bit (8×16) RAM, 64-bit (8×8) ROM, and a set of ten instructions.  Already, this project is a great addition to an ever-growing catalog of homemade solderless breadboard computers, LCD snake games, and VGA video cards.

Continue reading “Hackaday Prize 2023: Scratch Made 8-Bit Educational Computer”

Commodore 64 Upgrade In Modern Package

While the Commodore 64 was an immensely popular computer for its time, and still remains a strong favorite within the retrocomputing community, there’s a reason we’re not using modern Commodore-branded computers today. Intense competition, company mismanagement, and advancing beyond 8-bit computers too late in the game all led to the company’s eventual downfall. But if you’re still a Commodore enthusiast and always wished you were able to get an upgraded C64, you might want to take a look at the Commander X16, a modern take on this classic computer.

We’ve actually seen the Commander X16 before, but this was back in its early days of prototyping and design. This video from [Adrian’s Digital Basement], also linked below the break, takes a look at how it’s come in the four years since [David Murray] started this project. At its core, it’s an 8-bit 6502-based computer like you’d find in the 1980s but built with new components. There are some more modern updates as well such as the ability to use an SD card as well as built-in SNES controller ports, but the real magic here is the VERA module. Built around an FPGA, this module handles graphics, some of the audio, and the storage capabilities and does all of these things much better than the original Commodore, while still being faithful to what made these computer great.

While the inclusion of the FPGA might offend some of the most staunch 8-bit purists, it turns out to be necessary due to the lack of off-the-shelf video chips and really makes this build shine in the end. It’s also capable of running 6502-based software from other machines too, including the original NES. The VERA module makes it possible to run other software too, including a sample of Sonic the Hedgehog from the Sega Genesis which [Adrian] demonstrates in his video. 6502-based computers are quite versatile as the Commander X16 demonstrates, and it’s even possible to build a rudimentary 6502 on a breadboard with just a few parts.

Continue reading “Commodore 64 Upgrade In Modern Package”

Pushing Crates In 8-bit Color

Moore’s law isn’t strictly holding anymore, but it is still true that most computing systems are at least trending towards lower cost over time, if not also slightly smaller size. This means wider access to less expensive hardware, even if that hardware is still an 8-bit microcontroller. While some move on to more powerful platforms as a result of this trend, there are others still fighting to push these platforms to the edge. [lcamtuf] has been working to this end, stretching a small AVR microcontroller to not only play a classic video game, but to display it on a color display. Continue reading “Pushing Crates In 8-bit Color”

Driving E-Paper Displays With Memory Limited MCUs

It’s easy to become jaded by modern microcontrollers: for just a few bucks you can get a MCU that’s powerful enough to give a desktop computer from the early 90s a run for its money while packing in contemporary technology like WiFi and Bluetooth. For many projects we don’t even have to consider optimizing our code, because we aren’t even scratching the surface of what the hardware is capable of.

But sometimes you don’t have the luxury of using the latest-and-greatest chip, and have to play the hand you’re dealt. That’s when folks like [Larry Bank] really shine. In a recent write-up, he goes over his experiments with driving e-paper displays (specifically, salvaged electronic shelf labels) with 8-bit MCUs that on paper shouldn’t have the resources to run them.

A similar trick can be used on OLEDs

The problem is that these displays generally expect to be handed a fully-formed image, which can easily exceed the free RAM on a low-end chip. For example, a 1-bit 128 x 128 image would consume 2 KB of RAM — more than four times the available memory on an ATtiny85.

As [Larry] explains, his alternate approach is to write data to the display in columns that are only one byte wide. Combined with his existing work with image decompression on constrained hardware, he’s able to rapidly draw out full-screen TIFF images using an Arduino UNO as demonstrated in the video after the break. He hopes the work will inspire others to experiment with what’s possible using the dinky MCUs you generally find in second-hand shelf labels.

Continue reading “Driving E-Paper Displays With Memory Limited MCUs”

This Snappy 8-Bit Microcomputer Brings The Speed To Retrocomputing

When the need for speed overcomes you, thoughts generally don’t turn to 8-bit computers. Sure, an 8-bit machine is fun for retro gameplay and reliving the glory days, and there certainly were some old machines that were notably faster than the others. But raw computing power isn’t really the point of retrocomputing.

Or is it? [Bernardo Kastrup] over at The Byte Attic has introduced an interesting machine called the Agon Light, an 8-bit SBC that’s also a bit like a microcontroller. The machine has a single PCB that looks about half as big as an Arduino Uno, and sports some of the same connectors and terminals around its periphery. The heart of the Agon Light is an eZ80 8-bit, 18.432 MHz 3-stage pipelined CPU, which is binary compatible with the Z80. It also has an audio-video coprocessor, in the form of an ESP32-Pico-D4, which supports a 640×480 64-color display and two mono audio channels. There’s no word we could find of whether the ESP32’s RF systems are accessible; it would be nice, but perhaps unnecessary since there are both USB ports and a PS/2 keyboard jack. There’s also a pin header for 20 GPIOs as well as I2C, SPI, and UART for serial communication.

The lengthy video below goes into all the details on the Agon Light, including the results of benchmark testing, all of which soundly thrash the usual 8-bit suspects. The project is open source and all the design files are available, or you can get a PCB populated with all the SMD components and just put the through-hole parts on. [Bernardo] is also encouraging people to build and sell their own Agon Lights, which seems pretty cool too. It honestly looks like a lot of fun, and we’re looking forward to seeing what people do with this.

Continue reading “This Snappy 8-Bit Microcomputer Brings The Speed To Retrocomputing”

WheatSystem Is A Homebrew 8-Bit OS

[Esperantanaso] has long been involved in producing homebrew 8-bit computers. His various builds could all achieve different things, but he grew frustrated that applications written for one could not be easily run on another. He recently took a big leap forward in this area, though, cooking up his own 8-bit operating system called WheatSystem.

The work initially began with BreadSystem, which relied on applications existing in bytecode. This would then be run by the BreadSystem OS which would handle the requisite conversion to the machine code of the system it ran on. However, the work quickly got out of hand when it came to implementing advanced features like the file system and floating-point handling. BreadSystem was looking likely to be too heavy to run on lightweight 8-bit systems.

That led to the development of WheatSystem, which kept the bytecode runtime environment, unified heap, and a memory permission system from BreadSystem. Fancier features like granular memory permissioning, automatic garbage collection, and file system directories were dropped.

WheatSystem quickly became a basic and functional OS. To demonstrate it, [Esperantanaso] created WheatBox 55A1, a small homebrew computer based on the ATmega328. It readily runs simple applications like a prime number generator or a basic RPG.

Creating one’s own OS is no mean feat, even at the 8-bit level. We’ve seen it done before, and it never fails to impress.

Continue reading “WheatSystem Is A Homebrew 8-Bit OS”

Recreating DOOM On A Homebrew 8-Bit CPU

[James Sharman] has been working away on a 8-bit CPU of his own design. Naturally, with his computing device largely functional, the obvious question was asked: can it run DOOM? [James’] latest video explores this question, showing just how close he was able to get.

[James’] 8-bit pipelined CPU also has its own UART, VGA adapter, and sound adapter all built up on discrete components on various PCBs. There’s also a custom interface for a SNES controller as an input device. However, it’s fundamentally well below the specs that DOOM originally required at launch. His 8-bit CPU runs at just 4 MHz, with 64 KB of RAM. This compares poorly to the 32-bit, 33 MHz Intel 386 chips and 4 MB of RAM originally recommended to run the game.

In lieu of running the real thing, [James] demonstrated the limitations of his machine by coding his own demo, nicknamed Doomed. It’s able to average 19 fps video output at a resolution of 80×60, and consists of over 5,000 lines of hand-written assembly code. Fundamentally, it’s a basic 3D engine not dissimilar to Wolfenstein 3D, though without any actual gaming interactions involved.

[James] could have simply stated the machine won’t run DOOM. However, trying to get something similar up and running was a useful learning experience, and in his own words, highly satisfying. This attitude of pushing on in the face of adversity is what propels many other DOOM porting efforts.

Continue reading “Recreating DOOM On A Homebrew 8-Bit CPU”