[Coco] CoCo 3 MMU test for all

jdaggett at gate.net jdaggett at gate.net
Mon Jan 21 22:38:12 EST 2008


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 



More information about the Coco mailing list