[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