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.