This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C167 - low byte write 'touches' high byte

Hi,

I'm a novice user, so apologies if this is a stupid question!

I'm interfacing a video chip to the C167CR.

To load the pallete table inside the chip a register (address 0x10) is written with the address.

The following three registers 0x11, 0x12 and 0x13 then are written with the required data.

The access to 0x13 increments the address, eliminating the need to reload it each time, thus allowing an efficient access to the internal table of registers.

The problem is that when I write a char to 0x12, the address register is incremented as if 0x13 had been written.

Other info..

The registers are actually at 0x80010 to 0x80013 and are accessed with an xhuge char pointer. The bus is 8 bit demultiplexed.

I've 'fixed' it by re-loading the address in 0x10 after writing to 0x12, prior to writing 0x13; which suggests it is due to a word access being carried out.

Any suggestions of what's going on and how to work around it?

Many thanks in advance.

Andy

0