Thelen Posted October 6, 2001 Share Posted October 6, 2001 could anybody tell me at which adresses the cartridge will switch from bank 1 to bank 2 and from bank 2 to 1 with F8 bankswitching . could you tell the adresses in decimal ?? thanks , TheleN Quote Link to comment Share on other sites More sharing options...
Eckhard Stolberg Posted October 7, 2001 Share Posted October 7, 2001 switch to bank 1: $1ff8 = 8184 switch to bank 2: $1ff9 = 8185 What do you need the decimal addresses for? Ciao, Eckhard Stolberg Quote Link to comment Share on other sites More sharing options...
Thelen Posted October 7, 2001 Author Share Posted October 7, 2001 well i've made an sram programmer, but for now i only can program 4K games, and i want to add bankswitching method F8. so i've looked at a ms-pacman cartridge board and i've drawn the schematic (there are two types of ms-pacman carts, one with the bankswitching outside and one with only the prom) and found out that there are only 12 adress lines are connected to the prom, but for 8K you'll need 13 lines i thought 2^12=4096 4K 2^13=8192 8K but how can the atari give an adress like 8184 or 8185, the highest adress line out is 4096 ?? i thought.. Quote Link to comment Share on other sites More sharing options...
cwilkson Posted October 8, 2001 Share Posted October 8, 2001 Hi thelen, The 2600 actually has 13 address lines, A[12:0]. A12 is used to enable the ROM inside the cartridge. So when Eckhard refers to address $1FF8 it means A12 is high, and A[11:0] = $FF8, or A[11:0] = 4088 (decimal). I don't have a Ms. Pacman cart here, but if you look closely, I'll bet you see the ROM's chip enable line (/CE) going to the cartridge port. If memory serves, it should be between A11 and A10 on the connector??? Hope this helps! -Chris Quote Link to comment Share on other sites More sharing options...
Thelen Posted October 8, 2001 Author Share Posted October 8, 2001 Hi Cris, well i'm getting it a little bit, but i don't understand how then the rom is chip dis/enabled(ce line), it can't be always enabled thanks, TheleN Quote Link to comment Share on other sites More sharing options...
jsoper Posted October 8, 2001 Share Posted October 8, 2001 I just posted my F8/F9 bankswitch circuit on rec.games.video.classic (this site does some nasty things to ascii graphics, at least on my sparc). It may take a few hours to show up. The easiest way to go there is: www.deja.com Regards, John Quote Link to comment Share on other sites More sharing options...
cwilkson Posted October 8, 2001 Share Posted October 8, 2001 Thelen, A12 essentially select between the cartridge and the deck. If A12 is high, you're reading from the deck. If it's low, you're reading/writing to something inside the console. These are mutually exclusive. You can't do both at the same time. In summary: $0000-$0fff = internal addresses $1000-$1fff = cartridge addresses If you want *detailed* information about the 2600's memory architecture, check out the following URL. Chris Wilkson's Atari VCS hardware page You'll find complete memory maps there. -Chris [ 10-08-2001: Message edited by: Chris Wilkson ] Quote Link to comment Share on other sites More sharing options...
Albert Posted October 8, 2001 Share Posted October 8, 2001 quote: Originally posted by John Soper: I just posted my F8/F9 bankswitch circuit on rec.games.video.classic (this site does some nasty things to ascii graphics, at least on my sparc). It may take a few hours to show up. The easiest way to go there is: www.deja.com Hi John, If you enclose the ASCII text inside of List-Start and List-End UBB code, then your circuit should look okay. If you email it to me ( albert@atariage.com ) then I can post it here and it'd also be great to add it to our archives (and the 2600 FAQ). ..Al Quote Link to comment Share on other sites More sharing options...
jsoper Posted October 9, 2001 Share Posted October 9, 2001 Okay Albert, I'm trusting you on this one. code: ONE APROACH TO ATARI 2600 F8/F9 BANKSWITCH CIRCUITRY John Soper (john-soper-1991@alumni.calpoly.edu) Oct 8 2001 The F8 bankswitch convention works the following way: Address 1 1111 1111 1000 Go to bank 0 1 1111 1111 1001 Go to bank 1 ---------------- PinName A AAAA AAAA AAAA 1 1198 7654 3210 2 10 One way to do this is to put a detection circuit on A1-A12 which clocks A0 into a flip-flop as the bank value. There may be easier/cleaner ways to do this but I think three chips (7404,7474,74133) isn't that bad. If you build this, you do so at you own risk. | -------------| >()-------------- Eprom | |/ Enable | A12 -+-|- ________ A11 ---| | Set Rst| A10 ---| | | A9 ---| 7 A0--|D 7 Q|-- A12 A8 ---| 4 N | 4 | of eprom A7 ---| 1 A | | | 7 | A6 ---| 3 N |()---| >()---|> 4 | A5 ---| 3 D | |/ |________| A4 ---| / A3 ---| / /A2 ---| / /A1 ---| / --|_/ Eprom must be tied to 2600 D0-D7 and A0-A11 directly /A1, /A2, A12, Nand output inversions done with 7404 chip /A1 goes to two pins on the NAND gate because it has 13 inputs. You can use some other signal though The 2600 A12(cart enable) and eprom A12 are completely separate animals The 7474 is a dual D flip-flop, you can use something equivalent Tie the 7474 Set and Reset signals to VCC. This circuit was had a setup time issue last time I used it. Solved it by adding two more inverters (three total) after the NAND gate, then sticking a 300pf cap to ground in the middle somewhere. [ 10-08-2001: Message edited by: Albert ] Quote Link to comment Share on other sites More sharing options...
Albert Posted October 9, 2001 Share Posted October 9, 2001 Well, I screwed up. I meant to say "code" when I said "list". So I edited your post to use the Code tags, which does fix the formatting but the font is tiny when I'm looking at it. Looks like UBB is setting the font size to "1", I need to see if there's some way I can fix that in the UBB settings (or by hacking the "code", so to speak). ..Al Quote Link to comment Share on other sites More sharing options...
OldGuru Posted September 4, 2002 Share Posted September 4, 2002 Hi, I've been looking at the solution that jsoper came up with. I think that I understand how it works which actually brings the following question to mind: What happens during system reset? If I understand correctly, the uP seeks for the JMP address (start of the code) at $FFFC -> A2=1 and A1=0, this will cause the 74133 to have '1' on its output which will cause '0' on the clock input to the FF. Now, what gurantees that the FF's Q is '0' at this time? it may be either at '0' or '1' (since there is no RESET connected to it) which means that your A12 of the EPROM will either point to the upper bank (if = '1') or to the lower bank (if = '0'). That means that to be safe, you have to duplicate some parts of the code in the two segments (to set the current bank to 0, for example)... right? How do you do that? Do you have to create a special linker for that purpose? Thanks, OG. Quote Link to comment Share on other sites More sharing options...
OldGuru Posted September 4, 2002 Share Posted September 4, 2002 Hi, I've been looking at the solution that jsoper came up with. I think that I understand how it works which actually brings the following question to mind: What happens during system reset? If I understand correctly, the uP seeks for the JMP address (start of the code) at $FFFC -> A2=1 and A1=0, this will cause the 74133 to have '1' on its output which will cause '0' on the clock input to the FF. Now, what gurantees that the FF's Q is '0' at this time? it may be either at '0' or '1' (since there is no RESET connected to it) which means that your A12 of the EPROM will either point to the upper bank (if = '1') or to the lower bank (if = '0'). That means that to be safe, you have to duplicate some parts of the code in the two segments (to set the current bank to 0, for example)... right? How do you do that? Do you have to create a special linker for that purpose? Thanks, OG. Quote Link to comment Share on other sites More sharing options...
jsoper Posted September 6, 2002 Share Posted September 6, 2002 I think the F8 games were written so they'd work correctly no matter which bank was active after a 2600 reset. It'd be interesting if someone switched the two 4k blocks around and tried to run them (2600 or emulator). Kevin Horton talked about this in his bankswitching document, seems like one cart worked better after the switch. JOhn Quote Link to comment Share on other sites More sharing options...
cschell Posted September 6, 2002 Share Posted September 6, 2002 F8 games are supposed to be programmed such that they can start in either bank, however there are a few ROMs out there that require that they be started in a particular bank (thus the reason you can now specify the starting bank on the Cuttle Cart.) You can't just swap the banks unless you also swap the behavior of 1FF8 and 1FF9, otherwise the bankswitch commands will try to jump to the current bank and thus bankswitching will be broken. I believe it's Time Pilot that uses this reversed behavior. That's what Kevin Horton talks about, that he had to swap the two banks to make it work because of the reversed logic it used compared to standard F8 bankswitching. Chad 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.