Subject: Re: [stella] Supercharger internals... From: bwmott@xxxxxxxxxxxx Date: Fri, 16 May 1997 14:40:32 -0400 (EDT) |
> All the dicussions of the Supercharger have been good so far, but what happens here: > > F000 ldx #$3f > F002 cmp $f000,x ;Write data = $3f > F005 NOP > F006 lda $ff7b ;Write $3f to $f7b > > Wouldn't the SC see the opcode fetch from address F002 as Write data = $02 and the start of a ram write? Humm... good question.. I'd say it works like this: cycle action 0 load opcode for ldx from location f000 write value is set to 00 (since we are accessing f000) 1 load operand from f001 (3f) 2 load opcode from f002 for cmp 3 load low byte 00 from f003 4 load high byte f0 from f004, add x to low byte 5 load operand from f03f 6 load opcode from f005 for nop 7 do something but nothing ... So I would say a poke(f03f,00) at cycle 5 or poke(f005,00) at cycle 6 occurs. However, this is assuming that once a poke write value is selected (i.e. an access from f000 to f0ff) other reads in f000 to f0ff do NOT select a new poke value. If they did then the poke would be delayed until no more accesses to f000 to f0ff occur within 5 or 6 cycles. What does everyone else think? Brad P.S. I don't have my cycle table handy so I might be off on these... -------------------------------------------------------------------------- Bradford Mott (bwmott@xxxxxxxxxxxx) Computer Science Department http://www4.ncsu.edu/~bwmott/www North Carolina State University -------------------------------------------------------------------------- -- 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Supercharger internals, Dan Boris | Thread | Re: [stella] Supercharger internals, Dan Boris |
Re: [stella] Supercharger internals, Dan Boris | Date | Re: [stella] Supercharger internals, Dan Boris |
Month |