IORQ generation is good, but to generate valid MREQ, you need to qualify the address with address strobe (AS), another word, MREQ must be negated (high) when AS is high.
You can qualify R/W with DS to generate nWR as you did, but you can't generate nRD this way. This is because DS lags AS by half a clock for write operation, but DS and AS asserted at the same time for read operation. This is particularly problematic with CF access because AS is used to generate CF chip select and nRD is used to generate CF read strobe. The CF spec requires setup time between CF chip select and CF read strobe. Without the setup time, the CF disk won't operate reliably. This is a common mistake with CF interface using 680x0.
Who is pulling up RESET? RESET is a bidirectional signal in 680x0. The RESET instruction drives RESET low.
Mark
Bill
It should work as long as we recognize addresses can change while MREQ is asserted. Ultimately for static random access memory devices, the signal that is critical is /WR and asserted only when all other signals are stable. Also need to watch out for data contention, that multiple devices are not selected.Bill
Hi Alan,What design rules are you using for board layout? At EasyEDA, I use 6 mil traces with 6 mil spaces. That makes it possible to run two traces between pins on 100 mil spacing. I have not had a board failure with these rules.Tom