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.
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
- 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