При ~IORQ должен быть неактивным ~M1 (так мы отличаем ин/аут от подтверждения ИНТа), а дальше - если не ~WR, значит всегда ~RD.
Запишу на верилоге:
wire io_n = iorq_n || !m1_n;
wire iord_n = io_n || !wr_n;
wire iowr_n = io_n || wr_n;