Hope someone with 80188 experience can help on this one.
I have a working 80188 design that has been in production for years. Works 99.99%
But with a board I'm using to develop on, when I read a memory mapped port ( not I/O ) the data that gets loaded into the AL register doesn't match the input port. I've looked at the 8-bit Adress+Data bus during the read and the data is correct as /RD goes high. But I get a different fixed value read into the '188????
The sw is in a simple loop, reading the port for ever. The data can change from day-to-day, but is always the same over several hours. The data read does not match the next or previous bus cycle.
The bus is multiplexed, unbuffered. Here is the loop:
0xCBE8:0x0941 C4 1E 1E 5C LES BX, Dword Ptr [0x5c1e] 0xCBE8:0x0945 26 8A 07 MOV AL, Byte Ptr ES:[BX] 0xCBE8:0x0948 88 46 FF MOV Byte Ptr 0xffff[BP], AL 0xCBE8:0x094B EB F4 JMP Short 0x941The port is selected by one of the programmable chip selects, OR'd with /RD The data is read using a 74HC244 tri-state buffer.
The system has a 24Mhz clock, and I tried running it at 12MHz but got the same result. I also tried inserting a few wait states, with the same result.
TIA
Jim