Re: [stella] Supercharger Bankswitches and RAM access!

Subject: Re: [stella] Supercharger Bankswitches and RAM access!
From: Eckhard_Stolberg@xxxxxxxxxxxxxxxxxxxxx (Eckhard Stolberg)
Date: Sat, 15 Mar 1997 14:37:12 +0100
I should have send this to the group instead of email!

>I need to know what kind of instructions will be used for value
>specification,
>so far I take absolut, absolut-x, absolut-y, indirect-x and indirect-y.

Instructions don't matter. All accesses of addresses between $F000 and $F100
cause an internal write register to be set to: accessed address minus $F000.

>What kind of instructions will be used for poking?
>(absolut, absolut-x, absolut-y, indirect-x and indirect-y)
>I know for sure CMP,AND,BIT,LDA, are there any others?

Again intructions don't matter. The value is stored to the address that is
accessed 3 or 4 processor cycles after the access to $F0xx. I am not sure
about the timing though. But indirect accesses work too and they first have
to read the address from the zeropage, which takes some cycles. Also in my
programm I have to put a NOP between the two accesses, like

CMP $F000,X
NOP
CMP $FFF8

or otherwise the programm would crash, because it writes to a wrong address.

>How is the value determined using indirect-x and indirect-y?
>How is the address determined using indirect-x and indirect-y?

The value is accessed address minus $F000
The address to write to is the address that is accessed 3 or 4 cycles after
the access to $F0xx.

>Which instruction preserve the value, which instructions don't?
>(All implied instruction?) (for sure I know: NOP,TAX,TAY)

I don't know for sure, but I think, that the Supercharger behaves as if an
address containing $00 was accessed by the intruction, that caused the write.
So all registers and flags should be set accordingly.

>Since address fields below 0xf000 initiate a poke, what about addresses in
>that
>region that are poked to, is it possible, if so can a poke follow directly?

I don't know if it is possiblbe, but I think it is unwise to try it, because
the access that finishes the write would initiate another write.

Also you should keep in mind, that the controll byte at $FFF8 allways is
write enabled.

>PS. My stella now runs Frogger, Dragonstomper, Rabbit and a few others
>       It doesn't run (well) Suicide Mission, Phasor Patrol, Communists...

Does this include the load capability of Dragonstomper or do you mean only
the first part?


Ciao, Eckhard Stolberg


p.s.: This is only my theory about how the writing mechanism works. Please
      correct me, if I am wrong.


--
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