I recall a hilarious advertisement I’ve seen once in a computer shopper magazine. Unfortunately, I never could put my hands on it since again, so I will have to describe it. The double-page picture showed a sleek skyscraper from the outside with a desktop computer bursting out through the center window. The tag line read as: there are two ways to make your computer fly. The advertised one was an accelerator – much less definitive than the depicted one. Funny.
A few years later, I’ve put my hands on a couple of overdrives for my dual Pentium Pro system. The concept was simple: replace the Pentium Pro with a Pentium II and the necessary circuitry to run on a PR440FX board. Super cool, fast, and painless. But what does this have to do with pimping and Apple 2 platinum? Everything! So today, we will pimp the MOS Technology 65C02 microprocessor with an accelerator.
In a nutshell, an accelerator for the Apple 2 allows the computer to run faster than its base clock speed of 1MHz. These days, we would immediately think to overclock. But today – as back then –, we will use a more drastic approach: replace the 65C02 with something much faster, without removing the original chip. To do so, I am using an UltraWarpTM Accelerator Kit sold by ReActiveMicro and designed by Michael Mengel. With this card, the Apple 2 can run at up to 13MHz! A few boards may even reach ~20MHz according to a note. That’s out-of-the-box thirteen times faster gang! But before digging deeper into the subject, let’s take a short trip down the memory lane. In its December issue of 1982, Creative Computing published a paper by Michael Coffey titled New Processors For the Apple II. I attached scans of the article for your reference. According to RM, Michael Mengel was inspired by this very paper to design his accelerator, with the goal to speed-up his favorite chess program.
The author of the article reviews several accelerator boards equipped with the following processors: Motorola 6809 and 68000, Intel 8088, and AMD 9511. Even in 1982, this was not a scoop. I presented here, here, and here several Z80 coprocessor boards. Note that these processors have different architectures altogether. However, other acceleration solutions such as the Microcomputer Technologies SpeedDemon (3.58 MHz), Titan Technologies Accelerator (3.58 MHz MHz), Applied Engineering TransWarp series (3.58 – 7.16 MHz), or Zip Technologies Zip Chip (4 MHz – 8 MHz) stay faithful the 6502 architecture. Except for the Zip Chip (using a SIP module to replace the original processor), these accelerators were built as an extension cards installed into one of the slots of the Apple 2. I could have used one of these vintage accelerator cards. But wait, I am not quickening my Apple 2 Platinum, I am pimping it!
The UltraWarp had several revisions over the years, and I am using the latest one (version 1.91RM) shipped with a 13MHz oscillator and is driven by a 16-bit Western Design Center (WDC) 65816S processor. At full speed, the board consumes ~260 mA. This is the main reason why I started pimping my Apple 2 with a brand new and modern PSU. Even if the new processor runs much faster, the rest of the computer cannot keep up the pace. And in some instances, we actually do not want the speed. For example, while playing a game. More on this later. The board reverts to the original 1MHz when it runs code from the ROM, the monitor (not the screen, but what we would call the BIOS today), or when it is accessing the RAM. To remove the humongous bottleneck introduced by the slow RAM access, 128 KB of SRAM is mounted on the board (Integrated Silicon Solution Inc. is61c1024AL-12JLI) to shadow the 64KB of the main RAM and 64KB of auxiliary RAM (bank 0). To move the memory content between the shadow buffer and main RAM, the board uses DMA. Which in turn makes it incompatible with specific other boards using DMA as well (since as immortals, only one can remain active – at a given time, not at the end here).
To ease the coexistence between the UltraWarp and other finicky cards and devices (such as joysticks 😊), three usable dipswitches (out of four present) can be set to specify, for example, the slot that should run at slow speed. #2 for the joystick, #3 for slot 5, and #4 for slot 7. And the UltraWarp can be seated into any open slot. A more flexible solution than the switches consists of writing via software at specific addresses. Thus, a poke 49245,0 ($C05D) will slow down the system, a poke 49244,0 ($C05C) will speed up the system, and a poke at 49243 ($C05B) will disable the board.
To fully illustrate the performance boost provided by the UltraWarp, we will have to wait until the end of this post series. Meanwhile, I created two videos of the LoadRunner game demo, running in normal and accelerated speed. I recorded ~30s in both cases so that you can compare it.
Up to now, I am happy with how the pimping goes. No major incompatibilities or issues appeared. Next time, we will be pimping that lousy little speaker of the Apple 2. Stay tuned … “BIP”.