All read/write handlers larger than 8 bits have a mem_mask parameter that indicates the active bus lane(s).
So a 16-bit read to a READ32 handler will be passed a mem_mask of either 0xffff0000 or 0x0000ffff.
#define DECLARE_WRITE64_MEMBER(name) void name(ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset,
ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask = U64(0xffffffffffffffff))
Using a separate address space for the bus is fine; that's how we handle the ISA-on-68000 situation that pops up in a few machines we've emulated.
Multiple cards responding to the same read/write is a harder problem, short of actually just passing all reads/writes to all cards (which is obviously not optimal). Olivier, any ideas?
Last edited by R. Belmont; 11/23/15 03:32 PM.