[Coco] CoCo 3 MMU test for all

Robert Gault robert.gault at worldnet.att.net
Mon Jan 21 22:51:49 EST 2008


jdaggett at gate.net wrote:

> On 21 Jan 2008 at 19:29, Darren A. wrote:
> 
> 
>>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.  
> 
> james 
> 

What you say sound reasonable but I can confirm that the instruction 
following the LDB ,X when regX = $FFA0 will change the content of regB. 
This corruption of regB only happens when bits are not readable.



More information about the Coco mailing list