The slightly different memory upgrade

Mathy van Nisselroy designed and built his own, here's why...

Ever since the Atari 130XE came out, I've been fascinated with memory upgrades. They allow you to stuff more data into your computer and access them way faster than a hard disk. But memory chips were expensive back then and I didn't have a soldering iron. But I kept reading everything concerning the Atari and articles about memory upgrades always had my special attention. Unfortunately they all had something in common: you always lost something.

You see, the address used to control the RAMdisk is also used to control BASIC, the RAM under the OS and the self-test. This leaves us with 5 bits. Two of them are used to control banked memory on the 130XE, the only 8-bit computer sold by Atari with more than 64KB. Two more bits determine whether either or both the video processor (known as ANTIC) or the CPU has access to the extended memory, leaving one bit, taken up when Atari released the XEGS (Game System). They used it to control a game inside the ROM that also holds the OS and BASIC.

So what did memory upgraders do? They decided we don't need the self-test (without it the Atari will not run, unless you're using a non-standard OS) or BASIC. There is also a memory upgrade that uses a second address, making it incompatible with all other memory upgrades. And this address lies in a part of the memory reserved for external hardware connecting to the parallel port. This parallel port is not a printer port, but is more or less the system bus.

They did something else, too. They got rid of the separate ANTIC and CPU access. I hated it every time I read that we don't need it. You can do great things with this separate ANTIC and CPU access.

So I started reading back stuff about memory upgrades and how they work. I read a message thread, in which a guy called Ryan Goranson, whom I've never met or communicated with, talked about his idea of multiplexing. Multiplexing in this case means switching one thing out and another thing in depending on the circumstances. At first I didn't get it, so I started asking questions, lots of questions. I re-read Ryan's words and asked more questions. To cut a long story short, the memory upgrade is now a reality. It works 100% on the XEGS. On my 800XE and 800XL, I'm still having some timing problems which I hope to kick out with the help of the Atari community.

Image of schematic

Image of circuit board

Unique features of my 1MB upgrade:

  • 1MB using a 1MB 30-pin SIMM
  • Separate ANTIC and CPU bank access
  • No loss of (software control over) BASIC, self-test, OS RAM or Missile Command
  • No fancy addresses
  • No flickering
  • No data loss due to wrong refresh hardware
  • No switching in and out of BASIC, self-test, OS RAM or Missile Command when controlling extended memory banks
  • If the computer expects BASIC or the OS to be enabled or disabled, it really is, no matter what happens to extended memory
  • With a second PIA and either a 4MB or 16MB SIMM, memory could even be expanded more. I'd only have to find an address that isn't already used by other (non-memory) upgrades, within the 256 bytes reserved for the PIA. A PIA chip only needs 4 bytes. Do we need more than 1MB on an 8-bit Atari? NO! Would it be fun, YES!

As soon as the timing problems are solved, preparations will be started for a small production run.

This article previously in MyAtari magazine - Feature #3, May 2001