Retrogaming is one thing — emulating an arcade machine or an Amiga to play your favorite games — but retrocomputing is something else entirely. Retrocomputing involves using actual hardware — tape drives, floppy disks, and computers powered by 1MHz processors — to poke your way around antiquated operating systems and once-bleeding-edge software packages like VisiCalc or Deluxe Paint.
Sadly, despite the fact that many of us have once owned or used an original ZX Spectrum, IBM PC, or Apple II, scant few will have working units in our cupboards. You might’ve take your old computers to the dump, or perhaps you sold them on eBay — or in most cases, age has simply taken its toll and rendered the hardware, disks, and tapes unusable.
Altera DE2 programmable FPGAFortunately, thanks to the hard work of dedicated retrocomputees like Stephen Edwards of Columbia University, you can reconstruct some of your favorite antiquated computers using field-programmable gate arrays, or FPGAs. FPGAs are “blank slate” silicon chips that can be re-programmed using hardware description language (HDL). In Edwards’ case, he has reverse-engineered and reconstructed much of the Apple II’s hardware in software, and re-programmed an Altera DE2 FPGA board (pictured right) so that it behaves like an original Wozniakian Apple II masterpiece.
Basically, Edwards’ has analyzed Steve Wozniak’s design of the Apple II, read a lot of literature about how the Apple II operates (including the patent that Woz filed) and then written software that emulates almost the exact functionality of the Apple II’s processors, controllers, timing circuits, and so on. This software (called Apple2fpga) is then uploaded to the FPGA in the shape of a compiled ROM, and voila : the Altera DE2 thinks it’s an Apple II. It runs software from an SD card instead of floppy disks, and it doesn’t support joystick input, but it looks, sounds, and feels like an Apple II.
If you’re interested in the details (the Apple II features a very ingenious design), you should read the full paper detailing Edwards’ work. Significantly, Edwards based his work on the FPGApple project by Alex Freed, and because the Apple II uses the same processor as the Commodore 64, BBC Micro, and Atari 2600, there was already an FPGA implementation of the MOS Technology 6502 processor that he could use. In fact, it seems like most of Edwards’ efforts went into emulating Wozniak’s tricks to make the NTSC television output play nicely with the Apple II hardware sitting underneath. Edwards has also released all of the source code, so you can take a look at how the Apple II works, or if you invest in an FPGA you could even build your own.