you said 68000 . That's a 16 bit databus. If you don't want to use the byte select signals you may want to work on boundaries. some 68K have an A0 , some do not... so that's the first thing you need to settle.
use the LSB of the address bus to toggle between Readable and writeable registers.
0 : TX (writeable)
1 : RX (readable)
2 : Config (writeable)
3 : intstatus (readable)
and so on.
Nice tip on the LSB address line. I like it.
That would be A1 on the CPU side. There is no A0 on my model. The gating will be "F" in top 4 address lines = IO region. (74H*138 with bit 23 and _AS as enables) That region select is then gated with LDS. If you don't assert LDS you get nought. If you do whether you ask for byte, word of long, you are getting the lower 8 and like it. It does create a mental extra step to model as the ASM code sees the registers number even, 0, 2, 4, 6, but the MCU sees the them as 1, 2, 3 (or 0,1,2).
I did consider multiplexing read and write registers. Write to RxTx and it's Tx, read from it and it's Rx. But I figured that would just add work down the line and I am not short of address bus.
On the MCU side, just to have some fun.. A1-A7 map to RegSel0->6.
The end game circuit gives the MCU the full 256/128 actual register addresses. For it to be a IO cameleon.
Didn't get to set up the LA and Pattern Gen. Instead I did the DTACK flip flop so it releases on AS deassert which the MCU isn't fast enough to do. (Well maybe, but why bother playing ISR golf when you can use a flip flop). Then I spend an hour looking for inverters the bot told me where 74HC06's. Which sounded so familar and obvious I actually looked and didn't check. Maybe tomorrow night.
Oh... this signal timing test is heavily reduced as the Digital Discovery only has 16 DIO output channels.