18

On the local auction portal I have spotted ads for some "supercharged" 8-bit Ataris (800XL, 65XE etc) - modified to support 4 megabytes of RAM.

The auctions were scarce in details, more concentrating on praising the product than providing any actual technical details.

Can someone tell me more about that mod? How does that work? How does that play with standard Atari software? How to access the extra memory and of what use could it be?

11

Memory beyond 48 KB on 8-bit Ataris is all based on bank-switching, since the 6502 processor only has 16 address lines. The CPU can address 64 KB total, and that has to include ROM and memory-mapped I/O (0xD000-0xD7FF) as well as RAM. On XL/XE Ataris, PIA Port B, at address 0xD301, is used to swap parts of physical memory in and out of various banks, so different physical locations show up in the same address space:

  • bit 0 enables or disables the OS ROM, from 0xC000 to 0xCFFF and 0xD800 to 0xFFFF; disabling it gives back 14 KB of RAM
  • bit 1 enables or disables the BASIC ROM, from 0xA000 to 0xBFFF; disabling it gives back 8 KB of RAM
  • bits 2 and 3 provide bank selection on 130XEs (since they have 128 KB of RAM)
  • bits 4 and 5 control CPU/ANTIC access (the CPU and ANTIC can bank-switch independently, which makes sense since ANTIC has its own RAM ports)
  • bit 6 enables or disables the Missile Command ROM on XEs, at the same locations as the BASIC ROM
  • bit 7 enables or disables the self-test ROM, from 0x5000 to 0x57FF; disabling it gives back 2 KB of RAM

(That PIA port was used for the third and fourth joystick ports on the Atari 400 and 800; memory expansion beyond 52KB on those involved other bank-switching schemes. See the FAQ, linked below, for details.)

Memory expansion modifications typically involve adding a bank-switching chip and memory chips, and use more bits for bank selection. There were many different memory expansions sold back when 8-bit Ataris were current, and there are still a few varieties available now — e.g. the Ultimate 1MB (which isn’t just a memory expansion). 4 MB is the maximum possible, using 256 16 KB banks (with 8 selection bits).

“Standard” software doesn’t know about it, but there is some software which does; any software which could benefit from a 130XE would know how to use bank switching. (This is mostly games and demos though.) There were various switching standards, and some modern boards support different approaches; you’ll find mentions such as “RAMbo 320KB”, “CompyShop 576KB” and “RAMbo 1088KB”. Expansions end up being most useful as RAM disks.

Some expansions include a replacement 16-bit CPU, the 65816, which has a default 6502-compatible mode but has 24 address lines and can be used to access up to 16MB of RAM.

The Atari 8-bit FAQ section 6.11 covers memory expansion boards. a8.fandal.cz lists software which can use 130XE-style memory expansions.

  • If an Atari program is said to "require 130XE", can you safely assume that program will run on an 800XL or 65XE that has a compatible memory expansion? – Brian H Mar 21 '17 at 0:22
  • The 130xe has its own bank switch mechanism so you need an expansion that would implement the exact same system. – Thomas Mar 21 '17 at 0:45
  • 1
    @BrianH: in 99% cases, yes. Actually, if they state the expansion is CompyShop compatible, then it's 100%. – Miro Kropacek Apr 15 '17 at 8:59
  • @Thomas: the exact same system is called CompyShop and it matters only if the app/demo/game requires separate ANTIC access, which is mostly never the case. – Miro Kropacek Apr 15 '17 at 9:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.