[Coco] CoCo 3 MMU test for all

Darren A. darccml at hotmail.com
Mon Jan 21 23:01:34 EST 2008



>> The critical ROM code for the PEEK command is:
>> 
>> LDB ,X
>> JMP $B4F3
>> 
>> This can also explain why PEEK returns $78, since the upper nybble of
>> the JMP opcode is $7.
>> 
>> Darren
> 
> Can't be. 
> 
> The 6809 machine cycle begins with the falling edge of the E Clock. WIth that, the address 
> on the address buss will be $FFAx. The PCR is advanced while the E clock is low and the Q 
> clock is low. On the rising edge of the Q clock the next address is presented to the address 
> buss. Therefore the next location in ram is not read until the next falling edge of the E 
> Clock. By that time the ACCB has already been loaded. The next byte is the JMP ($7E) 
> opcode and that will be loaded into the instruction register during an opcode fetch and not 
> the ACCB. 
> 
> It  has to be the instruction prior and that is the RTS at $B74F. The last byte loded during 
> the RTS is the low byte of the program counter. In the case of the PEEK command that is 
> return address of $B752. Again $52 is binary 0101 0010. Bit 6 and 7 cancacted (01)  with 
> the six bits of the MMU registers form $78.  
> 

Then explain why my test cases produce different results when the only change is the instruction which comes after LDB ,X ?

Try them for yourself. I am curious to know if anyone else gets the same results.

Darren


_________________________________________________________________
Climb to the top of the charts! Play the word scramble challenge with star power.
http://club.live.com/star_shuffle.aspx?icid=starshuffle_wlmailtextlink_jan


More information about the Coco mailing list