Adding persistent memory and Ethernet to vintage arcade machines


If you are a frequent reader, you are undoubtedly familiar with hacker [Sprite_tm]. He has been working with fellow members of the TkkrLab hackerspace to get things ready for their official grand opening on May 28th, and wrote in to share a project he recently completed to kick things off.

As part of their preparations, they have been stocking the joint with all sorts of hacker-friendly goodies including plenty of tools and Club Mate, as well as a vintage ‘1943’ arcade cabinet. The game is a group favorite, though every time the power is turned off, it loses all of the hard-earned high scores. [Sprite_tm] knew he could improve on the current paper-based score register, so he pulled the machine open to see what could be done.

He used an AVR to tap into the machine’s Z80 logic board, allowing him to read and write to the entirety of the game’s RAM whenever he pleased. This enabled him to keep tabs on the high scores, restoring them to memory whenever the machine is powered back on. The addition of the AVR also allowed him to add a TCP/IP interface, which is used to send high scores to Twitter whenever someone beats the previous record.

His modular bus tap can be used in all sorts of Z80-based hardware, so if you have some vintage equipment laying around, be sure to swing by his site for a more detailed look at the build process.

Zork on the Microtouch

[Rossum] just finished porting Zork over to the Microtouch. This hardware, which he originally designed, is now available for purchase through Adafruit. It’s a tiny 320×240 TFT touchscreen, driven by an AVR ATmega32u4 microcontroller. The device draws power from a lithium battery, and also boast a USB connection and a MicroSD slot.

The hack here is getting Zork to run with the limited resources available on the device. [Rossum] needed to emulate the Z80 processor, but didn’t want to use extra hardware in the way that [Sprite_TM] did when he emulated a Z80 using an AVR. Instead, this is based on a stripped-down implementation of Frotz. The final code is too big to fit on the chip along side of the bootloader. This means you’ll need to use an ISP programmer in order to flash this example to the chip. We’re pretty sure that AVRdude can program the ATmega32u4, so pretty much any ISP (including an Arduino) can be used to do the programming.

V4Z80P: The 8-bit laptop

[Phil] over at Retroleum has cobbled together a clean, well put together laptop based entirely around a Zilog Z80 microprocessor and a pair of Spartan II FPGAs. These FPGAs allow him to reduce the number of devices on his board, and therefore cut his production cost as well as device size. He even managed to integrate a salvaged PSOne screen. The laptop comes complete with [Phil]‘s own Homebrew OS as well as a great graphical vector based demo.

Sure he’s updated the project in recent years to shrink the board, speeding up the Z80, and increasing the peripheral speed and functionality, but we’re suckers here for a total package hack. Seriously though, check out the newest version of the device as well as the backlog that shows the project growing over time.

Thanks to [Steth] for the heads up.

Z80 emulated on PIC hardware

[Jaromir Sukuba] built a very portable, low power consumption Z80 emulator using a PIC microcontroller. Looking through his build photos we love the clean and resilient construction which includes a breakout board for the PIC 32MX795F512H that interfaces with the main board via pin headers and sockets. He’s using a home-built keyboard and a 4×40 character display but there is also the option to communicate with the device over an RS232 connection. Oh, and yes it plays Zork, which seems to be the benchmark whether you are emulating a Z80 with AVR hardware, or if you built one from transistor-transistor logic.

Emulating a Z80 computer with an AVR chip

[Sprite_tm] dusted off his assembly skills and managed to emulate a Z80 computer using an AVR ATmega88. He’s using an SD card in place of the floppy and a 128 KB DRAM chip to handle the memory for the emulated machine. An FT232 board gives him terminal access which he uses for input and display. As you can see, the hardware is much simpler than building the original would have been. He makes up for this with complicated firmware. In the end, the emulated core occupies about 2 KB of programming space after he followed the Z80 Propeller project’s idea of dividing the instructions into different modules and using a lookup table to access them.

Zilog in a matchbox

Now you can have a Zilog computer in the form factor of a matchbox. The RamBlade is a tiny PCB that uses a Parallax Propeller IC to implement the CP/M language. The OS is stored on a microSD card, with a four-pin serial interface (3V3, GND, SO, SI) that allows operation via a terminal program.

Smaller and more resilient than building your own from ancient logic chips, we see this a way to get a whole new set of people interested in this old technology.

[Thanks Oldbitcollector]

Processor built with Transistor-Transistor Logic


[Donn] wanted know exactly what is going on inside of a processor so naturally he built a CPU out of TTL components. He had previously built a couple of versions of a computer based on the Z80 processor. Using the troubleshooting skills he learned and a second-hand textbook, he set to work using 74LS series chips connected using the wire-wrap method we’re familiar with from other cpu projects.

The finished product runs well at 1.8 megahertz, but he also included a 2 hertz clock and a step clock for debugging. At the slower speeds, the register board (seen at the left in the picture above) lights LEDs and can be used to tell what the CPU is currently working on. Programming is accomplished through either  a dumb terminal or a PC running a terminal emulator.

His writeup is from about five years ago but that didn’t prevent us from getting that fuzzy feeling in the geek-center of our brain when we read about it. It is well written and thorough so if you’re into this kind of thing there’s plenty to enjoy.

[Thanks Raleigh]