Jump to content
IGNORED

FE bankswitching and a13


DrWho198

Recommended Posts

I'm looking into some bankswitching shemes from the hardware level and when I got to the FE banswitching I got into somewhat of a puzzle.

In this documentation "http://www.classic-games.com/atari2600/bankswitch.html" you will read that FE uses 2 hotspots "01FE" and "11FE".

However, in the stella debugger you can read:

 

FE cartridge, two 4K banks

Doesn't support bankswitching with hotspots, but instead watches A13 of called addresses:

Bank 0 @ $F000 - $FFFF (A13 = 1)

Bank 1 @ $D000 - $DFFF (A13 = 0)

 

This confuses me, does or does not EA use hotspots? And if A13 is used, how does the hardware/cartridge detect this since there is no a13 line on the cartridge.

2082120600_1388277858.png

 

in the end I want my dumping hardware be able to trigger bankswitching on this cartridge.

So accurate knowlage is needed.

Edited by DrWho198
Link to comment
Share on other sites

I do not need to know what type of card it is as my program detects this by bruteforcing with a twist of logic. But to keep it reliable I need the exact response. right now I'm having trange behavior in which the cartridge sometimes does the bankswitch and sometimes it does not. I did notice that timing has an influence on the bankswitching... which puzzles me even more. I do manage to trigger bankswitches... but I have no idea what the exact trigger is. understanding it at a hardware level would really help.

 

edit:

the document at the link does indeed help... it kind of confirms a feeling that I had about the cartridge reacting upon the data lines so it can monitor what opcode was read.

I'll have to try this out later tonight.

Edited by DrWho198
Link to comment
Share on other sites

Thanks Moonsweeper.

Right now I can do some bankswitching, But it all makes no sense comparing it to the data I read. I also have no idea if it is all a coincidence or if this is a valid way of switching banks. I only have the pal decathlon cartridge to test with.

I will have a look at the patent, maybe this will shed a light on the issue.

Link to comment
Share on other sites

Not sure if this helps, but I understand FE uses the value the 6507 puts on the stack, so A13 should be available in D5 during a bankswitch. In a cart dumper, it would be a matter of asserting D5 at the right time.

 

Something tells me that there is more to this but I can't remember.

  • Like 1
Link to comment
Share on other sites

I'm not sure if I follow you with the A13 being available in D5...

Can you discribe what you mean by this a bit more?

 

What makes this so hard is the fact that there is no Atari involved, no memory and no registers.

I'll have to pass the correct data to the cartridge just like the atari would output.

And to be honest I'm new at this.

 

What I'm guessing right now is that the cartridge checks what bytes it passes back through the data lines. There is no way for the cartridge to know what the byte is used for. So the only way is to wait for bytes which are used for the correct opcode and then monitor the data right after. And this is where I'm puzzled, because if this theory is correct then shouldn't the cartridge trigger a bankswitch when I read the bytes from the cartridge in sequence at the right possition? Or am I missing something else that needs to be done to trigger it?

 

What I also don't know is if the cartridge can tell the difference between for instanse "$00" or "$00 $00 $00".

There is no clocking signal, so I guess the cartridge could not tell the difference, or could it?

 

Right now I'm a bit tired of lookin for a perfect solution.

I will look at it again soon, but I have my hands full doing other stuff.

 

to be continued

(PS: if anyone has more information, please share, I will need it)

Link to comment
Share on other sites

GOT IT !!!

 

The information at http://atariage.com/forums/topic/242264-help-with-dumping-fe-carts-for-clone-project/?do=findComment&comment=3313924 did help to get the breaktrough, but sadly it was not 100% correct.

After some very thorough checking I managed to pinpoint what exactly triggers the bankswicthing in FE cartridges.

 

It turns out that all what is needed is the data pins to have D5(pin 15) high (or D6 if you use the reverence in this post) which would be the 5th bit and have the adres lines pointing at $01FE.

If you have pin D5 low while pointing at $01FE then you select bank 0.

2082120600_1388277858.png

Now maybe someone can confirm this, but I think this could be triggered by the following code:

 

LDA #$20

STA $01FE

 

I'm not sure about this because I'm not sure what STA does to the data lines.

Edited by DrWho198
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...