Re: [stella] When don't ROMs work on the Supercharger?

Subject: Re: [stella] When don't ROMs work on the Supercharger?
From: Eckhard_Stolberg@xxxxxxxxxxxxxxxxxxxxx (Eckhard Stolberg)
Date: Tue, 18 Mar 1997 14:27:52 +0100
>which begs the question: how do Supercharger games enable RAM writing, and
>how do I make sure to avoid doing it?  Checking back on the thread about
>Supercharger RAM, it seems that any access to $F0xx causes the next access
>to $Fxxx (within a certain time period) to be a write, regardless of what
>the instructions are.  Conversely, it would seem that as long as the
>program never accesses data in $F0xx, it would work fine on a Supercharger.
>The game I'm working on uses a data area at $FF00, but is pure code from
>$F000 to $F0FF, so there should be no access there (unless JSR/RTS do for
>some reason, which I doubt it will unless the stack somehow points there.)

Actually running code over a speciffic address is also a form of accessing it.
See Jim Nitchals 2600DEMO source. It enables RAM by running code over $FFF8.
So running code between $F000 and $F0FF would also initiate writes, if write
mode were enabled.

Luckyly, by default, MAKEWAV starts the games in the Supercharger with write
disabled. As long as you don't access $FFF8 in any way you should have no
problem with your game on the Supercharger.

Writing is controlled by bit D1 in the control byte. So by writing any value
with bit D1 set to $FFF8 you would enable writing. By writing a value with
bit D1 cleared you can disable writing again.

enable writing - banks 2 & 3
LDX $1F
CMP $F000,X
NOP
CMP $FFF8

disable writing - banks 2 & 3
LDX $1D
CMP $F000,X
NOP
CMP $FFF8


Ciao, Eckhard Stolberg


--
Archives available at http://www.biglist.com/lists/stella/archives/
E-mail UNSUBSCRIBE in the body to stella-request@xxxxxxxxxxx to be removed.

Current Thread