Subject: UPGRADE: 800XL -> 256K Memory (130XE
Compatible)
130XE-COMPATIBLE 800XL 256K UPGRADE
by Claus Buchholz
I designed the 256K upgrade described in my article, "The Quarter-Meg
Atari" (BYTE, September, 1985), in December, 1984. Since this pre-dated
the 130XE, there was no precedent for extended memory on the XL's, I felt free
to implement a system of eight 32K banks. The major reason was to keep the
add-on circuit as simple as possible. The 130XE, introduced in early 1985, set
a different standard for bank-select memory. It uses 16K banks and makes them
separately available to both the CPU and the video controller (ANTIC). The XE
has 128K total
memory. The 64K extended RAM is split into four 16K banks. A 256K 800XL has
192K extended RAM, which requires 12 16K banks. I have designed a new upgrade
for the 800XL that implements such a scheme. Its similarity to the 130XE's
scheme allows use of software for the XE on a 256K 800XL. To select one of
four banks, the XE uses two bits, #2 and #3, in the memory control register
(port B of the 6520 PIA, addressed at $D301 or 54017 decimal). Zeroing bit #4
makes the selected bank appear at addresses $4000-$7FFF (16384 to 32767
decimal), as seen by the CPU. Zeroing bit #5 makes it appear there as seen by
ANTIC. In my upgrade, bits #2, #3, #5 and #6 select one of the twelve banks.
Zeroing bit #4 makes the selected bank appear at $4000-$7FFF to both the CPU
and ANTIC. So, any program for the XE that uses the extended RAM for CPU
storage will work on an 800XL with this mod. Those programs won't use the
additional 128K though. Programs that use the video banking feature of the XE
might run on the modified XL, but the screen display will be wrong. The
procedure for this upgrade is basically the same as in the article, except for
the following points. If your ANTIC (U7) part number is CO21697,
use the circuit described by the first connection list below. If it is
CO12296, include the circuit in the second list. The circuit requires five
connections to the PIA (U23). So, pins 12 through 16 must be bent up and
connected to the circuit. The rest of the procedure is the same. Notice that
this circuit has one more chip than the article's circuit. This is the price
of compatibility. With the 256K dynamic RAMs in your XL, be sure to wait at
least ten seconds after turning the computer off. Otherwise it may not
coldstart properly when you turn it back on. I ask one thing in return for
this information, Please pass it around to all your interested friends. Put it
in your club's library or on your favorite BBS. Encouraging software support
of 256K will result in many interesting uses for it.
Thank you and enjoy!
Disclaimer:
The Author and This WEB claim No responsibility for any type damages
incurred by doing this modification.
MEMORY CONTROL REG. $D301 (54017)
XL MOD 130XE
Bit: Bit:
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
D a b E c d B R D V C x y B R
D=0 Enables D=0 Enables
Diagnostics Diagnostics
B=0 Enables BASIC B=0 Enables BASIC
R=1 Enables OS R=1 Enables OS
E=0 Enables V=0 Enables Extended RAM
Extended Ram for abcd is 4-bit Video
Extended RAM Bank# Ranges from 4-15
C=0 Enables Banks 12-15 are Extended Ram for Equivalent to XE's CPU.
xy is 2 Bit Banks
0-3 Extended Ram Bank Number. Ranges From 0-3.
PARTS LIST:
8 41256 256K RAMs (200ns or less)
1 74LS153 Dual 4-to-1 Mux. (IC2)
1 74LS139 Dual 2-to-4 Decoder (IC3)
1 33 ohm, 1/4 watt Resistor
ADDITIONAL PARTS FOR ANTIC #CO12296
1 74LS158 Quad inv. 2-to-1 Mux. (IC4)
1 74LS393 Dual 4-bit counter (IC5)
LIST OF CONNECTIONS FOR THE CIRCUIT
Instead of a drawing of the upgrade circuit, below is a list of connections.
Each entry in the list begins with the name of the signal followed by all the
IC pins that connect together and share the signal. IC3-13 means pin 13 of
IC3. The IC numbers appear in the parts list above. IC1 is the 74LS158 chip
from socket U27 on the XL motherboard.
DIP is the DIP header to be plugged into socket U27. U23-xx refers to the pins
you bend up on the PIA chip at U23 on the motherboard.
Vcc : DIP-16, IC1-16, IC2-16, IC3-16, IC3-13
Vss : DIP-8, IC1-8, IC2-8, IC2-1, IC2-15, IC3-8
*A7*: DIP-11, IC2-10, IC2-11
A15 : DIP-10, IC2-13, IC3-3
A6 : DIP-14, IC2-6, IC2-5
A14 : DIP-13, IC2-3, IC3-2
MUX : DIP-1, IC1-1, IC2-2
A4 : DIP-2, IC1-2
A12 : DIP-3, IC1-3
RA4 : IC1-4, DIP-4
A5 : DIP-5, IC1-5
A13 : DIP-6, IC1-6
RA5 : IC1-7, DIP-7
-E : DIP-15, IC1-15
RA7 : IC2-9, DIP-9
RA6 : IC2-7, DIP-12
PB2 : U23-12, IC2-4
PB3 : U23-13, IC2-12
PB4 : U23-14, IC3-1
PB5 : U23-15, IC1-10
PB6 : U23-16, IC1-11
-Zd : IC1-9, IC3-14
-O1a: IC3-5, IC3-15, IC2-14
-O2b: IC3-10, One side of resistor
RA8 : Other side of resistor, Pin 1 of all RAMs
If your U7 part number is CO12296, DO NOT connect signal *A7* above, and make
the following additional connections. The connection to U7 is to a trace on
the motherboard that runs from pin 8 of U7.
Vcc : DIP-16, IC4-16, IC5-14, IC4-3
Vss : DIP-8, IC4-8, IC4-2, IC4-15, IC5-7, IC5-2, IC5-12
A7 : DIP-11, IC4-6
-REF: U7-8, IC4-1
REF : IC4-4, IC5-1
A7' : IC4-7, IC2-10, IC2-11
Q7 : IC5-8, IC4-5
Q3 : IC5-6, IC5-13