Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site imsvax.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!gatech!seismo!elsie!imsvax!bob From: bob@imsvax.UUCP (Bob Burch) Newsgroups: net.micro.atari Subject: 256K 800XL Lives (Part III) Message-ID: <481@imsvax.UUCP> Date: Mon, 16-Dec-85 22:10:41 EST Article-I.D.: imsvax.481 Posted: Mon Dec 16 22:10:41 1985 Date-Received: Thu, 19-Dec-85 04:25:52 EST Organization: IMS Inc, Rockville MD Lines: 154 This article has been passed down from CompuServe. It is a modification of the original circuit appearing in "The Quarter-Meg Atari" by Claus Buchholz in BYTE of 9/85. ============================================================================= A 130XE-COMPATIBLE 256K UPGRADE FOR THE ATARI 800XL by Claus Buchholz I designed the 256K upgrade described in my article, "The Quarter-Meg Atari" (BYTE, September, 1985), in December, 1984. Since this predated the 130XE, there was no precedent for extended memory on the XLs. 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. My original RAMdisk software doesn't work with this new mod, so I have written a new version. It is used in the same way, except that it offers a choice of either two single-density RAMdisks or one double-density. If you wish a disk copy of the source and object code, send me a blank disk and return mailer with full postage, and I will promptly send it back with the software. Alternately, you may download the software from the Capitol Hill Atari Owners' Society BBS at 517-371-1106 or from the Castle Communications board at 517-371-4234. The source file is called QMEGXLD.SRC for Quater-MEG XL Double. Also available is a RAMdisk program that sets up one single-density RAMdisk and leaves the XE-equivalent banks free for XE software. This is quite useful with BASIC XE, DOS 2.5, or the new Synapse software. Its name is QMEGXLS.SRC. 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! DEFINITION OF MEMORY CONTROL REGISTER AT $D301 (54017 DECIMAL) XL MOD 130XE bit: 7 6 5 4 3 2 1 0 bit: 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 diagnostic ROM D=0 enables diagnostic ROM B=0 enables BASIC ROM B=0 enables BASIC ROM R=1 enables OS ROM R=1 enables OS ROM E=0 enables extended RAM V=0 enables extended RAM for video abcd is 4-bit extended RAM bank # C=0 enables extended RAM for CPU - ranges from 4 to 15 xy is 2-bit extended RAM bank # - banks 12 to 15 are equivalent - ranges from 0 to 3 to XE's banks 0 to 3 PARTS LIST 8 41256 256K-bit dynamic RAM (200ns or less) 1 74LS153 Dual 4-to-1 multiplexer (IC2) 1 74LS139 Dual 2-to-4 decoder (IC3) 1 - 33 ohm, 1/4 watt resistor ADDITIONAL PARTS FOR ANTIC #CO12296 1 74LS158 Quad inverting 2-to-1 multiplexer (IC4) 1 74LS393 Dual 4-bit counter (IC5) LIST OF CONNECTIONS FOR THE UPGRADE 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 ============================================================== End of Article. Thanks, Claus.