Re: [stella] FE Bankswitching

Subject: Re: [stella] FE Bankswitching
From: Adam Wozniak <adam@xxxxxxxxxxxxxxxx>
Date: Mon, 3 Mar 2003 13:05:27 -0800 (PST)
On Mon, 3 Mar 2003, Kroko wrote:
> > peek ($1000);
> > poke ($01FE, $D0);
> > poke ($01FF, $D0);
> I have a few questions :-)
> 1. Do you test on the real hardware ?

This is psuedocode for the exact code I use in my ROM dumper.
It works with my Decathlon cartridge.  I do not own Robot Tank.

Here's the real exact code, in an obscure language:

function _FE_switch 0
   peek_a1 := x10;
   peek_a2 := x00;

   poke_a1 := x01;
   poke_a2 := xFE;
   poke_a3 := FE_bank;

   poke_a1 := x01;
   poke_a2 := xFF;
   poke_a3 := FE_bank;

> 2. why do we need the peek($1000); ?

I was simulating an RTS, and was guessing at the state machine
inside the cart.  It may not really be necessary, I do not know
as I have not tried without it.

> 3. So in this case, this is simulating and RTS, right ?
>    Will this work, too ?
>     peek ($1000); 
>     poke ($01FE, $00);
>     poke ($01FF, $D0);

Probably.  I was lazy and couldn't remember my hi from my low,
so I just used the same byte twice in my code.

> 4. Can you simulate a JSR for me please :-) 
>    (Do you have any idea how to do this ?)

Hehe.  I use RTS because I figured it out first and I only needed
one of them to dump the carts.  I do not actually have code for that,
but I suspect stuff I posted previously to the stella list should be close.


poke($1000, $20);
poke($1001, $D0); // or $F0
poke($01FF, $FF); // shouldn't matter what value
poke($01FE, $FF); // shouldn't matter what value
poke($1002, $D0); // or $F0

Will code for food.

Hey, and if you hire me to write a multi-protocol internet capable
program before midnight tonight, you'll get the amazing toast-a-matic!
Be the first on your block!


Archives (includes files) at
Unsub & more at

Current Thread