Vigo Posted October 4, 2023 Share Posted October 4, 2023 (edited) Hello together, I am currently developing my own 256K expansion for my 800XL computer using spare 41256 DRAMs and GAL22V10 I have lying around here. Since I am originally coming from the C64 and Amiga camp, I am mostly a newbie concerning the Atari 8-bit itself, and in particular the intricate requirements of software taking advantage of 128K/256K Ram. However, I managed to get a fully working PLD implementation of the Rambo XL memory banking scheme using bits 2,3,5,6 for memory banking, which is, as I understand, not fully compatible with 130XE banking scheme. Now I was thinking about an improvement, and maybe you guys can help me out here. Normally, if I choose banking bits 5,6=00, a Rambo XL would actually map the main memory bank to the banking window, which is, sort of, a useless combination, since this memory is in any case accessible when banking is disabled for CPU with bit 4 = 1. Now I was thinking about, what if I use this combination to allow ANTIC banking access to the second 64K of memory banking, as an original XE would allow? It would look like this: Bits: 6,5,4,3,2 000xx = select ANTIC & CPU bank xx in second 64K page (XE compatible) 001xx = select ANTIC bank xx in second 64K page (XE compatible) 010xx = select CPU bank xx in second 64K page (Rambo mode) 100xx = select CPU bank xx in third 64K page (Rambo mode) 110xx = select CPU bank xx in fourth 64K page (Rambo mode) Some questions arise here: - Does software written with RAMBO compatibility rely on the behavior that CPU bankswitch also switches the ANTIC memory bank? - Does software written with RAMBO compatibility rely on the behavior that you can mirror the main memory bank using banking bits 5,6=00? - Which software specifically requires 130XE compatible memory banking? Would this software use more than 128K memory? Thanks a lot for your feedback! Edited October 4, 2023 by Vigo Quote Link to comment Share on other sites More sharing options...
reifsnyderb Posted October 4, 2023 Share Posted October 4, 2023 Welcome! For XL/XE banking, you will need to set the banking via PORTB at $D301. I am not sure if you are referring to this location, or not, in your description. There is some information on memory banking here: https://www.atariarchives.org/mapping/appendix16.php Also, you will need to be monitoring the /HALT line for ANTIC banking. Answers to your questions.... 1. RAMBO banking excludes ANTIC banking. 2. Bits 5 and 6, with RAMBO banking, just select additional banks, they don't mirror anything. Some banking schemes do mirror main memory by allowing it to be banked. Normally, with 256k of memory, banks 0-3 mirror the main memory. 3. I understand there isn't much software that uses ANTIC banking. I wouldn't expect it to use more than 128k of memory. I don't have any numbers, though. More information on types of banking upgrades created for the Atari: http://www.atarimania.com/faq-atari-400-800-xl-xe-what-types-of-memory-upgrades-are-there-for-the-atari_68.html (Please note that the XL/XE system only normally supports PORTB banking.) Quote Link to comment Share on other sites More sharing options...
Rybags Posted October 4, 2023 Share Posted October 4, 2023 It's my understanding that banking systems that don't support seperate Antic/CPU banking will have all memory accesses directed as per PORTB setting. Main memory mirroring - I'm not sure if this is relied on much. I guess it's a side-effect of the way some expansions work. The main useful purpose would be to get at the Ram under $D000-$D7FF that's normally not accessible on a stock machine. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.