diff options
783 files changed, 4894 insertions, 4802 deletions
diff --git a/src/emu/addrmap.c b/src/emu/addrmap.c index 787daf27ab0..4c3bea8c4fb 100644 --- a/src/emu/addrmap.c +++ b/src/emu/addrmap.c @@ -66,18 +66,10 @@ address_map_entry::address_map_entry(address_map &map, offs_t start, offs_t end) m_rspace16(NULL), m_rspace32(NULL), m_rspace64(NULL), - m_rdevice8(NULL), - m_rdevice16(NULL), - m_rdevice32(NULL), - m_rdevice64(NULL), m_wspace8(NULL), m_wspace16(NULL), m_wspace32(NULL), m_wspace64(NULL), - m_wdevice8(NULL), - m_wdevice16(NULL), - m_wdevice32(NULL), - m_wdevice64(NULL), m_memory(NULL), m_bytestart(0), m_byteend(0), @@ -234,39 +226,6 @@ void address_map_entry::internal_set_handler(read8_space_func rfunc, const char } -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(8, unitmask, string)); - m_read.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_read.m_bits = 8; - m_read.m_mask = unitmask; - m_read.m_name = string; - device.subtag(m_read.m_tag, tag); - m_rdevice8 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(8, unitmask, string)); - m_write.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_write.m_bits = 8; - m_write.m_mask = unitmask; - m_write.m_name = string; - device.subtag(m_write.m_tag, tag); - m_wdevice8 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT64 unitmask) -{ - internal_set_handler(device, tag, rfunc, rstring, unitmask); - internal_set_handler(device, tag, wfunc, wstring, unitmask); -} - - void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read8_delegate func, UINT64 unitmask) { assert(!func.isnull()); @@ -336,39 +295,6 @@ void address_map_entry::internal_set_handler(read16_space_func rfunc, const char } -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(16, unitmask, string)); - m_read.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_read.m_bits = 16; - m_read.m_mask = unitmask; - m_read.m_name = string; - device.subtag(m_read.m_tag, tag); - m_rdevice16 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(16, unitmask, string)); - m_write.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_write.m_bits = 16; - m_write.m_mask = unitmask; - m_write.m_name = string; - device.subtag(m_write.m_tag, tag); - m_wdevice16 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT64 unitmask) -{ - internal_set_handler(device, tag, rfunc, rstring, unitmask); - internal_set_handler(device, tag, wfunc, wstring, unitmask); -} - - void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read16_delegate func, UINT64 unitmask) { assert(!func.isnull()); @@ -438,39 +364,6 @@ void address_map_entry::internal_set_handler(read32_space_func rfunc, const char } -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(32, unitmask, string)); - m_read.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_read.m_bits = 32; - m_read.m_mask = unitmask; - m_read.m_name = string; - device.subtag(m_read.m_tag, tag); - m_rdevice32 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(32, unitmask, string)); - m_write.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_write.m_bits = 32; - m_write.m_mask = unitmask; - m_write.m_name = string; - device.subtag(m_write.m_tag, tag); - m_wdevice32 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring, UINT64 unitmask) -{ - internal_set_handler(device, tag, rfunc, rstring, unitmask); - internal_set_handler(device, tag, wfunc, wstring, unitmask); -} - - void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read32_delegate func, UINT64 unitmask) { assert(!func.isnull()); @@ -540,39 +433,6 @@ void address_map_entry::internal_set_handler(read64_space_func rfunc, const char } -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read64_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(64, unitmask, string)); - m_read.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_read.m_bits = 64; - m_read.m_mask = 0; - m_read.m_name = string; - device.subtag(m_read.m_tag, tag); - m_rdevice64 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write64_device_func func, const char *string, UINT64 unitmask) -{ - assert(func != NULL); - assert(unitmask_is_appropriate(64, unitmask, string)); - m_write.m_type = AMH_LEGACY_DEVICE_HANDLER; - m_write.m_bits = 64; - m_write.m_mask = 0; - m_write.m_name = string; - device.subtag(m_write.m_tag, tag); - m_wdevice64 = func; -} - - -void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read64_device_func rfunc, const char *rstring, write64_device_func wfunc, const char *wstring, UINT64 unitmask) -{ - internal_set_handler(device, tag, rfunc, rstring, unitmask); - internal_set_handler(device, tag, wfunc, wstring, unitmask); -} - - void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read64_delegate func, UINT64 unitmask) { assert(!func.isnull()); diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h index 92c5d88d764..05e1600b9ec 100644 --- a/src/emu/addrmap.h +++ b/src/emu/addrmap.h @@ -62,7 +62,6 @@ enum map_handler_type AMH_UNMAP, AMH_DEVICE_DELEGATE, AMH_LEGACY_SPACE_HANDLER, - AMH_LEGACY_DEVICE_HANDLER, AMH_PORT, AMH_BANK, AMH_DEVICE_SUBMAP @@ -160,10 +159,6 @@ public: read16_space_func m_rspace16; // 16-bit legacy address space handler read32_space_func m_rspace32; // 32-bit legacy address space handler read64_space_func m_rspace64; // 64-bit legacy address space handler - read8_device_func m_rdevice8; // 8-bit legacy device handler - read16_device_func m_rdevice16; // 16-bit legacy device handler - read32_device_func m_rdevice32; // 32-bit legacy device handler - read64_device_func m_rdevice64; // 64-bit legacy device handler write8_delegate m_wproto8; // 8-bit write proto-delegate write16_delegate m_wproto16; // 16-bit write proto-delegate write32_delegate m_wproto32; // 32-bit write proto-delegate @@ -172,10 +167,6 @@ public: write16_space_func m_wspace16; // 16-bit legacy address space handler write32_space_func m_wspace32; // 32-bit legacy address space handler write64_space_func m_wspace64; // 64-bit legacy address space handler - write8_device_func m_wdevice8; // 8-bit legacy device handler - write16_device_func m_wdevice16; // 16-bit legacy device handler - write32_device_func m_wdevice32; // 32-bit legacy device handler - write64_device_func m_wdevice64; // 64-bit legacy device handler address_map_delegate m_submap_delegate; int m_submap_bits; @@ -195,9 +186,6 @@ protected: void internal_set_handler(read8_space_func func, const char *string, UINT64 mask); void internal_set_handler(write8_space_func func, const char *string, UINT64 mask); void internal_set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read8_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, write8_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT64 mask); @@ -206,9 +194,6 @@ protected: void internal_set_handler(read16_space_func func, const char *string, UINT64 mask); void internal_set_handler(write16_space_func func, const char *string, UINT64 mask); void internal_set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read16_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, write16_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc, UINT64 mask); @@ -217,9 +202,6 @@ protected: void internal_set_handler(read32_space_func func, const char *string, UINT64 mask); void internal_set_handler(write32_space_func func, const char *string, UINT64 mask); void internal_set_handler(read32_space_func rfunc, const char *rstring, write32_space_func wfunc, const char *wstring, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read32_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, write32_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read32_delegate rfunc, write32_delegate wfunc, UINT64 mask); @@ -228,9 +210,6 @@ protected: void internal_set_handler(read64_space_func func, const char *string, UINT64 mask); void internal_set_handler(write64_space_func func, const char *string, UINT64 mask); void internal_set_handler(read64_space_func rfunc, const char *rstring, write64_space_func wfunc, const char *wstring, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read64_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, write64_device_func func, const char *string, UINT64 mask); - void internal_set_handler(const device_t &device, const char *tag, read64_device_func rfunc, const char *rstring, write64_device_func wfunc, const char *wstring, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read64_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, write64_delegate func, UINT64 mask); void internal_set_handler(const device_t &device, const char *tag, read64_delegate rfunc, write64_delegate wfunc, UINT64 mask); @@ -255,9 +234,6 @@ public: void set_handler(read8_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(write8_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); } - void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); } void set_handler(const device_t &device, const char *tag, read8_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, write8_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); } @@ -278,9 +254,6 @@ public: void set_handler(read16_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(write16_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); } - void set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); } void set_handler(const device_t &device, const char *tag, read16_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, write16_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); } @@ -289,9 +262,6 @@ public: void set_handler(read8_space_func func, const char *string, UINT16 mask) { internal_set_handler(func, string, mask); } void set_handler(write8_space_func func, const char *string, UINT16 mask) { internal_set_handler(func, string, mask); } void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT16 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); } - void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT16 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT16 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT16 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); } void set_handler(const device_t &device, const char *tag, read8_delegate func, UINT16 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, write8_delegate func, UINT16 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT16 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); } @@ -312,9 +282,6 @@ public: void set_handler(read32_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(write32_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(read32_space_func rfunc, const char *rstring, write32_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); } - void set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); } void set_handler(const device_t &device, const char *tag, read32_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, write32_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, read32_delegate rfunc, write32_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); } @@ -323,9 +290,6 @@ public: void set_handler(read16_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); } void set_handler(write16_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); } void set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); } - void set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); } void set_handler(const device_t &device, const char *tag, read16_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, write16_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc, UINT32 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); } @@ -334,9 +298,6 @@ public: void set_handler(read8_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); } void set_handler(write8_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); } void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); } - void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); } void set_handler(const device_t &device, const char *tag, read8_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, write8_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT32 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); } @@ -357,9 +318,6 @@ public: void set_handler(read64_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(write64_space_func func, const char *string) { internal_set_handler(func, string, 0); } void set_handler(read64_space_func rfunc, const char *rstring, write64_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); } - void set_handler(const device_t &device, const char *tag, read64_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, write64_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); } - void set_handler(const device_t &device, const char *tag, read64_device_func rfunc, const char *rstring, write64_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); } void set_handler(const device_t &device, const char *tag, read64_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, write64_delegate func) { internal_set_handler(device, tag, func, 0); } void set_handler(const device_t &device, const char *tag, read64_delegate rfunc, write64_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); } @@ -368,9 +326,6 @@ public: void set_handler(read32_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); } void set_handler(write32_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); } void set_handler(read32_space_func rfunc, const char *rstring, write32_space_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); } - void set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); } void set_handler(const device_t &device, const char *tag, read32_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, write32_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, read32_delegate rfunc, write32_delegate wfunc, UINT64 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); } @@ -379,9 +334,6 @@ public: void set_handler(read16_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); } void set_handler(write16_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); } void set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); } - void set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); } void set_handler(const device_t &device, const char *tag, read16_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, write16_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc, UINT64 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); } @@ -390,9 +342,6 @@ public: void set_handler(read8_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); } void set_handler(write8_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); } void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); } - void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); } - void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); } void set_handler(const device_t &device, const char *tag, read8_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, write8_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); } void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT64 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); } @@ -546,38 +495,38 @@ void _class :: _name(address_map &map, const device_t &device) \ // legacy device reads #define AM_DEVREAD_LEGACY(_tag, _handler) \ - curentry->set_handler(device, _tag, _handler, #_handler); \ + curentry->set_handler(device, _tag, read_delegate(&_handler, #_handler, (device_t *)0)); \ #define AM_DEVREAD8_LEGACY(_tag, _handler, _unitmask) \ - curentry->set_handler(device, _tag, _handler, #_handler, _unitmask); \ + curentry->set_handler(device, _tag, read8_delegate(&_handler, #_handler, (device_t *)0), _unitmask); \ // legacy device writes #define AM_DEVWRITE_LEGACY(_tag, _handler) \ - curentry->set_handler(device, _tag, _handler, #_handler); \ + curentry->set_handler(device, _tag, write_delegate(&_handler, #_handler, (device_t *)0)); \ #define AM_DEVWRITE8_LEGACY(_tag, _handler, _unitmask) \ - curentry->set_handler(device, _tag, _handler, #_handler, _unitmask); \ + curentry->set_handler(device, _tag, write8_delegate(&_handler, #_handler, (device_t *)0), _unitmask); \ #define AM_DEVWRITE16_LEGACY(_tag, _handler, _unitmask) \ - curentry->set_handler(device, _tag, _handler, #_handler, _unitmask); \ + curentry->set_handler(device, _tag, write16_delegate(&_handler, #_handler, (device_t *)0), _unitmask); \ // legacy device reads/writes #define AM_DEVREADWRITE_LEGACY(_tag, _rhandler, _whandler) \ - curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler); \ + curentry->set_handler(device, _tag, read_delegate(&_rhandler, #_rhandler, (device_t *)0), write_delegate(&_whandler, #_whandler, (device_t *)0)); \ #define AM_DEVREADWRITE8_LEGACY(_tag, _rhandler, _whandler, _unitmask) \ - curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler, _unitmask); \ + curentry->set_handler(device, _tag, read8_delegate(&_rhandler, #_rhandler, (device_t *)0), write8_delegate(&_whandler, #_whandler, (device_t *)0), _unitmask); \ #define AM_DEVREADWRITE16_LEGACY(_tag, _rhandler, _whandler, _unitmask) \ - curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler, _unitmask); \ + curentry->set_handler(device, _tag, read16_delegate(&_rhandler, #_rhandler, (device_t *)0), write16_delegate(&_whandler, #_whandler, (device_t *)0), _unitmask); \ #define AM_DEVREADWRITE32_LEGACY(_tag, _rhandler, _whandler, _unitmask) \ - curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler, _unitmask); \ + curentry->set_handler(device, _tag, read32_delegate(&_rhandler, #_rhandler, (device_t *)0), write32_delegate(&_whandler, #_whandler, (device_t *)0), _unitmask); \ // driver data reads diff --git a/src/emu/cpu/arm7/arm7.c b/src/emu/cpu/arm7/arm7.c index a56cc24cb55..343fc8b1e11 100644 --- a/src/emu/cpu/arm7/arm7.c +++ b/src/emu/cpu/arm7/arm7.c @@ -43,9 +43,9 @@ /* prototypes of coprocessor functions */ -static WRITE32_DEVICE_HANDLER(arm7_do_callback); -static READ32_DEVICE_HANDLER(arm7_rt_r_callback); -static WRITE32_DEVICE_HANDLER(arm7_rt_w_callback); +static DECLARE_WRITE32_DEVICE_HANDLER(arm7_do_callback); +static DECLARE_READ32_DEVICE_HANDLER(arm7_rt_r_callback); +static DECLARE_WRITE32_DEVICE_HANDLER(arm7_rt_w_callback); void arm7_dt_r_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, UINT32 (*read32)(arm_state *cpustate, UINT32 addr)); void arm7_dt_w_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, void (*write32)(arm_state *cpustate, UINT32 addr, UINT32 data)); diff --git a/src/emu/cpu/arm7/arm7ops.c b/src/emu/cpu/arm7/arm7ops.c index 4d3d31ade09..861eb18a2f1 100644 --- a/src/emu/cpu/arm7/arm7ops.c +++ b/src/emu/cpu/arm7/arm7ops.c @@ -283,7 +283,7 @@ static void HandleCoProcDO(arm_state *cpustate, UINT32 insn) { // This instruction simply instructs the co-processor to do something, no data is returned to ARM7 core if (arm7_coproc_do_callback) - arm7_coproc_do_callback(cpustate->device, insn, 0, 0); // simply pass entire opcode to callback - since data format is actually dependent on co-proc implementation + arm7_coproc_do_callback(cpustate->device, *cpustate->program, insn, 0, 0); // simply pass entire opcode to callback - since data format is actually dependent on co-proc implementation else LOG(("%08x: Co-Processor Data Operation executed, but no callback defined!\n", R15)); } @@ -299,7 +299,7 @@ static void HandleCoProcRT(arm_state *cpustate, UINT32 insn) { if (arm7_coproc_rt_r_callback) { - UINT32 res = arm7_coproc_rt_r_callback(cpustate->device, insn, 0); // RT Read handler must parse opcode & return appropriate result + UINT32 res = arm7_coproc_rt_r_callback(cpustate->device, *cpustate->program, insn, 0); // RT Read handler must parse opcode & return appropriate result if (cpustate->pendingUnd == 0) { SET_REGISTER(cpustate, (insn >> 12) & 0xf, res); @@ -312,7 +312,7 @@ static void HandleCoProcRT(arm_state *cpustate, UINT32 insn) else { if (arm7_coproc_rt_w_callback) - arm7_coproc_rt_w_callback(cpustate->device, insn, GET_REGISTER(cpustate, (insn >> 12) & 0xf), 0); + arm7_coproc_rt_w_callback(cpustate->device, *cpustate->program, insn, GET_REGISTER(cpustate, (insn >> 12) & 0xf), 0); else LOG(("%08x: Co-Processor Register Transfer executed, but no RT Write callback defined!\n", R15)); } diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.h b/src/emu/cpu/cubeqcpu/cubeqcpu.h index 226fca6b279..60c01f2be45 100644 --- a/src/emu/cpu/cubeqcpu/cubeqcpu.h +++ b/src/emu/cpu/cubeqcpu/cubeqcpu.h @@ -139,11 +139,11 @@ struct cubeqst_rot_config PUBLIC FUNCTIONS ***************************************************************************/ -extern READ16_DEVICE_HANDLER( cubeqcpu_sndram_r ); -extern WRITE16_DEVICE_HANDLER( cubeqcpu_sndram_w ); +extern DECLARE_READ16_DEVICE_HANDLER( cubeqcpu_sndram_r ); +extern DECLARE_WRITE16_DEVICE_HANDLER( cubeqcpu_sndram_w ); -extern READ16_DEVICE_HANDLER( cubeqcpu_rotram_r ); -extern WRITE16_DEVICE_HANDLER( cubeqcpu_rotram_w ); +extern DECLARE_READ16_DEVICE_HANDLER( cubeqcpu_rotram_r ); +extern DECLARE_WRITE16_DEVICE_HANDLER( cubeqcpu_rotram_w ); void cubeqcpu_swap_line_banks(device_t *device); diff --git a/src/emu/cpu/esrip/esrip.c b/src/emu/cpu/esrip/esrip.c index 4afe1971d52..a93a120a313 100644 --- a/src/emu/cpu/esrip/esrip.c +++ b/src/emu/cpu/esrip/esrip.c @@ -1701,7 +1701,7 @@ static CPU_EXECUTE( esrip ) /* FDT RAM: /Enable, Direction and /RAM OE */ else if (!bl44 && !_BIT(cpustate->l2, 3) && bl46) - y_bus = cpustate->fdt_r(device, cpustate->fdt_cnt, 0); + y_bus = cpustate->fdt_r(device, *cpustate->program, cpustate->fdt_cnt, 0); /* IPT RAM: /Enable and /READ */ else if (!_BIT(cpustate->l2, 6) && !_BIT(cpustate->l4, 5)) @@ -1728,7 +1728,7 @@ static CPU_EXECUTE( esrip ) /* FDT RAM */ if (!bl44) - x_bus = cpustate->fdt_r(device, cpustate->fdt_cnt, 0); + x_bus = cpustate->fdt_r(device, *cpustate->program, cpustate->fdt_cnt, 0); /* Buffer is enabled - write direction */ else if (!BIT(cpustate->l2, 3) && !bl46) @@ -1753,7 +1753,7 @@ static CPU_EXECUTE( esrip ) /* Write FDT RAM: /Enable, Direction and WRITE */ if (!BIT(cpustate->l2, 3) && !bl46 && !BIT(cpustate->l4, 3)) - cpustate->fdt_w(device, cpustate->fdt_cnt, x_bus, 0); + cpustate->fdt_w(device, *cpustate->program, cpustate->fdt_cnt, x_bus, 0); /* Write IPT RAM: /Enable and /WR */ if (!BIT(cpustate->l2, 7) && !BIT(cpustate->l4, 5)) diff --git a/src/emu/cpu/m68000/68307ser.c b/src/emu/cpu/m68000/68307ser.c index 6ed1942115d..cb9cda7da0b 100644 --- a/src/emu/cpu/m68000/68307ser.c +++ b/src/emu/cpu/m68000/68307ser.c @@ -24,7 +24,7 @@ READ8_HANDLER( m68307_internal_serial_r ) // if we're piggybacking on the existing 68681 implementation... if (serial->m_duart68681) { - if (offset&1) return duart68681_r(serial->m_duart68681, offset>>1); + if (offset&1) return duart68681_r(serial->m_duart68681, *m68k->program, offset>>1); } else { @@ -104,7 +104,7 @@ WRITE8_HANDLER( m68307_internal_serial_w ) // if we're piggybacking on the existing 68681 implementation... if (serial->m_duart68681) { - if (offset&1) duart68681_w(serial->m_duart68681, offset>>1, data); + if (offset&1) duart68681_w(serial->m_duart68681, *m68k->program, offset>>1, data); } else { diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/emu/cpu/powerpc/ppccom.c index 88c6500b3f0..4baa999a0c8 100644 --- a/src/emu/cpu/powerpc/ppccom.c +++ b/src/emu/cpu/powerpc/ppccom.c @@ -1121,7 +1121,7 @@ void ppccom_execute_mfdcr(powerpc_state *ppc) else ppc->param1 = 0; } else { - ppc->param1 = ppc->dcr_read_func(ppc->device,ppc->param0,0xffffffff); + ppc->param1 = ppc->dcr_read_func(ppc->device,*ppc->program,ppc->param0,0xffffffff); } } @@ -1211,7 +1211,7 @@ void ppccom_execute_mtdcr(powerpc_state *ppc) if (ppc->param0 < ARRAY_LENGTH(ppc->dcr)) ppc->dcr[ppc->param0] = ppc->param1; } else { - ppc->dcr_write_func(ppc->device,ppc->param0,ppc->param1,0xffffffff); + ppc->dcr_write_func(ppc->device,*ppc->program,ppc->param0,ppc->param1,0xffffffff); } } diff --git a/src/emu/cpu/rsp/rspdrc.c b/src/emu/cpu/rsp/rspdrc.c index 41f0f412463..2c59f23a47b 100644 --- a/src/emu/cpu/rsp/rspdrc.c +++ b/src/emu/cpu/rsp/rspdrc.c @@ -472,14 +472,14 @@ static void cfunc_get_cop0_reg(void *param) { if(dest) { - rsp->r[dest] = (rsp->config->sp_reg_r)(rsp->device, reg, 0x00000000); + rsp->r[dest] = (rsp->config->sp_reg_r)(rsp->device, *rsp->program, reg, 0x00000000); } } else if (reg >= 8 && reg < 16) { if(dest) { - rsp->r[dest] = (rsp->config->dp_reg_r)(rsp->device, reg - 8, 0x00000000); + rsp->r[dest] = (rsp->config->dp_reg_r)(rsp->device, *rsp->program, reg - 8, 0x00000000); } } else @@ -496,11 +496,11 @@ static void cfunc_set_cop0_reg(void *param) if (reg >= 0 && reg < 8) { - (rsp->config->sp_reg_w)(rsp->device, reg, data, 0x00000000); + (rsp->config->sp_reg_w)(rsp->device, *rsp->program, reg, data, 0x00000000); } else if (reg >= 8 && reg < 16) { - (rsp->config->dp_reg_w)(rsp->device, reg - 8, data, 0x00000000); + (rsp->config->dp_reg_w)(rsp->device, *rsp->program, reg - 8, data, 0x00000000); } else { diff --git a/src/emu/cpu/tms0980/tms0980.c b/src/emu/cpu/tms0980/tms0980.c index c86affd31a4..7fadebee03b 100644 --- a/src/emu/cpu/tms0980/tms0980.c +++ b/src/emu/cpu/tms0980/tms0980.c @@ -766,7 +766,7 @@ static void tms0980_set_cki_bus( device_t *device ) case 0x008: if ( cpustate->config->read_k ) { - cpustate->cki_bus = cpustate->config->read_k( device, 0 ); + cpustate->cki_bus = cpustate->config->read_k( device, *cpustate->program, 0, 0xff ); } else { @@ -930,7 +930,7 @@ static CPU_EXECUTE( tms0980 ) cpustate->r = cpustate->r | ( 1 << cpustate->y ); if ( cpustate->config->write_r ) { - cpustate->config->write_r( device, 0, cpustate->r & cpustate->r_mask, 0xffff ); + cpustate->config->write_r( device, *cpustate->program, 0, cpustate->r & cpustate->r_mask, 0xffff ); } } if ( cpustate->decode & F_RSTR ) @@ -938,7 +938,7 @@ static CPU_EXECUTE( tms0980 ) cpustate->r = cpustate->r & ( ~( 1 << cpustate->y ) ); if ( cpustate->config->write_r ) { - cpustate->config->write_r( device, 0, cpustate->r & cpustate->r_mask, 0xffff ); + cpustate->config->write_r( device, *cpustate->program, 0, cpustate->r & cpustate->r_mask, 0xffff ); } } if ( cpustate->decode & F_TDO ) @@ -957,7 +957,7 @@ static CPU_EXECUTE( tms0980 ) if ( cpustate->config->write_o ) { - cpustate->config->write_o( device, 0, cpustate->o & cpustate->o_mask, 0xffff ); + cpustate->config->write_o( device, *cpustate->program, 0, cpustate->o & cpustate->o_mask, 0xffff ); } } if ( cpustate->decode & F_CLO ) @@ -965,7 +965,7 @@ static CPU_EXECUTE( tms0980 ) cpustate->o = 0; if ( cpustate->config->write_o ) { - cpustate->config->write_o( device, 0, cpustate->o & cpustate->o_mask, 0xffff ); + cpustate->config->write_o( device, *cpustate->program, 0, cpustate->o & cpustate->o_mask, 0xffff ); } } if ( cpustate->decode & F_LDX ) diff --git a/src/emu/devcb.c b/src/emu/devcb.c index 83ddadf6b20..ac30a5cd245 100644 --- a/src/emu/devcb.c +++ b/src/emu/devcb.c @@ -232,7 +232,7 @@ int devcb_resolved_read_line::from_port() int devcb_resolved_read_line::from_read8() { - return ((*m_helper.read8_device)(m_object.device, 0) & 1) ? ASSERT_LINE : CLEAR_LINE; + return ((*m_helper.read8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), 0, 0xff) & 1) ? ASSERT_LINE : CLEAR_LINE; } @@ -336,7 +336,7 @@ void devcb_resolved_write_line::to_port(int state) void devcb_resolved_write_line::to_write8(int state) { - (*m_helper.write8_device)(m_object.device, 0, state); + (*m_helper.write8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), 0, state, 0xff); } @@ -391,7 +391,10 @@ void devcb_resolved_read8::resolve(const devcb_read8 &desc, device_t &device) case DEVCB_TYPE_DEVICE: m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device); if (desc.readdevice != NULL) - *static_cast<devcb_read8_delegate *>(this) = devcb_read8_delegate(desc.readdevice, desc.name, m_object.device); + { + m_helper.read8_device = desc.readdevice; + *static_cast<devcb_read8_delegate *>(this) = devcb_read8_delegate(&devcb_resolved_read8::from_read8, desc.name, this); + } else { m_helper.read_line = desc.readline; @@ -428,6 +431,17 @@ UINT8 devcb_resolved_read8::from_port(offs_t offset) // line read value to an 8-bit value //------------------------------------------------- +UINT8 devcb_resolved_read8::from_read8(offs_t offset) +{ + return (*m_helper.read8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, 0xff); +} + + +//------------------------------------------------- +// from_readline - helper to convert from a device +// line read value to an 8-bit value +//------------------------------------------------- + UINT8 devcb_resolved_read8::from_readline(offs_t offset) { return (*m_helper.read_line)(m_object.device); @@ -484,7 +498,10 @@ void devcb_resolved_write8::resolve(const devcb_write8 &desc, device_t &device) case DEVCB_TYPE_DEVICE: m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device); if (desc.writedevice != NULL) - *static_cast<devcb_write8_delegate *>(this) = devcb_write8_delegate(desc.writedevice, desc.name, m_object.device); + { + m_helper.write8_device = desc.writedevice; + *static_cast<devcb_write8_delegate *>(this) = devcb_write8_delegate(&devcb_resolved_write8::to_write8, desc.name, this); + } else { m_helper.write_line = desc.writeline; @@ -531,6 +548,17 @@ void devcb_resolved_write8::to_port(offs_t offset, UINT8 data) // memory read value from a line value //------------------------------------------------- +void devcb_resolved_write8::to_write8(offs_t offset, UINT8 data) +{ + (*m_helper.write8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, data, 0xff); +} + + +//------------------------------------------------- +// to_write8 - helper to convert to an 8-bit +// memory read value from a line value +//------------------------------------------------- + void devcb_resolved_write8::to_writeline(offs_t offset, UINT8 data) { (*m_helper.write_line)(m_object.device, (data & 1) ? ASSERT_LINE : CLEAR_LINE); @@ -588,7 +616,10 @@ void devcb_resolved_read16::resolve(const devcb_read16 &desc, device_t &device) case DEVCB_TYPE_DEVICE: m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device); if (desc.readdevice != NULL) - *static_cast<devcb_read16_delegate *>(this) = devcb_read16_delegate(desc.readdevice, desc.name, m_object.device); + { + m_helper.read16_device = desc.readdevice; + *static_cast<devcb_read16_delegate *>(this) = devcb_read16_delegate(&devcb_resolved_read16::from_read16, desc.name, this); + } else { m_helper.read_line = desc.readline; @@ -625,6 +656,17 @@ UINT16 devcb_resolved_read16::from_port(offs_t offset, UINT16 mask) // line read value to a 16-bit value //------------------------------------------------- +UINT16 devcb_resolved_read16::from_read16(offs_t offset, UINT16 mask) +{ + return (*m_helper.read16_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, mask); +} + + +//------------------------------------------------- +// from_read16 - helper to convert from a device +// line read value to a 16-bit value +//------------------------------------------------- + UINT16 devcb_resolved_read16::from_readline(offs_t offset, UINT16 mask) { return (*m_helper.read_line)(m_object.device); @@ -681,7 +723,10 @@ void devcb_resolved_write16::resolve(const devcb_write16 &desc, device_t &device case DEVCB_TYPE_DEVICE: m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device); if (desc.writedevice != NULL) - *static_cast<devcb_write16_delegate *>(this) = devcb_write16_delegate(desc.writedevice, desc.name, m_object.device); + { + m_helper.write16_device = desc.writedevice; + *static_cast<devcb_write16_delegate *>(this) = devcb_write16_delegate(&devcb_resolved_write16::to_write16, desc.name, this); + } else { m_helper.write_line = desc.writeline; @@ -728,6 +773,17 @@ void devcb_resolved_write16::to_port(offs_t offset, UINT16 data, UINT16 mask) // memory read value from a line value //------------------------------------------------- +void devcb_resolved_write16::to_write16(offs_t offset, UINT16 data, UINT16 mask) +{ + (*m_helper.write16_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, data, mask); +} + + +//------------------------------------------------- +// to_write16 - helper to convert to a 16-bit +// memory read value from a line value +//------------------------------------------------- + void devcb_resolved_write16::to_writeline(offs_t offset, UINT16 data, UINT16 mask) { (*m_helper.write_line)(m_object.device, (data & 1) ? ASSERT_LINE : CLEAR_LINE); diff --git a/src/emu/devcb.h b/src/emu/devcb.h index 2f323b41311..011ecc5b937 100644 --- a/src/emu/devcb.h +++ b/src/emu/devcb.h @@ -109,18 +109,18 @@ int devcb_line_stub(device_t *device) // static template for a read8 stub function that calls through a given READ8_MEMBER template<class _Class, UINT8 (_Class::*_Function)(address_space &, offs_t, UINT8)> -UINT8 devcb_stub(device_t *device, offs_t offset) +UINT8 devcb_stub(device_t *device, address_space &space, offs_t offset, UINT8 mem_mask) { _Class *target = downcast<_Class *>(device); - return (target->*_Function)(*device->machine().memory().first_space(), offset, 0xff); + return (target->*_Function)(space, offset, mem_mask); } // static template for a read16 stub function that calls through a given READ16_MEMBER template<class _Class, UINT16 (_Class::*_Function)(address_space &, offs_t, UINT16)> -UINT16 devcb_stub16(device_t *device, offs_t offset, UINT16 mask) +UINT16 devcb_stub16(device_t *device, address_space &space, offs_t offset, UINT16 mem_mask) { _Class *target = downcast<_Class *>(device); - return (target->*_Function)(*device->machine().memory().first_space(), offset, mask); + return (target->*_Function)(space, offset, mem_mask); } // static template for a write_line stub function that calls through a given WRITE_LINE_MEMBER @@ -133,18 +133,18 @@ void devcb_line_stub(device_t *device, int state) // static template for a write8 stub function that calls through a given WRITE8_MEMBER template<class _Class, void (_Class::*_Function)(address_space &, offs_t, UINT8, UINT8)> -void devcb_stub(device_t *device, offs_t offset, UINT8 data) +void devcb_stub(device_t *device, address_space &space, offs_t offset, UINT8 data, UINT8 mem_mask) { _Class *target = downcast<_Class *>(device); - (target->*_Function)(*device->machine().memory().first_space(), offset, data, 0xff); + (target->*_Function)(space, offset, data, mem_mask); } // static template for a write16 stub function that calls through a given WRITE16_MEMBER template<class _Class, void (_Class::*_Function)(address_space &, offs_t, UINT16, UINT16)> -void devcb_stub16(device_t *device, offs_t offset, UINT16 data, UINT16 mask) +void devcb_stub16(device_t *device, address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask) { _Class *target = downcast<_Class *>(device); - (target->*_Function)(*device->machine().memory().first_space(), offset, data, mask); + (target->*_Function)(space, offset, data, mem_mask); } #define DEVCB_NULL { DEVCB_TYPE_NULL } @@ -374,6 +374,7 @@ public: private: // internal helpers UINT8 from_port(offs_t offset); + UINT8 from_read8(offs_t offset); UINT8 from_readline(offs_t offset); UINT8 from_constant(offs_t offset); @@ -424,6 +425,7 @@ private: // internal helpers void to_null(offs_t offset, UINT8 data); void to_port(offs_t offset, UINT8 data); + void to_write8(offs_t offset, UINT8 data); void to_writeline(offs_t offset, UINT8 data); void to_input(offs_t offset, UINT8 data); @@ -473,6 +475,7 @@ public: private: // internal helpers UINT16 from_port(offs_t offset, UINT16 mask); + UINT16 from_read16(offs_t offset, UINT16 mask); UINT16 from_readline(offs_t offset, UINT16 mask); UINT16 from_constant(offs_t offset, UINT16 mask); @@ -523,6 +526,7 @@ private: // internal helpers void to_null(offs_t offset, UINT16 data, UINT16 mask); void to_port(offs_t offset, UINT16 data, UINT16 mask); + void to_write16(offs_t offset, UINT16 data, UINT16 mask); void to_writeline(offs_t offset, UINT16 data, UINT16 mask); void to_input(offs_t offset, UINT16 data, UINT16 mask); diff --git a/src/emu/devconv.h b/src/emu/devconv.h index a7b81a27827..ce64a44b02a 100644 --- a/src/emu/devconv.h +++ b/src/emu/devconv.h @@ -85,23 +85,23 @@ * *************************************/ -INLINE UINT16 read16be_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT16 mem_mask) +INLINE UINT16 read16be_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 mem_mask) { UINT16 result = 0; if (ACCESSING_BITS_8_15) - result |= ((UINT16)(*handler)(device, offset * 2 + 0)) << 8; + result |= ((UINT16)(*handler)(device, space, offset * 2 + 0, mem_mask >> 8)) << 8; if (ACCESSING_BITS_0_7) - result |= ((UINT16)(*handler)(device, offset * 2 + 1)) << 0; + result |= ((UINT16)(*handler)(device, space, offset * 2 + 1, mem_mask >> 0)) << 0; return result; } -INLINE void write16be_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT16 data, UINT16 mem_mask) +INLINE void write16be_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask) { if (ACCESSING_BITS_8_15) - (*handler)(device, offset * 2 + 0, data >> 8); + (*handler)(device, space, offset * 2 + 0, data >> 8, mem_mask >> 8); if (ACCESSING_BITS_0_7) - (*handler)(device, offset * 2 + 1, data >> 0); + (*handler)(device, space, offset * 2 + 1, data >> 0, mem_mask >> 0); } @@ -111,23 +111,23 @@ INLINE void write16be_with_write8_device_handler(write8_device_func handler, dev * *************************************/ -INLINE UINT16 read16le_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT16 mem_mask) +INLINE UINT16 read16le_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 mem_mask) { UINT16 result = 0; if (ACCESSING_BITS_0_7) - result |= ((UINT16) (*handler)(device, offset * 2 + 0)) << 0; + result |= ((UINT16) (*handler)(device, space, offset * 2 + 0, mem_mask >> 0)) << 0; if (ACCESSING_BITS_8_15) - result |= ((UINT16) (*handler)(device, offset * 2 + 1)) << 8; + result |= ((UINT16) (*handler)(device, space, offset * 2 + 1, mem_mask >> 8)) << 8; return result; } -INLINE void write16le_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT16 data, UINT16 mem_mask) +INLINE void write16le_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask) { if (ACCESSING_BITS_0_7) - (*handler)(device, offset * 2 + 0, data >> 0); + (*handler)(device, space, offset * 2 + 0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_8_15) - (*handler)(device, offset * 2 + 1, data >> 8); + (*handler)(device, space, offset * 2 + 1, data >> 8, mem_mask >> 8); } @@ -137,23 +137,23 @@ INLINE void write16le_with_write8_device_handler(write8_device_func handler, dev * *************************************/ -INLINE UINT32 read32be_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask) +INLINE UINT32 read32be_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask) { UINT32 result = 0; if (ACCESSING_BITS_16_31) - result |= read16be_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask >> 16) << 16; + result |= read16be_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 16) << 16; if (ACCESSING_BITS_0_15) - result |= read16be_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask) << 0; + result |= read16be_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask) << 0; return result; } -INLINE void write32be_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask) +INLINE void write32be_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask) { if (ACCESSING_BITS_16_31) - write16be_with_write8_device_handler(handler, device, offset * 2 + 0, data >> 16, mem_mask >> 16); + write16be_with_write8_device_handler(handler, device, space, offset * 2 + 0, data >> 16, mem_mask >> 16); if (ACCESSING_BITS_0_15) - write16be_with_write8_device_handler(handler, device, offset * 2 + 1, data, mem_mask); + write16be_with_write8_device_handler(handler, device, space, offset * 2 + 1, data, mem_mask); } @@ -163,23 +163,23 @@ INLINE void write32be_with_write8_device_handler(write8_device_func handler, dev * *************************************/ -INLINE UINT32 read32le_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask) +INLINE UINT32 read32le_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask) { UINT32 result = 0; if (ACCESSING_BITS_0_15) - result |= read16le_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask) << 0; + result |= read16le_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask) << 0; if (ACCESSING_BITS_16_31) - result |= read16le_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask >> 16) << 16; + result |= read16le_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 16) << 16; return result; } -INLINE void write32le_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask) +INLINE void write32le_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask) { if (ACCESSING_BITS_0_15) - write16le_with_write8_device_handler(handler, device, offset * 2 + 0, data, mem_mask); + write16le_with_write8_device_handler(handler, device, space, offset * 2 + 0, data, mem_mask); if (ACCESSING_BITS_16_31) - write16le_with_write8_device_handler(handler, device, offset * 2 + 1, data >> 16, mem_mask >> 16); + write16le_with_write8_device_handler(handler, device, space, offset * 2 + 1, data >> 16, mem_mask >> 16); } @@ -189,23 +189,23 @@ INLINE void write32le_with_write8_device_handler(write8_device_func handler, dev * *************************************/ -INLINE UINT32 read32be_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask) +INLINE UINT32 read32be_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask) { UINT32 result = 0; if (ACCESSING_BITS_16_31) - result |= (*handler)(device, offset * 2 + 0, mem_mask >> 16) << 16; + result |= (*handler)(device, space, offset * 2 + 0, mem_mask >> 16) << 16; if (ACCESSING_BITS_0_15) - result |= (*handler)(device, offset * 2 + 1, mem_mask) << 0; + result |= (*handler)(device, space, offset * 2 + 1, mem_mask) << 0; return result; } -INLINE void write32be_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask) +INLINE void write32be_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask) { if (ACCESSING_BITS_16_31) - (*handler)(device, offset * 2 + 0, data >> 16, mem_mask >> 16); + (*handler)(device, space, offset * 2 + 0, data >> 16, mem_mask >> 16); if (ACCESSING_BITS_0_15) - (*handler)(device, offset * 2 + 1, data, mem_mask); + (*handler)(device, space, offset * 2 + 1, data, mem_mask); } @@ -215,23 +215,23 @@ INLINE void write32be_with_16be_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT32 read32le_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask) +INLINE UINT32 read32le_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask) { UINT32 result = 0; if (ACCESSING_BITS_0_15) - result |= (*handler)(device, offset * 2 + 0, mem_mask) << 0; + result |= (*handler)(device, space, offset * 2 + 0, mem_mask) << 0; if (ACCESSING_BITS_16_31) - result |= (*handler)(device, offset * 2 + 1, mem_mask >> 16) << 16; + result |= (*handler)(device, space, offset * 2 + 1, mem_mask >> 16) << 16; return result; } -INLINE void write32le_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask) +INLINE void write32le_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask) { if (ACCESSING_BITS_0_15) - (*handler)(device, offset * 2 + 0, data, mem_mask); + (*handler)(device, space, offset * 2 + 0, data, mem_mask); if (ACCESSING_BITS_16_31) - (*handler)(device, offset * 2 + 1, data >> 16, mem_mask >> 16); + (*handler)(device, space, offset * 2 + 1, data >> 16, mem_mask >> 16); } @@ -241,20 +241,20 @@ INLINE void write32le_with_16le_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT32 read32be_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask) +INLINE UINT32 read32be_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask) { UINT32 result = 0; mem_mask = FLIPENDIAN_INT32(mem_mask); - result = read32le_with_16le_device_handler(handler, device, offset, mem_mask); + result = read32le_with_16le_device_handler(handler, device, space, offset, mem_mask); return FLIPENDIAN_INT32(result); } -INLINE void write32be_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask) +INLINE void write32be_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask) { data = FLIPENDIAN_INT32(data); mem_mask = FLIPENDIAN_INT32(mem_mask); - write32le_with_16le_device_handler(handler, device, offset, data, mem_mask); + write32le_with_16le_device_handler(handler, device, space, offset, data, mem_mask); } @@ -264,20 +264,20 @@ INLINE void write32be_with_16le_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT32 read32le_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask) +INLINE UINT32 read32le_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask) { UINT32 result = 0; mem_mask = FLIPENDIAN_INT32(mem_mask); - result = read32be_with_16be_device_handler(handler, device, offset, mem_mask); + result = read32be_with_16be_device_handler(handler, device, space, offset, mem_mask); return FLIPENDIAN_INT32(result); } -INLINE void write32le_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask) +INLINE void write32le_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask) { data = FLIPENDIAN_INT32(data); mem_mask = FLIPENDIAN_INT32(mem_mask); - write32be_with_16be_device_handler(handler, device, offset, data, mem_mask); + write32be_with_16be_device_handler(handler, device, space, offset, data, mem_mask); } @@ -287,23 +287,23 @@ INLINE void write32le_with_16be_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT64 read64be_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT64 read64be_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)read32be_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask >> 32) << 32; + result |= (UINT64)read32be_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 32) << 32; if (ACCESSING_BITS_0_31) - result |= (UINT64)read32be_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask) << 0; + result |= (UINT64)read32be_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask) << 0; return result; } -INLINE void write64be_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64be_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_32_63) - write32be_with_write8_device_handler(handler, device, offset * 2 + 0, data >> 32, mem_mask >> 32); + write32be_with_write8_device_handler(handler, device, space, offset * 2 + 0, data >> 32, mem_mask >> 32); if (ACCESSING_BITS_0_31) - write32be_with_write8_device_handler(handler, device, offset * 2 + 1, data, mem_mask); + write32be_with_write8_device_handler(handler, device, space, offset * 2 + 1, data, mem_mask); } @@ -313,23 +313,23 @@ INLINE void write64be_with_write8_device_handler(write8_device_func handler, dev * *************************************/ -INLINE UINT64 read64le_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT64 read64le_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_0_31) - result |= (UINT64)read32le_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask >> 0) << 0; + result |= (UINT64)read32le_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 0) << 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)read32le_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask >> 32) << 32; + result |= (UINT64)read32le_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 32) << 32; return result; } -INLINE void write64le_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64le_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_0_31) - write32le_with_write8_device_handler(handler, device, offset * 2 + 0, data >> 0, mem_mask >> 0); + write32le_with_write8_device_handler(handler, device, space, offset * 2 + 0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_32_63) - write32le_with_write8_device_handler(handler, device, offset * 2 + 1, data >> 32, mem_mask >> 32); + write32le_with_write8_device_handler(handler, device, space, offset * 2 + 1, data >> 32, mem_mask >> 32); } @@ -339,23 +339,23 @@ INLINE void write64le_with_write8_device_handler(write8_device_func handler, dev * *************************************/ -INLINE UINT32 read64be_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT32 read64be_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)read32be_with_16be_device_handler(handler, device, offset * 2 + 0, mem_mask >> 32) << 32; + result |= (UINT64)read32be_with_16be_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 32) << 32; if (ACCESSING_BITS_0_31) - result |= (UINT64)read32be_with_16be_device_handler(handler, device, offset * 2 + 1, mem_mask >> 0) << 0; + result |= (UINT64)read32be_with_16be_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 0) << 0; return result; } -INLINE void write64be_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64be_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_32_63) - write32be_with_16be_device_handler(handler, device, offset * 2 + 0, data >> 32, mem_mask >> 32); + write32be_with_16be_device_handler(handler, device, space, offset * 2 + 0, data >> 32, mem_mask >> 32); if (ACCESSING_BITS_0_31) - write32be_with_16be_device_handler(handler, device, offset * 2 + 1, data >> 0, mem_mask >> 0); + write32be_with_16be_device_handler(handler, device, space, offset * 2 + 1, data >> 0, mem_mask >> 0); } @@ -365,23 +365,23 @@ INLINE void write64be_with_16be_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT32 read64le_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT32 read64le_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_0_31) - result |= (UINT64)read32le_with_16le_device_handler(handler, device, offset * 2 + 0, mem_mask >> 0) << 0; + result |= (UINT64)read32le_with_16le_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 0) << 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)read32le_with_16le_device_handler(handler, device, offset * 2 + 1, mem_mask >> 32) << 32; + result |= (UINT64)read32le_with_16le_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 32) << 32; return result; } -INLINE void write64le_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64le_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_0_31) - write32le_with_16le_device_handler(handler, device, offset * 2 + 0, data >> 0, mem_mask >> 0); + write32le_with_16le_device_handler(handler, device, space, offset * 2 + 0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_32_63) - write32le_with_16le_device_handler(handler, device, offset * 2 + 1, data >> 32, mem_mask >> 32); + write32le_with_16le_device_handler(handler, device, space, offset * 2 + 1, data >> 32, mem_mask >> 32); } @@ -391,23 +391,23 @@ INLINE void write64le_with_16le_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT32 read64be_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT32 read64be_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)read32be_with_16le_device_handler(handler, device, offset * 2 + 0, mem_mask >> 32) << 32; + result |= (UINT64)read32be_with_16le_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 32) << 32; if (ACCESSING_BITS_0_31) - result |= (UINT64)read32be_with_16le_device_handler(handler, device, offset * 2 + 1, mem_mask >> 0) << 0; + result |= (UINT64)read32be_with_16le_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 0) << 0; return result; } -INLINE void write64be_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64be_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_32_63) - write32be_with_16le_device_handler(handler, device, offset * 2 + 0, data >> 32, mem_mask >> 32); + write32be_with_16le_device_handler(handler, device, space, offset * 2 + 0, data >> 32, mem_mask >> 32); if (ACCESSING_BITS_0_31) - write32be_with_16le_device_handler(handler, device, offset * 2 + 1, data >> 0, mem_mask >> 0); + write32be_with_16le_device_handler(handler, device, space, offset * 2 + 1, data >> 0, mem_mask >> 0); } @@ -417,23 +417,23 @@ INLINE void write64be_with_16le_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT32 read64le_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT32 read64le_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_0_31) - result |= (UINT64)read32le_with_16be_device_handler(handler, device, offset * 2 + 0, mem_mask >> 0) << 0; + result |= (UINT64)read32le_with_16be_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 0) << 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)read32le_with_16be_device_handler(handler, device, offset * 2 + 1, mem_mask >> 32) << 32; + result |= (UINT64)read32le_with_16be_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 32) << 32; return result; } -INLINE void write64le_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64le_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_0_31) - write32le_with_16be_device_handler(handler, device, offset * 2 + 0, data >> 0, mem_mask >> 0); + write32le_with_16be_device_handler(handler, device, space, offset * 2 + 0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_32_63) - write32le_with_16be_device_handler(handler, device, offset * 2 + 1, data >> 32, mem_mask >> 32); + write32le_with_16be_device_handler(handler, device, space, offset * 2 + 1, data >> 32, mem_mask >> 32); } @@ -443,23 +443,23 @@ INLINE void write64le_with_16be_device_handler(write16_device_func handler, devi * *************************************/ -INLINE UINT64 read64be_with_32be_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT64 read64be_with_32be_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)(*handler)(device, offset * 2 + 0, mem_mask >> 32) << 32; + result |= (UINT64)(*handler)(device, space, offset * 2 + 0, mem_mask >> 32) << 32; if (ACCESSING_BITS_0_31) - result |= (UINT64)(*handler)(device, offset * 2 + 1, mem_mask >> 0) << 0; + result |= (UINT64)(*handler)(device, space, offset * 2 + 1, mem_mask >> 0) << 0; return result; } -INLINE void write64be_with_32be_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64be_with_32be_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_32_63) - (*handler)(device, offset * 2 + 0, data >> 32, mem_mask >> 32); + (*handler)(device, space, offset * 2 + 0, data >> 32, mem_mask >> 32); if (ACCESSING_BITS_0_31) - (*handler)(device, offset * 2 + 1, data >> 0, mem_mask >> 0); + (*handler)(device, space, offset * 2 + 1, data >> 0, mem_mask >> 0); } @@ -469,23 +469,23 @@ INLINE void write64be_with_32be_device_handler(write32_device_func handler, devi * *************************************/ -INLINE UINT64 read64le_with_32le_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT64 read64le_with_32le_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result = 0; if (ACCESSING_BITS_0_31) - result |= (UINT64)(*handler)(device, offset * 2 + 0, mem_mask >> 0) << 0; + result |= (UINT64)(*handler)(device, space, offset * 2 + 0, mem_mask >> 0) << 0; if (ACCESSING_BITS_32_63) - result |= (UINT64)(*handler)(device, offset * 2 + 1, mem_mask >> 32) << 32; + result |= (UINT64)(*handler)(device, space, offset * 2 + 1, mem_mask >> 32) << 32; return result; } -INLINE void write64le_with_32le_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64le_with_32le_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { if (ACCESSING_BITS_0_31) - (*handler)(device, offset * 2 + 0, data >> 0, mem_mask >> 0); + (*handler)(device, space, offset * 2 + 0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_32_63) - (*handler)(device, offset * 2 + 1, data >> 32, mem_mask >> 32); + (*handler)(device, space, offset * 2 + 1, data >> 32, mem_mask >> 32); } @@ -495,20 +495,20 @@ INLINE void write64le_with_32le_device_handler(write32_device_func handler, devi * *************************************/ -INLINE UINT64 read64be_with_32le_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT64 read64be_with_32le_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result; mem_mask = FLIPENDIAN_INT64(mem_mask); - result = read64le_with_32le_device_handler(handler, device, offset, mem_mask); + result = read64le_with_32le_device_handler(handler, device, space, offset, mem_mask); return FLIPENDIAN_INT64(result); } -INLINE void write64be_with_32le_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64be_with_32le_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { data = FLIPENDIAN_INT64(data); mem_mask = FLIPENDIAN_INT64(mem_mask); - write64le_with_32le_device_handler(handler, device, offset, data, mem_mask); + write64le_with_32le_device_handler(handler, device, space, offset, data, mem_mask); } @@ -518,20 +518,20 @@ INLINE void write64be_with_32le_device_handler(write32_device_func handler, devi * *************************************/ -INLINE UINT64 read64le_with_32be_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask) +INLINE UINT64 read64le_with_32be_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask) { UINT64 result; mem_mask = FLIPENDIAN_INT64(mem_mask); - result = read64be_with_32be_device_handler(handler, device, offset, mem_mask); + result = read64be_with_32be_device_handler(handler, device, space, offset, mem_mask); return FLIPENDIAN_INT64(result); } -INLINE void write64le_with_32be_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask) +INLINE void write64le_with_32be_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask) { data = FLIPENDIAN_INT64(data); mem_mask = FLIPENDIAN_INT64(mem_mask); - write64be_with_32be_device_handler(handler, device, offset, data, mem_mask); + write64be_with_32be_device_handler(handler, device, space, offset, data, mem_mask); } @@ -545,28 +545,28 @@ INLINE void write64le_with_32be_device_handler(write32_device_func handler, devi #define DEV_READ_TEMPLATE(bits, name, handler, func) \ READ##bits##_DEVICE_HANDLER( name##_r ) \ { \ - return func(handler, device, offset, mem_mask); \ + return func(handler, device, space, offset, mem_mask); \ } #define DEV_READ_TEMPLATE_COND(bits, name, handler, func, cond) \ READ##bits##_DEVICE_HANDLER( name##_r ) \ { \ if (cond) \ - return func(handler, device, offset, mem_mask); \ + return func(handler, device, space, offset, mem_mask); \ return 0; \ } #define DEV_WRITE_TEMPLATE(bits, name, handler, func) \ WRITE##bits##_DEVICE_HANDLER( name##_w ) \ { \ - func(handler, device, offset, data, mem_mask); \ + func(handler, device, space, offset, data, mem_mask); \ } #define DEV_WRITE_TEMPLATE_COND(bits, name, handler, func, cond) \ WRITE##bits##_DEVICE_HANDLER( name##_w ) \ { \ if (cond) \ - func(handler, device, offset, data, mem_mask); \ + func(handler, device, space, offset, data, mem_mask); \ } diff --git a/src/emu/dimemory.c b/src/emu/dimemory.c index 1f6113937a1..1c33794ac95 100644 --- a/src/emu/dimemory.c +++ b/src/emu/dimemory.c @@ -323,9 +323,9 @@ void device_memory_interface::interface_validity_check(validity_checker &valid) } // make sure all devices exist - if (entry->m_read.m_type == AMH_LEGACY_DEVICE_HANDLER && entry->m_read.m_tag && device().siblingdevice(entry->m_read.m_tag) == NULL) + if (entry->m_read.m_type == AMH_DEVICE_DELEGATE && entry->m_read.m_tag && device().siblingdevice(entry->m_read.m_tag) == NULL) mame_printf_error("%s space memory map entry references nonexistant device '%s'\n", spaceconfig->m_name, entry->m_read.m_tag.cstr()); - if (entry->m_write.m_type == AMH_LEGACY_DEVICE_HANDLER && entry->m_write.m_tag && device().siblingdevice(entry->m_write.m_tag) == NULL) + if (entry->m_write.m_type == AMH_DEVICE_DELEGATE && entry->m_write.m_tag && device().siblingdevice(entry->m_write.m_tag) == NULL) mame_printf_error("%s space memory map entry references nonexistant device '%s'\n", spaceconfig->m_name, entry->m_write.m_tag.cstr()); // make sure ports exist diff --git a/src/emu/driver.c b/src/emu/driver.c index a2cdb5c08d5..d0fd75f7030 100644 --- a/src/emu/driver.c +++ b/src/emu/driver.c @@ -51,6 +51,7 @@ driver_device::driver_device(const machine_config &mconfig, device_type type, const char *tag) : device_t(mconfig, type, "Driver Device", tag, NULL, 0), + device_memory_interface(mconfig, *this), m_generic_paletteram_8(*this, "paletteram"), m_generic_paletteram2_8(*this, "paletteram2"), m_generic_paletteram_16(*this, "paletteram"), @@ -58,6 +59,7 @@ driver_device::driver_device(const machine_config &mconfig, device_type type, co m_generic_paletteram_32(*this, "paletteram"), m_generic_paletteram2_32(*this, "paletteram2"), m_system(NULL), + m_generic_space_config("generic", ENDIANNESS_LITTLE, 8, 8), m_latch_clear_value(0), m_flip_screen_x(0), m_flip_screen_y(0) @@ -313,6 +315,17 @@ void driver_device::device_reset_after_children() } +//------------------------------------------------- +// memory_space_config - return a description of +// any address spaces owned by this device +//------------------------------------------------- + +const address_space_config *driver_device::memory_space_config(address_spacenum spacenum) const +{ + return (spacenum == 0) ? &m_generic_space_config : NULL; +} + + //************************************************************************** // INTERRUPT ENABLE AND VECTOR HELPERS diff --git a/src/emu/driver.h b/src/emu/driver.h index d53ddf536a3..d389e42c74a 100644 --- a/src/emu/driver.h +++ b/src/emu/driver.h @@ -166,7 +166,8 @@ typedef void (*legacy_callback_func)(running_machine &machine); // ======================> driver_device // base class for machine driver-specific devices -class driver_device : public device_t +class driver_device : public device_t, + public device_memory_interface { public: // construction/destruction @@ -201,7 +202,11 @@ public: (machine.driver_data<_DriverClass>()->*_Function)(); } - void init_0() {}; + // dummy driver_init callbacks + void init_0() { } + + // memory helpers + address_space &generic_space() const { return *space(AS_PROGRAM); } // generic interrupt generators void generic_pulse_irq_line(device_execute_interface &exec, int irqline, int cycles); @@ -399,6 +404,9 @@ protected: virtual void device_start(); virtual void device_reset_after_children(); + // device_memory_interface overrides + virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const; + // internal helpers inline UINT16 paletteram16_le(offs_t offset) const { return m_generic_paletteram_8[offset & ~1] | (m_generic_paletteram_8[offset | 1] << 8); } inline UINT16 paletteram16_be(offs_t offset) const { return m_generic_paletteram_8[offset | 1] | (m_generic_paletteram_8[offset & ~1] << 8); } @@ -425,6 +433,9 @@ private: driver_callback_delegate m_callbacks[CB_COUNT]; // start/reset callbacks legacy_callback_func m_legacy_callbacks[CB_COUNT]; // legacy start/reset callbacks + // memory state + address_space_config m_generic_space_config; + // generic audio UINT16 m_latch_clear_value; UINT16 m_latched_value[4]; diff --git a/src/emu/imagedev/flopdrv.h b/src/emu/imagedev/flopdrv.h index 8f113b711f6..a56d09e9a69 100644 --- a/src/emu/imagedev/flopdrv.h +++ b/src/emu/imagedev/flopdrv.h @@ -155,7 +155,7 @@ WRITE_LINE_DEVICE_HANDLER( floppy_ds0_w ); WRITE_LINE_DEVICE_HANDLER( floppy_ds1_w ); WRITE_LINE_DEVICE_HANDLER( floppy_ds2_w ); WRITE_LINE_DEVICE_HANDLER( floppy_ds3_w ); -WRITE8_DEVICE_HANDLER( floppy_ds_w ); +DECLARE_WRITE8_DEVICE_HANDLER( floppy_ds_w ); WRITE_LINE_DEVICE_HANDLER( floppy_mon_w ); WRITE_LINE_DEVICE_HANDLER( floppy_drtn_w ); diff --git a/src/emu/machine/6525tpi.h b/src/emu/machine/6525tpi.h index 548dd4b4532..a777f978eb9 100644 --- a/src/emu/machine/6525tpi.h +++ b/src/emu/machine/6525tpi.h @@ -86,17 +86,17 @@ extern const device_type TPI6525; FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( tpi6525_r ); -WRITE8_DEVICE_HANDLER( tpi6525_w ); +DECLARE_READ8_DEVICE_HANDLER( tpi6525_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_w ); -READ8_DEVICE_HANDLER( tpi6525_porta_r ); -WRITE8_DEVICE_HANDLER( tpi6525_porta_w ); +DECLARE_READ8_DEVICE_HANDLER( tpi6525_porta_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_porta_w ); -READ8_DEVICE_HANDLER( tpi6525_portb_r ); -WRITE8_DEVICE_HANDLER( tpi6525_portb_w ); +DECLARE_READ8_DEVICE_HANDLER( tpi6525_portb_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_portb_w ); -READ8_DEVICE_HANDLER( tpi6525_portc_r ); -WRITE8_DEVICE_HANDLER( tpi6525_portc_w ); +DECLARE_READ8_DEVICE_HANDLER( tpi6525_portc_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_portc_w ); WRITE_LINE_DEVICE_HANDLER( tpi6525_i0_w ); WRITE_LINE_DEVICE_HANDLER( tpi6525_i1_w ); diff --git a/src/emu/machine/6526cia.h b/src/emu/machine/6526cia.h index ea17eeae9d7..5ba57e1e7bc 100644 --- a/src/emu/machine/6526cia.h +++ b/src/emu/machine/6526cia.h @@ -268,12 +268,12 @@ extern const device_type MOS5710; ***************************************************************************/ /* register access */ -READ8_DEVICE_HANDLER( mos6526_r ); -WRITE8_DEVICE_HANDLER( mos6526_w ); +DECLARE_READ8_DEVICE_HANDLER( mos6526_r ); +DECLARE_WRITE8_DEVICE_HANDLER( mos6526_w ); /* port access */ -READ8_DEVICE_HANDLER( mos6526_pa_r ); -READ8_DEVICE_HANDLER( mos6526_pb_r ); +DECLARE_READ8_DEVICE_HANDLER( mos6526_pa_r ); +DECLARE_READ8_DEVICE_HANDLER( mos6526_pb_r ); /* interrupt request */ READ_LINE_DEVICE_HANDLER( mos6526_irq_r ); diff --git a/src/emu/machine/6532riot.h b/src/emu/machine/6532riot.h index 88ee8482e93..d82e946c4b8 100644 --- a/src/emu/machine/6532riot.h +++ b/src/emu/machine/6532riot.h @@ -121,8 +121,8 @@ extern const device_type RIOT6532; PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( riot6532_r ); -WRITE8_DEVICE_HANDLER( riot6532_w ); +DECLARE_READ8_DEVICE_HANDLER( riot6532_r ); +DECLARE_WRITE8_DEVICE_HANDLER( riot6532_w ); void riot6532_porta_in_set(device_t *device, UINT8 data, UINT8 mask); void riot6532_portb_in_set(device_t *device, UINT8 data, UINT8 mask); diff --git a/src/emu/machine/68681.h b/src/emu/machine/68681.h index 6de4665ded5..1a4b248bd91 100644 --- a/src/emu/machine/68681.h +++ b/src/emu/machine/68681.h @@ -40,8 +40,8 @@ extern const device_type DUART68681; MCFG_DEVICE_CONFIG(_config) -READ8_DEVICE_HANDLER(duart68681_r); -WRITE8_DEVICE_HANDLER(duart68681_w); +DECLARE_READ8_DEVICE_HANDLER(duart68681_r); +DECLARE_WRITE8_DEVICE_HANDLER(duart68681_w); void duart68681_rx_data( device_t* device, int ch, UINT8 data ); diff --git a/src/emu/machine/74123.c b/src/emu/machine/74123.c index eac124eeae4..526c7d47d88 100644 --- a/src/emu/machine/74123.c +++ b/src/emu/machine/74123.c @@ -55,7 +55,6 @@ void ttl74123_device::device_config_complete() m_a = 0; m_b = 0; m_clear = 0; - memset(&m_output_changed_cb, 0, sizeof(m_output_changed_cb)); } } @@ -66,6 +65,8 @@ void ttl74123_device::device_config_complete() void ttl74123_device::device_start() { + m_output_changed.resolve(m_output_changed_cb, *this); + m_timer = machine().scheduler().timer_alloc(FUNC(clear_callback), (void *)this); /* register for state saving */ @@ -145,7 +146,7 @@ TIMER_CALLBACK( ttl74123_device::output_callback ) void ttl74123_device::output(INT32 param) { - m_output_changed_cb(this, 0, param); + m_output_changed(0, param); } @@ -177,7 +178,7 @@ void ttl74123_device::clear() { int output = timer_running(); - m_output_changed_cb(this, 0, output); + m_output_changed(0, output); } diff --git a/src/emu/machine/74123.h b/src/emu/machine/74123.h index 1338c4e825d..c7cafe200d9 100644 --- a/src/emu/machine/74123.h +++ b/src/emu/machine/74123.h @@ -82,7 +82,7 @@ struct ttl74123_interface int m_a; /* initial/constant value of the A pin */ int m_b; /* initial/constant value of the B pin */ int m_clear; /* initial/constant value of the Clear pin */ - write8_device_func m_output_changed_cb; + devcb_write8 m_output_changed_cb; }; @@ -122,6 +122,7 @@ private: void clear(); emu_timer *m_timer; + devcb_resolved_write8 m_output_changed; }; @@ -134,9 +135,9 @@ extern const device_type TTL74123; PROTOTYPES ***************************************************************************/ -WRITE8_DEVICE_HANDLER( ttl74123_a_w ); -WRITE8_DEVICE_HANDLER( ttl74123_b_w ); -WRITE8_DEVICE_HANDLER( ttl74123_clear_w ); -WRITE8_DEVICE_HANDLER( ttl74123_reset_w ); /* reset the latch */ +DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_clear_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_reset_w ); /* reset the latch */ #endif diff --git a/src/emu/machine/8237dma.h b/src/emu/machine/8237dma.h index 864aba746ad..94e285b1248 100644 --- a/src/emu/machine/8237dma.h +++ b/src/emu/machine/8237dma.h @@ -189,8 +189,8 @@ extern const device_type I8237; ***************************************************************************/ /* register access */ -READ8_DEVICE_HANDLER( i8237_r ); -WRITE8_DEVICE_HANDLER( i8237_w ); +DECLARE_READ8_DEVICE_HANDLER( i8237_r ); +DECLARE_WRITE8_DEVICE_HANDLER( i8237_w ); /* hold acknowledge */ WRITE_LINE_DEVICE_HANDLER( i8237_hlda_w ); diff --git a/src/emu/machine/8257dma.h b/src/emu/machine/8257dma.h index 0c96150dfa7..365496fc604 100644 --- a/src/emu/machine/8257dma.h +++ b/src/emu/machine/8257dma.h @@ -147,8 +147,8 @@ extern const device_type I8257; ***************************************************************************/ /* register access */ -READ8_DEVICE_HANDLER( i8257_r ); -WRITE8_DEVICE_HANDLER( i8257_w ); +DECLARE_READ8_DEVICE_HANDLER( i8257_r ); +DECLARE_WRITE8_DEVICE_HANDLER( i8257_w ); /* hold acknowledge */ WRITE_LINE_DEVICE_HANDLER( i8257_hlda_w ); diff --git a/src/emu/machine/adc1213x.h b/src/emu/machine/adc1213x.h index d0a2d39c814..0fed72a1064 100644 --- a/src/emu/machine/adc1213x.h +++ b/src/emu/machine/adc1213x.h @@ -82,11 +82,11 @@ struct adc12138_interface PROTOTYPES ***************************************************************************/ -extern WRITE8_DEVICE_HANDLER( adc1213x_di_w ); -extern WRITE8_DEVICE_HANDLER( adc1213x_cs_w ); -extern WRITE8_DEVICE_HANDLER( adc1213x_sclk_w ); -extern WRITE8_DEVICE_HANDLER( adc1213x_conv_w ); -extern READ8_DEVICE_HANDLER( adc1213x_do_r ); -extern READ8_DEVICE_HANDLER( adc1213x_eoc_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_di_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_cs_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_sclk_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_conv_w ); +extern DECLARE_READ8_DEVICE_HANDLER( adc1213x_do_r ); +extern DECLARE_READ8_DEVICE_HANDLER( adc1213x_eoc_r ); #endif /* __ADC1213X_H__ */ diff --git a/src/emu/machine/at28c16.h b/src/emu/machine/at28c16.h index d81fe6abe0e..81206458bef 100644 --- a/src/emu/machine/at28c16.h +++ b/src/emu/machine/at28c16.h @@ -84,8 +84,8 @@ extern const device_type AT28C16; // READ/WRITE HANDLERS //************************************************************************** -WRITE8_DEVICE_HANDLER( at28c16_w ); -READ8_DEVICE_HANDLER( at28c16_r ); +DECLARE_WRITE8_DEVICE_HANDLER( at28c16_w ); +DECLARE_READ8_DEVICE_HANDLER( at28c16_r ); WRITE_LINE_DEVICE_HANDLER( at28c16_a9_12v ); WRITE_LINE_DEVICE_HANDLER( at28c16_oe_12v ); diff --git a/src/emu/machine/ds2404.h b/src/emu/machine/ds2404.h index 8f28e2164c4..6870536e720 100644 --- a/src/emu/machine/ds2404.h +++ b/src/emu/machine/ds2404.h @@ -128,13 +128,13 @@ extern const device_type DS2404; ***************************************************************************/ /* 1-wire interface reset */ -WRITE8_DEVICE_HANDLER( ds2404_1w_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ds2404_1w_reset_w ); /* 3-wire interface reset */ -WRITE8_DEVICE_HANDLER( ds2404_3w_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ds2404_3w_reset_w ); -READ8_DEVICE_HANDLER( ds2404_data_r ); -WRITE8_DEVICE_HANDLER( ds2404_data_w ); -WRITE8_DEVICE_HANDLER( ds2404_clk_w ); +DECLARE_READ8_DEVICE_HANDLER( ds2404_data_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ds2404_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ds2404_clk_w ); #endif diff --git a/src/emu/machine/f3853.h b/src/emu/machine/f3853.h index 9ee50c68c13..cec1fbb48e2 100644 --- a/src/emu/machine/f3853.h +++ b/src/emu/machine/f3853.h @@ -120,8 +120,8 @@ extern const device_type F3853; PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( f3853_r ); -WRITE8_DEVICE_HANDLER( f3853_w ); +DECLARE_READ8_DEVICE_HANDLER( f3853_r ); +DECLARE_WRITE8_DEVICE_HANDLER( f3853_w ); void f3853_set_external_interrupt_in_line(device_t *device, int level); void f3853_set_priority_in_line(device_t *device, int level); diff --git a/src/emu/machine/i8243.h b/src/emu/machine/i8243.h index 325a1bdf5ba..881deec4bcb 100644 --- a/src/emu/machine/i8243.h +++ b/src/emu/machine/i8243.h @@ -88,10 +88,10 @@ extern const device_type I8243; PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( i8243_p2_r ); -WRITE8_DEVICE_HANDLER( i8243_p2_w ); +DECLARE_READ8_DEVICE_HANDLER( i8243_p2_r ); +DECLARE_WRITE8_DEVICE_HANDLER( i8243_p2_w ); -WRITE8_DEVICE_HANDLER( i8243_prog_w ); +DECLARE_WRITE8_DEVICE_HANDLER( i8243_prog_w ); #endif /* __I8243_H__ */ diff --git a/src/emu/machine/idectrl.h b/src/emu/machine/idectrl.h index d45b652f8f7..7496f814a30 100644 --- a/src/emu/machine/idectrl.h +++ b/src/emu/machine/idectrl.h @@ -172,15 +172,15 @@ void ide_bus_w(device_t *config, int select, int offset, int data); UINT32 ide_controller_r(device_t *config, int reg, int size); void ide_controller_w(device_t *config, int reg, int size, UINT32 data); -READ32_DEVICE_HANDLER( ide_controller32_r ); -WRITE32_DEVICE_HANDLER( ide_controller32_w ); -READ32_DEVICE_HANDLER( ide_controller32_pcmcia_r ); -WRITE32_DEVICE_HANDLER( ide_controller32_pcmcia_w ); -READ32_DEVICE_HANDLER( ide_bus_master32_r ); -WRITE32_DEVICE_HANDLER( ide_bus_master32_w ); - -READ16_DEVICE_HANDLER( ide_controller16_r ); -WRITE16_DEVICE_HANDLER( ide_controller16_w ); +DECLARE_READ32_DEVICE_HANDLER( ide_controller32_r ); +DECLARE_WRITE32_DEVICE_HANDLER( ide_controller32_w ); +DECLARE_READ32_DEVICE_HANDLER( ide_controller32_pcmcia_r ); +DECLARE_WRITE32_DEVICE_HANDLER( ide_controller32_pcmcia_w ); +DECLARE_READ32_DEVICE_HANDLER( ide_bus_master32_r ); +DECLARE_WRITE32_DEVICE_HANDLER( ide_bus_master32_w ); + +DECLARE_READ16_DEVICE_HANDLER( ide_controller16_r ); +DECLARE_WRITE16_DEVICE_HANDLER( ide_controller16_w ); /* ----- device interface ----- */ diff --git a/src/emu/machine/ins8154.h b/src/emu/machine/ins8154.h index 1857a428223..12b691baf5f 100644 --- a/src/emu/machine/ins8154.h +++ b/src/emu/machine/ins8154.h @@ -116,11 +116,11 @@ extern const device_type INS8154; PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( ins8154_r ); -WRITE8_DEVICE_HANDLER( ins8154_w ); +DECLARE_READ8_DEVICE_HANDLER( ins8154_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ins8154_w ); -WRITE8_DEVICE_HANDLER( ins8154_porta_w ); -WRITE8_DEVICE_HANDLER( ins8154_portb_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ins8154_porta_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ins8154_portb_w ); #endif /* __INS8154_H__ */ diff --git a/src/emu/machine/k033906.h b/src/emu/machine/k033906.h index 7a46d253539..2e2521ff52c 100644 --- a/src/emu/machine/k033906.h +++ b/src/emu/machine/k033906.h @@ -81,8 +81,8 @@ extern const device_type K033906; PROTOTYPES ***************************************************************************/ -extern READ32_DEVICE_HANDLER( k033906_r ); -extern WRITE32_DEVICE_HANDLER( k033906_w ); +extern DECLARE_READ32_DEVICE_HANDLER( k033906_r ); +extern DECLARE_WRITE32_DEVICE_HANDLER( k033906_w ); extern WRITE_LINE_DEVICE_HANDLER( k033906_set_reg ); diff --git a/src/emu/machine/k053252.h b/src/emu/machine/k053252.h index 9b714d1c123..8a1f352f063 100644 --- a/src/emu/machine/k053252.h +++ b/src/emu/machine/k053252.h @@ -49,8 +49,8 @@ struct k053252_interface /** Konami 053252 **/ /* CRT and interrupt control unit */ -READ8_DEVICE_HANDLER( k053252_r ); // CCU registers -WRITE8_DEVICE_HANDLER( k053252_w ); +DECLARE_READ8_DEVICE_HANDLER( k053252_r ); // CCU registers +DECLARE_WRITE8_DEVICE_HANDLER( k053252_w ); diff --git a/src/emu/machine/k056230.h b/src/emu/machine/k056230.h index 5d6d67ec103..99a7df8957b 100644 --- a/src/emu/machine/k056230.h +++ b/src/emu/machine/k056230.h @@ -80,10 +80,10 @@ extern const device_type K056230; PROTOTYPES ***************************************************************************/ -extern READ32_DEVICE_HANDLER( lanc_ram_r ); -extern WRITE32_DEVICE_HANDLER( lanc_ram_w ); -extern READ8_DEVICE_HANDLER( k056230_r ); -extern WRITE8_DEVICE_HANDLER( k056230_w ); +extern DECLARE_READ32_DEVICE_HANDLER( lanc_ram_r ); +extern DECLARE_WRITE32_DEVICE_HANDLER( lanc_ram_w ); +extern DECLARE_READ8_DEVICE_HANDLER( k056230_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER( k056230_w ); #endif /* __K056230_H__ */ diff --git a/src/emu/machine/latch8.c b/src/emu/machine/latch8.c index 193ad9abf61..ed99bff2ea0 100644 --- a/src/emu/machine/latch8.c +++ b/src/emu/machine/latch8.c @@ -42,7 +42,7 @@ static void update(device_t *device, UINT8 new_val, UINT8 mask) UINT8 changed = old_val ^ latch8->value; for (i=0; i<8; i++) if (((changed & (1<<i)) != 0) && latch8->intf->node_map[i] != 0) - discrete_sound_w(device->machine().device(latch8->intf->node_device[i]), latch8->intf->node_map[i] , (latch8->value >> i) & 1); + discrete_sound_w(device->machine().device(latch8->intf->node_device[i]), device->machine().driver_data()->generic_space(), latch8->intf->node_map[i] , (latch8->value >> i) & 1); } } @@ -74,14 +74,14 @@ READ8_DEVICE_HANDLER( latch8_r ) if (read_dev != NULL) { res &= ~( 1 << i); - res |= ((latch8->intf->devread[i].devread_handler(read_dev, 0) >> latch8->intf->devread[i].from_bit) & 0x01) << i; + res |= ((latch8->intf->devread[i].devread_handler(read_dev, device->machine().driver_data()->generic_space(), 0, 0xff) >> latch8->intf->devread[i].from_bit) & 0x01) << i; } } } if (latch8->has_read) { /* temporary hack until all relevant systems are devices */ - address_space *space = device->machine().firstcpu->space(AS_PROGRAM); + address_space *space = &device->machine().driver_data()->generic_space(); int i; for (i=0; i<8; i++) { diff --git a/src/emu/machine/latch8.h b/src/emu/machine/latch8.h index a17b7a1839e..e196147398d 100644 --- a/src/emu/machine/latch8.h +++ b/src/emu/machine/latch8.h @@ -126,47 +126,47 @@ extern const device_type LATCH8; /* write & read full byte */ -READ8_DEVICE_HANDLER( latch8_r ); -WRITE8_DEVICE_HANDLER( latch8_w ); +DECLARE_READ8_DEVICE_HANDLER( latch8_r ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_w ); /* reset the latch */ -WRITE8_DEVICE_HANDLER( latch8_reset ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_reset ); /* read bit x */ /* return (latch >> x) & 0x01 */ -READ8_DEVICE_HANDLER( latch8_bit0_r ); -READ8_DEVICE_HANDLER( latch8_bit1_r ); -READ8_DEVICE_HANDLER( latch8_bit2_r ); -READ8_DEVICE_HANDLER( latch8_bit3_r ); -READ8_DEVICE_HANDLER( latch8_bit4_r ); -READ8_DEVICE_HANDLER( latch8_bit5_r ); -READ8_DEVICE_HANDLER( latch8_bit6_r ); -READ8_DEVICE_HANDLER( latch8_bit7_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit0_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit1_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit2_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit3_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit4_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit5_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit6_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit7_r ); /* read inverted bit x */ /* return (latch >> x) & 0x01 */ -READ8_DEVICE_HANDLER( latch8_bit0_q_r ); -READ8_DEVICE_HANDLER( latch8_bit1_q_r ); -READ8_DEVICE_HANDLER( latch8_bit2_q_r ); -READ8_DEVICE_HANDLER( latch8_bit3_q_r ); -READ8_DEVICE_HANDLER( latch8_bit4_q_r ); -READ8_DEVICE_HANDLER( latch8_bit5_q_r ); -READ8_DEVICE_HANDLER( latch8_bit6_q_r ); -READ8_DEVICE_HANDLER( latch8_bit7_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit0_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit1_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit2_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit3_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit4_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit5_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit6_q_r ); +DECLARE_READ8_DEVICE_HANDLER( latch8_bit7_q_r ); /* write bit x from data into bit determined by offset */ /* latch = (latch & ~(1<<offset)) | (((data >> x) & 0x01) << offset) */ -WRITE8_DEVICE_HANDLER( latch8_bit0_w ); -WRITE8_DEVICE_HANDLER( latch8_bit1_w ); -WRITE8_DEVICE_HANDLER( latch8_bit2_w ); -WRITE8_DEVICE_HANDLER( latch8_bit3_w ); -WRITE8_DEVICE_HANDLER( latch8_bit4_w ); -WRITE8_DEVICE_HANDLER( latch8_bit5_w ); -WRITE8_DEVICE_HANDLER( latch8_bit6_w ); -WRITE8_DEVICE_HANDLER( latch8_bit7_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit0_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit3_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit4_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit5_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit6_w ); +DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit7_w ); #endif /* __LATCH8_H_ */ diff --git a/src/emu/machine/mb14241.h b/src/emu/machine/mb14241.h index bd39245a5c1..8155b03d318 100644 --- a/src/emu/machine/mb14241.h +++ b/src/emu/machine/mb14241.h @@ -43,9 +43,9 @@ extern const device_type MB14241; DEVICE I/O FUNCTIONS ***************************************************************************/ -WRITE8_DEVICE_HANDLER ( mb14241_shift_count_w ); -WRITE8_DEVICE_HANDLER ( mb14241_shift_data_w ); -READ8_DEVICE_HANDLER( mb14241_shift_result_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( mb14241_shift_count_w ); +DECLARE_WRITE8_DEVICE_HANDLER ( mb14241_shift_data_w ); +DECLARE_READ8_DEVICE_HANDLER( mb14241_shift_result_r ); #endif /* __MB14241_H__ */ diff --git a/src/emu/machine/pd4990a.h b/src/emu/machine/pd4990a.h index 3772546835b..b5d5b57c7ac 100644 --- a/src/emu/machine/pd4990a.h +++ b/src/emu/machine/pd4990a.h @@ -48,9 +48,9 @@ extern const device_type UPD4990A; /* this should be refactored, once RTCs get unified */ extern void upd4990a_addretrace( device_t *device ); -extern READ8_DEVICE_HANDLER( upd4990a_testbit_r ); -extern READ8_DEVICE_HANDLER( upd4990a_databit_r ); -extern WRITE16_DEVICE_HANDLER( upd4990a_control_16_w ); +extern DECLARE_READ8_DEVICE_HANDLER( upd4990a_testbit_r ); +extern DECLARE_READ8_DEVICE_HANDLER( upd4990a_databit_r ); +extern DECLARE_WRITE16_DEVICE_HANDLER( upd4990a_control_16_w ); #endif /*__PD4990A_H__*/ diff --git a/src/emu/machine/pic8259.h b/src/emu/machine/pic8259.h index 99f24b62fed..13a77b94e31 100644 --- a/src/emu/machine/pic8259.h +++ b/src/emu/machine/pic8259.h @@ -74,8 +74,8 @@ struct pic8259_interface /* device interface */ -READ8_DEVICE_HANDLER( pic8259_r ); -WRITE8_DEVICE_HANDLER( pic8259_w ); +DECLARE_READ8_DEVICE_HANDLER( pic8259_r ); +DECLARE_WRITE8_DEVICE_HANDLER( pic8259_w ); int pic8259_acknowledge(device_t *device); /* interrupt requests */ diff --git a/src/emu/machine/pit8253.h b/src/emu/machine/pit8253.h index c4af119903b..ad2247222a0 100644 --- a/src/emu/machine/pit8253.h +++ b/src/emu/machine/pit8253.h @@ -85,8 +85,8 @@ extern const device_type PIT8254; MCFG_DEVICE_CONFIG(_intrf) -READ8_DEVICE_HANDLER( pit8253_r ); -WRITE8_DEVICE_HANDLER( pit8253_w ); +DECLARE_READ8_DEVICE_HANDLER( pit8253_r ); +DECLARE_WRITE8_DEVICE_HANDLER( pit8253_w ); WRITE_LINE_DEVICE_HANDLER( pit8253_clk0_w ); WRITE_LINE_DEVICE_HANDLER( pit8253_clk1_w ); diff --git a/src/emu/machine/rp5h01.h b/src/emu/machine/rp5h01.h index 5e798ed780e..e784fa4f15f 100644 --- a/src/emu/machine/rp5h01.h +++ b/src/emu/machine/rp5h01.h @@ -48,12 +48,12 @@ extern const device_type RP5H01; PROTOTYPES ***************************************************************************/ -WRITE8_DEVICE_HANDLER( rp5h01_enable_w ); /* /CE */ -WRITE8_DEVICE_HANDLER( rp5h01_reset_w ); /* RESET */ -WRITE8_DEVICE_HANDLER( rp5h01_cs_w ); /* CS */ -WRITE8_DEVICE_HANDLER( rp5h01_clock_w ); /* DATA CLOCK (active low) */ -WRITE8_DEVICE_HANDLER( rp5h01_test_w ); /* TEST */ -READ8_DEVICE_HANDLER( rp5h01_counter_r ); /* COUNTER OUT */ -READ8_DEVICE_HANDLER( rp5h01_data_r ); /* DATA */ +DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_enable_w ); /* /CE */ +DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_reset_w ); /* RESET */ +DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_cs_w ); /* CS */ +DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_clock_w ); /* DATA CLOCK (active low) */ +DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_test_w ); /* TEST */ +DECLARE_READ8_DEVICE_HANDLER( rp5h01_counter_r ); /* COUNTER OUT */ +DECLARE_READ8_DEVICE_HANDLER( rp5h01_data_r ); /* DATA */ #endif /* __RP5H01_H__ */ diff --git a/src/emu/machine/s3c2410.h b/src/emu/machine/s3c2410.h index 0ed2cf85c2e..98944c1eac9 100644 --- a/src/emu/machine/s3c2410.h +++ b/src/emu/machine/s3c2410.h @@ -63,7 +63,7 @@ public: extern const device_type S3C2410; -READ32_DEVICE_HANDLER( s3c2410_lcd_r ); +DECLARE_READ32_DEVICE_HANDLER( s3c2410_lcd_r ); /******************************************************************************* TYPE DEFINITIONS diff --git a/src/emu/machine/s3c24xx.c b/src/emu/machine/s3c24xx.c index e4327310f7e..500b96e85e5 100644 --- a/src/emu/machine/s3c24xx.c +++ b/src/emu/machine/s3c24xx.c @@ -2686,7 +2686,7 @@ INLINE void iface_i2s_data_w( device_t *device, int ch, UINT16 data) s3c24xx_t *s3c24xx = get_token( device); if (s3c24xx->iface->i2s.data_w) { - (s3c24xx->iface->i2s.data_w)( device, ch, data, 0); + (s3c24xx->iface->i2s.data_w)( device, device->machine().driver_data()->generic_space(), ch, data, 0); } } @@ -2949,7 +2949,7 @@ static UINT32 iface_adc_data_r( device_t *device, int ch) offs += 2; } #endif - return (s3c24xx->iface->adc.data_r)( device, offs, 0); + return (s3c24xx->iface->adc.data_r)( device, device->machine().driver_data()->generic_space(), offs, 0); } else { @@ -3181,7 +3181,7 @@ INLINE void iface_nand_command_w( device_t *device, UINT8 data) s3c24xx_t *s3c24xx = get_token( device); if (s3c24xx->iface->nand.command_w) { - (s3c24xx->iface->nand.command_w)( device, 0, data); + (s3c24xx->iface->nand.command_w)( device, device->machine().driver_data()->generic_space(), 0, data, 0xff); } } @@ -3190,7 +3190,7 @@ INLINE void iface_nand_address_w( device_t *device, UINT8 data) s3c24xx_t *s3c24xx = get_token( device); if (s3c24xx->iface->nand.address_w) { - (s3c24xx->iface->nand.address_w)( device, 0, data); + (s3c24xx->iface->nand.address_w)( device, device->machine().driver_data()->generic_space(), 0, data, 0xff); } } @@ -3199,7 +3199,7 @@ INLINE UINT8 iface_nand_data_r( device_t *device) s3c24xx_t *s3c24xx = get_token( device); if (s3c24xx->iface->nand.data_r) { - return (s3c24xx->iface->nand.data_r)( device, 0); + return (s3c24xx->iface->nand.data_r)( device, device->machine().driver_data()->generic_space(), 0, 0xff); } else { @@ -3212,7 +3212,7 @@ INLINE void iface_nand_data_w( device_t *device, UINT8 data) s3c24xx_t *s3c24xx = get_token( device); if (s3c24xx->iface->nand.data_w) { - (s3c24xx->iface->nand.data_w)( device, 0, data); + (s3c24xx->iface->nand.data_w)( device, device->machine().driver_data()->generic_space(), 0, data, 0xff); } } diff --git a/src/emu/machine/smc91c9x.h b/src/emu/machine/smc91c9x.h index 038b3cc4000..380e96130bb 100644 --- a/src/emu/machine/smc91c9x.h +++ b/src/emu/machine/smc91c9x.h @@ -44,8 +44,8 @@ struct smc91c9x_config FUNCTION PROTOTYPES ***************************************************************************/ -READ16_DEVICE_HANDLER( smc91c9x_r ); -WRITE16_DEVICE_HANDLER( smc91c9x_w ); +DECLARE_READ16_DEVICE_HANDLER( smc91c9x_r ); +DECLARE_WRITE16_DEVICE_HANDLER( smc91c9x_w ); /* ----- device interface ----- */ diff --git a/src/emu/machine/timekpr.h b/src/emu/machine/timekpr.h index 4dd5cb64aa8..a312985022a 100644 --- a/src/emu/machine/timekpr.h +++ b/src/emu/machine/timekpr.h @@ -154,7 +154,7 @@ extern const device_type MK48T08; // READ/WRITE HANDLERS //************************************************************************** -WRITE8_DEVICE_HANDLER( timekeeper_w ); -READ8_DEVICE_HANDLER( timekeeper_r ); +DECLARE_WRITE8_DEVICE_HANDLER( timekeeper_w ); +DECLARE_READ8_DEVICE_HANDLER( timekeeper_r ); #endif // __TIMEKPR_H__ diff --git a/src/emu/machine/tms6100.h b/src/emu/machine/tms6100.h index 512446b8e62..d44ccc4e56c 100644 --- a/src/emu/machine/tms6100.h +++ b/src/emu/machine/tms6100.h @@ -10,7 +10,7 @@ WRITE_LINE_DEVICE_HANDLER( tms6100_m0_w ); WRITE_LINE_DEVICE_HANDLER( tms6100_m1_w ); WRITE_LINE_DEVICE_HANDLER( tms6100_romclock_w ); -WRITE8_DEVICE_HANDLER( tms6100_addr_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tms6100_addr_w ); READ_LINE_DEVICE_HANDLER( tms6100_data_r ); diff --git a/src/emu/machine/upd4701.h b/src/emu/machine/upd4701.h index e4a8fd519d5..582357a4ebc 100644 --- a/src/emu/machine/upd4701.h +++ b/src/emu/machine/upd4701.h @@ -44,18 +44,18 @@ extern const device_type UPD4701; PROTOTYPES ***************************************************************************/ -extern WRITE8_DEVICE_HANDLER( upd4701_cs_w ); -extern WRITE8_DEVICE_HANDLER( upd4701_xy_w ); -extern WRITE8_DEVICE_HANDLER( upd4701_ul_w ); -extern WRITE8_DEVICE_HANDLER( upd4701_resetx_w ); -extern WRITE8_DEVICE_HANDLER( upd4701_resety_w ); -extern WRITE16_DEVICE_HANDLER( upd4701_x_add ); -extern WRITE16_DEVICE_HANDLER( upd4701_y_add ); -extern WRITE8_DEVICE_HANDLER( upd4701_switches_set ); - -extern READ16_DEVICE_HANDLER( upd4701_d_r ); -extern READ8_DEVICE_HANDLER( upd4701_cf_r ); -extern READ8_DEVICE_HANDLER( upd4701_sf_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_cs_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_xy_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_ul_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_resetx_w ); +extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_resety_w ); +extern DECLARE_WRITE16_DEVICE_HANDLER( upd4701_x_add ); +extern DECLARE_WRITE16_DEVICE_HANDLER( upd4701_y_add ); +extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_switches_set ); + +extern DECLARE_READ16_DEVICE_HANDLER( upd4701_d_r ); +extern DECLARE_READ8_DEVICE_HANDLER( upd4701_cf_r ); +extern DECLARE_READ8_DEVICE_HANDLER( upd4701_sf_r ); #endif /* __UPD4701_H__ */ diff --git a/src/emu/machine/wd17xx.c b/src/emu/machine/wd17xx.c index f40569ec4ec..db50eccc2c6 100644 --- a/src/emu/machine/wd17xx.c +++ b/src/emu/machine/wd17xx.c @@ -1993,10 +1993,10 @@ READ8_DEVICE_HANDLER( wd17xx_r ) switch (offset & 0x03) { - case 0: data = wd17xx_status_r(device, 0); break; - case 1: data = wd17xx_track_r(device, 0); break; - case 2: data = wd17xx_sector_r(device, 0); break; - case 3: data = wd17xx_data_r(device, 0); break; + case 0: data = wd17xx_status_r(device, device->machine().driver_data()->generic_space(), 0); break; + case 1: data = wd17xx_track_r(device, device->machine().driver_data()->generic_space(), 0); break; + case 2: data = wd17xx_sector_r(device, device->machine().driver_data()->generic_space(), 0); break; + case 3: data = wd17xx_data_r(device, device->machine().driver_data()->generic_space(), 0); break; } return data; @@ -2006,10 +2006,10 @@ WRITE8_DEVICE_HANDLER( wd17xx_w ) { switch (offset & 0x03) { - case 0: wd17xx_command_w(device, 0, data); break; - case 1: wd17xx_track_w(device, 0, data); break; - case 2: wd17xx_sector_w(device, 0, data); break; - case 3: wd17xx_data_w(device, 0, data); break; + case 0: wd17xx_command_w(device, device->machine().driver_data()->generic_space(), 0, data); break; + case 1: wd17xx_track_w(device, device->machine().driver_data()->generic_space(), 0, data); break; + case 2: wd17xx_sector_w(device, device->machine().driver_data()->generic_space(), 0, data); break; + case 3: wd17xx_data_w(device, device->machine().driver_data()->generic_space(), 0, data); break; } } diff --git a/src/emu/machine/wd17xx.h b/src/emu/machine/wd17xx.h index 80d85987b80..eb66952d68c 100644 --- a/src/emu/machine/wd17xx.h +++ b/src/emu/machine/wd17xx.h @@ -255,18 +255,18 @@ void wd17xx_set_side(device_t *device, UINT8); /* set side wd179x is accessing void wd17xx_set_pause_time(device_t *device, int usec); /* default is 40 usec if not set */ void wd17xx_index_pulse_callback(device_t *controller, device_t *img, int state); -READ8_DEVICE_HANDLER( wd17xx_status_r ); -READ8_DEVICE_HANDLER( wd17xx_track_r ); -READ8_DEVICE_HANDLER( wd17xx_sector_r ); -READ8_DEVICE_HANDLER( wd17xx_data_r ); - -WRITE8_DEVICE_HANDLER( wd17xx_command_w ); -WRITE8_DEVICE_HANDLER( wd17xx_track_w ); -WRITE8_DEVICE_HANDLER( wd17xx_sector_w ); -WRITE8_DEVICE_HANDLER( wd17xx_data_w ); - -READ8_DEVICE_HANDLER( wd17xx_r ); -WRITE8_DEVICE_HANDLER( wd17xx_w ); +DECLARE_READ8_DEVICE_HANDLER( wd17xx_status_r ); +DECLARE_READ8_DEVICE_HANDLER( wd17xx_track_r ); +DECLARE_READ8_DEVICE_HANDLER( wd17xx_sector_r ); +DECLARE_READ8_DEVICE_HANDLER( wd17xx_data_r ); + +DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_command_w ); +DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_track_w ); +DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_sector_w ); +DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_data_w ); + +DECLARE_READ8_DEVICE_HANDLER( wd17xx_r ); +DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_w ); WRITE_LINE_DEVICE_HANDLER( wd17xx_mr_w ); WRITE_LINE_DEVICE_HANDLER( wd17xx_rdy_w ); diff --git a/src/emu/machine/z80dart.c b/src/emu/machine/z80dart.c index a74a49c8f61..ff90187c642 100644 --- a/src/emu/machine/z80dart.c +++ b/src/emu/machine/z80dart.c @@ -1452,22 +1452,22 @@ WRITE_LINE_DEVICE_HANDLER( z80dart_rxtxcb_w ) { downcast<z80dart_device *>(devic READ8_DEVICE_HANDLER( z80dart_cd_ba_r ) { - return (offset & 2) ? z80dart_c_r(device, offset & 1) : z80dart_d_r(device, offset & 1); + return (offset & 2) ? z80dart_c_r(device, space, offset & 1) : z80dart_d_r(device, space, offset & 1); } WRITE8_DEVICE_HANDLER( z80dart_cd_ba_w ) { if (offset & 2) - z80dart_c_w(device, offset & 1, data); + z80dart_c_w(device, space, offset & 1, data); else - z80dart_d_w(device, offset & 1, data); + z80dart_d_w(device, space, offset & 1, data); } READ8_DEVICE_HANDLER( z80dart_ba_cd_r ) { int channel = BIT(offset, 1); - return (offset & 1) ? z80dart_c_r(device, channel) : z80dart_d_r(device, channel); + return (offset & 1) ? z80dart_c_r(device, space, channel) : z80dart_d_r(device, space, channel); } WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w ) @@ -1475,7 +1475,7 @@ WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w ) int channel = BIT(offset, 1); if (offset & 1) - z80dart_c_w(device, channel, data); + z80dart_c_w(device, space, channel, data); else - z80dart_d_w(device, channel, data); + z80dart_d_w(device, space, channel, data); } diff --git a/src/emu/machine/z80dart.h b/src/emu/machine/z80dart.h index de89be0e6c4..b1e8382834a 100644 --- a/src/emu/machine/z80dart.h +++ b/src/emu/machine/z80dart.h @@ -341,19 +341,19 @@ extern const device_type Z80SIO4; //************************************************************************** // register access -READ8_DEVICE_HANDLER( z80dart_cd_ba_r ); -WRITE8_DEVICE_HANDLER( z80dart_cd_ba_w ); +DECLARE_READ8_DEVICE_HANDLER( z80dart_cd_ba_r ); +DECLARE_WRITE8_DEVICE_HANDLER( z80dart_cd_ba_w ); -READ8_DEVICE_HANDLER( z80dart_ba_cd_r ); -WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w ); +DECLARE_READ8_DEVICE_HANDLER( z80dart_ba_cd_r ); +DECLARE_WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w ); // control register access -WRITE8_DEVICE_HANDLER( z80dart_c_w ); -READ8_DEVICE_HANDLER( z80dart_c_r ); +DECLARE_WRITE8_DEVICE_HANDLER( z80dart_c_w ); +DECLARE_READ8_DEVICE_HANDLER( z80dart_c_r ); // data register access -WRITE8_DEVICE_HANDLER( z80dart_d_w ); -READ8_DEVICE_HANDLER( z80dart_d_r ); +DECLARE_WRITE8_DEVICE_HANDLER( z80dart_d_w ); +DECLARE_READ8_DEVICE_HANDLER( z80dart_d_r ); // serial clocks WRITE_LINE_DEVICE_HANDLER( z80dart_rxca_w ); diff --git a/src/emu/machine/z80dma.h b/src/emu/machine/z80dma.h index 5b50228224f..13c42833101 100644 --- a/src/emu/machine/z80dma.h +++ b/src/emu/machine/z80dma.h @@ -168,8 +168,8 @@ extern const device_type Z80DMA; //************************************************************************** // register access -READ8_DEVICE_HANDLER( z80dma_r ); -WRITE8_DEVICE_HANDLER( z80dma_w ); +DECLARE_READ8_DEVICE_HANDLER( z80dma_r ); +DECLARE_WRITE8_DEVICE_HANDLER( z80dma_w ); // ready WRITE_LINE_DEVICE_HANDLER( z80dma_rdy_w ); diff --git a/src/emu/machine/z80sio.c b/src/emu/machine/z80sio.c index ce72544e1f4..616b0a61aae 100644 --- a/src/emu/machine/z80sio.c +++ b/src/emu/machine/z80sio.c @@ -243,8 +243,8 @@ const UINT8 z80sio_device::k_int_priority[] = inline void z80sio_device::update_interrupt_state() { // if we have a callback, update it with the current state - if (m_irq_cb != NULL) - (*m_irq_cb)(this, (z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE); + if (!m_irq.isnull()) + m_irq((z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE); } @@ -318,17 +318,6 @@ void z80sio_device::device_config_complete() const z80sio_interface *intf = reinterpret_cast<const z80sio_interface *>(static_config()); if (intf != NULL) *static_cast<z80sio_interface *>(this) = *intf; - - // or initialize to defaults if none provided - else - { - m_irq_cb = NULL; - m_dtr_changed_cb = NULL; - m_rts_changed_cb = NULL; - m_break_changed_cb = NULL; - m_transmit_cb = NULL; - m_receive_poll_cb = NULL; - } } @@ -338,6 +327,13 @@ void z80sio_device::device_config_complete() void z80sio_device::device_start() { + m_irq.resolve(m_irq_cb, *this); + m_dtr_changed.resolve(m_dtr_changed_cb, *this); + m_rts_changed.resolve(m_rts_changed_cb, *this); + m_break_changed.resolve(m_break_changed_cb, *this); + m_transmit.resolve(m_transmit_cb, *this); + m_received_poll.resolve(m_received_poll_cb, *this); + m_channel[0].start(this, 0); m_channel[1].start(this, 1); } @@ -566,12 +562,12 @@ void z80sio_device::sio_channel::control_write(UINT8 data) // SIO write register 5 case 5: - if (((old ^ data) & SIO_WR5_DTR) && m_device->m_dtr_changed_cb) - (*m_device->m_dtr_changed_cb)(m_device, m_index, (data & SIO_WR5_DTR) != 0); - if (((old ^ data) & SIO_WR5_SEND_BREAK) && m_device->m_break_changed_cb) - (*m_device->m_break_changed_cb)(m_device, m_index, (data & SIO_WR5_SEND_BREAK) != 0); - if (((old ^ data) & SIO_WR5_RTS) && m_device->m_rts_changed_cb) - (*m_device->m_rts_changed_cb)(m_device, m_index, (data & SIO_WR5_RTS) != 0); + if (((old ^ data) & SIO_WR5_DTR) && !m_device->m_dtr_changed.isnull()) + m_device->m_dtr_changed(m_index, (data & SIO_WR5_DTR) != 0); + if (((old ^ data) & SIO_WR5_SEND_BREAK) && !m_device->m_break_changed.isnull()) + m_device->m_break_changed(m_index, (data & SIO_WR5_SEND_BREAK) != 0); + if (((old ^ data) & SIO_WR5_RTS) && !m_device->m_rts_changed.isnull()) + m_device->m_rts_changed(m_index, (data & SIO_WR5_RTS) != 0); break; } } @@ -741,8 +737,8 @@ void z80sio_device::sio_channel::serial_callback() VPRINTF(("serial_callback(%c): Transmitting %02x\n", 'A' + m_index, m_outbuf)); // actually transmit the character - if (m_device->m_transmit_cb != NULL) - (*m_device->m_transmit_cb)(m_device, m_index, m_outbuf); + if (!m_device->m_transmit.isnull()) + m_device->m_transmit(m_index, m_outbuf, 0xffff); // update the status register m_status[0] |= SIO_RR0_TX_BUFFER_EMPTY; @@ -756,8 +752,8 @@ void z80sio_device::sio_channel::serial_callback() } // ask the polling callback if there is data to receive - if (m_device->m_receive_poll_cb != NULL) - data = (*m_device->m_receive_poll_cb)(m_device, m_index); + if (!m_device->m_received_poll.isnull()) + data = INT16(m_device->m_received_poll(m_index, 0xffff)); // if we have buffered data, pull it if (m_receive_inptr != m_receive_outptr) diff --git a/src/emu/machine/z80sio.h b/src/emu/machine/z80sio.h index 501431d3bf1..bc2f0485997 100644 --- a/src/emu/machine/z80sio.h +++ b/src/emu/machine/z80sio.h @@ -32,12 +32,12 @@ struct z80sio_interface { - void (*m_irq_cb)(device_t *device, int state); - write8_device_func m_dtr_changed_cb; - write8_device_func m_rts_changed_cb; - write8_device_func m_break_changed_cb; - write8_device_func m_transmit_cb; - int (*m_receive_poll_cb)(device_t *device, int channel); + devcb_write_line m_irq_cb; + devcb_write8 m_dtr_changed_cb; + devcb_write8 m_rts_changed_cb; + devcb_write8 m_break_changed_cb; + devcb_write16 m_transmit_cb; + devcb_read16 m_received_poll_cb; }; @@ -140,6 +140,14 @@ private: sio_channel m_channel[2]; // 2 channels UINT8 m_int_state[8]; // interrupt states + // callbacks + devcb_resolved_write_line m_irq; + devcb_resolved_write8 m_dtr_changed; + devcb_resolved_write8 m_rts_changed; + devcb_resolved_write8 m_break_changed; + devcb_resolved_write16 m_transmit; + devcb_resolved_read16 m_received_poll; + static const UINT8 k_int_priority[]; }; diff --git a/src/emu/machine/z80sti.h b/src/emu/machine/z80sti.h index e316949c038..8d8f369f976 100644 --- a/src/emu/machine/z80sti.h +++ b/src/emu/machine/z80sti.h @@ -183,8 +183,8 @@ extern const device_type Z80STI; //************************************************************************** // register access -READ8_DEVICE_HANDLER( z80sti_r ); -WRITE8_DEVICE_HANDLER( z80sti_w ); +DECLARE_READ8_DEVICE_HANDLER( z80sti_r ); +DECLARE_WRITE8_DEVICE_HANDLER( z80sti_w ); // receive clock WRITE_LINE_DEVICE_HANDLER( z80sti_rc_w ); diff --git a/src/emu/memory.c b/src/emu/memory.c index 837b67ddd2e..669c246500f 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -1998,29 +1998,6 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w } break; - case AMH_LEGACY_DEVICE_HANDLER: - target_device = device().siblingdevice(data.m_tag); - if (target_device == NULL) - fatalerror("Attempted to map a non-existent device '%s' in space %s of device '%s'\n", data.m_tag.cstr(), m_name, m_device.tag()); - - if (readorwrite == ROW_READ) - switch (data.m_bits) - { - case 8: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice8, data.m_name, data.m_mask); break; - case 16: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice16, data.m_name, data.m_mask); break; - case 32: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice32, data.m_name, data.m_mask); break; - case 64: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice64, data.m_name, data.m_mask); break; - } - else - switch (data.m_bits) - { - case 8: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice8, data.m_name, data.m_mask); break; - case 16: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice16, data.m_name, data.m_mask); break; - case 32: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice32, data.m_name, data.m_mask); break; - case 64: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice64, data.m_name, data.m_mask); break; - } - break; - case AMH_PORT: install_readwrite_port(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, (readorwrite == ROW_READ) ? data.m_tag.cstr() : NULL, diff --git a/src/emu/memory.h b/src/emu/memory.h index cb3f75f6561..6fc39f47b22 100644 --- a/src/emu/memory.h +++ b/src/emu/memory.h @@ -122,14 +122,14 @@ typedef UINT64 (*read64_space_func) (ATTR_UNUSED address_space *space, ATTR_UNUS typedef void (*write64_space_func)(ATTR_UNUSED address_space *space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask); // legacy device read/write handlers -typedef UINT8 (*read8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset); -typedef void (*write8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data); -typedef UINT16 (*read16_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask); -typedef void (*write16_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask); -typedef UINT32 (*read32_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask); -typedef void (*write32_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask); -typedef UINT64 (*read64_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask); -typedef void (*write64_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask); +typedef UINT8 (*read8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 mem_mask); +typedef void (*write8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask); +typedef UINT16 (*read16_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask); +typedef void (*write16_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask); +typedef UINT32 (*read32_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask); +typedef void (*write32_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask); +typedef UINT64 (*read64_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask); +typedef void (*write64_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask); // struct with function pointers for accessors; use is generally discouraged unless necessary @@ -887,14 +887,23 @@ private: // device read/write handler function macros -#define READ8_DEVICE_HANDLER(name) UINT8 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset) -#define WRITE8_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data) -#define READ16_DEVICE_HANDLER(name) UINT16 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask) -#define WRITE16_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask) -#define READ32_DEVICE_HANDLER(name) UINT32 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask) -#define WRITE32_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask) -#define READ64_DEVICE_HANDLER(name) UINT64 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask) -#define WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask) +#define READ8_DEVICE_HANDLER(name) UINT8 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 mem_mask) +#define WRITE8_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask) +#define READ16_DEVICE_HANDLER(name) UINT16 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask) +#define WRITE16_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask) +#define READ32_DEVICE_HANDLER(name) UINT32 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask) +#define WRITE32_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask) +#define READ64_DEVICE_HANDLER(name) UINT64 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask) +#define WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask) + +#define DECLARE_READ8_DEVICE_HANDLER(name) UINT8 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 mem_mask = 0xff) +#define DECLARE_WRITE8_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask = 0xff) +#define DECLARE_READ16_DEVICE_HANDLER(name) UINT16 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask = 0xffff) +#define DECLARE_WRITE16_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask = 0xffff) +#define DECLARE_READ32_DEVICE_HANDLER(name) UINT32 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask = 0xffffffff) +#define DECLARE_WRITE32_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask = 0xffffffff) +#define DECLARE_READ64_DEVICE_HANDLER(name) UINT64 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask = U64(0xffffffffffffffff)) +#define DECLARE_WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask = U64(0xffffffffffffffff)) // space read/write handler function macros diff --git a/src/emu/sound/2151intf.c b/src/emu/sound/2151intf.c index ee9fee15d80..13e563ccb6b 100644 --- a/src/emu/sound/2151intf.c +++ b/src/emu/sound/2151intf.c @@ -112,10 +112,10 @@ WRITE8_DEVICE_HANDLER( ym2151_w ) } -READ8_DEVICE_HANDLER( ym2151_status_port_r ) { return ym2151_r(device, 1); } +READ8_DEVICE_HANDLER( ym2151_status_port_r ) { return ym2151_r(device, space, 1); } -WRITE8_DEVICE_HANDLER( ym2151_register_port_w ) { ym2151_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym2151_data_port_w ) { ym2151_w(device, 1, data); } +WRITE8_DEVICE_HANDLER( ym2151_register_port_w ) { ym2151_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym2151_data_port_w ) { ym2151_w(device, space, 1, data); } const device_type YM2151 = &device_creator<ym2151_device>; diff --git a/src/emu/sound/2151intf.h b/src/emu/sound/2151intf.h index 840269b0faa..12ee45125dc 100644 --- a/src/emu/sound/2151intf.h +++ b/src/emu/sound/2151intf.h @@ -11,12 +11,12 @@ struct ym2151_interface devcb_write8 portwritehandler; }; -READ8_DEVICE_HANDLER( ym2151_r ); -WRITE8_DEVICE_HANDLER( ym2151_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2151_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2151_w ); -READ8_DEVICE_HANDLER( ym2151_status_port_r ); -WRITE8_DEVICE_HANDLER( ym2151_register_port_w ); -WRITE8_DEVICE_HANDLER( ym2151_data_port_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2151_status_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2151_register_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2151_data_port_w ); class ym2151_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/2203intf.c b/src/emu/sound/2203intf.c index 34767229718..584035ccb8e 100644 --- a/src/emu/sound/2203intf.c +++ b/src/emu/sound/2203intf.c @@ -175,10 +175,10 @@ WRITE8_DEVICE_HANDLER( ym2203_w ) } -READ8_DEVICE_HANDLER( ym2203_status_port_r ) { return ym2203_r(device, 0); } -READ8_DEVICE_HANDLER( ym2203_read_port_r ) { return ym2203_r(device, 1); } -WRITE8_DEVICE_HANDLER( ym2203_control_port_w ) { ym2203_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym2203_write_port_w ) { ym2203_w(device, 1, data); } +READ8_DEVICE_HANDLER( ym2203_status_port_r ) { return ym2203_r(device, space, 0); } +READ8_DEVICE_HANDLER( ym2203_read_port_r ) { return ym2203_r(device, space, 1); } +WRITE8_DEVICE_HANDLER( ym2203_control_port_w ) { ym2203_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym2203_write_port_w ) { ym2203_w(device, space, 1, data); } const device_type YM2203 = &device_creator<ym2203_device>; diff --git a/src/emu/sound/2203intf.h b/src/emu/sound/2203intf.h index 81f5aea9b98..12140727db2 100644 --- a/src/emu/sound/2203intf.h +++ b/src/emu/sound/2203intf.h @@ -15,13 +15,13 @@ struct ym2203_interface devcb_write_line irqhandler; }; -READ8_DEVICE_HANDLER( ym2203_r ); -WRITE8_DEVICE_HANDLER( ym2203_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2203_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2203_w ); -READ8_DEVICE_HANDLER( ym2203_status_port_r ); -READ8_DEVICE_HANDLER( ym2203_read_port_r ); -WRITE8_DEVICE_HANDLER( ym2203_control_port_w ); -WRITE8_DEVICE_HANDLER( ym2203_write_port_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2203_status_port_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2203_read_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2203_control_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2203_write_port_w ); class ym2203_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/2413intf.c b/src/emu/sound/2413intf.c index 24a5051c3c0..0c7ec87d84b 100644 --- a/src/emu/sound/2413intf.c +++ b/src/emu/sound/2413intf.c @@ -111,8 +111,8 @@ WRITE8_DEVICE_HANDLER( ym2413_w ) ym2413_write(info->chip, offset & 1, data); } -WRITE8_DEVICE_HANDLER( ym2413_register_port_w ) { ym2413_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym2413_data_port_w ) { ym2413_w(device, 1, data); } +WRITE8_DEVICE_HANDLER( ym2413_register_port_w ) { ym2413_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym2413_data_port_w ) { ym2413_w(device, space, 1, data); } const device_type YM2413 = &device_creator<ym2413_device>; diff --git a/src/emu/sound/2413intf.h b/src/emu/sound/2413intf.h index a6d7aa9180c..a05e0ee48c9 100644 --- a/src/emu/sound/2413intf.h +++ b/src/emu/sound/2413intf.h @@ -5,10 +5,10 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( ym2413_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2413_w ); -WRITE8_DEVICE_HANDLER( ym2413_register_port_w ); -WRITE8_DEVICE_HANDLER( ym2413_data_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2413_register_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2413_data_port_w ); class ym2413_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/2608intf.c b/src/emu/sound/2608intf.c index 5dfe6f470ea..d51cf322919 100644 --- a/src/emu/sound/2608intf.c +++ b/src/emu/sound/2608intf.c @@ -194,14 +194,14 @@ WRITE8_DEVICE_HANDLER( ym2608_w ) ym2608_write(info->chip, offset & 3, data); } -READ8_DEVICE_HANDLER( ym2608_read_port_r ) { return ym2608_r(device, 1); } -READ8_DEVICE_HANDLER( ym2608_status_port_a_r ) { return ym2608_r(device, 0); } -READ8_DEVICE_HANDLER( ym2608_status_port_b_r ) { return ym2608_r(device, 2); } - -WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w ) { ym2608_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w ) { ym2608_w(device, 2, data); } -WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w ) { ym2608_w(device, 1, data); } -WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w ) { ym2608_w(device, 3, data); } +READ8_DEVICE_HANDLER( ym2608_read_port_r ) { return ym2608_r(device, space, 1); } +READ8_DEVICE_HANDLER( ym2608_status_port_a_r ) { return ym2608_r(device, space, 0); } +READ8_DEVICE_HANDLER( ym2608_status_port_b_r ) { return ym2608_r(device, space, 2); } + +WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w ) { ym2608_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w ) { ym2608_w(device, space, 2, data); } +WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w ) { ym2608_w(device, space, 1, data); } +WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w ) { ym2608_w(device, space, 3, data); } const device_type YM2608 = &device_creator<ym2608_device>; diff --git a/src/emu/sound/2608intf.h b/src/emu/sound/2608intf.h index 597ca3c168a..91571ce2a8e 100644 --- a/src/emu/sound/2608intf.h +++ b/src/emu/sound/2608intf.h @@ -16,17 +16,17 @@ struct ym2608_interface void ( *handler )( device_t *device, int irq ); /* IRQ handler for the YM2608 */ }; -READ8_DEVICE_HANDLER( ym2608_r ); -WRITE8_DEVICE_HANDLER( ym2608_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2608_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2608_w ); -READ8_DEVICE_HANDLER( ym2608_read_port_r ); -READ8_DEVICE_HANDLER( ym2608_status_port_a_r ); -READ8_DEVICE_HANDLER( ym2608_status_port_b_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2608_read_port_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2608_status_port_a_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2608_status_port_b_r ); -WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w ); -WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w ); -WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w ); -WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w ); class ym2608_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/2610intf.c b/src/emu/sound/2610intf.c index bef3d200eea..aed83966303 100644 --- a/src/emu/sound/2610intf.c +++ b/src/emu/sound/2610intf.c @@ -207,14 +207,14 @@ WRITE8_DEVICE_HANDLER( ym2610_w ) } -READ8_DEVICE_HANDLER( ym2610_status_port_a_r ) { return ym2610_r(device, 0); } -READ8_DEVICE_HANDLER( ym2610_status_port_b_r ) { return ym2610_r(device, 2); } -READ8_DEVICE_HANDLER( ym2610_read_port_r ) { return ym2610_r(device, 1); } - -WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ) { ym2610_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ) { ym2610_w(device, 2, data); } -WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ) { ym2610_w(device, 1, data); } -WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ) { ym2610_w(device, 3, data); } +READ8_DEVICE_HANDLER( ym2610_status_port_a_r ) { return ym2610_r(device, space, 0); } +READ8_DEVICE_HANDLER( ym2610_status_port_b_r ) { return ym2610_r(device, space, 2); } +READ8_DEVICE_HANDLER( ym2610_read_port_r ) { return ym2610_r(device, space, 1); } + +WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ) { ym2610_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ) { ym2610_w(device, space, 2, data); } +WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ) { ym2610_w(device, space, 1, data); } +WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ) { ym2610_w(device, space, 3, data); } const device_type YM2610 = &device_creator<ym2610_device>; diff --git a/src/emu/sound/2610intf.h b/src/emu/sound/2610intf.h index eb66606e792..0a584a26fbc 100644 --- a/src/emu/sound/2610intf.h +++ b/src/emu/sound/2610intf.h @@ -14,17 +14,17 @@ struct ym2610_interface void ( *handler )( device_t *device, int irq ); /* IRQ handler for the YM2610 */ }; -READ8_DEVICE_HANDLER( ym2610_r ); -WRITE8_DEVICE_HANDLER( ym2610_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2610_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2610_w ); -READ8_DEVICE_HANDLER( ym2610_status_port_a_r ); -READ8_DEVICE_HANDLER( ym2610_status_port_b_r ); -READ8_DEVICE_HANDLER( ym2610_read_port_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2610_status_port_a_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2610_status_port_b_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2610_read_port_r ); -WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ); -WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ); -WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ); -WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ); class ym2610_device : public device_t, diff --git a/src/emu/sound/2612intf.c b/src/emu/sound/2612intf.c index c796403c142..55afd66f4f0 100644 --- a/src/emu/sound/2612intf.c +++ b/src/emu/sound/2612intf.c @@ -146,15 +146,15 @@ WRITE8_DEVICE_HANDLER( ym2612_w ) } -READ8_DEVICE_HANDLER( ym2612_status_port_a_r ) { return ym2612_r(device, 0); } -READ8_DEVICE_HANDLER( ym2612_status_port_b_r ) { return ym2612_r(device, 2); } -READ8_DEVICE_HANDLER( ym2612_data_port_a_r ) { return ym2612_r(device, 1); } -READ8_DEVICE_HANDLER( ym2612_data_port_b_r ) { return ym2612_r(device, 3); } - -WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w ) { ym2612_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w ) { ym2612_w(device, 2, data); } -WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w ) { ym2612_w(device, 1, data); } -WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w ) { ym2612_w(device, 3, data); } +READ8_DEVICE_HANDLER( ym2612_status_port_a_r ) { return ym2612_r(device, space, 0); } +READ8_DEVICE_HANDLER( ym2612_status_port_b_r ) { return ym2612_r(device, space, 2); } +READ8_DEVICE_HANDLER( ym2612_data_port_a_r ) { return ym2612_r(device, space, 1); } +READ8_DEVICE_HANDLER( ym2612_data_port_b_r ) { return ym2612_r(device, space, 3); } + +WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w ) { ym2612_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w ) { ym2612_w(device, space, 2, data); } +WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w ) { ym2612_w(device, space, 1, data); } +WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w ) { ym2612_w(device, space, 3, data); } const device_type YM2612 = &device_creator<ym2612_device>; diff --git a/src/emu/sound/2612intf.h b/src/emu/sound/2612intf.h index 902ed020dea..b74e4af0a3f 100644 --- a/src/emu/sound/2612intf.h +++ b/src/emu/sound/2612intf.h @@ -12,18 +12,18 @@ struct ym2612_interface void (*handler)(device_t *device, int irq); }; -READ8_DEVICE_HANDLER( ym2612_r ); -WRITE8_DEVICE_HANDLER( ym2612_w ); - -READ8_DEVICE_HANDLER( ym2612_status_port_a_r ); -READ8_DEVICE_HANDLER( ym2612_status_port_b_r ); -READ8_DEVICE_HANDLER( ym2612_data_port_a_r ); -READ8_DEVICE_HANDLER( ym2612_data_port_b_r ); - -WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w ); -WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w ); -WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w ); -WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w ); +DECLARE_READ8_DEVICE_HANDLER( ym2612_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2612_w ); + +DECLARE_READ8_DEVICE_HANDLER( ym2612_status_port_a_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2612_status_port_b_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2612_data_port_a_r ); +DECLARE_READ8_DEVICE_HANDLER( ym2612_data_port_b_r ); + +DECLARE_WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w ); class ym2612_device : public device_t, diff --git a/src/emu/sound/262intf.c b/src/emu/sound/262intf.c index 0233f7c5577..b9ef593c123 100644 --- a/src/emu/sound/262intf.c +++ b/src/emu/sound/262intf.c @@ -124,11 +124,11 @@ WRITE8_DEVICE_HANDLER( ymf262_w ) ymf262_write(info->chip, offset & 3, data); } -READ8_DEVICE_HANDLER ( ymf262_status_r ) { return ymf262_r(device, 0); } -WRITE8_DEVICE_HANDLER( ymf262_register_a_w ) { ymf262_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ymf262_register_b_w ) { ymf262_w(device, 2, data); } -WRITE8_DEVICE_HANDLER( ymf262_data_a_w ) { ymf262_w(device, 1, data); } -WRITE8_DEVICE_HANDLER( ymf262_data_b_w ) { ymf262_w(device, 3, data); } +READ8_DEVICE_HANDLER ( ymf262_status_r ) { return ymf262_r(device, space, 0); } +WRITE8_DEVICE_HANDLER( ymf262_register_a_w ) { ymf262_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ymf262_register_b_w ) { ymf262_w(device, space, 2, data); } +WRITE8_DEVICE_HANDLER( ymf262_data_a_w ) { ymf262_w(device, space, 1, data); } +WRITE8_DEVICE_HANDLER( ymf262_data_b_w ) { ymf262_w(device, space, 3, data); } const device_type YMF262 = &device_creator<ymf262_device>; diff --git a/src/emu/sound/262intf.h b/src/emu/sound/262intf.h index 4dfd374e28f..16eed55142f 100644 --- a/src/emu/sound/262intf.h +++ b/src/emu/sound/262intf.h @@ -12,14 +12,14 @@ struct ymf262_interface }; -READ8_DEVICE_HANDLER( ymf262_r ); -WRITE8_DEVICE_HANDLER( ymf262_w ); - -READ8_DEVICE_HANDLER ( ymf262_status_r ); -WRITE8_DEVICE_HANDLER( ymf262_register_a_w ); -WRITE8_DEVICE_HANDLER( ymf262_register_b_w ); -WRITE8_DEVICE_HANDLER( ymf262_data_a_w ); -WRITE8_DEVICE_HANDLER( ymf262_data_b_w ); +DECLARE_READ8_DEVICE_HANDLER( ymf262_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf262_w ); + +DECLARE_READ8_DEVICE_HANDLER ( ymf262_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf262_register_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf262_register_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf262_data_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf262_data_b_w ); class ymf262_device : public device_t, diff --git a/src/emu/sound/3526intf.c b/src/emu/sound/3526intf.c index f0b50aee8e9..4a905b0b086 100644 --- a/src/emu/sound/3526intf.c +++ b/src/emu/sound/3526intf.c @@ -138,10 +138,10 @@ WRITE8_DEVICE_HANDLER( ym3526_w ) ym3526_write(info->chip, offset & 1, data); } -READ8_DEVICE_HANDLER( ym3526_status_port_r ) { return ym3526_r(device, 0); } -READ8_DEVICE_HANDLER( ym3526_read_port_r ) { return ym3526_r(device, 1); } -WRITE8_DEVICE_HANDLER( ym3526_control_port_w ) { ym3526_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym3526_write_port_w ) { ym3526_w(device, 1, data); } +READ8_DEVICE_HANDLER( ym3526_status_port_r ) { return ym3526_r(device, space, 0); } +READ8_DEVICE_HANDLER( ym3526_read_port_r ) { return ym3526_r(device, space, 1); } +WRITE8_DEVICE_HANDLER( ym3526_control_port_w ) { ym3526_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym3526_write_port_w ) { ym3526_w(device, space, 1, data); } const device_type YM3526 = &device_creator<ym3526_device>; diff --git a/src/emu/sound/3526intf.h b/src/emu/sound/3526intf.h index f75e35c0c48..b828000d4eb 100644 --- a/src/emu/sound/3526intf.h +++ b/src/emu/sound/3526intf.h @@ -10,13 +10,13 @@ struct ym3526_interface devcb_write_line out_int_func; }; -READ8_DEVICE_HANDLER( ym3526_r ); -WRITE8_DEVICE_HANDLER( ym3526_w ); +DECLARE_READ8_DEVICE_HANDLER( ym3526_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym3526_w ); -READ8_DEVICE_HANDLER( ym3526_status_port_r ); -READ8_DEVICE_HANDLER( ym3526_read_port_r ); -WRITE8_DEVICE_HANDLER( ym3526_control_port_w ); -WRITE8_DEVICE_HANDLER( ym3526_write_port_w ); +DECLARE_READ8_DEVICE_HANDLER( ym3526_status_port_r ); +DECLARE_READ8_DEVICE_HANDLER( ym3526_read_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym3526_control_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym3526_write_port_w ); class ym3526_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/3812intf.c b/src/emu/sound/3812intf.c index 53401de42d5..5a484fa5637 100644 --- a/src/emu/sound/3812intf.c +++ b/src/emu/sound/3812intf.c @@ -134,10 +134,10 @@ WRITE8_DEVICE_HANDLER( ym3812_w ) ym3812_write(info->chip, offset & 1, data); } -READ8_DEVICE_HANDLER( ym3812_status_port_r ) { return ym3812_r(device, 0); } -READ8_DEVICE_HANDLER( ym3812_read_port_r ) { return ym3812_r(device, 1); } -WRITE8_DEVICE_HANDLER( ym3812_control_port_w ) { ym3812_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( ym3812_write_port_w ) { ym3812_w(device, 1, data); } +READ8_DEVICE_HANDLER( ym3812_status_port_r ) { return ym3812_r(device, space, 0); } +READ8_DEVICE_HANDLER( ym3812_read_port_r ) { return ym3812_r(device, space, 1); } +WRITE8_DEVICE_HANDLER( ym3812_control_port_w ) { ym3812_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( ym3812_write_port_w ) { ym3812_w(device, space, 1, data); } const device_type YM3812 = &device_creator<ym3812_device>; diff --git a/src/emu/sound/3812intf.h b/src/emu/sound/3812intf.h index dfa78b933fd..b7bc9f3b51f 100644 --- a/src/emu/sound/3812intf.h +++ b/src/emu/sound/3812intf.h @@ -10,13 +10,13 @@ struct ym3812_interface void (*handler)(device_t *device, int linestate); }; -READ8_DEVICE_HANDLER( ym3812_r ); -WRITE8_DEVICE_HANDLER( ym3812_w ); +DECLARE_READ8_DEVICE_HANDLER( ym3812_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym3812_w ); -READ8_DEVICE_HANDLER( ym3812_status_port_r ); -READ8_DEVICE_HANDLER( ym3812_read_port_r ); -WRITE8_DEVICE_HANDLER( ym3812_control_port_w ); -WRITE8_DEVICE_HANDLER( ym3812_write_port_w ); +DECLARE_READ8_DEVICE_HANDLER( ym3812_status_port_r ); +DECLARE_READ8_DEVICE_HANDLER( ym3812_read_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ym3812_control_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ym3812_write_port_w ); class ym3812_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/8950intf.c b/src/emu/sound/8950intf.c index e64b38030ed..738ed362621 100644 --- a/src/emu/sound/8950intf.c +++ b/src/emu/sound/8950intf.c @@ -28,7 +28,7 @@ struct y8950_state emu_timer * timer[2]; void * chip; const y8950_interface *intf; - device_t *device; + y8950_device *device; }; @@ -43,7 +43,7 @@ INLINE y8950_state *get_safe_token(device_t *device) static void IRQHandler(void *param,int irq) { y8950_state *info = (y8950_state *)param; - if (info->intf->handler) (info->intf->handler)(info->device, irq ? ASSERT_LINE : CLEAR_LINE); + if (!info->device->m_handler.isnull()) info->device->m_handler(irq ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( timer_callback_0 ) { @@ -72,31 +72,31 @@ static void TimerHandler(void *param,int c,attotime period) static unsigned char Y8950PortHandler_r(void *param) { y8950_state *info = (y8950_state *)param; - if (info->intf->portread) - return info->intf->portread(info->device,0); + if (!info->device->m_portread.isnull()) + return info->device->m_portread(0); return 0; } static void Y8950PortHandler_w(void *param,unsigned char data) { y8950_state *info = (y8950_state *)param; - if (info->intf->portwrite) - info->intf->portwrite(info->device,0,data); + if (!info->device->m_portwrite.isnull()) + info->device->m_portwrite(0,data); } static unsigned char Y8950KeyboardHandler_r(void *param) { y8950_state *info = (y8950_state *)param; - if (info->intf->keyboardread) - return info->intf->keyboardread(info->device,0); + if (!info->device->m_keyboardread.isnull()) + return info->device->m_keyboardread(0); return 0; } static void Y8950KeyboardHandler_w(void *param,unsigned char data) { y8950_state *info = (y8950_state *)param; - if (info->intf->keyboardwrite) - info->intf->keyboardwrite(info->device,0,data); + if (!info->device->m_keyboardwrite.isnull()) + info->device->m_keyboardwrite(0,data); } static STREAM_UPDATE( y8950_stream_update ) @@ -114,12 +114,12 @@ static void _stream_update(void *param, int interval) static DEVICE_START( y8950 ) { - static const y8950_interface dummy = { 0 }; + static const y8950_interface dummy = { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }; y8950_state *info = get_safe_token(device); int rate = device->clock()/72; info->intf = device->static_config() ? (const y8950_interface *)device->static_config() : &dummy; - info->device = device; + info->device = downcast<y8950_device *>(device); /* stream system initialize */ info->chip = y8950_init(device,device->clock(),rate); @@ -167,10 +167,10 @@ WRITE8_DEVICE_HANDLER( y8950_w ) y8950_write(info->chip, offset & 1, data); } -READ8_DEVICE_HANDLER( y8950_status_port_r ) { return y8950_r(device, 0); } -READ8_DEVICE_HANDLER( y8950_read_port_r ) { return y8950_r(device, 1); } -WRITE8_DEVICE_HANDLER( y8950_control_port_w ) { y8950_w(device, 0, data); } -WRITE8_DEVICE_HANDLER( y8950_write_port_w ) { y8950_w(device, 1, data); } +READ8_DEVICE_HANDLER( y8950_status_port_r ) { return y8950_r(device, space, 0); } +READ8_DEVICE_HANDLER( y8950_read_port_r ) { return y8950_r(device, space, 1); } +WRITE8_DEVICE_HANDLER( y8950_control_port_w ) { y8950_w(device, space, 0, data); } +WRITE8_DEVICE_HANDLER( y8950_write_port_w ) { y8950_w(device, space, 1, data); } const device_type Y8950 = &device_creator<y8950_device>; @@ -198,6 +198,16 @@ void y8950_device::device_config_complete() void y8950_device::device_start() { + const y8950_interface *intf = (const y8950_interface *)static_config(); + if (intf != NULL) + { + m_handler.resolve(intf->handler_cb, *this); + m_keyboardread.resolve(intf->keyboardread_cb, *this); + m_keyboardwrite.resolve(intf->keyboardwrite_cb, *this); + m_portread.resolve(intf->portread_cb, *this); + m_portwrite.resolve(intf->portwrite_cb, *this); + } + DEVICE_START_NAME( y8950 )(this); } diff --git a/src/emu/sound/8950intf.h b/src/emu/sound/8950intf.h index e8de9ca087c..803cc33c782 100644 --- a/src/emu/sound/8950intf.h +++ b/src/emu/sound/8950intf.h @@ -7,21 +7,20 @@ struct y8950_interface { - void (*handler)(device_t *device, int linestate); - - read8_device_func keyboardread; - write8_device_func keyboardwrite; - read8_device_func portread; - write8_device_func portwrite; + devcb_write_line handler_cb; + devcb_read8 keyboardread_cb; + devcb_write8 keyboardwrite_cb; + devcb_read8 portread_cb; + devcb_write8 portwrite_cb; }; -READ8_DEVICE_HANDLER( y8950_r ); -WRITE8_DEVICE_HANDLER( y8950_w ); +DECLARE_READ8_DEVICE_HANDLER( y8950_r ); +DECLARE_WRITE8_DEVICE_HANDLER( y8950_w ); -READ8_DEVICE_HANDLER( y8950_status_port_r ); -READ8_DEVICE_HANDLER( y8950_read_port_r ); -WRITE8_DEVICE_HANDLER( y8950_control_port_w ); -WRITE8_DEVICE_HANDLER( y8950_write_port_w ); +DECLARE_READ8_DEVICE_HANDLER( y8950_status_port_r ); +DECLARE_READ8_DEVICE_HANDLER( y8950_read_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( y8950_control_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( y8950_write_port_w ); class y8950_device : public device_t, public device_sound_interface @@ -44,6 +43,12 @@ protected: private: // internal state void *m_token; +public: + devcb_resolved_write_line m_handler; + devcb_resolved_read8 m_keyboardread; + devcb_resolved_write8 m_keyboardwrite; + devcb_resolved_read8 m_portread; + devcb_resolved_write8 m_portwrite; }; extern const device_type Y8950; diff --git a/src/emu/sound/aica.c b/src/emu/sound/aica.c index 94e84cf476e..81894065b6b 100644 --- a/src/emu/sound/aica.c +++ b/src/emu/sound/aica.c @@ -681,7 +681,7 @@ static void AICA_UpdateSlotReg(aica_state *AICA,int s,int r) } } -static void AICA_UpdateReg(aica_state *AICA, int reg) +static void AICA_UpdateReg(aica_state *AICA, address_space &space, int reg) { switch(reg&0xff) { @@ -702,7 +702,7 @@ static void AICA_UpdateReg(aica_state *AICA, int reg) break; case 0x8: case 0x9: - aica_midi_in(AICA->device, 0, AICA->udata.data[0x8/2]&0xff, 0xffff); + aica_midi_in(AICA->device, space, 0, AICA->udata.data[0x8/2]&0xff, 0xffff); break; case 0x12: case 0x13: @@ -823,7 +823,7 @@ static void AICA_UpdateSlotRegR(aica_state *AICA, int slot,int reg) } -static void AICA_UpdateRegR(aica_state *AICA, int reg) +static void AICA_UpdateRegR(aica_state *AICA, address_space &space, int reg) { switch(reg&0xff) { @@ -894,7 +894,7 @@ static void AICA_UpdateRegR(aica_state *AICA, int reg) } } -static void AICA_w16(aica_state *AICA,unsigned int addr,unsigned short val) +static void AICA_w16(aica_state *AICA,address_space &space,unsigned int addr,unsigned short val) { addr&=0xffff; if(addr<0x2000) @@ -919,7 +919,7 @@ static void AICA_w16(aica_state *AICA,unsigned int addr,unsigned short val) { // printf("%x to AICA global @ %x\n", val, addr & 0xff); *((unsigned short *) (AICA->udata.datab+((addr&0xff)))) = val; - AICA_UpdateReg(AICA, addr&0xff); + AICA_UpdateReg(AICA, space, addr&0xff); } else if (addr == 0x2d00) { @@ -954,7 +954,7 @@ static void AICA_w16(aica_state *AICA,unsigned int addr,unsigned short val) } } -static unsigned short AICA_r16(aica_state *AICA, unsigned int addr) +static unsigned short AICA_r16(aica_state *AICA, address_space &space, unsigned int addr) { unsigned short v=0; addr&=0xffff; @@ -973,7 +973,7 @@ static unsigned short AICA_r16(aica_state *AICA, unsigned int addr) } else if (addr < 0x28be) { - AICA_UpdateRegR(AICA, addr&0xff); + AICA_UpdateRegR(AICA, space, addr&0xff); v= *((unsigned short *) (AICA->udata.datab+((addr&0xff)))); if((addr&0xfffe)==0x2810) AICA->udata.data[0x10/2] &= 0x7FFF; // reset LP on read } @@ -1323,7 +1323,7 @@ void aica_set_ram_base(device_t *device, void *base, int size) READ16_DEVICE_HANDLER( aica_r ) { aica_state *AICA = get_safe_token(device); - return AICA_r16(AICA, offset*2); + return AICA_r16(AICA, space,offset*2); } WRITE16_DEVICE_HANDLER( aica_w ) @@ -1331,9 +1331,9 @@ WRITE16_DEVICE_HANDLER( aica_w ) aica_state *AICA = get_safe_token(device); UINT16 tmp; - tmp = AICA_r16(AICA, offset*2); + tmp = AICA_r16(AICA, space, offset*2); COMBINE_DATA(&tmp); - AICA_w16(AICA, offset*2, tmp); + AICA_w16(AICA, space, offset*2, tmp); } WRITE16_DEVICE_HANDLER( aica_midi_in ) diff --git a/src/emu/sound/aica.h b/src/emu/sound/aica.h index 6d450d5b456..87a4b30dfea 100644 --- a/src/emu/sound/aica.h +++ b/src/emu/sound/aica.h @@ -18,12 +18,12 @@ struct aica_interface void aica_set_ram_base(device_t *device, void *base, int size); // AICA register access -READ16_DEVICE_HANDLER( aica_r ); -WRITE16_DEVICE_HANDLER( aica_w ); +DECLARE_READ16_DEVICE_HANDLER( aica_r ); +DECLARE_WRITE16_DEVICE_HANDLER( aica_w ); // MIDI I/O access -WRITE16_DEVICE_HANDLER( aica_midi_in ); -READ16_DEVICE_HANDLER( aica_midi_out_r ); +DECLARE_WRITE16_DEVICE_HANDLER( aica_midi_in ); +DECLARE_READ16_DEVICE_HANDLER( aica_midi_out_r ); class aica_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/astrocde.h b/src/emu/sound/astrocde.h index ac3ddab5ec9..8a954830761 100644 --- a/src/emu/sound/astrocde.h +++ b/src/emu/sound/astrocde.h @@ -5,7 +5,7 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( astrocade_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( astrocade_sound_w ); class astrocade_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c index 3770aef86d3..752cc08b188 100644 --- a/src/emu/sound/ay8910.c +++ b/src/emu/sound/ay8910.c @@ -1000,7 +1000,7 @@ WRITE8_DEVICE_HANDLER( ay8910_address_w ) #if ENABLE_REGISTER_TEST return; #else - ay8910_data_address_w(device, 1, data); + ay8910_data_address_w(device, space, 1, data); #endif } @@ -1009,7 +1009,7 @@ WRITE8_DEVICE_HANDLER( ay8910_data_w ) #if ENABLE_REGISTER_TEST return; #else - ay8910_data_address_w(device, 0, data); + ay8910_data_address_w(device, space, 0, data); #endif } @@ -1023,15 +1023,15 @@ static const int mapping8914to8910[16] = { 0, 2, 4, 11, 1, 3, 5, 12, 7, 6, 13, 8 READ8_DEVICE_HANDLER( ay8914_r ) { UINT16 rv; - ay8910_address_w(device, 0, mapping8914to8910[offset & 0xff]); - rv = (UINT16)ay8910_r(device, 0); + ay8910_address_w(device, space, 0, mapping8914to8910[offset & 0xff]); + rv = (UINT16)ay8910_r(device, space, 0); return rv; } WRITE8_DEVICE_HANDLER( ay8914_w ) { - ay8910_address_w(device, 0, mapping8914to8910[offset & 0xff]); - ay8910_data_w(device, 0, data & 0xff); + ay8910_address_w(device, space, 0, mapping8914to8910[offset & 0xff]); + ay8910_data_w(device, space, 0, data & 0xff); } diff --git a/src/emu/sound/ay8910.h b/src/emu/sound/ay8910.h index e84421c62df..f2e82ca8991 100644 --- a/src/emu/sound/ay8910.h +++ b/src/emu/sound/ay8910.h @@ -90,22 +90,22 @@ struct ay8910_interface void ay8910_set_volume(device_t *device,int channel,int volume); -READ8_DEVICE_HANDLER( ay8910_r ); -WRITE8_DEVICE_HANDLER( ay8910_address_w ); -WRITE8_DEVICE_HANDLER( ay8910_data_w ); +DECLARE_READ8_DEVICE_HANDLER( ay8910_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ay8910_address_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ay8910_data_w ); /* /RES */ -WRITE8_DEVICE_HANDLER( ay8910_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ay8910_reset_w ); /* use this when BC1 == A0; here, BC1=0 selects 'data' and BC1=1 selects 'latch address' */ -WRITE8_DEVICE_HANDLER( ay8910_data_address_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ay8910_data_address_w ); /* use this when BC1 == !A0; here, BC1=0 selects 'latch address' and BC1=1 selects 'data' */ -WRITE8_DEVICE_HANDLER( ay8910_address_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ay8910_address_data_w ); /* AY8914 handlers needed due to different register map */ -READ8_DEVICE_HANDLER( ay8914_r ); -WRITE8_DEVICE_HANDLER( ay8914_w ); +DECLARE_READ8_DEVICE_HANDLER( ay8914_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ay8914_w ); /*********** An interface for SSG of YM2203 ***********/ diff --git a/src/emu/sound/c140.h b/src/emu/sound/c140.h index c4f5e637832..681d676d33c 100644 --- a/src/emu/sound/c140.h +++ b/src/emu/sound/c140.h @@ -7,8 +7,8 @@ #include "devlegcy.h" -READ8_DEVICE_HANDLER( c140_r ); -WRITE8_DEVICE_HANDLER( c140_w ); +DECLARE_READ8_DEVICE_HANDLER( c140_r ); +DECLARE_WRITE8_DEVICE_HANDLER( c140_w ); void c140_set_base(device_t *device, void *base); diff --git a/src/emu/sound/c6280.h b/src/emu/sound/c6280.h index b1bbecf22f8..41e1e0a3478 100644 --- a/src/emu/sound/c6280.h +++ b/src/emu/sound/c6280.h @@ -11,8 +11,8 @@ struct c6280_interface }; /* Function prototypes */ -WRITE8_DEVICE_HANDLER( c6280_w ); -READ8_DEVICE_HANDLER( c6280_r ); +DECLARE_WRITE8_DEVICE_HANDLER( c6280_w ); +DECLARE_READ8_DEVICE_HANDLER( c6280_r ); class c6280_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/digitalk.h b/src/emu/sound/digitalk.h index 805c245e033..add7f3428fe 100644 --- a/src/emu/sound/digitalk.h +++ b/src/emu/sound/digitalk.h @@ -7,7 +7,7 @@ void digitalker_0_cs_w(device_t *device, int line); void digitalker_0_cms_w(device_t *device, int line); void digitalker_0_wr_w(device_t *device, int line); int digitalker_0_intr_r(device_t *device); -WRITE8_DEVICE_HANDLER(digitalker_data_w); +DECLARE_WRITE8_DEVICE_HANDLER(digitalker_data_w); class digitalker_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/discrete.h b/src/emu/sound/discrete.h index 147194f03ee..3961c4fc2ec 100644 --- a/src/emu/sound/discrete.h +++ b/src/emu/sound/discrete.h @@ -4256,8 +4256,8 @@ public: * *************************************/ -WRITE8_DEVICE_HANDLER( discrete_sound_w ); -READ8_DEVICE_HANDLER( discrete_sound_r ); +DECLARE_WRITE8_DEVICE_HANDLER( discrete_sound_w ); +DECLARE_READ8_DEVICE_HANDLER( discrete_sound_r ); //************************************************************************** // INTERFACE CONFIGURATION MACROS diff --git a/src/emu/sound/es5506.h b/src/emu/sound/es5506.h index cb1597e6cae..076bfcf24ba 100644 --- a/src/emu/sound/es5506.h +++ b/src/emu/sound/es5506.h @@ -20,8 +20,8 @@ struct es5505_interface UINT16 (*read_port)(device_t *device); /* input port read */ }; -READ16_DEVICE_HANDLER( es5505_r ); -WRITE16_DEVICE_HANDLER( es5505_w ); +DECLARE_READ16_DEVICE_HANDLER( es5505_r ); +DECLARE_WRITE16_DEVICE_HANDLER( es5505_w ); void es5505_voice_bank_w(device_t *device, int voice, int bank); class es5506_device : public device_t, @@ -62,8 +62,8 @@ struct es5506_interface UINT16 (*read_port)(device_t *device); /* input port read */ }; -READ8_DEVICE_HANDLER( es5506_r ); -WRITE8_DEVICE_HANDLER( es5506_w ); +DECLARE_READ8_DEVICE_HANDLER( es5506_r ); +DECLARE_WRITE8_DEVICE_HANDLER( es5506_w ); void es5506_voice_bank_w(device_t *device, int voice, int bank); class es5505_device : public es5506_device diff --git a/src/emu/sound/es8712.h b/src/emu/sound/es8712.h index c57a257cefb..89e0973c64d 100644 --- a/src/emu/sound/es8712.h +++ b/src/emu/sound/es8712.h @@ -11,7 +11,7 @@ void es8712_play(device_t *device); void es8712_set_bank_base(device_t *device, int base); void es8712_set_frequency(device_t *device, int frequency); -WRITE8_DEVICE_HANDLER( es8712_w ); +DECLARE_WRITE8_DEVICE_HANDLER( es8712_w ); class es8712_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/gaelco.h b/src/emu/sound/gaelco.h index a82057f5110..9a4fe4df54f 100644 --- a/src/emu/sound/gaelco.h +++ b/src/emu/sound/gaelco.h @@ -11,8 +11,8 @@ struct gaelcosnd_interface int banks[4]; /* start of each ROM bank */ }; -WRITE16_DEVICE_HANDLER( gaelcosnd_w ); -READ16_DEVICE_HANDLER( gaelcosnd_r ); +DECLARE_WRITE16_DEVICE_HANDLER( gaelcosnd_w ); +DECLARE_READ16_DEVICE_HANDLER( gaelcosnd_r ); class gaelco_gae1_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/ics2115.h b/src/emu/sound/ics2115.h index 79fc0061276..a1c177708cb 100644 --- a/src/emu/sound/ics2115.h +++ b/src/emu/sound/ics2115.h @@ -98,8 +98,8 @@ public: // inline configuration helpers static void static_set_irqf(device_t &device, void (*irqf)(device_t *device, int state)); - static READ8_DEVICE_HANDLER(read); - static WRITE8_DEVICE_HANDLER(write); + static DECLARE_READ8_DEVICE_HANDLER(read); + static DECLARE_WRITE8_DEVICE_HANDLER(write); //UINT8 read(offs_t offset); //void write(offs_t offset, UINT8 data); static TIMER_CALLBACK(timer_cb_0); diff --git a/src/emu/sound/iremga20.h b/src/emu/sound/iremga20.h index c069ee73a9b..407a358d9f5 100644 --- a/src/emu/sound/iremga20.h +++ b/src/emu/sound/iremga20.h @@ -10,8 +10,8 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( irem_ga20_w ); -READ8_DEVICE_HANDLER( irem_ga20_r ); +DECLARE_WRITE8_DEVICE_HANDLER( irem_ga20_w ); +DECLARE_READ8_DEVICE_HANDLER( irem_ga20_r ); class iremga20_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/k005289.h b/src/emu/sound/k005289.h index a51b8422116..a0b390d2a44 100644 --- a/src/emu/sound/k005289.h +++ b/src/emu/sound/k005289.h @@ -5,12 +5,12 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( k005289_control_A_w ); -WRITE8_DEVICE_HANDLER( k005289_control_B_w ); -WRITE8_DEVICE_HANDLER( k005289_pitch_A_w ); -WRITE8_DEVICE_HANDLER( k005289_pitch_B_w ); -WRITE8_DEVICE_HANDLER( k005289_keylatch_A_w ); -WRITE8_DEVICE_HANDLER( k005289_keylatch_B_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k005289_control_A_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k005289_control_B_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k005289_pitch_A_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k005289_pitch_B_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k005289_keylatch_A_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k005289_keylatch_B_w ); class k005289_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/k007232.h b/src/emu/sound/k007232.h index f346d1f520b..24284c2cf76 100644 --- a/src/emu/sound/k007232.h +++ b/src/emu/sound/k007232.h @@ -14,8 +14,8 @@ struct k007232_interface void (*portwritehandler)(device_t *, int); }; -WRITE8_DEVICE_HANDLER( k007232_w ); -READ8_DEVICE_HANDLER( k007232_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k007232_w ); +DECLARE_READ8_DEVICE_HANDLER( k007232_r ); void k007232_set_bank( device_t *device, int chABank, int chBBank ); diff --git a/src/emu/sound/k051649.c b/src/emu/sound/k051649.c index 338b5009058..faef40078de 100644 --- a/src/emu/sound/k051649.c +++ b/src/emu/sound/k051649.c @@ -276,7 +276,7 @@ WRITE8_DEVICE_HANDLER( k051649_test_w ) READ8_DEVICE_HANDLER ( k051649_test_r ) { /* reading the test register sets it to $ff! */ - k051649_test_w(device, offset, 0xff); + k051649_test_w(device, space, offset, 0xff); return 0xff; } diff --git a/src/emu/sound/k051649.h b/src/emu/sound/k051649.h index 5548b0e97e0..65aebff0ce7 100644 --- a/src/emu/sound/k051649.h +++ b/src/emu/sound/k051649.h @@ -5,16 +5,16 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( k051649_waveform_w ); -READ8_DEVICE_HANDLER ( k051649_waveform_r ); -WRITE8_DEVICE_HANDLER( k051649_volume_w ); -WRITE8_DEVICE_HANDLER( k051649_frequency_w ); -WRITE8_DEVICE_HANDLER( k051649_keyonoff_w ); -WRITE8_DEVICE_HANDLER( k051649_test_w ); -READ8_DEVICE_HANDLER ( k051649_test_r ); - -WRITE8_DEVICE_HANDLER( k052539_waveform_w ); -READ8_DEVICE_HANDLER ( k052539_waveform_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051649_waveform_w ); +DECLARE_READ8_DEVICE_HANDLER ( k051649_waveform_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051649_volume_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k051649_frequency_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k051649_keyonoff_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k051649_test_w ); +DECLARE_READ8_DEVICE_HANDLER ( k051649_test_r ); + +DECLARE_WRITE8_DEVICE_HANDLER( k052539_waveform_w ); +DECLARE_READ8_DEVICE_HANDLER ( k052539_waveform_r ); class k051649_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/k053260.h b/src/emu/sound/k053260.h index d28b3679e32..b51dd367750 100644 --- a/src/emu/sound/k053260.h +++ b/src/emu/sound/k053260.h @@ -17,8 +17,8 @@ struct k053260_interface { }; -WRITE8_DEVICE_HANDLER( k053260_w ); -READ8_DEVICE_HANDLER( k053260_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k053260_w ); +DECLARE_READ8_DEVICE_HANDLER( k053260_r ); class k053260_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/k056800.h b/src/emu/sound/k056800.h index 7930ea3d56a..ca4a6a42b9b 100644 --- a/src/emu/sound/k056800.h +++ b/src/emu/sound/k056800.h @@ -57,10 +57,10 @@ extern const device_type K056800; DEVICE I/O FUNCTIONS ***************************************************************************/ -READ32_DEVICE_HANDLER( k056800_host_r ); -WRITE32_DEVICE_HANDLER( k056800_host_w ); -READ16_DEVICE_HANDLER( k056800_sound_r ); -WRITE16_DEVICE_HANDLER( k056800_sound_w ); +DECLARE_READ32_DEVICE_HANDLER( k056800_host_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k056800_host_w ); +DECLARE_READ16_DEVICE_HANDLER( k056800_sound_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k056800_sound_w ); #endif /* __K056800_H__ */ diff --git a/src/emu/sound/msm5232.c b/src/emu/sound/msm5232.c index 71bee8bf1d3..b780bdd8ab1 100644 --- a/src/emu/sound/msm5232.c +++ b/src/emu/sound/msm5232.c @@ -69,7 +69,7 @@ struct msm5232_state { double external_capacity[8]; /* in Farads, eg 0.39e-6 = 0.36 uF (microFarads) */ device_t *device; - void (*gate_handler)(device_t *device, int state); /* callback called when the GATE output pin changes state */ + devcb_resolved_write_line gate_handler;/* callback called when the GATE output pin changes state */ }; @@ -260,10 +260,10 @@ static void msm5232_gate_update(msm5232_state *chip) { int new_state = (chip->control2 & 0x20) ? chip->voi[7].GF : 0; - if (chip->gate != new_state && chip->gate_handler) + if (chip->gate != new_state && !chip->gate_handler.isnull()) { chip->gate = new_state; - (*chip->gate_handler)(chip->device, new_state); + chip->gate_handler(new_state); } } @@ -275,8 +275,8 @@ static DEVICE_RESET( msm5232 ) for (i=0; i<8; i++) { - msm5232_w(device,i,0x80); - msm5232_w(device,i,0x00); + msm5232_w(device,device->machine().driver_data()->generic_space(),i,0x80); + msm5232_w(device,device->machine().driver_data()->generic_space(),i,0x00); } chip->noise_cnt = 0; chip->noise_rng = 1; @@ -309,7 +309,7 @@ static void msm5232_init(msm5232_state *chip, const msm5232_interface *intf, int chip->external_capacity[j] = intf->capacity[j]; } - chip->gate_handler = intf->gate_handler; + chip->gate_handler.resolve(intf->gate_handler_cb, *chip->device); msm5232_init_tables( chip ); diff --git a/src/emu/sound/msm5232.h b/src/emu/sound/msm5232.h index 11e9eb3e033..11f8b218639 100644 --- a/src/emu/sound/msm5232.h +++ b/src/emu/sound/msm5232.h @@ -8,10 +8,10 @@ struct msm5232_interface { double capacity[8]; /* in Farads, capacitors connected to pins: 24,25,26,27 and 37,38,39,40 */ - void (*gate_handler)(device_t *device, int state); /* callback called when the GATE output pin changes state */ + devcb_write_line gate_handler_cb; /* callback called when the GATE output pin changes state */ }; -WRITE8_DEVICE_HANDLER( msm5232_w ); +DECLARE_WRITE8_DEVICE_HANDLER( msm5232_w ); void msm5232_set_clock(device_t *device, int clock); diff --git a/src/emu/sound/multipcm.h b/src/emu/sound/multipcm.h index 4beaa933ea0..a91f23d9273 100644 --- a/src/emu/sound/multipcm.h +++ b/src/emu/sound/multipcm.h @@ -5,8 +5,8 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( multipcm_w ); -READ8_DEVICE_HANDLER( multipcm_r ); +DECLARE_WRITE8_DEVICE_HANDLER( multipcm_w ); +DECLARE_READ8_DEVICE_HANDLER( multipcm_r ); void multipcm_set_bank(device_t *device, UINT32 leftoffs, UINT32 rightoffs); diff --git a/src/emu/sound/n63701x.h b/src/emu/sound/n63701x.h index 813c2b73263..8cc487f36b5 100644 --- a/src/emu/sound/n63701x.h +++ b/src/emu/sound/n63701x.h @@ -5,7 +5,7 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( namco_63701x_w ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_63701x_w ); class namco_63701x_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/namco.c b/src/emu/sound/namco.c index ec595ad0271..cccd569b686 100644 --- a/src/emu/sound/namco.c +++ b/src/emu/sound/namco.c @@ -638,6 +638,7 @@ void mappy_sound_enable(device_t *device, int enable) chip->sound_enable = enable; } +static DECLARE_WRITE8_DEVICE_HANDLER( namco_15xx_w ); static WRITE8_DEVICE_HANDLER( namco_15xx_w ) { namco_sound *chip = get_safe_token(device); @@ -704,6 +705,7 @@ static WRITE8_DEVICE_HANDLER( namco_15xx_w ) 0x3c ch 0 noise sw */ +static DECLARE_WRITE8_DEVICE_HANDLER( namcos1_sound_w ); static WRITE8_DEVICE_HANDLER( namcos1_sound_w ) { namco_sound *chip = get_safe_token(device); @@ -781,7 +783,7 @@ WRITE8_DEVICE_HANDLER( namcos1_cus30_w ) } } else if (offset < 0x140) - namcos1_sound_w(device, offset - 0x100,data); + namcos1_sound_w(device, space, offset - 0x100,data); else chip->wavedata[offset] = data; } @@ -803,7 +805,7 @@ READ8_DEVICE_HANDLER( namco_snd_sharedram_r ) WRITE8_DEVICE_HANDLER( namco_snd_sharedram_w ) { if (offset < 0x40) - namco_15xx_w(device, offset, data); + namco_15xx_w(device, space, offset, data); else { namco_sound *chip = get_safe_token(device); diff --git a/src/emu/sound/namco.h b/src/emu/sound/namco.h index ce6cfc7c245..77cb524200f 100644 --- a/src/emu/sound/namco.h +++ b/src/emu/sound/namco.h @@ -11,20 +11,20 @@ struct namco_interface int stereo; /* set to 1 to indicate stereo (e.g., System 1) */ }; -WRITE8_DEVICE_HANDLER( pacman_sound_enable_w ); -WRITE8_DEVICE_HANDLER( pacman_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( pacman_sound_enable_w ); +DECLARE_WRITE8_DEVICE_HANDLER( pacman_sound_w ); void polepos_sound_enable(device_t *device, int enable); -READ8_DEVICE_HANDLER( polepos_sound_r ); -WRITE8_DEVICE_HANDLER( polepos_sound_w ); +DECLARE_READ8_DEVICE_HANDLER( polepos_sound_r ); +DECLARE_WRITE8_DEVICE_HANDLER( polepos_sound_w ); void mappy_sound_enable(device_t *device, int enable); -WRITE8_DEVICE_HANDLER( namcos1_cus30_w ); /* wavedata + sound registers + RAM */ -READ8_DEVICE_HANDLER( namcos1_cus30_r ); +DECLARE_WRITE8_DEVICE_HANDLER( namcos1_cus30_w ); /* wavedata + sound registers + RAM */ +DECLARE_READ8_DEVICE_HANDLER( namcos1_cus30_r ); -READ8_DEVICE_HANDLER( namco_snd_sharedram_r ); -WRITE8_DEVICE_HANDLER( namco_snd_sharedram_w ); +DECLARE_READ8_DEVICE_HANDLER( namco_snd_sharedram_r ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_snd_sharedram_w ); class namco_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/nes_apu.h b/src/emu/sound/nes_apu.h index a356b4edcc1..8399232b73a 100644 --- a/src/emu/sound/nes_apu.h +++ b/src/emu/sound/nes_apu.h @@ -42,8 +42,8 @@ struct nes_interface const char *cpu_tag; /* CPU tag */ }; -READ8_DEVICE_HANDLER( nes_psg_r ); -WRITE8_DEVICE_HANDLER( nes_psg_w ); +DECLARE_READ8_DEVICE_HANDLER( nes_psg_r ); +DECLARE_WRITE8_DEVICE_HANDLER( nes_psg_w ); class nesapu_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/nile.h b/src/emu/sound/nile.h index b378ba476e3..9cb3cbe3d89 100644 --- a/src/emu/sound/nile.h +++ b/src/emu/sound/nile.h @@ -5,10 +5,10 @@ #include "devlegcy.h" -WRITE16_DEVICE_HANDLER( nile_snd_w ); -READ16_DEVICE_HANDLER( nile_snd_r ); -WRITE16_DEVICE_HANDLER( nile_sndctrl_w ); -READ16_DEVICE_HANDLER( nile_sndctrl_r ); +DECLARE_WRITE16_DEVICE_HANDLER( nile_snd_w ); +DECLARE_READ16_DEVICE_HANDLER( nile_snd_r ); +DECLARE_WRITE16_DEVICE_HANDLER( nile_sndctrl_w ); +DECLARE_READ16_DEVICE_HANDLER( nile_sndctrl_r ); class nile_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/okim6258.h b/src/emu/sound/okim6258.h index 03b9bebe1d8..b9bbcc0f36f 100644 --- a/src/emu/sound/okim6258.h +++ b/src/emu/sound/okim6258.h @@ -29,9 +29,9 @@ void okim6258_set_divider(device_t *device, int val); void okim6258_set_clock(device_t *device, int val); int okim6258_get_vclk(device_t *device); -READ8_DEVICE_HANDLER( okim6258_status_r ); -WRITE8_DEVICE_HANDLER( okim6258_data_w ); -WRITE8_DEVICE_HANDLER( okim6258_ctrl_w ); +DECLARE_READ8_DEVICE_HANDLER( okim6258_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( okim6258_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( okim6258_ctrl_w ); class okim6258_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/okim6376.h b/src/emu/sound/okim6376.h index 003bcd14fc1..ece5e6c785b 100644 --- a/src/emu/sound/okim6376.h +++ b/src/emu/sound/okim6376.h @@ -7,8 +7,8 @@ /* an interface for the OKIM6376 and similar chips (CPU interface only) */ -READ8_DEVICE_HANDLER( okim6376_r ); -WRITE8_DEVICE_HANDLER( okim6376_w ); +DECLARE_READ8_DEVICE_HANDLER( okim6376_r ); +DECLARE_WRITE8_DEVICE_HANDLER( okim6376_w ); class okim6376_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/qsound.h b/src/emu/sound/qsound.h index bfc274d461a..86b810e2e4d 100644 --- a/src/emu/sound/qsound.h +++ b/src/emu/sound/qsound.h @@ -13,8 +13,8 @@ #define QSOUND_CLOCK 4000000 /* default 4MHz clock */ -WRITE8_DEVICE_HANDLER( qsound_w ); -READ8_DEVICE_HANDLER( qsound_r ); +DECLARE_WRITE8_DEVICE_HANDLER( qsound_w ); +DECLARE_READ8_DEVICE_HANDLER( qsound_r ); class qsound_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/rf5c400.h b/src/emu/sound/rf5c400.h index 34b5a66e3fd..16bd3455d86 100644 --- a/src/emu/sound/rf5c400.h +++ b/src/emu/sound/rf5c400.h @@ -7,8 +7,8 @@ #include "devlegcy.h" -READ16_DEVICE_HANDLER( rf5c400_r ); -WRITE16_DEVICE_HANDLER( rf5c400_w ); +DECLARE_READ16_DEVICE_HANDLER( rf5c400_r ); +DECLARE_WRITE16_DEVICE_HANDLER( rf5c400_w ); class rf5c400_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/rf5c68.h b/src/emu/sound/rf5c68.h index 823cb5d35fc..1b8c4996882 100644 --- a/src/emu/sound/rf5c68.h +++ b/src/emu/sound/rf5c68.h @@ -10,11 +10,11 @@ #include "devlegcy.h" /******************************************/ -READ8_DEVICE_HANDLER( rf5c68_r ); -WRITE8_DEVICE_HANDLER( rf5c68_w ); +DECLARE_READ8_DEVICE_HANDLER( rf5c68_r ); +DECLARE_WRITE8_DEVICE_HANDLER( rf5c68_w ); -READ8_DEVICE_HANDLER( rf5c68_mem_r ); -WRITE8_DEVICE_HANDLER( rf5c68_mem_w ); +DECLARE_READ8_DEVICE_HANDLER( rf5c68_mem_r ); +DECLARE_WRITE8_DEVICE_HANDLER( rf5c68_mem_w ); struct rf5c68_interface { diff --git a/src/emu/sound/saa1099.h b/src/emu/sound/saa1099.h index e24ef538777..ccbb1c75f3f 100644 --- a/src/emu/sound/saa1099.h +++ b/src/emu/sound/saa1099.h @@ -9,8 +9,8 @@ Philips SAA1099 Sound driver **********************************************/ -WRITE8_DEVICE_HANDLER( saa1099_control_w ); -WRITE8_DEVICE_HANDLER( saa1099_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( saa1099_control_w ); +DECLARE_WRITE8_DEVICE_HANDLER( saa1099_data_w ); class saa1099_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/scsp.c b/src/emu/sound/scsp.c index e221cf8f482..f830ba2e630 100644 --- a/src/emu/sound/scsp.c +++ b/src/emu/sound/scsp.c @@ -230,7 +230,7 @@ struct scsp_state device_t *device; }; -static void dma_scsp(address_space *space, scsp_state *scsp); /*state DMA transfer function*/ +static void dma_scsp(address_space &space, scsp_state *scsp); /*state DMA transfer function*/ #define scsp_dgate scsp->scsp_dmactrl & 0x4000 #define scsp_ddir scsp->scsp_dmactrl & 0x2000 #define scsp_dexe scsp->scsp_dmactrl & 0x1000 @@ -698,11 +698,8 @@ static void SCSP_UpdateSlotReg(scsp_state *scsp,int s,int r) } } -static void SCSP_UpdateReg(scsp_state *scsp, int reg) +static void SCSP_UpdateReg(scsp_state *scsp, address_space &space, int reg) { - /* temporary hack until this is converted to a device */ - address_space *space = scsp->device->machine().firstcpu->space(AS_PROGRAM); - switch(reg&0x3f) { case 0x0: @@ -726,7 +723,7 @@ static void SCSP_UpdateReg(scsp_state *scsp, int reg) break; case 0x6: case 0x7: - scsp_midi_in(space->machine().device("scsp"), 0, scsp->udata.data[0x6/2]&0xff, 0); + scsp_midi_in(space.machine().device("scsp"), space, 0, scsp->udata.data[0x6/2]&0xff, 0); break; case 0x12: case 0x13: @@ -837,7 +834,7 @@ static void SCSP_UpdateSlotRegR(scsp_state *scsp, int slot,int reg) } -static void SCSP_UpdateRegR(scsp_state *scsp, int reg) +static void SCSP_UpdateRegR(scsp_state *scsp, address_space &space, int reg) { switch(reg&0x3f) { @@ -885,7 +882,7 @@ static void SCSP_UpdateRegR(scsp_state *scsp, int reg) } } -static void SCSP_w16(scsp_state *scsp,unsigned int addr,unsigned short val) +static void SCSP_w16(scsp_state *scsp,address_space &space,unsigned int addr,unsigned short val) { addr&=0xffff; if(addr<0x400) @@ -900,7 +897,7 @@ static void SCSP_w16(scsp_state *scsp,unsigned int addr,unsigned short val) if (addr < 0x430) { *((unsigned short *) (scsp->udata.datab+((addr&0x3f)))) = val; - SCSP_UpdateReg(scsp, addr&0x3f); + SCSP_UpdateReg(scsp, space, addr&0x3f); } } else if(addr<0x700) @@ -924,7 +921,7 @@ static void SCSP_w16(scsp_state *scsp,unsigned int addr,unsigned short val) } } -static unsigned short SCSP_r16(scsp_state *scsp, unsigned int addr) +static unsigned short SCSP_r16(scsp_state *scsp, address_space &space, unsigned int addr) { unsigned short v=0; addr&=0xffff; @@ -941,7 +938,7 @@ static unsigned short SCSP_r16(scsp_state *scsp, unsigned int addr) { if (addr < 0x430) { - SCSP_UpdateRegR(scsp, addr&0x3f); + SCSP_UpdateRegR(scsp, space, addr&0x3f); v= *((unsigned short *) (scsp->udata.datab+((addr&0x3f)))); } } @@ -1180,7 +1177,7 @@ static void SCSP_DoMasterSamples(scsp_state *scsp, int nsamples) } /* TODO: this needs to be timer-ized */ -static void dma_scsp(address_space *space, scsp_state *scsp) +static void dma_scsp(address_space &space, scsp_state *scsp) { static UINT16 tmp_dma[3]; int i; @@ -1212,7 +1209,7 @@ static void dma_scsp(address_space *space, scsp_state *scsp) { for(i=0;i < scsp->scsp_dtlg;i+=2) { - space->write_word(scsp->scsp_dmea, space->read_word(0x100000|scsp->scsp_drga)); + space.write_word(scsp->scsp_dmea, space.read_word(0x100000|scsp->scsp_drga)); scsp->scsp_dmea+=2; scsp->scsp_drga+=2; } @@ -1221,7 +1218,7 @@ static void dma_scsp(address_space *space, scsp_state *scsp) { for(i=0;i < scsp->scsp_dtlg;i+=2) { - space->write_word(0x100000|scsp->scsp_drga,space->read_word(scsp->scsp_dmea)); + space.write_word(0x100000|scsp->scsp_drga,space.read_word(scsp->scsp_dmea)); scsp->scsp_dmea+=2; scsp->scsp_drga+=2; } @@ -1240,7 +1237,7 @@ static void dma_scsp(address_space *space, scsp_state *scsp) if(scsp->udata.data[0x1e/2] & 0x10) { popmessage("SCSP DMA IRQ triggered, contact MAMEdev"); - space->machine().device("audiocpu")->execute().set_input_line(DecodeSCI(scsp,SCIDMA),HOLD_LINE); + space.machine().device("audiocpu")->execute().set_input_line(DecodeSCI(scsp,SCIDMA),HOLD_LINE); } } @@ -1302,7 +1299,7 @@ READ16_DEVICE_HANDLER( scsp_r ) scsp->stream->update(); - return SCSP_r16(scsp, offset*2); + return SCSP_r16(scsp, space, offset*2); } WRITE16_DEVICE_HANDLER( scsp_w ) @@ -1312,9 +1309,9 @@ WRITE16_DEVICE_HANDLER( scsp_w ) scsp->stream->update(); - tmp = SCSP_r16(scsp, offset*2); + tmp = SCSP_r16(scsp, space, offset*2); COMBINE_DATA(&tmp); - SCSP_w16(scsp,offset*2, tmp); + SCSP_w16(scsp,space,offset*2, tmp); switch(offset*2) { @@ -1324,7 +1321,7 @@ WRITE16_DEVICE_HANDLER( scsp_w ) case 0x416: COMBINE_DATA(&scsp->dma_regs[((offset-0x412)/2) & 3]); if(ACCESSING_BITS_8_15 && offset*2 == 0x416) - dma_scsp(device->machine().firstcpu->space(AS_PROGRAM), scsp); + dma_scsp(space, scsp); break; case 0x42a: //check main cpu IRQ scsp->main_irq(1); diff --git a/src/emu/sound/scsp.h b/src/emu/sound/scsp.h index 2eff5ebf971..0369fbcc631 100644 --- a/src/emu/sound/scsp.h +++ b/src/emu/sound/scsp.h @@ -19,12 +19,12 @@ struct scsp_interface void scsp_set_ram_base(device_t *device, void *base); // SCSP register access -READ16_DEVICE_HANDLER( scsp_r ); -WRITE16_DEVICE_HANDLER( scsp_w ); +DECLARE_READ16_DEVICE_HANDLER( scsp_r ); +DECLARE_WRITE16_DEVICE_HANDLER( scsp_w ); // MIDI I/O access (used for comms on Model 2/3) -WRITE16_DEVICE_HANDLER( scsp_midi_in ); -READ16_DEVICE_HANDLER( scsp_midi_out_r ); +DECLARE_WRITE16_DEVICE_HANDLER( scsp_midi_in ); +DECLARE_READ16_DEVICE_HANDLER( scsp_midi_out_r ); extern UINT32* stv_scu; diff --git a/src/emu/sound/segapcm.h b/src/emu/sound/segapcm.h index 0419f230879..6a051e4064e 100644 --- a/src/emu/sound/segapcm.h +++ b/src/emu/sound/segapcm.h @@ -21,8 +21,8 @@ struct sega_pcm_interface int bank; }; -WRITE8_DEVICE_HANDLER( sega_pcm_w ); -READ8_DEVICE_HANDLER( sega_pcm_r ); +DECLARE_WRITE8_DEVICE_HANDLER( sega_pcm_w ); +DECLARE_READ8_DEVICE_HANDLER( sega_pcm_r ); class segapcm_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/sn76496.h b/src/emu/sound/sn76496.h index 1ce40acaf8b..49e1ee6e971 100644 --- a/src/emu/sound/sn76496.h +++ b/src/emu/sound/sn76496.h @@ -6,8 +6,8 @@ #include "devlegcy.h" READ_LINE_DEVICE_HANDLER( sn76496_ready_r ); -WRITE8_DEVICE_HANDLER( sn76496_w ); -WRITE8_DEVICE_HANDLER( sn76496_stereo_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sn76496_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sn76496_stereo_w ); class sn76496_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/snkwave.h b/src/emu/sound/snkwave.h index 2ed3a67048d..11a16736b2b 100644 --- a/src/emu/sound/snkwave.h +++ b/src/emu/sound/snkwave.h @@ -5,7 +5,7 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( snkwave_w ); +DECLARE_WRITE8_DEVICE_HANDLER( snkwave_w ); class snkwave_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/sp0250.h b/src/emu/sound/sp0250.h index dba4d8dd6d5..019ab27a296 100644 --- a/src/emu/sound/sp0250.h +++ b/src/emu/sound/sp0250.h @@ -9,7 +9,7 @@ struct sp0250_interface { void (*drq_callback)(device_t *device, int state); }; -WRITE8_DEVICE_HANDLER( sp0250_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sp0250_w ); UINT8 sp0250_drq_r(device_t *device); class sp0250_device : public device_t, diff --git a/src/emu/sound/sp0256.c b/src/emu/sound/sp0256.c index 8996ab3581f..77ca2989f99 100644 --- a/src/emu/sound/sp0256.c +++ b/src/emu/sound/sp0256.c @@ -1317,7 +1317,7 @@ WRITE16_DEVICE_HANDLER( spb640_w ) if( offset == 0 ) { - sp0256_ALD_w( device, 0, data & 0xff ); + sp0256_ALD_w( device, space, 0, data & 0xff ); return; } diff --git a/src/emu/sound/sp0256.h b/src/emu/sound/sp0256.h index 6b73fb9860f..d236c638da7 100644 --- a/src/emu/sound/sp0256.h +++ b/src/emu/sound/sp0256.h @@ -62,13 +62,13 @@ void sp0256_bitrevbuff(UINT8 *buffer, unsigned int start, unsigned int length); void sp0256_set_clock(device_t *device, int clock); -WRITE8_DEVICE_HANDLER( sp0256_ALD_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sp0256_ALD_w ); READ_LINE_DEVICE_HANDLER( sp0256_lrq_r ); READ_LINE_DEVICE_HANDLER( sp0256_sby_r ); -READ16_DEVICE_HANDLER( spb640_r ); -WRITE16_DEVICE_HANDLER( spb640_w ); +DECLARE_READ16_DEVICE_HANDLER( spb640_r ); +DECLARE_WRITE16_DEVICE_HANDLER( spb640_w ); class sp0256_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/st0016.h b/src/emu/sound/st0016.h index 44d60973033..6bd1ad9fdd9 100644 --- a/src/emu/sound/st0016.h +++ b/src/emu/sound/st0016.h @@ -10,8 +10,8 @@ struct st0016_interface UINT8 **p_soundram; }; -READ8_DEVICE_HANDLER( st0016_snd_r ); -WRITE8_DEVICE_HANDLER( st0016_snd_w ); +DECLARE_READ8_DEVICE_HANDLER( st0016_snd_r ); +DECLARE_WRITE8_DEVICE_HANDLER( st0016_snd_w ); class st0016_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/t6w28.h b/src/emu/sound/t6w28.h index 528cd39feba..30afa34a0e6 100644 --- a/src/emu/sound/t6w28.h +++ b/src/emu/sound/t6w28.h @@ -5,7 +5,7 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( t6w28_w ); +DECLARE_WRITE8_DEVICE_HANDLER( t6w28_w ); class t6w28_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/tiaintf.h b/src/emu/sound/tiaintf.h index 6ce175789b4..97595b6b683 100644 --- a/src/emu/sound/tiaintf.h +++ b/src/emu/sound/tiaintf.h @@ -5,7 +5,7 @@ #include "devlegcy.h" -WRITE8_DEVICE_HANDLER( tia_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tia_sound_w ); class tia_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/tms5110.h b/src/emu/sound/tms5110.h index 89ecc861c41..4bd3db7c34b 100644 --- a/src/emu/sound/tms5110.h +++ b/src/emu/sound/tms5110.h @@ -38,18 +38,18 @@ struct tms5110_interface devcb_write_line romclk_func; /* rom clock - Only used to drive the data lines */ }; -WRITE8_DEVICE_HANDLER( tms5110_ctl_w ); -READ8_DEVICE_HANDLER( tms5110_ctl_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tms5110_ctl_w ); +DECLARE_READ8_DEVICE_HANDLER( tms5110_ctl_r ); WRITE_LINE_DEVICE_HANDLER( tms5110_pdc_w ); /* this is only used by cvs.c * it is not related at all to the speech generation * and conflicts with the new rom controller interface. */ -READ8_DEVICE_HANDLER( tms5110_romclk_hack_r ); +DECLARE_READ8_DEVICE_HANDLER( tms5110_romclk_hack_r ); /* m58817 status line */ -READ8_DEVICE_HANDLER( m58817_status_r ); +DECLARE_READ8_DEVICE_HANDLER( m58817_status_r ); int tms5110_ready_r(device_t *device); @@ -188,8 +188,8 @@ WRITE_LINE_DEVICE_HANDLER( tmsprom_m0_w ); READ_LINE_DEVICE_HANDLER( tmsprom_data_r ); /* offset is rom # */ -WRITE8_DEVICE_HANDLER( tmsprom_rom_csq_w ); -WRITE8_DEVICE_HANDLER( tmsprom_bit_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tmsprom_rom_csq_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tmsprom_bit_w ); WRITE_LINE_DEVICE_HANDLER( tmsprom_enable_w ); class tmsprom_device : public device_t diff --git a/src/emu/sound/tms5220.h b/src/emu/sound/tms5220.h index c3c102f0d3a..0a2e5adcf64 100644 --- a/src/emu/sound/tms5220.h +++ b/src/emu/sound/tms5220.h @@ -30,8 +30,8 @@ struct tms5220_interface WRITE_LINE_DEVICE_HANDLER( tms5220_rsq_w ); WRITE_LINE_DEVICE_HANDLER( tms5220_wsq_w ); -WRITE8_DEVICE_HANDLER( tms5220_data_w ); -READ8_DEVICE_HANDLER( tms5220_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tms5220_data_w ); +DECLARE_READ8_DEVICE_HANDLER( tms5220_status_r ); READ_LINE_DEVICE_HANDLER( tms5220_readyq_r ); READ_LINE_DEVICE_HANDLER( tms5220_intq_r ); diff --git a/src/emu/sound/upd7759.h b/src/emu/sound/upd7759.h index 3c42863fb3f..db4d1c913a1 100644 --- a/src/emu/sound/upd7759.h +++ b/src/emu/sound/upd7759.h @@ -25,7 +25,7 @@ void upd7759_set_bank_base(device_t *device, offs_t base); void upd7759_reset_w(device_t *device, UINT8 data); void upd7759_start_w(device_t *device, UINT8 data); int upd7759_busy_r(device_t *device); -WRITE8_DEVICE_HANDLER( upd7759_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( upd7759_port_w ); class upd7759_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/vlm5030.h b/src/emu/sound/vlm5030.h index 87730ec95c8..2a63d25648c 100644 --- a/src/emu/sound/vlm5030.h +++ b/src/emu/sound/vlm5030.h @@ -16,7 +16,7 @@ void vlm5030_set_rom(device_t *device, void *speech_rom); /* get BSY pin level */ int vlm5030_bsy(device_t *device); /* latch contoll data */ -WRITE8_DEVICE_HANDLER( vlm5030_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( vlm5030_data_w ); /* set RST pin level : reset / set table address A8-A15 */ void vlm5030_rst (device_t *device, int pin ); /* set VCU pin level : ?? unknown */ diff --git a/src/emu/sound/vrender0.h b/src/emu/sound/vrender0.h index d1fa8cb95aa..444aa547744 100644 --- a/src/emu/sound/vrender0.h +++ b/src/emu/sound/vrender0.h @@ -13,8 +13,8 @@ struct vr0_interface void vr0_snd_set_areas(device_t *device,UINT32 *texture,UINT32 *frame); -READ32_DEVICE_HANDLER( vr0_snd_read ); -WRITE32_DEVICE_HANDLER( vr0_snd_write ); +DECLARE_READ32_DEVICE_HANDLER( vr0_snd_read ); +DECLARE_WRITE32_DEVICE_HANDLER( vr0_snd_write ); class vrender0_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/x1_010.c b/src/emu/sound/x1_010.c index 03cf395a694..7a486e49a97 100644 --- a/src/emu/sound/x1_010.c +++ b/src/emu/sound/x1_010.c @@ -269,7 +269,7 @@ READ16_DEVICE_HANDLER( seta_sound_word_r ) UINT16 ret; ret = info->HI_WORD_BUF[offset]<<8; - ret += (seta_sound_r( device, offset )&0xff); + ret += (seta_sound_r( device, space, offset )&0xff); LOG_REGISTER_READ(( "%s: Read X1-010 Offset:%04X Data:%04X\n", device->machine().describe_context(), offset, ret )); return ret; } @@ -278,7 +278,7 @@ WRITE16_DEVICE_HANDLER( seta_sound_word_w ) { x1_010_state *info = get_safe_token(device); info->HI_WORD_BUF[offset] = (data>>8)&0xff; - seta_sound_w( device, offset, data&0xff ); + seta_sound_w( device, space, offset, data&0xff ); LOG_REGISTER_WRITE(( "%s: Write X1-010 Offset:%04X Data:%04X\n", device->machine().describe_context(), offset, data )); } diff --git a/src/emu/sound/x1_010.h b/src/emu/sound/x1_010.h index e765aa984fa..9405d1ea0d6 100644 --- a/src/emu/sound/x1_010.h +++ b/src/emu/sound/x1_010.h @@ -12,11 +12,11 @@ struct x1_010_interface }; -READ8_DEVICE_HANDLER ( seta_sound_r ); -WRITE8_DEVICE_HANDLER( seta_sound_w ); +DECLARE_READ8_DEVICE_HANDLER ( seta_sound_r ); +DECLARE_WRITE8_DEVICE_HANDLER( seta_sound_w ); -READ16_DEVICE_HANDLER ( seta_sound_word_r ); -WRITE16_DEVICE_HANDLER( seta_sound_word_w ); +DECLARE_READ16_DEVICE_HANDLER ( seta_sound_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( seta_sound_word_w ); void seta_sound_enable_w(device_t *device, int data); diff --git a/src/emu/sound/ym2151.c b/src/emu/sound/ym2151.c index fa175e7d8c4..d69801a84de 100644 --- a/src/emu/sound/ym2151.c +++ b/src/emu/sound/ym2151.c @@ -163,7 +163,7 @@ struct YM2151 UINT32 noise_tab[32]; /* 17bit Noise Generator periods */ void (*irqhandler)(device_t *device, int irq); /* IRQ function handler */ - write8_device_func porthandler; /* port write function handler */ + void (*porthandler)(device_t *, offs_t, UINT8); /* port write function handler */ device_t *device; unsigned int clock; /* chip clock in Hz (passed from 2151intf.c) */ @@ -2492,7 +2492,7 @@ void ym2151_set_irq_handler(void *chip, void(*handler)(device_t *device, int irq PSG->irqhandler = handler; } -void ym2151_set_port_write_handler(void *chip, write8_device_func handler) +void ym2151_set_port_write_handler(void *chip, void (*handler)(device_t *, offs_t, UINT8)) { YM2151 *PSG = (YM2151 *)chip; PSG->porthandler = handler; diff --git a/src/emu/sound/ym2151.h b/src/emu/sound/ym2151.h index 045296839b0..b14f764d104 100644 --- a/src/emu/sound/ym2151.h +++ b/src/emu/sound/ym2151.h @@ -81,6 +81,6 @@ int ym2151_read_status(void *chip); void ym2151_set_irq_handler(void *chip, void (*handler)(device_t *device, int irq)); /* set port write handler on YM2151 chip number 'n'*/ -void ym2151_set_port_write_handler(void *chip, write8_device_func handler); +void ym2151_set_port_write_handler(void *chip, void (*handler)(device_t *, offs_t, UINT8)); #endif /*__YM2151_H__*/ diff --git a/src/emu/sound/ymf271.h b/src/emu/sound/ymf271.h index d1ff2dab2ec..640b2030b17 100644 --- a/src/emu/sound/ymf271.h +++ b/src/emu/sound/ymf271.h @@ -13,8 +13,8 @@ struct ymf271_interface void (*irq_callback)(device_t *device, int state); /* irq callback */ }; -READ8_DEVICE_HANDLER( ymf271_r ); -WRITE8_DEVICE_HANDLER( ymf271_w ); +DECLARE_READ8_DEVICE_HANDLER( ymf271_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf271_w ); class ymf271_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/ymf278b.h b/src/emu/sound/ymf278b.h index 9b81b3c2b28..493386b0e77 100644 --- a/src/emu/sound/ymf278b.h +++ b/src/emu/sound/ymf278b.h @@ -13,8 +13,8 @@ struct ymf278b_interface void (*irq_callback)(device_t *device, int state); /* irq callback */ }; -READ8_DEVICE_HANDLER( ymf278b_r ); -WRITE8_DEVICE_HANDLER( ymf278b_w ); +DECLARE_READ8_DEVICE_HANDLER( ymf278b_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ymf278b_w ); class ymf278b_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/ymz280b.h b/src/emu/sound/ymz280b.h index 7d90c1faf6c..a1328600501 100644 --- a/src/emu/sound/ymz280b.h +++ b/src/emu/sound/ymz280b.h @@ -20,8 +20,8 @@ struct ymz280b_interface devcb_write8 ext_write; /* external RAM write */ }; -READ8_DEVICE_HANDLER ( ymz280b_r ); -WRITE8_DEVICE_HANDLER( ymz280b_w ); +DECLARE_READ8_DEVICE_HANDLER ( ymz280b_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ymz280b_w ); class ymz280b_device : public device_t, public device_sound_interface diff --git a/src/emu/sound/zsg2.h b/src/emu/sound/zsg2.h index c742fc88be2..1d3bf4b58da 100644 --- a/src/emu/sound/zsg2.h +++ b/src/emu/sound/zsg2.h @@ -7,8 +7,8 @@ #ifndef __ZSG2_H__ #define __ZSG2_H__ -READ16_DEVICE_HANDLER( zsg2_r ); -WRITE16_DEVICE_HANDLER( zsg2_w ); +DECLARE_READ16_DEVICE_HANDLER( zsg2_r ); +DECLARE_WRITE16_DEVICE_HANDLER( zsg2_w ); struct zsg2_interface { diff --git a/src/emu/video/hd63484.h b/src/emu/video/hd63484.h index 1270af71589..aa4cd95ddf6 100644 --- a/src/emu/video/hd63484.h +++ b/src/emu/video/hd63484.h @@ -55,15 +55,15 @@ struct hd63484_interface DEVICE I/O FUNCTIONS ***************************************************************************/ -READ16_DEVICE_HANDLER( hd63484_status_r ); -WRITE16_DEVICE_HANDLER( hd63484_address_w ); -WRITE16_DEVICE_HANDLER( hd63484_data_w ); -READ16_DEVICE_HANDLER( hd63484_data_r ); - -READ16_DEVICE_HANDLER( hd63484_ram_r ); -READ16_DEVICE_HANDLER( hd63484_regs_r ); -WRITE16_DEVICE_HANDLER( hd63484_ram_w ); -WRITE16_DEVICE_HANDLER( hd63484_regs_w ); +DECLARE_READ16_DEVICE_HANDLER( hd63484_status_r ); +DECLARE_WRITE16_DEVICE_HANDLER( hd63484_address_w ); +DECLARE_WRITE16_DEVICE_HANDLER( hd63484_data_w ); +DECLARE_READ16_DEVICE_HANDLER( hd63484_data_r ); + +DECLARE_READ16_DEVICE_HANDLER( hd63484_ram_r ); +DECLARE_READ16_DEVICE_HANDLER( hd63484_regs_r ); +DECLARE_WRITE16_DEVICE_HANDLER( hd63484_ram_w ); +DECLARE_WRITE16_DEVICE_HANDLER( hd63484_regs_w ); #endif /* __HD63484_H__ */ diff --git a/src/emu/video/i8275.h b/src/emu/video/i8275.h index cd918e0bb70..058a5439ebc 100644 --- a/src/emu/video/i8275.h +++ b/src/emu/video/i8275.h @@ -65,13 +65,13 @@ struct i8275_interface ***************************************************************************/ /* register access */ -READ8_DEVICE_HANDLER ( i8275_r ); -WRITE8_DEVICE_HANDLER ( i8275_w ); +DECLARE_READ8_DEVICE_HANDLER ( i8275_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( i8275_w ); /* updates the screen */ void i8275_update(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect); -WRITE8_DEVICE_HANDLER( i8275_dack_w ); +DECLARE_WRITE8_DEVICE_HANDLER( i8275_dack_w ); /*************************************************************************** DEVICE CONFIGURATION MACROS diff --git a/src/emu/video/pc_vga.h b/src/emu/video/pc_vga.h index 4bdd3e3a31c..c4bba32fd53 100644 --- a/src/emu/video/pc_vga.h +++ b/src/emu/video/pc_vga.h @@ -99,8 +99,8 @@ READ8_HANDLER(s3_mem_r); WRITE8_HANDLER(s3_mem_w); READ8_HANDLER( ati_port_03c0_r ); -READ8_DEVICE_HANDLER(ati_port_ext_r); -WRITE8_DEVICE_HANDLER(ati_port_ext_w); +DECLARE_READ8_DEVICE_HANDLER(ati_port_ext_r); +DECLARE_WRITE8_DEVICE_HANDLER(ati_port_ext_w); READ16_HANDLER(ibm8514_gpstatus_r); WRITE16_HANDLER(ibm8514_cmd_w); READ16_HANDLER(mach8_ext_fifo_r); diff --git a/src/emu/video/s2636.h b/src/emu/video/s2636.h index 84246e3684d..d655bca86d5 100644 --- a/src/emu/video/s2636.h +++ b/src/emu/video/s2636.h @@ -71,8 +71,8 @@ extern const device_type S2636; D3 indicates whether the S2636 drew this pixel - 0 = not drawn, 1 = drawn */ bitmap_ind16 &s2636_update( device_t *device, const rectangle &cliprect ); -WRITE8_DEVICE_HANDLER( s2636_work_ram_w ); -READ8_DEVICE_HANDLER( s2636_work_ram_r ); +DECLARE_WRITE8_DEVICE_HANDLER( s2636_work_ram_w ); +DECLARE_READ8_DEVICE_HANDLER( s2636_work_ram_r ); #endif /* __S2636_H__ */ diff --git a/src/emu/video/tlc34076.h b/src/emu/video/tlc34076.h index 5914a1db28f..c32f02d50a4 100644 --- a/src/emu/video/tlc34076.h +++ b/src/emu/video/tlc34076.h @@ -59,5 +59,5 @@ extern const device_type TLC34076; DEVICE I/O FUNCTIONS ***************************************************************************/ -WRITE8_DEVICE_HANDLER( tlc34076_w ); -READ8_DEVICE_HANDLER( tlc34076_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tlc34076_w ); +DECLARE_READ8_DEVICE_HANDLER( tlc34076_r ); diff --git a/src/emu/video/tms9927.c b/src/emu/video/tms9927.c index 784f800a937..d8b43665474 100644 --- a/src/emu/video/tms9927.c +++ b/src/emu/video/tms9927.c @@ -73,7 +73,7 @@ static void tms9927_state_save_postload(tms9927_state *state) } -static void generic_access(device_t *device, offs_t offset) +static void generic_access(device_t *device, address_space &space, offs_t offset) { tms9927_state *tms = get_safe_token(device); @@ -86,9 +86,9 @@ static void generic_access(device_t *device, offs_t offset) int cur; for (cur = 0; cur < 7; cur++) - tms9927_w(device, cur, tms->selfload[cur]); + tms9927_w(device, space, cur, tms->selfload[cur]); for (cur = 0; cur < 1; cur++) - tms9927_w(device, cur + 0xc, tms->selfload[cur + 7]); + tms9927_w(device, space, cur + 0xc, tms->selfload[cur + 7]); } else popmessage("tms9927: self-load initiated with no PROM!"); @@ -149,7 +149,7 @@ mame_printf_debug("Cursor address changed\n"); break; default: - generic_access(device, offset); + generic_access(device, space, offset); break; } } @@ -166,7 +166,7 @@ READ8_DEVICE_HANDLER( tms9927_r ) return tms->reg[offset - 0x08 + 7]; default: - generic_access(device, offset); + generic_access(device, space, offset); break; } return 0xff; diff --git a/src/emu/video/tms9927.h b/src/emu/video/tms9927.h index c75f6e25518..5f56d457f88 100644 --- a/src/emu/video/tms9927.h +++ b/src/emu/video/tms9927.h @@ -84,8 +84,8 @@ extern const tms9927_interface tms9927_null_interface; /* basic read/write handlers */ -WRITE8_DEVICE_HANDLER( tms9927_w ); -READ8_DEVICE_HANDLER( tms9927_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tms9927_w ); +DECLARE_READ8_DEVICE_HANDLER( tms9927_r ); /* other queries */ int tms9927_screen_reset(device_t *device); diff --git a/src/emu/video/voodoo.c b/src/emu/video/voodoo.c index 3559ffdc5d3..abf53c2b3b5 100644 --- a/src/emu/video/voodoo.c +++ b/src/emu/video/voodoo.c @@ -4064,9 +4064,9 @@ READ32_DEVICE_HANDLER( banshee_r ) flush_fifos(v, device->machine().time()); if (offset < 0x80000/4) - result = banshee_io_r(device, offset, mem_mask); + result = banshee_io_r(device, space, offset, mem_mask); else if (offset < 0x100000/4) - result = banshee_agp_r(device, offset, mem_mask); + result = banshee_agp_r(device, space, offset, mem_mask); else if (offset < 0x200000/4) logerror("%s:banshee_r(2D:%X)\n", device->machine().describe_context(), (offset*4) & 0xfffff); else if (offset < 0x600000/4) @@ -4232,13 +4232,13 @@ READ32_DEVICE_HANDLER( banshee_io_r ) case io_vgad0: case io_vgad4: case io_vgad8: case io_vgadc: result = 0; if (ACCESSING_BITS_0_7) - result |= banshee_vga_r(device, offset*4+0) << 0; + result |= banshee_vga_r(device, space, offset*4+0, mem_mask >> 0) << 0; if (ACCESSING_BITS_8_15) - result |= banshee_vga_r(device, offset*4+1) << 8; + result |= banshee_vga_r(device, space, offset*4+1, mem_mask >> 8) << 8; if (ACCESSING_BITS_16_23) - result |= banshee_vga_r(device, offset*4+2) << 16; + result |= banshee_vga_r(device, space, offset*4+2, mem_mask >> 16) << 16; if (ACCESSING_BITS_24_31) - result |= banshee_vga_r(device, offset*4+3) << 24; + result |= banshee_vga_r(device, space, offset*4+3, mem_mask >> 24) << 24; break; default: @@ -4606,9 +4606,9 @@ WRITE32_DEVICE_HANDLER( banshee_w ) flush_fifos(v, device->machine().time()); if (offset < 0x80000/4) - banshee_io_w(device, offset, data, mem_mask); + banshee_io_w(device, space, offset, data, mem_mask); else if (offset < 0x100000/4) - banshee_agp_w(device, offset, data, mem_mask); + banshee_agp_w(device, space, offset, data, mem_mask); else if (offset < 0x200000/4) logerror("%s:banshee_w(2D:%X) = %08X & %08X\n", device->machine().describe_context(), (offset*4) & 0xfffff, data, mem_mask); else if (offset < 0x600000/4) @@ -4780,13 +4780,13 @@ WRITE32_DEVICE_HANDLER( banshee_io_w ) case io_vgac0: case io_vgac4: case io_vgac8: case io_vgacc: case io_vgad0: case io_vgad4: case io_vgad8: case io_vgadc: if (ACCESSING_BITS_0_7) - banshee_vga_w(device, offset*4+0, data >> 0); + banshee_vga_w(device, space, offset*4+0, data >> 0, mem_mask >> 0); if (ACCESSING_BITS_8_15) - banshee_vga_w(device, offset*4+1, data >> 8); + banshee_vga_w(device, space, offset*4+1, data >> 8, mem_mask >> 8); if (ACCESSING_BITS_16_23) - banshee_vga_w(device, offset*4+2, data >> 16); + banshee_vga_w(device, space, offset*4+2, data >> 16, mem_mask >> 16); if (ACCESSING_BITS_24_31) - banshee_vga_w(device, offset*4+3, data >> 24); + banshee_vga_w(device, space, offset*4+3, data >> 24, mem_mask >> 24); break; default: diff --git a/src/emu/video/voodoo.h b/src/emu/video/voodoo.h index e0c2a842371..5a71f1f4e81 100644 --- a/src/emu/video/voodoo.h +++ b/src/emu/video/voodoo.h @@ -113,16 +113,16 @@ int voodoo_get_type(device_t *device); int voodoo_is_stalled(device_t *device); void voodoo_set_init_enable(device_t *device, UINT32 newval); -READ32_DEVICE_HANDLER( voodoo_r ); -WRITE32_DEVICE_HANDLER( voodoo_w ); - -READ32_DEVICE_HANDLER( banshee_r ); -WRITE32_DEVICE_HANDLER( banshee_w ); -READ32_DEVICE_HANDLER( banshee_fb_r ); -WRITE32_DEVICE_HANDLER( banshee_fb_w ); -READ32_DEVICE_HANDLER( banshee_io_r ); -WRITE32_DEVICE_HANDLER( banshee_io_w ); -READ32_DEVICE_HANDLER( banshee_rom_r ); +DECLARE_READ32_DEVICE_HANDLER( voodoo_r ); +DECLARE_WRITE32_DEVICE_HANDLER( voodoo_w ); + +DECLARE_READ32_DEVICE_HANDLER( banshee_r ); +DECLARE_WRITE32_DEVICE_HANDLER( banshee_w ); +DECLARE_READ32_DEVICE_HANDLER( banshee_fb_r ); +DECLARE_WRITE32_DEVICE_HANDLER( banshee_fb_w ); +DECLARE_READ32_DEVICE_HANDLER( banshee_io_r ); +DECLARE_WRITE32_DEVICE_HANDLER( banshee_io_w ); +DECLARE_READ32_DEVICE_HANDLER( banshee_rom_r ); /* ----- device interface ----- */ diff --git a/src/mame/audio/8080bw.c b/src/mame/audio/8080bw.c index a5b405ff3bd..d735178eaf8 100644 --- a/src/mame/audio/8080bw.c +++ b/src/mame/audio/8080bw.c @@ -282,7 +282,7 @@ WRITE8_MEMBER(_8080bw_state::indianbt_sh_port_2_w) WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w ) { - discrete_sound_w(device, INDIANBT_MUSIC_DATA, data); + discrete_sound_w(device, space, INDIANBT_MUSIC_DATA, data); } @@ -600,27 +600,27 @@ DISCRETE_SOUND_END WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w ) { - discrete_sound_w(device, POLARIS_MUSIC_DATA, data); + discrete_sound_w(device, space, POLARIS_MUSIC_DATA, data); } WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w ) { /* 0x01 - SX0 - Shot */ - discrete_sound_w(device, POLARIS_SX0_EN, data & 0x01); + discrete_sound_w(device, space, POLARIS_SX0_EN, data & 0x01); /* 0x02 - SX1 - Ship Hit (Sub) */ - discrete_sound_w(device, POLARIS_SX1_EN, data & 0x02); + discrete_sound_w(device, space, POLARIS_SX1_EN, data & 0x02); /* 0x04 - SX2 - Ship */ - discrete_sound_w(device, POLARIS_SX2_EN, data & 0x04); + discrete_sound_w(device, space, POLARIS_SX2_EN, data & 0x04); /* 0x08 - SX3 - Explosion */ - discrete_sound_w(device, POLARIS_SX3_EN, data & 0x08); + discrete_sound_w(device, space, POLARIS_SX3_EN, data & 0x08); /* 0x10 - SX4 */ /* 0x20 - SX5 - Sound Enable */ - discrete_sound_w(device, POLARIS_SX5_EN, data & 0x20); + discrete_sound_w(device, space, POLARIS_SX5_EN, data & 0x20); } WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w ) @@ -632,16 +632,16 @@ WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w ) state->m_c8080bw_flip_screen = data & 0x20; /* SX11 */ /* 0x01 - SX6 - Plane Down */ - discrete_sound_w(device, POLARIS_SX6_EN, data & 0x01); + discrete_sound_w(device, space, POLARIS_SX6_EN, data & 0x01); /* 0x02 - SX7 - Plane Up */ - discrete_sound_w(device, POLARIS_SX7_EN, data & 0x02); + discrete_sound_w(device, space, POLARIS_SX7_EN, data & 0x02); /* 0x08 - SX9 - Hit */ - discrete_sound_w(device, POLARIS_SX9_EN, data & 0x08); + discrete_sound_w(device, space, POLARIS_SX9_EN, data & 0x08); /* 0x10 - SX10 - Hit */ - discrete_sound_w(device, POLARIS_SX10_EN, data & 0x10); + discrete_sound_w(device, space, POLARIS_SX10_EN, data & 0x10); } @@ -789,8 +789,8 @@ WRITE8_MEMBER(_8080bw_state::schaser_sh_port_1_w) bit 5 - Explosion (SX5) */ //printf( "schaser_sh_port_1_w: %02x\n", data ); - discrete_sound_w(m_discrete, SCHASER_DOT_EN, data & 0x01); - discrete_sound_w(m_discrete, SCHASER_DOT_SEL, data & 0x02); + discrete_sound_w(m_discrete, space, SCHASER_DOT_EN, data & 0x01); + discrete_sound_w(m_discrete, space, SCHASER_DOT_SEL, data & 0x02); /* The effect is a variable rate 555 timer. A diode/resistor array is used to * select the frequency. Because of the diode voltage drop, we can not use the @@ -854,9 +854,9 @@ WRITE8_MEMBER(_8080bw_state::schaser_sh_port_2_w) //printf( "schaser_sh_port_2_w: %02x\n", data ); - discrete_sound_w(m_discrete, SCHASER_MUSIC_BIT, data & 0x01); + discrete_sound_w(m_discrete, space, SCHASER_MUSIC_BIT, data & 0x01); - discrete_sound_w(m_discrete, SCHASER_SND_EN, data & 0x02); + discrete_sound_w(m_discrete, space, SCHASER_SND_EN, data & 0x02); machine().sound().system_enable(data & 0x02); coin_lockout_global_w(machine(), data & 0x04); diff --git a/src/mame/audio/asteroid.c b/src/mame/audio/asteroid.c index 5927d192052..b6cc6990d72 100644 --- a/src/mame/audio/asteroid.c +++ b/src/mame/audio/asteroid.c @@ -280,7 +280,7 @@ DISCRETE_SOUND_END WRITE8_DEVICE_HANDLER( asteroid_explode_w ) { - discrete_sound_w(device,ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume + discrete_sound_w(device,space,ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume /* We will modify the pitch data to send the divider value. */ switch ((data&0xc0)) { @@ -297,27 +297,27 @@ WRITE8_DEVICE_HANDLER( asteroid_explode_w ) data = 5; break; } - discrete_sound_w(device,ASTEROID_EXPLODE_PITCH, data); + discrete_sound_w(device, space, ASTEROID_EXPLODE_PITCH, data); } WRITE8_DEVICE_HANDLER( asteroid_thump_w ) { - discrete_sound_w(device, ASTEROID_THUMP_EN, data & 0x10); - discrete_sound_w(device, ASTEROID_THUMP_DATA, data & 0x0f); + discrete_sound_w(device, space, ASTEROID_THUMP_EN, data & 0x10); + discrete_sound_w(device, space, ASTEROID_THUMP_DATA, data & 0x0f); } WRITE8_DEVICE_HANDLER( asteroid_sounds_w ) { - discrete_sound_w(device, NODE_RELATIVE(ASTEROID_SAUCER_SND_EN, offset), data & 0x80); + discrete_sound_w(device, space, NODE_RELATIVE(ASTEROID_SAUCER_SND_EN, offset), data & 0x80); } WRITE8_DEVICE_HANDLER( astdelux_sounds_w ) { /* Only ever activates the thrusters in Astdelux */ - discrete_sound_w(device, ASTEROID_THRUST_EN, data & 0x80); + discrete_sound_w(device, space, ASTEROID_THRUST_EN, data & 0x80); } WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w ) { - discrete_sound_w(device, ASTEROID_NOISE_RESET, 0); + discrete_sound_w(device, space, ASTEROID_NOISE_RESET, 0); } diff --git a/src/mame/audio/atarijsa.c b/src/mame/audio/atarijsa.c index e2d74d4d549..d79748376de 100644 --- a/src/mame/audio/atarijsa.c +++ b/src/mame/audio/atarijsa.c @@ -269,7 +269,7 @@ static WRITE8_HANDLER( jsa1_io_w ) case 0x200: /* /VOICE */ if (tms5220 != NULL) - tms5220_data_w(tms5220, 0, data); + tms5220_data_w(tms5220, *space, 0, data); break; case 0x202: /* /WRP */ diff --git a/src/mame/audio/avalnche.c b/src/mame/audio/avalnche.c index ab262e5f851..6bc3ce3f046 100644 --- a/src/mame/audio/avalnche.c +++ b/src/mame/audio/avalnche.c @@ -22,12 +22,12 @@ WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w ) { - discrete_sound_w(device, AVALNCHE_SOUNDLVL_DATA, data & 0x3f); + discrete_sound_w(device, space, AVALNCHE_SOUNDLVL_DATA, data & 0x3f); } WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w ) { - discrete_sound_w(device, AVALNCHE_ATTRACT_EN, data & 0x01); + discrete_sound_w(device, space, AVALNCHE_ATTRACT_EN, data & 0x01); } WRITE8_DEVICE_HANDLER( avalnche_audio_w ) @@ -37,16 +37,16 @@ WRITE8_DEVICE_HANDLER( avalnche_audio_w ) switch (offset & 0x07) { case 0x00: /* AUD0 */ - discrete_sound_w(device, AVALNCHE_AUD0_EN, bit); + discrete_sound_w(device, space, AVALNCHE_AUD0_EN, bit); break; case 0x01: /* AUD1 */ - discrete_sound_w(device, AVALNCHE_AUD1_EN, bit); + discrete_sound_w(device, space, AVALNCHE_AUD1_EN, bit); break; case 0x02: /* AUD2 */ default: - discrete_sound_w(device, AVALNCHE_AUD2_EN, bit); + discrete_sound_w(device, space, AVALNCHE_AUD2_EN, bit); break; } } diff --git a/src/mame/audio/blockade.c b/src/mame/audio/blockade.c index e20f5ed5355..8891f00ac74 100644 --- a/src/mame/audio/blockade.c +++ b/src/mame/audio/blockade.c @@ -38,7 +38,7 @@ DISCRETE_SOUND_END WRITE8_DEVICE_HANDLER( blockade_sound_freq_w ) { - discrete_sound_w(device,BLOCKADE_NOTE_DATA, data); + discrete_sound_w(device,space,BLOCKADE_NOTE_DATA, data); return; } diff --git a/src/mame/audio/bsktball.c b/src/mame/audio/bsktball.c index 382f35ebeef..578f8fd5c8b 100644 --- a/src/mame/audio/bsktball.c +++ b/src/mame/audio/bsktball.c @@ -12,18 +12,18 @@ Sound handlers ***************************************************************************/ WRITE8_DEVICE_HANDLER( bsktball_bounce_w ) { - discrete_sound_w(device, BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd - discrete_sound_w(device, BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce + discrete_sound_w(device, space, BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd + discrete_sound_w(device, space, BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce } WRITE8_DEVICE_HANDLER( bsktball_note_w ) { - discrete_sound_w(device, BSKTBALL_NOTE_DATA, data); // Note + discrete_sound_w(device, space, BSKTBALL_NOTE_DATA, data); // Note } WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w ) { - discrete_sound_w(device, BSKTBALL_NOISE_EN, offset & 0x01); + discrete_sound_w(device, space, BSKTBALL_NOISE_EN, offset & 0x01); } diff --git a/src/mame/audio/bzone.c b/src/mame/audio/bzone.c index 943047d9b6a..b80ec861c91 100644 --- a/src/mame/audio/bzone.c +++ b/src/mame/audio/bzone.c @@ -389,7 +389,7 @@ static const pokey_interface bzone_pokey_interface = WRITE8_DEVICE_HANDLER( bzone_sounds_w ) { - discrete_sound_w(device, BZ_INPUT, data); + discrete_sound_w(device, space, BZ_INPUT, data); output_set_value("startled", (data >> 6) & 1); device->machine().sound().system_enable(data & 0x20); diff --git a/src/mame/audio/canyon.c b/src/mame/audio/canyon.c index 5e19f6b56dd..bfc5e129b2a 100644 --- a/src/mame/audio/canyon.c +++ b/src/mame/audio/canyon.c @@ -16,25 +16,25 @@ WRITE8_DEVICE_HANDLER( canyon_motor_w ) { - discrete_sound_w(device, NODE_RELATIVE(CANYON_MOTOR1_DATA, (offset & 0x01)), data & 0x0f); + discrete_sound_w(device, space, NODE_RELATIVE(CANYON_MOTOR1_DATA, (offset & 0x01)), data & 0x0f); } WRITE8_DEVICE_HANDLER( canyon_explode_w ) { - discrete_sound_w(device, CANYON_EXPLODE_DATA, data >> 4); + discrete_sound_w(device, space, CANYON_EXPLODE_DATA, data >> 4); } WRITE8_DEVICE_HANDLER( canyon_attract_w ) { - discrete_sound_w(device, NODE_RELATIVE(CANYON_ATTRACT1_EN, (offset & 0x01)), offset & 0x02); + discrete_sound_w(device, space, NODE_RELATIVE(CANYON_ATTRACT1_EN, (offset & 0x01)), offset & 0x02); } WRITE8_DEVICE_HANDLER( canyon_whistle_w ) { - discrete_sound_w(device, NODE_RELATIVE(CANYON_WHISTLE1_EN, (offset & 0x01)), offset & 0x02); + discrete_sound_w(device, space, NODE_RELATIVE(CANYON_WHISTLE1_EN, (offset & 0x01)), offset & 0x02); } diff --git a/src/mame/audio/carnival.c b/src/mame/audio/carnival.c index 406ff929032..af5fd847969 100644 --- a/src/mame/audio/carnival.c +++ b/src/mame/audio/carnival.c @@ -274,11 +274,11 @@ static WRITE8_DEVICE_HANDLER( carnival_music_port_2_w ) break; case PSG_BC_WRITE: - ay8910_data_w( device, 0, psgData ); + ay8910_data_w( device, space, 0, psgData ); break; case PSG_BC_LATCH_ADDRESS: - ay8910_address_w( device, 0, psgData ); + ay8910_address_w( device, space, 0, psgData ); break; } } diff --git a/src/mame/audio/circus.c b/src/mame/audio/circus.c index 314ae123dca..fd37e080afd 100644 --- a/src/mame/audio/circus.c +++ b/src/mame/audio/circus.c @@ -184,11 +184,11 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w) switch ((data & 0x70) >> 4) { case 0 : /* All Off */ - discrete_sound_w(m_discrete, CIRCUS_MUSIC_BIT, 0); + discrete_sound_w(m_discrete, space, CIRCUS_MUSIC_BIT, 0); break; case 1 : /* Music */ - discrete_sound_w(m_discrete, CIRCUS_MUSIC_BIT, 1); + discrete_sound_w(m_discrete, space, CIRCUS_MUSIC_BIT, 1); break; case 2 : /* Circus = Pop; Rip Cord = Splash */ @@ -217,7 +217,7 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w) break; case 2: /* robotbwl */ - discrete_sound_w(m_discrete, ROBOTBWL_MUSIC_BIT, data & 0x08); /* Footsteps */ + discrete_sound_w(m_discrete, space, ROBOTBWL_MUSIC_BIT, data & 0x08); /* Footsteps */ if (data & 0x40) /* Hit */ m_samples->start(0, 0); @@ -242,11 +242,11 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w) switch ((data & 0x70) >> 4) { case 0 : /* All Off */ - discrete_sound_w(m_discrete, CRASH_MUSIC_BIT, 0); + discrete_sound_w(m_discrete, space, CRASH_MUSIC_BIT, 0); break; case 1 : /* Music */ - discrete_sound_w(m_discrete, CRASH_MUSIC_BIT, 1); + discrete_sound_w(m_discrete, space, CRASH_MUSIC_BIT, 1); break; case 2 : /* Crash */ @@ -254,14 +254,14 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w) break; case 3 : /* Normal Video and Beep */ - discrete_sound_w(m_discrete, CRASH_BEEPER_EN, 0); + discrete_sound_w(m_discrete, space, CRASH_BEEPER_EN, 0); break; case 4 : /* Skid */ break; case 5 : /* Invert Video and Beep */ - discrete_sound_w(m_discrete, CRASH_BEEPER_EN, 0); + discrete_sound_w(m_discrete, space, CRASH_BEEPER_EN, 0); break; case 6 : /* Hi Motor */ diff --git a/src/mame/audio/copsnrob.c b/src/mame/audio/copsnrob.c index 00374b0b547..7795f81b794 100644 --- a/src/mame/audio/copsnrob.c +++ b/src/mame/audio/copsnrob.c @@ -704,27 +704,27 @@ WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w) switch (offset) { case 0x00: - discrete_sound_w(device, COPSNROB_MOTOR3_INV, special_data); + discrete_sound_w(device, space, COPSNROB_MOTOR3_INV, special_data); break; case 0x01: - discrete_sound_w(device, COPSNROB_MOTOR2_INV, special_data); + discrete_sound_w(device, space, COPSNROB_MOTOR2_INV, special_data); break; case 0x02: - discrete_sound_w(device, COPSNROB_MOTOR1_INV, special_data); + discrete_sound_w(device, space, COPSNROB_MOTOR1_INV, special_data); break; case 0x03: - discrete_sound_w(device, COPSNROB_MOTOR0_INV, special_data); + discrete_sound_w(device, space, COPSNROB_MOTOR0_INV, special_data); break; case 0x04: - discrete_sound_w(device, COPSNROB_SCREECH_INV, special_data); + discrete_sound_w(device, space, COPSNROB_SCREECH_INV, special_data); break; case 0x05: - discrete_sound_w(device, COPSNROB_CRASH_INV, special_data); + discrete_sound_w(device, space, COPSNROB_CRASH_INV, special_data); break; case 0x06: @@ -733,7 +733,7 @@ WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w) break; case 0x07: - discrete_sound_w(device, COPSNROB_AUDIO_ENABLE, special_data); + discrete_sound_w(device, space, COPSNROB_AUDIO_ENABLE, special_data); //machine().sound().system_mute(special_data); break; diff --git a/src/mame/audio/crbaloon.c b/src/mame/audio/crbaloon.c index b2efe873dc8..4a7340f48d2 100644 --- a/src/mame/audio/crbaloon.c +++ b/src/mame/audio/crbaloon.c @@ -32,13 +32,13 @@ WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq ) { - discrete_sound_w(device, CRBALOON_MUSIC_DATA, data); + discrete_sound_w(device, space, CRBALOON_MUSIC_DATA, data); } WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable ) { - discrete_sound_w(device, CRBALOON_MUSIC_EN, data); + discrete_sound_w(device, space, CRBALOON_MUSIC_EN, data); } @@ -66,7 +66,7 @@ void crbaloon_audio_set_appear_enable(device_t *sn, int enabled) WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable ) { - discrete_sound_w(device, CRBALOON_LAUGH_EN, data); + discrete_sound_w(device, space, CRBALOON_LAUGH_EN, data); } diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c index 2bafc7173fe..a929b5f926c 100644 --- a/src/mame/audio/dkong.c +++ b/src/mame/audio/dkong.c @@ -1214,7 +1214,7 @@ Addresses found at @0x510, cpu2 static WRITE8_DEVICE_HANDLER( M58817_command_w ) { - tms5110_ctl_w(device, 0, data & 0x0f); + tms5110_ctl_w(device, space, 0, data & 0x0f); tms5110_pdc_w(device, (data>>4) & 0x01); /* FIXME 0x20 is CS */ } @@ -1234,6 +1234,7 @@ WRITE8_MEMBER(dkong_state::dkong_voice_w) logerror("dkong_speech_w: 0x%02x\n", data); } +static DECLARE_READ8_DEVICE_HANDLER( dkong_voice_status_r ); static READ8_DEVICE_HANDLER( dkong_voice_status_r ) { /* only provided for documentation purposes @@ -1245,11 +1246,11 @@ static READ8_DEVICE_HANDLER( dkong_voice_status_r ) static READ8_DEVICE_HANDLER( dkong_tune_r ) { dkong_state *state = device->machine().driver_data<dkong_state>(); - UINT8 page = latch8_r(state->m_dev_vp2, 0) & 0x47; + UINT8 page = latch8_r(state->m_dev_vp2, space, 0) & 0x47; if ( page & 0x40 ) { - return (latch8_r(device, 0) & 0x0F) | (dkong_voice_status_r(device, 0) << 4); + return (latch8_r(device, space, 0) & 0x0F) | (dkong_voice_status_r(device, space, 0) << 4); } else { @@ -1260,7 +1261,7 @@ static READ8_DEVICE_HANDLER( dkong_tune_r ) static WRITE8_DEVICE_HANDLER( dkong_p1_w ) { - discrete_sound_w(device,DS_DAC,data); + discrete_sound_w(device,space,DS_DAC,data); } diff --git a/src/mame/audio/exidy.c b/src/mame/audio/exidy.c index fe23703e7c7..387064bad56 100644 --- a/src/mame/audio/exidy.c +++ b/src/mame/audio/exidy.c @@ -533,7 +533,7 @@ static WRITE8_DEVICE_HANDLER( r6532_porta_w ) if (state->m_tms != NULL) { logerror("(%f)%s:TMS5220 data write = %02X\n", device->machine().time().as_double(), device->machine().describe_context(), riot6532_porta_out_get(state->m_riot)); - tms5220_data_w(state->m_tms, 0, data); + tms5220_data_w(state->m_tms, space, 0, data); } } @@ -542,8 +542,8 @@ static READ8_DEVICE_HANDLER( r6532_porta_r ) exidy_sound_state *state = get_safe_token(device); if (state->m_tms != NULL) { - logerror("(%f)%s:TMS5220 status read = %02X\n", device->machine().time().as_double(), device->machine().describe_context(), tms5220_status_r(state->m_tms, 0)); - return tms5220_status_r(state->m_tms, 0); + logerror("(%f)%s:TMS5220 status read = %02X\n", device->machine().time().as_double(), device->machine().describe_context(), tms5220_status_r(state->m_tms, space, 0)); + return tms5220_status_r(state->m_tms, space, 0); } else return 0xff; diff --git a/src/mame/audio/exidy.h b/src/mame/audio/exidy.h index 429aeb6d26e..622cecae63e 100644 --- a/src/mame/audio/exidy.h +++ b/src/mame/audio/exidy.h @@ -60,15 +60,15 @@ private: extern const device_type EXIDY_VICTORY; -READ8_DEVICE_HANDLER( exidy_sh6840_r ); -WRITE8_DEVICE_HANDLER( exidy_sh6840_w ); -WRITE8_DEVICE_HANDLER( exidy_sfxctrl_w ); +DECLARE_READ8_DEVICE_HANDLER( exidy_sh6840_r ); +DECLARE_WRITE8_DEVICE_HANDLER( exidy_sh6840_w ); +DECLARE_WRITE8_DEVICE_HANDLER( exidy_sfxctrl_w ); MACHINE_CONFIG_EXTERN( venture_audio ); MACHINE_CONFIG_EXTERN( mtrap_cvsd_audio ); MACHINE_CONFIG_EXTERN( victory_audio ); -READ8_DEVICE_HANDLER( victory_sound_response_r ); -READ8_DEVICE_HANDLER( victory_sound_status_r ); -WRITE8_DEVICE_HANDLER( victory_sound_command_w ); +DECLARE_READ8_DEVICE_HANDLER( victory_sound_response_r ); +DECLARE_READ8_DEVICE_HANDLER( victory_sound_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( victory_sound_command_w ); diff --git a/src/mame/audio/firetrk.c b/src/mame/audio/firetrk.c index 21e5178b7f1..63c02d0e94c 100644 --- a/src/mame/audio/firetrk.c +++ b/src/mame/audio/firetrk.c @@ -16,50 +16,50 @@ WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w ) state->m_skid[1] = 0; // also SUPERBUG_SKID_EN - discrete_sound_w(device, FIRETRUCK_SKID_EN, 1); + discrete_sound_w(device, space, FIRETRUCK_SKID_EN, 1); } WRITE8_DEVICE_HANDLER( montecar_skid_reset_w ) { - discrete_sound_w(device, MONTECAR_SKID_EN, 1); + discrete_sound_w(device, space, MONTECAR_SKID_EN, 1); } WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w ) { // also SUPERBUG_CRASH_DATA and MONTECAR_CRASH_DATA - discrete_sound_w(device, FIRETRUCK_CRASH_DATA, data >> 4); + discrete_sound_w(device, space, FIRETRUCK_CRASH_DATA, data >> 4); } WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w ) { // also SUPERBUG_SKID_EN and MONTECAR_SKID_EN - discrete_sound_w(device, FIRETRUCK_SKID_EN, 0); + discrete_sound_w(device, space, FIRETRUCK_SKID_EN, 0); } WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w ) { // also MONTECAR_DRONE_MOTOR_DATA - discrete_sound_w(device, FIRETRUCK_SIREN_DATA, data >> 4); + discrete_sound_w(device, space, FIRETRUCK_SIREN_DATA, data >> 4); // also MONTECAR_MOTOR_DATA - discrete_sound_w(device, FIRETRUCK_MOTOR_DATA, data & 0x0f); + discrete_sound_w(device, space, FIRETRUCK_MOTOR_DATA, data & 0x0f); } WRITE8_DEVICE_HANDLER( superbug_motor_snd_w ) { - discrete_sound_w(device, SUPERBUG_SPEED_DATA, data & 0x0f); + discrete_sound_w(device, space, SUPERBUG_SPEED_DATA, data & 0x0f); } WRITE8_DEVICE_HANDLER( firetrk_xtndply_w ) { // also SUPERBUG_ASR_EN (extended play) - discrete_sound_w(device, FIRETRUCK_XTNDPLY_EN, data); + discrete_sound_w(device, space, FIRETRUCK_XTNDPLY_EN, data); } diff --git a/src/mame/audio/galaxian.c b/src/mame/audio/galaxian.c index 951861f711f..f7c6bea24da 100644 --- a/src/mame/audio/galaxian.c +++ b/src/mame/audio/galaxian.c @@ -408,7 +408,7 @@ static SOUND_START(galaxian) /* IC 9J */ WRITE8_DEVICE_HANDLER( galaxian_pitch_w ) { - discrete_sound_w(device, GAL_INP_PITCH, data ); + discrete_sound_w(device, space, GAL_INP_PITCH, data ); } WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w ) @@ -418,29 +418,29 @@ WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w ) if (lfo_val != lfo_val_new) { lfo_val = lfo_val_new; - discrete_sound_w(device, GAL_INP_BG_DAC, lfo_val); + discrete_sound_w(device, space, GAL_INP_BG_DAC, lfo_val); } } WRITE8_DEVICE_HANDLER( galaxian_background_enable_w ) { - discrete_sound_w(device, NODE_RELATIVE(GAL_INP_FS1, offset), data & 0x01); + discrete_sound_w(device, space, NODE_RELATIVE(GAL_INP_FS1, offset), data & 0x01); } WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w ) { - discrete_sound_w(device, GAL_INP_HIT, data & 0x01); + discrete_sound_w(device, space, GAL_INP_HIT, data & 0x01); } WRITE8_DEVICE_HANDLER( galaxian_vol_w ) { - discrete_sound_w(device, NODE_RELATIVE(GAL_INP_VOL1,offset), data & 0x01); + discrete_sound_w(device, space, NODE_RELATIVE(GAL_INP_VOL1,offset), data & 0x01); } /* FIXME: rename to fire to be consistent */ WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w ) { - discrete_sound_w(device, GAL_INP_FIRE, data & 0x01); + discrete_sound_w(device, space, GAL_INP_FIRE, data & 0x01); } /* FIXME: May be replaced by one call! */ @@ -452,23 +452,23 @@ WRITE8_DEVICE_HANDLER( galaxian_sound_w ) case 0: /* FS1 (controls 555 timer at 8R) */ case 1: /* FS2 (controls 555 timer at 8S) */ case 2: /* FS3 (controls 555 timer at 8T) */ - galaxian_background_enable_w(device, offset, data); + galaxian_background_enable_w(device, space, offset, data); break; case 3: /* HIT */ - galaxian_noise_enable_w(device, 0, data); + galaxian_noise_enable_w(device, space, 0, data); break; case 4: /* n/c */ break; case 5: /* FIRE */ - galaxian_shoot_enable_w(device, 0, data); + galaxian_shoot_enable_w(device, space, 0, data); break; case 6: /* VOL1 */ case 7: /* VOL2 */ - galaxian_vol_w(device, offset & 1, data); + galaxian_vol_w(device, space, offset & 1, data); break; } } diff --git a/src/mame/audio/galaxian.h b/src/mame/audio/galaxian.h index bd586385bc4..be423de6a3b 100644 --- a/src/mame/audio/galaxian.h +++ b/src/mame/audio/galaxian.h @@ -3,11 +3,11 @@ MACHINE_CONFIG_EXTERN( mooncrst_audio ); MACHINE_CONFIG_EXTERN( galaxian_audio ); -WRITE8_DEVICE_HANDLER( galaxian_sound_w ); -WRITE8_DEVICE_HANDLER( galaxian_pitch_w ); -WRITE8_DEVICE_HANDLER( galaxian_vol_w ); -WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w ); -WRITE8_DEVICE_HANDLER( galaxian_background_enable_w ); -WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w ); -WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_pitch_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_vol_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_background_enable_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w ); +DECLARE_WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w ); diff --git a/src/mame/audio/gottlieb.c b/src/mame/audio/gottlieb.c index 35112571361..be38034f0fb 100644 --- a/src/mame/audio/gottlieb.c +++ b/src/mame/audio/gottlieb.c @@ -772,9 +772,9 @@ WRITE8_MEMBER( gottlieb_sound_r2_device::speech_control_w ) // bit 3 selects which of the two 8913 to enable // bit 4 goes to the 8913 BC1 pin if ((data & 0x08) != 0) - ay8910_data_address_w(m_ay1, data >> 4, m_psg_latch); + ay8910_data_address_w(m_ay1, space, data >> 4, m_psg_latch); else - ay8910_data_address_w(m_ay2, data >> 4, m_psg_latch); + ay8910_data_address_w(m_ay2, space, data >> 4, m_psg_latch); } } else @@ -786,8 +786,8 @@ WRITE8_MEMBER( gottlieb_sound_r2_device::speech_control_w ) else { ay8913_device *ay = (data & 0x08) ? m_ay1 : m_ay2; - ay8910_address_w(ay, 0, m_psg_latch); - ay8910_data_w(ay, 0, m_psg_data_latch); + ay8910_address_w(ay, space, 0, m_psg_latch); + ay8910_data_w(ay, space, 0, m_psg_data_latch); } } @@ -795,7 +795,7 @@ WRITE8_MEMBER( gottlieb_sound_r2_device::speech_control_w ) // bit 6 = speech chip DATA PRESENT pin; high then low to make the chip read data if ((previous & 0x40) == 0 && (data & 0x40) != 0) - sp0250_w(m_sp0250, 0, m_sp0250_latch); + sp0250_w(m_sp0250, space, 0, m_sp0250_latch); // bit 7 goes to the speech chip RESET pin if ((previous ^ data) & 0x80) diff --git a/src/mame/audio/hyprolyb.h b/src/mame/audio/hyprolyb.h index 1e20f7f2df7..d2145720d7b 100644 --- a/src/mame/audio/hyprolyb.h +++ b/src/mame/audio/hyprolyb.h @@ -1,5 +1,5 @@ -WRITE8_DEVICE_HANDLER( hyprolyb_adpcm_w ); -READ8_DEVICE_HANDLER( hyprolyb_adpcm_busy_r ); +DECLARE_WRITE8_DEVICE_HANDLER( hyprolyb_adpcm_w ); +DECLARE_READ8_DEVICE_HANDLER( hyprolyb_adpcm_busy_r ); MACHINE_CONFIG_EXTERN( hyprolyb_adpcm ); diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c index 037b361c168..0edf0d3a374 100644 --- a/src/mame/audio/irem.c +++ b/src/mame/audio/irem.c @@ -98,17 +98,17 @@ static WRITE8_DEVICE_HANDLER( m6803_port2_w ) { /* PSG 0 or 1? */ if (state->m_port2 & 0x08) - ay8910_address_w(state->m_ay1, 0, state->m_port1); + ay8910_address_w(state->m_ay1, space, 0, state->m_port1); if (state->m_port2 & 0x10) - ay8910_address_w(state->m_ay2, 0, state->m_port1); + ay8910_address_w(state->m_ay2, space, 0, state->m_port1); } else { /* PSG 0 or 1? */ if (state->m_port2 & 0x08) - ay8910_data_w(state->m_ay1, 0, state->m_port1); + ay8910_data_w(state->m_ay1, space, 0, state->m_port1); if (state->m_port2 & 0x10) - ay8910_data_w(state->m_ay2, 0, state->m_port1); + ay8910_data_w(state->m_ay2, space, 0, state->m_port1); } } state->m_port2 = data; @@ -128,9 +128,9 @@ static READ8_DEVICE_HANDLER( m6803_port1_r ) /* PSG 0 or 1? */ if (state->m_port2 & 0x08) - return ay8910_r(state->m_ay1, 0); + return ay8910_r(state->m_ay1, space, 0); if (state->m_port2 & 0x10) - return ay8910_r(state->m_ay2, 0); + return ay8910_r(state->m_ay2, space, 0); return 0xff; } diff --git a/src/mame/audio/jedi.c b/src/mame/audio/jedi.c index 989d6ba994f..6aeaf97e0ee 100644 --- a/src/mame/audio/jedi.c +++ b/src/mame/audio/jedi.c @@ -143,7 +143,7 @@ WRITE8_MEMBER(jedi_state::speech_strobe_w) if ((new_speech_strobe_state != m_speech_strobe_state) && new_speech_strobe_state) { device_t *tms = machine().device("tms"); - tms5220_data_w(tms, 0, *m_speech_data); + tms5220_data_w(tms, space, 0, *m_speech_data); } m_speech_strobe_state = new_speech_strobe_state; } diff --git a/src/mame/audio/leland.c b/src/mame/audio/leland.c index 5c3ddd2bdd9..6e365ab4d63 100644 --- a/src/mame/audio/leland.c +++ b/src/mame/audio/leland.c @@ -307,8 +307,8 @@ void leland_dac_update(device_t *device, int dacnum, UINT8 sample) static void set_dac_frequency(leland_sound_state *state, int which, int frequency); -static READ16_DEVICE_HANDLER( peripheral_r ); -static WRITE16_DEVICE_HANDLER( peripheral_w ); +static DECLARE_READ16_DEVICE_HANDLER( peripheral_r ); +static DECLARE_WRITE16_DEVICE_HANDLER( peripheral_w ); @@ -1441,9 +1441,9 @@ static WRITE16_DEVICE_HANDLER( i80186_internal_port_w ) /* handle partials */ if (!ACCESSING_BITS_8_15) - data = (i80186_internal_port_r(device, offset, 0xff00) & 0xff00) | (data & 0x00ff); + data = (i80186_internal_port_r(device, space, offset, 0xff00) & 0xff00) | (data & 0x00ff); else if (!ACCESSING_BITS_0_7) - data = (i80186_internal_port_r(device, offset, 0x00ff) & 0x00ff) | (data & 0xff00); + data = (i80186_internal_port_r(device, space, offset, 0x00ff) & 0x00ff) | (data & 0xff00); switch (offset) { @@ -2118,13 +2118,13 @@ static WRITE16_DEVICE_HANDLER( ataxx_dac_control ) case 0x01: case 0x02: if (ACCESSING_BITS_0_7) - dac_w(device, offset, data, 0x00ff); + dac_w(device, space, offset, data, 0x00ff); return; case 0x03: - dac_w(device, 0, ((data << 13) & 0xe000) | ((data << 10) & 0x1c00) | ((data << 7) & 0x0300), 0xff00); - dac_w(device, 2, ((data << 10) & 0xe000) | ((data << 7) & 0x1c00) | ((data << 4) & 0x0300), 0xff00); - dac_w(device, 4, ((data << 8) & 0xc000) | ((data << 6) & 0x3000) | ((data << 4) & 0x0c00) | ((data << 2) & 0x0300), 0xff00); + dac_w(device, space, 0, ((data << 13) & 0xe000) | ((data << 10) & 0x1c00) | ((data << 7) & 0x0300), 0xff00); + dac_w(device, space, 2, ((data << 10) & 0xe000) | ((data << 7) & 0x1c00) | ((data << 4) & 0x0300), 0xff00); + dac_w(device, space, 4, ((data << 8) & 0xc000) | ((data << 6) & 0x3000) | ((data << 4) & 0x0c00) | ((data << 2) & 0x0300), 0xff00); return; } @@ -2159,7 +2159,7 @@ static WRITE16_DEVICE_HANDLER( ataxx_dac_control ) return; case 0x21: - dac_w(device, offset - 0x21 + 7, data, mem_mask); + dac_w(device, space, offset - 0x21 + 7, data, mem_mask); return; } } @@ -2195,20 +2195,20 @@ static READ16_DEVICE_HANDLER( peripheral_r ) return ((state->m_clock_active << 1) & 0x7e); case 1: - return main_to_sound_comm_r(device, offset, mem_mask); + return main_to_sound_comm_r(device, space, offset, mem_mask); case 2: - return pit8254_r(device, offset, mem_mask); + return pit8254_r(device, space, offset, mem_mask); case 3: if (!state->m_has_ym2151) - return pit8254_r(device, offset | 0x40, mem_mask); + return pit8254_r(device, space, offset | 0x40, mem_mask); else - return ym2151_r(device->machine().device("ymsnd"), offset); + return ym2151_r(device->machine().device("ymsnd"), space, offset); case 4: if (state->m_is_redline) - return pit8254_r(device, offset | 0x80, mem_mask); + return pit8254_r(device, space, offset | 0x80, mem_mask); else logerror("%05X:Unexpected peripheral read %d/%02X\n", state->m_i80186.cpu->safe_pc(), select, offset*2); break; @@ -2230,29 +2230,29 @@ static WRITE16_DEVICE_HANDLER( peripheral_w ) switch (select) { case 1: - sound_to_main_comm_w(device, offset, data, mem_mask); + sound_to_main_comm_w(device, space, offset, data, mem_mask); break; case 2: - pit8254_w(device, offset, data, mem_mask); + pit8254_w(device, space, offset, data, mem_mask); break; case 3: if (!state->m_has_ym2151) - pit8254_w(device, offset | 0x40, data, mem_mask); + pit8254_w(device, space, offset | 0x40, data, mem_mask); else - ym2151_w(device->machine().device("ymsnd"), offset, data); + ym2151_w(device->machine().device("ymsnd"), space, offset, data); break; case 4: if (state->m_is_redline) - pit8254_w(device, offset | 0x80, data, mem_mask); + pit8254_w(device, space, offset | 0x80, data, mem_mask); else - dac_10bit_w(device, offset, data, mem_mask); + dac_10bit_w(device, space, offset, data, mem_mask); break; case 5: /* Ataxx/WSF/Indy Heat only */ - ataxx_dac_control(device, offset, data, mem_mask); + ataxx_dac_control(device, space, offset, data, mem_mask); break; default: @@ -2276,7 +2276,7 @@ WRITE8_DEVICE_HANDLER( ataxx_80186_control_w ) ((data & 0x02) << 5) | ((data & 0x04) << 3) | ((data & 0x08) << 1); - leland_80186_control_w(device, offset, modified); + leland_80186_control_w(device, space, offset, modified); } diff --git a/src/mame/audio/llander.c b/src/mame/audio/llander.c index 0c5f67b80be..085bc9426ff 100644 --- a/src/mame/audio/llander.c +++ b/src/mame/audio/llander.c @@ -83,14 +83,14 @@ DISCRETE_SOUND_END WRITE8_DEVICE_HANDLER( llander_snd_reset_w ) { /* Resets the LFSR that is used for the white noise generator */ - discrete_sound_w(device, LLANDER_NOISE_RESET, 0); /* Reset */ + discrete_sound_w(device, space, LLANDER_NOISE_RESET, 0); /* Reset */ } WRITE8_DEVICE_HANDLER( llander_sounds_w ) { - discrete_sound_w(device, LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */ - discrete_sound_w(device, LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */ - discrete_sound_w(device, LLANDER_TONE6K_EN, data & 0x20); /* Tone 6KHz enable */ - discrete_sound_w(device, LLANDER_EXPLOD_EN, data & 0x08); /* Explosion */ + discrete_sound_w(device, space, LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */ + discrete_sound_w(device, space, LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */ + discrete_sound_w(device, space, LLANDER_TONE6K_EN, data & 0x20); /* Tone 6KHz enable */ + discrete_sound_w(device, space, LLANDER_EXPLOD_EN, data & 0x08); /* Explosion */ } diff --git a/src/mame/audio/m72.h b/src/mame/audio/m72.h index 5713dd3f4b2..52513f2e4ca 100644 --- a/src/mame/audio/m72.h +++ b/src/mame/audio/m72.h @@ -5,18 +5,18 @@ ****************************************************************************/ void m72_ym2151_irq_handler(device_t *device, int irq); -WRITE8_DEVICE_HANDLER( m72_sound_command_byte_w ); -WRITE16_DEVICE_HANDLER( m72_sound_command_w ); -WRITE8_DEVICE_HANDLER( m72_sound_irq_ack_w ); -READ8_DEVICE_HANDLER( m72_sample_r ); -WRITE8_DEVICE_HANDLER( m72_sample_w ); +DECLARE_WRITE8_DEVICE_HANDLER( m72_sound_command_byte_w ); +DECLARE_WRITE16_DEVICE_HANDLER( m72_sound_command_w ); +DECLARE_WRITE8_DEVICE_HANDLER( m72_sound_irq_ack_w ); +DECLARE_READ8_DEVICE_HANDLER( m72_sample_r ); +DECLARE_WRITE8_DEVICE_HANDLER( m72_sample_w ); /* the port goes to different address bits depending on the game */ void m72_set_sample_start(device_t *device, int start); -WRITE8_DEVICE_HANDLER( vigilant_sample_addr_w ); -WRITE8_DEVICE_HANDLER( shisen_sample_addr_w ); -WRITE8_DEVICE_HANDLER( rtype2_sample_addr_w ); -WRITE8_DEVICE_HANDLER( poundfor_sample_addr_w ); +DECLARE_WRITE8_DEVICE_HANDLER( vigilant_sample_addr_w ); +DECLARE_WRITE8_DEVICE_HANDLER( shisen_sample_addr_w ); +DECLARE_WRITE8_DEVICE_HANDLER( rtype2_sample_addr_w ); +DECLARE_WRITE8_DEVICE_HANDLER( poundfor_sample_addr_w ); class m72_audio_device : public device_t, public device_sound_interface diff --git a/src/mame/audio/m79amb.c b/src/mame/audio/m79amb.c index 65f28e4009c..bbdf646a486 100644 --- a/src/mame/audio/m79amb.c +++ b/src/mame/audio/m79amb.c @@ -325,9 +325,9 @@ WRITE8_DEVICE_HANDLER( m79amb_8000_w ) /* these values are not latched */ /* they are pulsed when the port is addressed */ /* the discrete system will just trigger from them */ - discrete_sound_w(device, M79AMB_SHOT_EN, data & 0x01); - discrete_sound_w(device, M79AMB_BOOM_EN, data & 0x02); - discrete_sound_w(device, M79AMB_THUD_EN, data & 0x04); + discrete_sound_w(device, space, M79AMB_SHOT_EN, data & 0x01); + discrete_sound_w(device, space, M79AMB_BOOM_EN, data & 0x02); + discrete_sound_w(device, space, M79AMB_THUD_EN, data & 0x04); }; WRITE8_DEVICE_HANDLER( m79amb_8003_w ) @@ -335,9 +335,9 @@ WRITE8_DEVICE_HANDLER( m79amb_8003_w ) /* Self Test goes low on reset and lights LED */ /* LED goes off on pass */ output_set_value("SELF_TEST", data & 0x01); - discrete_sound_w(device, M79AMB_MC_REV_EN, data & 0x02); - discrete_sound_w(device, M79AMB_MC_CONTROL_EN, data & 0x04); - discrete_sound_w(device, M79AMB_TANK_TRUCK_JEEP_EN, data & 0x08); - discrete_sound_w(device, M79AMB_WHISTLE_B_EN, data & 0x10); - discrete_sound_w(device, M79AMB_WHISTLE_A_EN, data & 0x20); + discrete_sound_w(device, space, M79AMB_MC_REV_EN, data & 0x02); + discrete_sound_w(device, space, M79AMB_MC_CONTROL_EN, data & 0x04); + discrete_sound_w(device, space, M79AMB_TANK_TRUCK_JEEP_EN, data & 0x08); + discrete_sound_w(device, space, M79AMB_WHISTLE_B_EN, data & 0x10); + discrete_sound_w(device, space, M79AMB_WHISTLE_A_EN, data & 0x20); } diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c index bb798c19d4b..17fa2036076 100644 --- a/src/mame/audio/mario.c +++ b/src/mame/audio/mario.c @@ -494,7 +494,7 @@ READ8_MEMBER(mario_state::mario_sh_tune_r) static WRITE8_DEVICE_HANDLER( mario_sh_sound_w ) { - discrete_sound_w(device, DS_DAC, data); + discrete_sound_w(device, space, DS_DAC, data); } WRITE8_MEMBER(mario_state::mario_sh_p1_w) @@ -536,13 +536,13 @@ WRITE8_MEMBER(mario_state::mario_sh_tuneselect_w) /* Mario running sample */ WRITE8_DEVICE_HANDLER( mario_sh1_w ) { - discrete_sound_w(device, DS_SOUND0_INP, 0); + discrete_sound_w(device, space, DS_SOUND0_INP, 0); } /* Luigi running sample */ WRITE8_DEVICE_HANDLER( mario_sh2_w ) { - discrete_sound_w(device, DS_SOUND1_INP, 0); + discrete_sound_w(device, space, DS_SOUND1_INP, 0); } /* Misc samples */ @@ -576,7 +576,7 @@ WRITE8_MEMBER(mario_state::mario_sh3_w) I8035_P1_W_AH(space, 3, data & 1); break; case 7: /* skid */ - discrete_sound_w(machine().device("discrete"), DS_SOUND7_INP, data & 1); + discrete_sound_w(machine().device("discrete"), space, DS_SOUND7_INP, data & 1); break; } } diff --git a/src/mame/audio/micro3d.c b/src/mame/audio/micro3d.c index 6dcab28d934..55c856ebac3 100644 --- a/src/mame/audio/micro3d.c +++ b/src/mame/audio/micro3d.c @@ -395,7 +395,7 @@ READ8_MEMBER(micro3d_state::micro3d_sound_io_r) WRITE8_DEVICE_HANDLER( micro3d_upd7759_w ) { - upd7759_port_w(device, 0, data); + upd7759_port_w(device, space, 0, data); upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/audio/midway.c b/src/mame/audio/midway.c index c80c6b1c09a..cf3339c0ab9 100644 --- a/src/mame/audio/midway.c +++ b/src/mame/audio/midway.c @@ -1198,7 +1198,7 @@ WRITE8_MEMBER(midway_squawk_n_talk_device::portb2_w) // write strobe -- pass the current command to the TMS5200 if (((data ^ m_tms_strobes) & 0x02) && !(data & 0x02)) { - tms5220_data_w(m_tms5200, offset, m_tms_command); + tms5220_data_w(m_tms5200, space, offset, m_tms_command); // DoT expects the ready line to transition on a command/write here, so we oblige m_pia1->ca2_w(1); @@ -1208,7 +1208,7 @@ WRITE8_MEMBER(midway_squawk_n_talk_device::portb2_w) // read strobe -- read the current status from the TMS5200 else if (((data ^ m_tms_strobes) & 0x01) && !(data & 0x01)) { - m_pia1->porta_w(tms5220_status_r(m_tms5200, offset)); + m_pia1->porta_w(tms5220_status_r(m_tms5200, space, offset)); // DoT expects the ready line to transition on a command/write here, so we oblige m_pia1->ca2_w(1); diff --git a/src/mame/audio/mw8080bw.c b/src/mame/audio/mw8080bw.c index bc59822faff..558e009a358 100644 --- a/src/mame/audio/mw8080bw.c +++ b/src/mame/audio/mw8080bw.c @@ -85,9 +85,9 @@ static const discrete_op_amp_tvca_info midway_music_tvca_info = WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w ) { - discrete_sound_w(device, MIDWAY_TONE_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, MIDWAY_TONE_EN, (data >> 0) & 0x01); - discrete_sound_w(device, MIDWAY_TONE_DATA_L, (data >> 1) & 0x1f); + discrete_sound_w(device, space, MIDWAY_TONE_DATA_L, (data >> 1) & 0x1f); /* D6 and D7 are not connected */ } @@ -95,7 +95,7 @@ WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w ) WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w ) { - discrete_sound_w(device, MIDWAY_TONE_DATA_H, data & 0x3f); + discrete_sound_w(device, space, MIDWAY_TONE_DATA_H, data & 0x3f); /* D6 and D7 are not connected */ } @@ -328,11 +328,11 @@ MACHINE_CONFIG_END WRITE8_DEVICE_HANDLER( tornbase_audio_w ) { - discrete_sound_w(device, TORNBASE_TONE_240_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, TORNBASE_TONE_240_EN, (data >> 0) & 0x01); - discrete_sound_w(device, TORNBASE_TONE_960_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, TORNBASE_TONE_960_EN, (data >> 1) & 0x01); - discrete_sound_w(device, TORNBASE_TONE_120_EN, (data >> 2) & 0x01); + discrete_sound_w(device, space, TORNBASE_TONE_120_EN, (data >> 2) & 0x01); /* if (data & 0x08) enable SIREN sound */ @@ -577,17 +577,18 @@ void maze_write_discrete(device_t *device, UINT8 maze_tone_timing_state) /* controls need to be active low */ int controls = ~device->machine().root_device().ioport("IN0")->read() & 0xff; - discrete_sound_w(device, MAZE_TONE_TIMING, maze_tone_timing_state); - discrete_sound_w(device, MAZE_P1_DATA, controls & 0x0f); - discrete_sound_w(device, MAZE_P2_DATA, (controls >> 4) & 0x0f); - discrete_sound_w(device, MAZE_JOYSTICK_IN_USE, controls != 0xff); + address_space &space = device->machine().driver_data()->generic_space(); + discrete_sound_w(device, space, MAZE_TONE_TIMING, maze_tone_timing_state); + discrete_sound_w(device, space, MAZE_P1_DATA, controls & 0x0f); + discrete_sound_w(device, space, MAZE_P2_DATA, (controls >> 4) & 0x0f); + discrete_sound_w(device, space, MAZE_JOYSTICK_IN_USE, controls != 0xff); /* The coin line is connected directly to the discrete circuit. */ /* We can't really do that, so updating it with the tone timing is close enough. */ /* A better option might be to update it at vblank or set a timer to do it. */ /* The only noticeable difference doing it here, is that the controls don't */ /* immediately start making tones if pressed right after the coin is inserted. */ - discrete_sound_w(device, MAZE_COIN, (~device->machine().root_device().ioport("IN1")->read() >> 3) & 0x01); + discrete_sound_w(device, space, MAZE_COIN, (~device->machine().root_device().ioport("IN1")->read() >> 3) & 0x01); } @@ -825,15 +826,15 @@ WRITE8_DEVICE_HANDLER( boothill_audio_w ) coin_counter_w(device->machine(), 0, (data >> 2) & 0x01); - discrete_sound_w(device, BOOTHILL_GAME_ON_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, BOOTHILL_GAME_ON_EN, (data >> 3) & 0x01); - discrete_sound_w(device, BOOTHILL_LEFT_SHOT_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, BOOTHILL_LEFT_SHOT_EN, (data >> 4) & 0x01); - discrete_sound_w(device, BOOTHILL_RIGHT_SHOT_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, BOOTHILL_RIGHT_SHOT_EN, (data >> 5) & 0x01); - discrete_sound_w(device, BOOTHILL_LEFT_HIT_EN, (data >> 6) & 0x01); + discrete_sound_w(device, space, BOOTHILL_LEFT_HIT_EN, (data >> 6) & 0x01); - discrete_sound_w(device, BOOTHILL_RIGHT_HIT_EN, (data >> 7) & 0x01); + discrete_sound_w(device, space, BOOTHILL_RIGHT_HIT_EN, (data >> 7) & 0x01); } @@ -1050,16 +1051,16 @@ MACHINE_CONFIG_END WRITE8_DEVICE_HANDLER( checkmat_audio_w ) { - discrete_sound_w(device, CHECKMAT_TONE_EN, data & 0x01); + discrete_sound_w(device, space, CHECKMAT_TONE_EN, data & 0x01); - discrete_sound_w(device, CHECKMAT_BOOM_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, CHECKMAT_BOOM_EN, (data >> 1) & 0x01); coin_counter_w(device->machine(), 0, (data >> 2) & 0x01); device->machine().sound().system_enable((data >> 3) & 0x01); - discrete_sound_w(device, CHECKMAT_TONE_DATA_45, (data >> 4) & 0x03); - discrete_sound_w(device, CHECKMAT_TONE_DATA_67, (data >> 6) & 0x03); + discrete_sound_w(device, space, CHECKMAT_TONE_DATA_45, (data >> 4) & 0x03); + discrete_sound_w(device, space, CHECKMAT_TONE_DATA_67, (data >> 6) & 0x03); } @@ -1265,15 +1266,15 @@ WRITE8_DEVICE_HANDLER( desertgu_audio_1_w ) coin_counter_w(device->machine(), 0, (data >> 2) & 0x01); - discrete_sound_w(device, DESERTGU_GAME_ON_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, DESERTGU_GAME_ON_EN, (data >> 3) & 0x01); - discrete_sound_w(device, DESERTGU_RIFLE_SHOT_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, DESERTGU_RIFLE_SHOT_EN, (data >> 4) & 0x01); - discrete_sound_w(device, DESERTGU_BOTTLE_HIT_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, DESERTGU_BOTTLE_HIT_EN, (data >> 5) & 0x01); - discrete_sound_w(device, DESERTGU_ROAD_RUNNER_HIT_EN, (data >> 6) & 0x01); + discrete_sound_w(device, space, DESERTGU_ROAD_RUNNER_HIT_EN, (data >> 6) & 0x01); - discrete_sound_w(device, DESERTGU_CREATURE_HIT_EN, (data >> 7) & 0x01); + discrete_sound_w(device, space, DESERTGU_CREATURE_HIT_EN, (data >> 7) & 0x01); } @@ -1281,9 +1282,9 @@ WRITE8_DEVICE_HANDLER( desertgu_audio_2_w ) { mw8080bw_state *state = device->machine().driver_data<mw8080bw_state>(); - discrete_sound_w(device, DESERTGU_ROADRUNNER_BEEP_BEEP_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, DESERTGU_ROADRUNNER_BEEP_BEEP_EN, (data >> 0) & 0x01); - discrete_sound_w(device, DESERTGU_TRIGGER_CLICK_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, DESERTGU_TRIGGER_CLICK_EN, (data >> 1) & 0x01); output_set_value("Player1_Gun_Recoil", (data >> 2) & 0x01); @@ -1528,15 +1529,15 @@ MACHINE_CONFIG_END WRITE8_DEVICE_HANDLER( dplay_audio_w ) { - discrete_sound_w(device, DPLAY_TONE_ON_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, DPLAY_TONE_ON_EN, (data >> 0) & 0x01); - discrete_sound_w(device, DPLAY_CHEER_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, DPLAY_CHEER_EN, (data >> 1) & 0x01); - discrete_sound_w(device, DPLAY_SIREN_EN, (data >> 2) & 0x01); + discrete_sound_w(device, space, DPLAY_SIREN_EN, (data >> 2) & 0x01); - discrete_sound_w(device, DPLAY_WHISTLE_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, DPLAY_WHISTLE_EN, (data >> 3) & 0x01); - discrete_sound_w(device, DPLAY_GAME_ON_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, DPLAY_GAME_ON_EN, (data >> 4) & 0x01); coin_counter_w(device->machine(), 0, (data >> 5) & 0x01); @@ -1950,15 +1951,15 @@ WRITE8_DEVICE_HANDLER( clowns_audio_2_w ) mw8080bw_state *state = device->machine().driver_data<mw8080bw_state>(); UINT8 rising_bits = data & ~state->m_port_2_last; - discrete_sound_w(device, CLOWNS_POP_BOTTOM_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, CLOWNS_POP_BOTTOM_EN, (data >> 0) & 0x01); - discrete_sound_w(device, CLOWNS_POP_MIDDLE_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, CLOWNS_POP_MIDDLE_EN, (data >> 1) & 0x01); - discrete_sound_w(device, CLOWNS_POP_TOP_EN, (data >> 2) & 0x01); + discrete_sound_w(device, space, CLOWNS_POP_TOP_EN, (data >> 2) & 0x01); device->machine().sound().system_enable((data >> 3) & 0x01); - discrete_sound_w(device, CLOWNS_SPRINGBOARD_HIT_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, CLOWNS_SPRINGBOARD_HIT_EN, (data >> 4) & 0x01); if (rising_bits & 0x20) state->m_samples->start(0, 0); /* springboard miss */ @@ -2311,22 +2312,22 @@ WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w ) device->machine().sound().system_enable((data >> 2) & 0x01); - discrete_sound_w(device, SPACWALK_SPACE_SHIP_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, SPACWALK_SPACE_SHIP_EN, (data >> 3) & 0x01); } WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w ) { - discrete_sound_w(device, SPACWALK_TARGET_HIT_BOTTOM_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, SPACWALK_TARGET_HIT_BOTTOM_EN, (data >> 0) & 0x01); - discrete_sound_w(device, SPACWALK_TARGET_HIT_MIDDLE_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, SPACWALK_TARGET_HIT_MIDDLE_EN, (data >> 1) & 0x01); - discrete_sound_w(device, SPACWALK_TARGET_HIT_TOP_EN, (data >> 2) & 0x01); + discrete_sound_w(device, space, SPACWALK_TARGET_HIT_TOP_EN, (data >> 2) & 0x01); - discrete_sound_w(device, SPACWALK_SPRINGBOARD_HIT1_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_HIT1_EN, (data >> 3) & 0x01); - discrete_sound_w(device, SPACWALK_SPRINGBOARD_HIT2_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_HIT2_EN, (data >> 4) & 0x01); - discrete_sound_w(device, SPACWALK_SPRINGBOARD_MISS_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_MISS_EN, (data >> 5) & 0x01); } @@ -2535,17 +2536,17 @@ MACHINE_CONFIG_END WRITE8_DEVICE_HANDLER( shuffle_audio_1_w ) { - discrete_sound_w(device, SHUFFLE_CLICK_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, SHUFFLE_CLICK_EN, (data >> 0) & 0x01); - discrete_sound_w(device, SHUFFLE_ROLLOVER_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, SHUFFLE_ROLLOVER_EN, (data >> 1) & 0x01); device->machine().sound().system_enable((data >> 2) & 0x01); - discrete_sound_w(device, NODE_29, (data >> 3) & 0x07); + discrete_sound_w(device, space, NODE_29, (data >> 3) & 0x07); - discrete_sound_w(device, SHUFFLE_ROLLING_3_EN, (data >> 3) & 0x01); - discrete_sound_w(device, SHUFFLE_ROLLING_2_EN, (data >> 4) & 0x01); - discrete_sound_w(device, SHUFFLE_ROLLING_1_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, SHUFFLE_ROLLING_3_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, SHUFFLE_ROLLING_2_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, SHUFFLE_ROLLING_1_EN, (data >> 5) & 0x01); /* D6 and D7 are not connected */ } @@ -2553,7 +2554,7 @@ WRITE8_DEVICE_HANDLER( shuffle_audio_1_w ) WRITE8_DEVICE_HANDLER( shuffle_audio_2_w ) { - discrete_sound_w(device, SHUFFLE_FOUL_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, SHUFFLE_FOUL_EN, (data >> 0) & 0x01); coin_counter_w(device->machine(), 0, (data >> 1) & 0x01); @@ -2720,13 +2721,13 @@ WRITE8_DEVICE_HANDLER( dogpatch_audio_w ) coin_counter_w(device->machine(), 0, (data >> 2) & 0x01); device->machine().sound().system_enable((data >> 3) & 0x01); - discrete_sound_w(device, DOGPATCH_GAME_ON_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, DOGPATCH_GAME_ON_EN, (data >> 3) & 0x01); - discrete_sound_w(device, DOGPATCH_LEFT_SHOT_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, DOGPATCH_LEFT_SHOT_EN, (data >> 4) & 0x01); - discrete_sound_w(device, DOGPATCH_RIGHT_SHOT_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, DOGPATCH_RIGHT_SHOT_EN, (data >> 5) & 0x01); - discrete_sound_w(device, DOGPATCH_HIT_EN, (data >> 6) & 0x01); + discrete_sound_w(device, space, DOGPATCH_HIT_EN, (data >> 6) & 0x01); } @@ -3258,7 +3259,7 @@ WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w ) /* D1 is marked as 'OPTIONAL SWITCH VIDEO FOR COCKTAIL', but it is never set by the software */ - discrete_sound_w(device, SPCENCTR_CRASH_EN, (data >> 2) & 0x01); + discrete_sound_w(device, space, SPCENCTR_CRASH_EN, (data >> 2) & 0x01); /* D3-D7 are not connected */ } @@ -3270,9 +3271,9 @@ WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w ) /* set WIND SOUND FREQ(data & 0x0f) 0, if no wind */ - discrete_sound_w(device, SPCENCTR_EXPLOSION_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, SPCENCTR_EXPLOSION_EN, (data >> 4) & 0x01); - discrete_sound_w(device, SPCENCTR_PLAYER_SHOT_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, SPCENCTR_PLAYER_SHOT_EN, (data >> 5) & 0x01); /* D6 and D7 are not connected */ @@ -3286,13 +3287,13 @@ WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w ) /* if (data & 0x01) enable SCREECH (hit the sides) sound */ - discrete_sound_w(device, SPCENCTR_ENEMY_SHIP_SHOT_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, SPCENCTR_ENEMY_SHIP_SHOT_EN, (data >> 1) & 0x01); state->m_spcenctr_strobe_state = (data >> 2) & 0x01; output_set_value("LAMP", (data >> 3) & 0x01); - discrete_sound_w(device, SPCENCTR_BONUS_EN, (data >> 4) & 0x01); + discrete_sound_w(device, space, SPCENCTR_BONUS_EN, (data >> 4) & 0x01); sn76477_enable_w(state->m_sn, (data >> 5) & 0x01); /* saucer sound */ @@ -3468,7 +3469,7 @@ WRITE8_DEVICE_HANDLER( bowler_audio_1_w ) device->machine().sound().system_enable((data >> 2) & 0x01); - discrete_sound_w(device, BOWLER_FOWL_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, BOWLER_FOWL_EN, (data >> 3) & 0x01); /* D4 - appears to be a screen flip, but it's shown unconnected on the schematics for both the @@ -4189,10 +4190,10 @@ WRITE8_DEVICE_HANDLER( invaders_audio_1_w ) sn76477_enable_w(state->m_sn, (~data >> 0) & 0x01); /* saucer sound */ - discrete_sound_w(device, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); - discrete_sound_w(device, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); - discrete_sound_w(device, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); - discrete_sound_w(device, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); device->machine().sound().system_enable(data & 0x20); @@ -4204,8 +4205,8 @@ WRITE8_DEVICE_HANDLER( invaders_audio_2_w ) { mw8080bw_state *state = device->machine().driver_data<mw8080bw_state>(); - discrete_sound_w(device, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); - discrete_sound_w(device, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); /* the flip screen line is only connected on the cocktail PCB */ if (invaders_is_cabinet_cocktail(device->machine())) @@ -4590,18 +4591,18 @@ MACHINE_CONFIG_END WRITE8_DEVICE_HANDLER( blueshrk_audio_w ) { - discrete_sound_w(device, BLUESHRK_GAME_ON_EN, (data >> 0) & 0x01); + discrete_sound_w(device, space, BLUESHRK_GAME_ON_EN, (data >> 0) & 0x01); - discrete_sound_w(device, BLUESHRK_SHOT_EN, (data >> 1) & 0x01); + discrete_sound_w(device, space, BLUESHRK_SHOT_EN, (data >> 1) & 0x01); - discrete_sound_w(device, BLUESHRK_HIT_EN, (data >> 2) & 0x01); + discrete_sound_w(device, space, BLUESHRK_HIT_EN, (data >> 2) & 0x01); - discrete_sound_w(device, BLUESHRK_SHARK_EN, (data >> 3) & 0x01); + discrete_sound_w(device, space, BLUESHRK_SHARK_EN, (data >> 3) & 0x01); /* if (data & 0x10) enable KILLED DIVER sound, this circuit doesn't appear to be on the schematics */ - discrete_sound_w(device, BLUESHRK_OCTOPUS_EN, (data >> 5) & 0x01); + discrete_sound_w(device, space, BLUESHRK_OCTOPUS_EN, (data >> 5) & 0x01); /* D6 and D7 are not connected */ } @@ -4822,10 +4823,10 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w ) sn76477_enable_w(state->m_sn1, (~data >> 0) & 0x01); /* saucer sound */ - discrete_sound_w(device, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); - discrete_sound_w(device, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); - discrete_sound_w(device, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); - discrete_sound_w(device, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10); device->machine().sound().system_enable(data & 0x20); @@ -4835,8 +4836,8 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w ) WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w ) { - discrete_sound_w(device, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); - discrete_sound_w(device, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10); /* D5-D7 are not connected */ } @@ -4848,10 +4849,10 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w ) sn76477_enable_w(state->m_sn2, (~data >> 0) & 0x01); /* saucer sound */ - discrete_sound_w(device, INVADERS_NODE(INVADERS_MISSILE_EN, 2), data & 0x02); - discrete_sound_w(device, INVADERS_NODE(INVADERS_EXPLOSION_EN, 2), data & 0x04); - discrete_sound_w(device, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 2), data & 0x08); - discrete_sound_w(device, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 2), data & 0x10); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 2), data & 0x02); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 2), data & 0x04); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 2), data & 0x08); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 2), data & 0x10); /* D5-D7 are not connected */ } @@ -4859,8 +4860,8 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w ) WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w ) { - discrete_sound_w(device, INVADERS_NODE(INVADERS_FLEET_DATA, 2), data & 0x0f); - discrete_sound_w(device, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 2), data & 0x10); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 2), data & 0x0f); + discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 2), data & 0x10); /* D5-D7 are not connected */ } diff --git a/src/mame/audio/namco52.c b/src/mame/audio/namco52.c index f3e76bd2132..29c20efa386 100644 --- a/src/mame/audio/namco52.c +++ b/src/mame/audio/namco52.c @@ -104,7 +104,7 @@ static READ8_HANDLER( namco_52xx_R1_r ) static WRITE8_HANDLER( namco_52xx_P_w ) { namco_52xx_state *state = get_safe_token(space->device().owner()); - discrete_sound_w(state->m_discrete, NAMCO_52XX_P_DATA(state->m_basenode), data & 0x0f); + discrete_sound_w(state->m_discrete, *space, NAMCO_52XX_P_DATA(state->m_basenode), data & 0x0f); } static WRITE8_HANDLER( namco_52xx_R2_w ) diff --git a/src/mame/audio/namco52.h b/src/mame/audio/namco52.h index 6c76a9a5d51..a338de3bc82 100644 --- a/src/mame/audio/namco52.h +++ b/src/mame/audio/namco52.h @@ -21,7 +21,7 @@ struct namco_52xx_interface MCFG_DEVICE_CONFIG(_interface) -WRITE8_DEVICE_HANDLER( namco_52xx_write ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_52xx_write ); class namco_52xx_device : public device_t diff --git a/src/mame/audio/namco54.c b/src/mame/audio/namco54.c index 691571884e3..b0028a5acba 100644 --- a/src/mame/audio/namco54.c +++ b/src/mame/audio/namco54.c @@ -93,9 +93,9 @@ static WRITE8_HANDLER( namco_54xx_O_w ) namco_54xx_state *state = get_safe_token(space->device().owner()); UINT8 out = (data & 0x0f); if (data & 0x10) - discrete_sound_w(state->m_discrete, NAMCO_54XX_1_DATA(state->m_basenode), out); + discrete_sound_w(state->m_discrete, *space, NAMCO_54XX_1_DATA(state->m_basenode), out); else - discrete_sound_w(state->m_discrete, NAMCO_54XX_0_DATA(state->m_basenode), out); + discrete_sound_w(state->m_discrete, *space, NAMCO_54XX_0_DATA(state->m_basenode), out); } static WRITE8_HANDLER( namco_54xx_R1_w ) @@ -103,7 +103,7 @@ static WRITE8_HANDLER( namco_54xx_R1_w ) namco_54xx_state *state = get_safe_token(space->device().owner()); UINT8 out = (data & 0x0f); - discrete_sound_w(state->m_discrete, NAMCO_54XX_2_DATA(state->m_basenode), out); + discrete_sound_w(state->m_discrete, *space, NAMCO_54XX_2_DATA(state->m_basenode), out); } diff --git a/src/mame/audio/namco54.h b/src/mame/audio/namco54.h index 69436b15804..17039a473e5 100644 --- a/src/mame/audio/namco54.h +++ b/src/mame/audio/namco54.h @@ -17,7 +17,7 @@ struct namco_54xx_config MCFG_DEVICE_CONFIG(_config) -WRITE8_DEVICE_HANDLER( namco_54xx_write ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_54xx_write ); class namco_54xx_device : public device_t diff --git a/src/mame/audio/orbit.c b/src/mame/audio/orbit.c index dab18b308db..9ebb838792b 100644 --- a/src/mame/audio/orbit.c +++ b/src/mame/audio/orbit.c @@ -15,24 +15,24 @@ WRITE8_DEVICE_HANDLER( orbit_note_w ) { - discrete_sound_w(device, ORBIT_NOTE_FREQ, (~data) & 0xff); + discrete_sound_w(device, space, ORBIT_NOTE_FREQ, (~data) & 0xff); } WRITE8_DEVICE_HANDLER( orbit_note_amp_w ) { - discrete_sound_w(device, ORBIT_ANOTE1_AMP, data & 0x0f); - discrete_sound_w(device, ORBIT_ANOTE2_AMP, data >> 4); + discrete_sound_w(device, space, ORBIT_ANOTE1_AMP, data & 0x0f); + discrete_sound_w(device, space, ORBIT_ANOTE2_AMP, data >> 4); } WRITE8_DEVICE_HANDLER( orbit_noise_amp_w ) { - discrete_sound_w(device, ORBIT_NOISE1_AMP, data & 0x0f); - discrete_sound_w(device, ORBIT_NOISE2_AMP, data >> 4); + discrete_sound_w(device, space, ORBIT_NOISE1_AMP, data & 0x0f); + discrete_sound_w(device, space, ORBIT_NOISE2_AMP, data >> 4); } WRITE8_DEVICE_HANDLER( orbit_noise_rst_w ) { - discrete_sound_w(device, ORBIT_NOISE_EN, 0); + discrete_sound_w(device, space, ORBIT_NOISE_EN, 0); } diff --git a/src/mame/audio/phoenix.c b/src/mame/audio/phoenix.c index efc0b9dbaaa..12c6cf559f8 100644 --- a/src/mame/audio/phoenix.c +++ b/src/mame/audio/phoenix.c @@ -494,12 +494,12 @@ WRITE8_DEVICE_HANDLER( phoenix_sound_control_a_w ) { phoenix_sound_state *state = get_safe_token(device); - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_2_DATA, data & 0x0f); - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_2_FREQ, (data & 0x30) >> 4); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_2_DATA, data & 0x0f); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_2_FREQ, (data & 0x30) >> 4); #if 0 /* future handling of noise sounds */ - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_3_EN , data & 0x40); - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_4_EN , data & 0x80); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_3_EN , data & 0x40); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_4_EN , data & 0x80); #endif state->m_channel->update(); state->m_sound_latch_a = data; @@ -526,9 +526,9 @@ WRITE8_DEVICE_HANDLER( phoenix_sound_control_b_w ) { phoenix_sound_state *state = get_safe_token(device); - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_1_DATA, data & 0x0f); - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_1_FILT, data & 0x20); - discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_1_FREQ, data & 0x10); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_1_DATA, data & 0x0f); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_1_FILT, data & 0x20); + discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_1_FREQ, data & 0x10); /* update the tune that the MM6221AA is playing */ mm6221aa_tune_w(state->m_tms, data >> 6); diff --git a/src/mame/audio/pleiads.h b/src/mame/audio/pleiads.h index 460727b9ef4..6c173920e74 100644 --- a/src/mame/audio/pleiads.h +++ b/src/mame/audio/pleiads.h @@ -1,6 +1,6 @@ -WRITE8_DEVICE_HANDLER( pleiads_sound_control_a_w ); -WRITE8_DEVICE_HANDLER( pleiads_sound_control_b_w ); -WRITE8_DEVICE_HANDLER( pleiads_sound_control_c_w ); +DECLARE_WRITE8_DEVICE_HANDLER( pleiads_sound_control_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( pleiads_sound_control_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( pleiads_sound_control_c_w ); class pleiads_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/audio/poolshrk.c b/src/mame/audio/poolshrk.c index 4450bf83d58..b9730d4bfde 100644 --- a/src/mame/audio/poolshrk.c +++ b/src/mame/audio/poolshrk.c @@ -157,20 +157,20 @@ DISCRETE_SOUND_END WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w ) { - discrete_sound_w(device, POOLSHRK_SCRATCH_SND, offset & 1); + discrete_sound_w(device, space, POOLSHRK_SCRATCH_SND, offset & 1); } WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w ) { - discrete_sound_w(device, POOLSHRK_SCORE_EN, 1); /* this will trigger the sound code for 1 sample */ + discrete_sound_w(device, space, POOLSHRK_SCORE_EN, 1); /* this will trigger the sound code for 1 sample */ } WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w ) { - discrete_sound_w(device, POOLSHRK_CLICK_EN, 1); /* this will trigger the sound code for 1 sample */ + discrete_sound_w(device, space, POOLSHRK_CLICK_EN, 1); /* this will trigger the sound code for 1 sample */ } WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w ) { - discrete_sound_w(device, POOLSHRK_BUMP_EN, offset & 1); + discrete_sound_w(device, space, POOLSHRK_BUMP_EN, offset & 1); } diff --git a/src/mame/audio/qix.c b/src/mame/audio/qix.c index b41b6636758..cc3c6baf3fd 100644 --- a/src/mame/audio/qix.c +++ b/src/mame/audio/qix.c @@ -28,12 +28,12 @@ Audio handlers static WRITE8_DEVICE_HANDLER( qix_dac_w ) { - discrete_sound_w(device, QIX_DAC_DATA, data); + discrete_sound_w(device, space, QIX_DAC_DATA, data); } static WRITE8_DEVICE_HANDLER( qix_vol_w ) { - discrete_sound_w(device, QIX_VOL_DATA, data); + discrete_sound_w(device, space, QIX_VOL_DATA, data); } diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c index bd92e93b95b..9461d06dc93 100644 --- a/src/mame/audio/redalert.c +++ b/src/mame/audio/redalert.c @@ -86,7 +86,7 @@ static WRITE8_DEVICE_HANDLER( redalert_AY8910_w ) /* BC1=1, BDIR=0 : read from PSG */ case 0x01: - state->m_ay8910_latch_1 = ay8910_r(device, 0); + state->m_ay8910_latch_1 = ay8910_r(device, space, 0); break; /* BC1=0, BDIR=1 : write to PSG */ @@ -94,7 +94,7 @@ static WRITE8_DEVICE_HANDLER( redalert_AY8910_w ) case 0x02: case 0x03: default: - ay8910_data_address_w(device, data, state->m_ay8910_latch_2); + ay8910_data_address_w(device, space, data, state->m_ay8910_latch_2); break; } } @@ -310,28 +310,28 @@ static WRITE8_DEVICE_HANDLER( demoneye_ay8910_data_w ) { case 0x00: if (state->m_ay8910_latch_1 & 0x10) - ay8910_data_w(ay1, 0, data); + ay8910_data_w(ay1, space, 0, data); if (state->m_ay8910_latch_1 & 0x20) - ay8910_data_w(ay2, 0, data); + ay8910_data_w(ay2, space, 0, data); break; case 0x01: if (state->m_ay8910_latch_1 & 0x10) - state->m_ay8910_latch_2 = ay8910_r(ay1, 0); + state->m_ay8910_latch_2 = ay8910_r(ay1, space, 0); if (state->m_ay8910_latch_1 & 0x20) - state->m_ay8910_latch_2 = ay8910_r(ay2, 0); + state->m_ay8910_latch_2 = ay8910_r(ay2, space, 0); break; case 0x03: if (state->m_ay8910_latch_1 & 0x10) - ay8910_address_w(ay1, 0, data); + ay8910_address_w(ay1, space, 0, data); if (state->m_ay8910_latch_1 & 0x20) - ay8910_address_w(ay2, 0, data); + ay8910_address_w(ay2, space, 0, data); break; diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c index 377e04e259e..73adb292404 100644 --- a/src/mame/audio/scramble.c +++ b/src/mame/audio/scramble.c @@ -247,14 +247,14 @@ static WRITE8_DEVICE_HANDLER( ad2083_tms5110_ctrl_w ) { static const int tbl[8] = {0,4,2,6,1,5,3,7}; - tmsprom_bit_w(device, 0, tbl[data & 0x07]); + tmsprom_bit_w(device, space, 0, tbl[data & 0x07]); switch (data>>3) { case 0x01: - tmsprom_rom_csq_w(device, 1, 0); + tmsprom_rom_csq_w(device, space, 1, 0); break; case 0x03: - tmsprom_rom_csq_w(device, 0, 0); + tmsprom_rom_csq_w(device, space, 0, 0); break; case 0x00: /* Rom 2 select */ diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c index f0d1d6ef55a..120e413b329 100644 --- a/src/mame/audio/segag80r.c +++ b/src/mame/audio/segag80r.c @@ -376,8 +376,8 @@ WRITE8_MEMBER(segag80r_state::astrob_sound_w) static SOUND_START( sega005 ); static STREAM_UPDATE( sega005_stream_update ); static TIMER_CALLBACK( sega005_auto_timer ); -static WRITE8_DEVICE_HANDLER( sega005_sound_a_w ); -static WRITE8_DEVICE_HANDLER( sega005_sound_b_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( sega005_sound_a_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( sega005_sound_b_w ); /* 005 @@ -783,14 +783,14 @@ WRITE8_MEMBER(segag80r_state::spaceod_sound_w) *************************************/ static SOUND_START( monsterb ); -static WRITE8_DEVICE_HANDLER( monsterb_sound_a_w ); -static WRITE8_DEVICE_HANDLER( monsterb_sound_b_w ); -static READ8_DEVICE_HANDLER( n7751_status_r ); -static WRITE8_DEVICE_HANDLER( n7751_command_w ); -static WRITE8_DEVICE_HANDLER( n7751_rom_control_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( monsterb_sound_a_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( monsterb_sound_b_w ); +static DECLARE_READ8_DEVICE_HANDLER( n7751_status_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( n7751_command_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( n7751_rom_control_w ); -static WRITE8_DEVICE_HANDLER( n7751_p2_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( n7751_p2_w ); /* @@ -1032,7 +1032,7 @@ static WRITE8_DEVICE_HANDLER( n7751_p2_w ) { segag80r_state *state = device->machine().driver_data<segag80r_state>(); /* write to P2; low 4 bits go to 8243 */ - i8243_p2_w(device, offset, data & 0x0f); + i8243_p2_w(device, space, offset, data & 0x0f); /* output of bit $80 indicates we are ready (1) or busy (0) */ /* no other outputs are used */ diff --git a/src/mame/audio/segasnd.h b/src/mame/audio/segasnd.h index da998fa3abf..e5d63da0939 100644 --- a/src/mame/audio/segasnd.h +++ b/src/mame/audio/segasnd.h @@ -6,15 +6,15 @@ MACHINE_CONFIG_EXTERN( sega_speech_board ); -WRITE8_DEVICE_HANDLER( sega_speech_data_w ); -WRITE8_DEVICE_HANDLER( sega_speech_control_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sega_speech_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sega_speech_control_w ); MACHINE_CONFIG_EXTERN( sega_universal_sound_board ); MACHINE_CONFIG_EXTERN( sega_universal_sound_board_rom ); -READ8_DEVICE_HANDLER( sega_usb_status_r ); -WRITE8_DEVICE_HANDLER( sega_usb_data_w ); -READ8_DEVICE_HANDLER( sega_usb_ram_r ); -WRITE8_DEVICE_HANDLER( sega_usb_ram_w ); +DECLARE_READ8_DEVICE_HANDLER( sega_usb_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( sega_usb_data_w ); +DECLARE_READ8_DEVICE_HANDLER( sega_usb_ram_r ); +DECLARE_WRITE8_DEVICE_HANDLER( sega_usb_ram_w ); diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h index 13d3e6e3e03..cfe05eb4915 100644 --- a/src/mame/audio/seibu.h +++ b/src/mame/audio/seibu.h @@ -60,8 +60,8 @@ MACHINE_RESET( seibu_sound ); void seibu_sound_decrypt(running_machine &machine,const char *cpu,int length); void seibu_adpcm_decrypt(running_machine &machine, const char *region); -WRITE8_DEVICE_HANDLER( seibu_adpcm_adr_w ); -WRITE8_DEVICE_HANDLER( seibu_adpcm_ctl_w ); +DECLARE_WRITE8_DEVICE_HANDLER( seibu_adpcm_adr_w ); +DECLARE_WRITE8_DEVICE_HANDLER( seibu_adpcm_ctl_w ); class seibu_adpcm_device : public device_t, public device_sound_interface diff --git a/src/mame/audio/skyraid.c b/src/mame/audio/skyraid.c index 9e11c7e1b2a..a4c725ff3e0 100644 --- a/src/mame/audio/skyraid.c +++ b/src/mame/audio/skyraid.c @@ -292,10 +292,10 @@ WRITE8_DEVICE_HANDLER( skyraid_sound_w ) /* BIT4 => PLANE ON */ /* BIT5 => ATTRACT */ - discrete_sound_w(device, SKYRAID_PLANE_SWEEP_EN, data & 0x01); - discrete_sound_w(device, SKYRAID_MISSILE_EN, data & 0x02); - discrete_sound_w(device, SKYRAID_EXPLOSION_EN, data & 0x04); + discrete_sound_w(device, space, SKYRAID_PLANE_SWEEP_EN, data & 0x01); + discrete_sound_w(device, space, SKYRAID_MISSILE_EN, data & 0x02); + discrete_sound_w(device, space, SKYRAID_EXPLOSION_EN, data & 0x04); set_led_status(device->machine(), 0, !(data & 0x08)); - discrete_sound_w(device, SKYRAID_PLANE_ON_EN, data & 0x10); - discrete_sound_w(device, SKYRAID_ATTRACT_EN, data & 0x20); + discrete_sound_w(device, space, SKYRAID_PLANE_ON_EN, data & 0x10); + discrete_sound_w(device, space, SKYRAID_ATTRACT_EN, data & 0x20); } diff --git a/src/mame/audio/snes_snd.c b/src/mame/audio/snes_snd.c index 323e9e15e43..79d2b3102aa 100644 --- a/src/mame/audio/snes_snd.c +++ b/src/mame/audio/snes_snd.c @@ -1068,6 +1068,7 @@ void spc700_set_volume(device_t *device,int volume) I/O for DSP ***************************/ +static DECLARE_READ8_DEVICE_HANDLER( snes_dsp_io_r ); static READ8_DEVICE_HANDLER( snes_dsp_io_r ) { snes_sound_state *spc700 = get_safe_token(device); @@ -1083,6 +1084,7 @@ static READ8_DEVICE_HANDLER( snes_dsp_io_r ) return spc700->dsp_regs[offset & 0x7f]; } +static DECLARE_WRITE8_DEVICE_HANDLER( snes_dsp_io_w ); static WRITE8_DEVICE_HANDLER( snes_dsp_io_w ) { snes_sound_state *spc700 = get_safe_token(device); @@ -1118,7 +1120,7 @@ READ8_DEVICE_HANDLER( spc_io_r ) case 0x2: /* Register address */ return spc700->ram[0xf2]; case 0x3: /* Register data */ - return snes_dsp_io_r(device, spc700->ram[0xf2]); + return snes_dsp_io_r(device, space, spc700->ram[0xf2]); case 0x4: /* Port 0 */ case 0x5: /* Port 1 */ case 0x6: /* Port 2 */ @@ -1186,7 +1188,7 @@ WRITE8_DEVICE_HANDLER( spc_io_w ) break; case 0x3: /* Register data - 0x80-0xff is a read-only mirror of 0x00-0x7f */ if (!(spc700->ram[0xf2] & 0x80)) - snes_dsp_io_w(device, spc700->ram[0xf2] & 0x7f, data); + snes_dsp_io_w(device, space, spc700->ram[0xf2] & 0x7f, data); break; case 0x4: /* Port 0 */ case 0x5: /* Port 1 */ diff --git a/src/mame/audio/snes_snd.h b/src/mame/audio/snes_snd.h index 35eec3b058e..9a10ac49f02 100644 --- a/src/mame/audio/snes_snd.h +++ b/src/mame/audio/snes_snd.h @@ -46,12 +46,12 @@ extern const device_type SNES; I/O PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( spc_io_r ); -WRITE8_DEVICE_HANDLER( spc_io_w ); -READ8_DEVICE_HANDLER( spc_ram_r ); -WRITE8_DEVICE_HANDLER( spc_ram_w ); -READ8_DEVICE_HANDLER( spc_port_out ); -WRITE8_DEVICE_HANDLER( spc_port_in ); +DECLARE_READ8_DEVICE_HANDLER( spc_io_r ); +DECLARE_WRITE8_DEVICE_HANDLER( spc_io_w ); +DECLARE_READ8_DEVICE_HANDLER( spc_ram_r ); +DECLARE_WRITE8_DEVICE_HANDLER( spc_ram_w ); +DECLARE_READ8_DEVICE_HANDLER( spc_port_out ); +DECLARE_WRITE8_DEVICE_HANDLER( spc_port_in ); UINT8 *spc_get_ram(device_t *device); void spc700_set_volume(device_t *device,int volume); diff --git a/src/mame/audio/snk6502.c b/src/mame/audio/snk6502.c index 7b26bce34dc..464593a0511 100644 --- a/src/mame/audio/snk6502.c +++ b/src/mame/audio/snk6502.c @@ -957,7 +957,7 @@ WRITE8_HANDLER( fantasy_sound_w ) } /* BOMB */ - discrete_sound_w(space->machine().device("discrete"), FANTASY_BOMB_EN, data & 0x80); + discrete_sound_w(space->machine().device("discrete"), *space, FANTASY_BOMB_EN, data & 0x80); state->m_LastPort1 = data; break; diff --git a/src/mame/audio/spiders.c b/src/mame/audio/spiders.c index d0eead09d0f..fb1a837026e 100644 --- a/src/mame/audio/spiders.c +++ b/src/mame/audio/spiders.c @@ -182,22 +182,22 @@ WRITE8_DEVICE_HANDLER( spiders_audio_command_w ) WRITE8_DEVICE_HANDLER( spiders_audio_a_w ) { - discrete_sound_w(device, SPIDER_WEB_SOUND_MOD_DATA, 1 + (data & 4) * 8 + (data & 2) * 4 + (data & 1) * 2); + discrete_sound_w(device, space, SPIDER_WEB_SOUND_MOD_DATA, 1 + (data & 4) * 8 + (data & 2) * 4 + (data & 1) * 2); } WRITE8_DEVICE_HANDLER( spiders_audio_b_w ) { - discrete_sound_w(device, SPIDERS_WEB_SOUND_DATA, data); + discrete_sound_w(device, space, SPIDERS_WEB_SOUND_DATA, data); } WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w ) { - discrete_sound_w(device, SPIDERS_FIRE_EN, data & 0x10 ? 1 : 0); - discrete_sound_w(device, SPIDERS_EXP_EN, data & 0x08 ? 1 : 0); - discrete_sound_w(device, SPIDERS_SUPER_WEB_EXPL_EN, data & 0x04 ? 1 : 0); - discrete_sound_w(device, SPIDERS_SUPER_WEB_EN, data & 0x02 ? 1 : 0); - discrete_sound_w(device, SPIDERS_X_EN, data & 0x01 ? 1 : 0); + discrete_sound_w(device, space, SPIDERS_FIRE_EN, data & 0x10 ? 1 : 0); + discrete_sound_w(device, space, SPIDERS_EXP_EN, data & 0x08 ? 1 : 0); + discrete_sound_w(device, space, SPIDERS_SUPER_WEB_EXPL_EN, data & 0x04 ? 1 : 0); + discrete_sound_w(device, space, SPIDERS_SUPER_WEB_EN, data & 0x02 ? 1 : 0); + discrete_sound_w(device, space, SPIDERS_X_EN, data & 0x01 ? 1 : 0); } diff --git a/src/mame/audio/sprint8.c b/src/mame/audio/sprint8.c index 648cd34e661..2fa5a29cddf 100644 --- a/src/mame/audio/sprint8.c +++ b/src/mame/audio/sprint8.c @@ -295,20 +295,20 @@ DISCRETE_SOUND_END WRITE8_DEVICE_HANDLER( sprint8_crash_w ) { - discrete_sound_w(device, SPRINT8_CRASH_EN, data & 0x01); + discrete_sound_w(device, space, SPRINT8_CRASH_EN, data & 0x01); } WRITE8_DEVICE_HANDLER( sprint8_screech_w ) { - discrete_sound_w(device, SPRINT8_SCREECH_EN, data & 0x01); + discrete_sound_w(device, space, SPRINT8_SCREECH_EN, data & 0x01); } WRITE8_DEVICE_HANDLER( sprint8_attract_w ) { - discrete_sound_w(device, SPRINT8_ATTRACT_EN, data & 0x01); + discrete_sound_w(device, space, SPRINT8_ATTRACT_EN, data & 0x01); } WRITE8_DEVICE_HANDLER( sprint8_motor_w ) { - discrete_sound_w(device, NODE_RELATIVE(SPRINT8_MOTOR1_EN, offset & 0x07), data & 0x01); + discrete_sound_w(device, space, NODE_RELATIVE(SPRINT8_MOTOR1_EN, offset & 0x07), data & 0x01); } diff --git a/src/mame/audio/subs.c b/src/mame/audio/subs.c index a21f02c54e6..77302a72c6a 100644 --- a/src/mame/audio/subs.c +++ b/src/mame/audio/subs.c @@ -14,28 +14,28 @@ sub sound functions WRITE8_DEVICE_HANDLER( subs_sonar1_w ) { - discrete_sound_w(device, SUBS_SONAR1_EN, offset & 0x01); + discrete_sound_w(device, space, SUBS_SONAR1_EN, offset & 0x01); } WRITE8_DEVICE_HANDLER( subs_sonar2_w ) { - discrete_sound_w(device, SUBS_SONAR2_EN, offset & 0x01); + discrete_sound_w(device, space, SUBS_SONAR2_EN, offset & 0x01); } WRITE8_DEVICE_HANDLER( subs_crash_w ) { - discrete_sound_w(device, SUBS_CRASH_EN, offset & 0x01); + discrete_sound_w(device, space, SUBS_CRASH_EN, offset & 0x01); } WRITE8_DEVICE_HANDLER( subs_explode_w ) { - discrete_sound_w(device, SUBS_EXPLODE_EN, offset & 0x01); + discrete_sound_w(device, space, SUBS_EXPLODE_EN, offset & 0x01); } WRITE8_DEVICE_HANDLER( subs_noise_reset_w ) { /* Pulse noise reset */ - discrete_sound_w(device, SUBS_NOISE_RESET, 0); + discrete_sound_w(device, space, SUBS_NOISE_RESET, 0); } diff --git a/src/mame/audio/taitosnd.h b/src/mame/audio/taitosnd.h index 91c9d47bcb3..c1815f2baa9 100644 --- a/src/mame/audio/taitosnd.h +++ b/src/mame/audio/taitosnd.h @@ -48,15 +48,15 @@ extern const device_type TC0140SYT; ***************************************************************************/ /* MASTER (8bit bus) control functions */ -WRITE8_DEVICE_HANDLER( tc0140syt_port_w ); -WRITE8_DEVICE_HANDLER( tc0140syt_comm_w ); -READ8_DEVICE_HANDLER( tc0140syt_comm_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_comm_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0140syt_comm_r ); /* SLAVE (8bit bus) control functions ONLY */ -WRITE8_DEVICE_HANDLER( tc0140syt_slave_port_w ); -READ8_DEVICE_HANDLER( tc0140syt_slave_comm_r ); -WRITE8_DEVICE_HANDLER( tc0140syt_slave_comm_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_slave_port_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0140syt_slave_comm_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_slave_comm_w ); #endif /*__TAITOSND_H__*/ diff --git a/src/mame/audio/trackfld.h b/src/mame/audio/trackfld.h index 342e1b90ad5..f4137ae6b6d 100644 --- a/src/mame/audio/trackfld.h +++ b/src/mame/audio/trackfld.h @@ -1,11 +1,11 @@ WRITE8_HANDLER( konami_sh_irqtrigger_w ); READ8_HANDLER( trackfld_sh_timer_r ); -READ8_DEVICE_HANDLER( trackfld_speech_r ); -WRITE8_DEVICE_HANDLER( trackfld_sound_w ); +DECLARE_READ8_DEVICE_HANDLER( trackfld_speech_r ); +DECLARE_WRITE8_DEVICE_HANDLER( trackfld_sound_w ); READ8_HANDLER( hyperspt_sh_timer_r ); -WRITE8_DEVICE_HANDLER( hyperspt_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( hyperspt_sound_w ); WRITE8_HANDLER( konami_SN76496_latch_w ); -WRITE8_DEVICE_HANDLER( konami_SN76496_w ); +DECLARE_WRITE8_DEVICE_HANDLER( konami_SN76496_w ); class trackfld_audio_device : public device_t, public device_sound_interface diff --git a/src/mame/audio/vicdual.c b/src/mame/audio/vicdual.c index e39dc83ad5b..162a3bc787e 100644 --- a/src/mame/audio/vicdual.c +++ b/src/mame/audio/vicdual.c @@ -151,12 +151,12 @@ WRITE8_HANDLER( frogs_audio_w ) int new_croak = data & 0x08; int new_buzzz = data & 0x10; -// discrete_sound_w(discrete, FROGS_HOP_EN, data & 0x01); -// discrete_sound_w(discrete, FROGS_JUMP_EN, data & 0x02); - discrete_sound_w(discrete, FROGS_TONGUE_EN, data & 0x04); -// discrete_sound_w(discrete, FROGS_CAPTURE_EN, data & 0x08); -// discrete_sound_w(discrete, FROGS_FLY_EN, data & 0x10); -// discrete_sound_w(discrete, FROGS_SPLASH_EN, data & 0x80); +// discrete_sound_w(discrete, *space, FROGS_HOP_EN, data & 0x01); +// discrete_sound_w(discrete, *space, FROGS_JUMP_EN, data & 0x02); + discrete_sound_w(discrete, *space, FROGS_TONGUE_EN, data & 0x04); +// discrete_sound_w(discrete, *space, FROGS_CAPTURE_EN, data & 0x08); +// discrete_sound_w(discrete, *space, FROGS_FLY_EN, data & 0x10); +// discrete_sound_w(discrete, *space, FROGS_SPLASH_EN, data & 0x80); if (data & 0x01) samples->start(3, 3); // Hop @@ -464,13 +464,13 @@ WRITE8_HANDLER( headon_audio_w ) device_t *discrete = space->machine().device("discrete"); if (discrete == NULL) return; - discrete_sound_w(discrete, HEADON_HISPEED_PC_EN, data & 0x01); - discrete_sound_w(discrete, HEADON_SCREECH1_EN, data & 0x02); - discrete_sound_w(discrete, HEADON_CRASH_EN, data & 0x04); - discrete_sound_w(discrete, HEADON_HISPEED_CC_EN, data & 0x08); - discrete_sound_w(discrete, HEADON_SCREECH2_EN, data & 0x10); - discrete_sound_w(discrete, HEADON_BONUS_EN, data & 0x20); - discrete_sound_w(discrete, HEADON_CAR_ON_EN, data & 0x40); + discrete_sound_w(discrete, *space, HEADON_HISPEED_PC_EN, data & 0x01); + discrete_sound_w(discrete, *space, HEADON_SCREECH1_EN, data & 0x02); + discrete_sound_w(discrete, *space, HEADON_CRASH_EN, data & 0x04); + discrete_sound_w(discrete, *space, HEADON_HISPEED_CC_EN, data & 0x08); + discrete_sound_w(discrete, *space, HEADON_SCREECH2_EN, data & 0x10); + discrete_sound_w(discrete, *space, HEADON_BONUS_EN, data & 0x20); + discrete_sound_w(discrete, *space, HEADON_CAR_ON_EN, data & 0x40); } @@ -479,13 +479,13 @@ WRITE8_HANDLER( invho2_audio_w ) device_t *discrete = space->machine().device("discrete"); if (discrete == NULL) return; - discrete_sound_w(discrete, HEADON_HISPEED_PC_EN, data & 0x10); - discrete_sound_w(discrete, HEADON_SCREECH1_EN, data & 0x08); - discrete_sound_w(discrete, HEADON_CRASH_EN, data & 0x80); - discrete_sound_w(discrete, HEADON_HISPEED_CC_EN, data & 0x40); - discrete_sound_w(discrete, HEADON_SCREECH2_EN, data & 0x04); - discrete_sound_w(discrete, HEADON_BONUS_EN, data & 0x02); - discrete_sound_w(discrete, HEADON_CAR_ON_EN, data & 0x20); + discrete_sound_w(discrete, *space, HEADON_HISPEED_PC_EN, data & 0x10); + discrete_sound_w(discrete, *space, HEADON_SCREECH1_EN, data & 0x08); + discrete_sound_w(discrete, *space, HEADON_CRASH_EN, data & 0x80); + discrete_sound_w(discrete, *space, HEADON_HISPEED_CC_EN, data & 0x40); + discrete_sound_w(discrete, *space, HEADON_SCREECH2_EN, data & 0x04); + discrete_sound_w(discrete, *space, HEADON_BONUS_EN, data & 0x02); + discrete_sound_w(discrete, *space, HEADON_CAR_ON_EN, data & 0x20); } diff --git a/src/mame/audio/wiping.h b/src/mame/audio/wiping.h index d7ab3f23b73..eb559c61aa2 100644 --- a/src/mame/audio/wiping.h +++ b/src/mame/audio/wiping.h @@ -22,4 +22,4 @@ private: extern const device_type WIPING; -WRITE8_DEVICE_HANDLER( wiping_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( wiping_sound_w ); diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c index 0ea5bf2d333..4fd0156e6ca 100644 --- a/src/mame/drivers/40love.c +++ b/src/mame/drivers/40love.c @@ -968,7 +968,8 @@ static const ay8910_interface ay8910_config = static const msm5232_interface msm5232_config = { - { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 } /* 1.0 uF capacitors (verified on real PCB) */ + { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 }, /* 1.0 uF capacitors (verified on real PCB) */ + DEVCB_NULL }; /*******************************************************************************/ diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c index d549a308d6a..5266657d61f 100644 --- a/src/mame/drivers/4enraya.c +++ b/src/mame/drivers/4enraya.c @@ -72,7 +72,7 @@ WRITE8_MEMBER(_4enraya_state::sound_control_w) device_t *device = machine().device("aysnd"); if ((m_last_snd_ctrl & m_snd_latch_bit ) == m_snd_latch_bit && (data & m_snd_latch_bit) == 0x00) - ay8910_data_address_w(device, m_last_snd_ctrl, m_soundlatch); + ay8910_data_address_w(device, space, m_last_snd_ctrl, m_soundlatch); m_last_snd_ctrl = data; } diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index 914f6521abb..9620e9510c7 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -686,8 +686,8 @@ WRITE8_MEMBER(_5clown_state::cpu_d800_w) WRITE8_MEMBER(_5clown_state::fclown_ay8910_w) { - ay8910_address_w(m_ay8910, 0, offset); - ay8910_data_w(m_ay8910, 0, data); + ay8910_address_w(m_ay8910, space, 0, offset); + ay8910_data_w(m_ay8910, space, 0, data); } diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c index a58bc81b472..a054de42e2d 100644 --- a/src/mame/drivers/88games.c +++ b/src/mame/drivers/88games.c @@ -38,9 +38,9 @@ READ8_MEMBER(_88games_state::bankedram_r) else { if (m_zoomreadroms) - return k051316_rom_r(m_k051316, offset); + return k051316_rom_r(m_k051316, space, offset); else - return k051316_r(m_k051316, offset); + return k051316_r(m_k051316, space, offset); } } @@ -50,7 +50,7 @@ WRITE8_MEMBER(_88games_state::bankedram_w) if (m_videobank) m_ram[offset] = data; else - k051316_w(m_k051316, offset, data); + k051316_w(m_k051316, space, offset, data); } WRITE8_MEMBER(_88games_state::k88games_5f84_w) @@ -89,7 +89,7 @@ WRITE8_MEMBER(_88games_state::speech_msg_w) { device_t *upd = m_speech_chip ? m_upd_2 : m_upd_1; - upd7759_port_w(upd, 0, data); + upd7759_port_w(upd, space, 0, data); } /* special handlers to combine 052109 & 051960 */ @@ -99,25 +99,25 @@ READ8_MEMBER(_88games_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(_88games_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } /************************************* diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index 1cefcb3cbef..2474b5e2c22 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -92,25 +92,25 @@ READ8_MEMBER(aliens_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(aliens_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state ) diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c index a7cf7e6818e..be07180e7b4 100644 --- a/src/mame/drivers/amspdwy.c +++ b/src/mame/drivers/amspdwy.c @@ -65,7 +65,7 @@ READ8_MEMBER(amspdwy_state::amspdwy_wheel_1_r) READ8_MEMBER(amspdwy_state::amspdwy_sound_r) { device_t *device = machine().device("ymsnd"); - return (ym2151_status_port_r(device, 0) & ~ 0x30) | machine().root_device().ioport("IN0")->read(); + return (ym2151_status_port_r(device, space, 0) & ~ 0x30) | machine().root_device().ioport("IN0")->read(); } WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w) diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c index 12f516c57d9..60721f6d406 100644 --- a/src/mame/drivers/aristmk4.c +++ b/src/mame/drivers/aristmk4.c @@ -649,13 +649,13 @@ READ8_MEMBER(aristmk4_state::via_a_r) if (m_ay8910_1&0x03) // SW1 read. { - psg_ret = ay8910_r(machine().device("ay1"), 0); + psg_ret = ay8910_r(machine().device("ay1"), space, 0); //logerror("PSG porta ay1 returned %02X\n",psg_ret); } else if (m_ay8910_2&0x03) //i don't think we read anything from Port A on ay2, Can be removed once game works ok. { - psg_ret = ay8910_r(machine().device("ay2"), 0); + psg_ret = ay8910_r(machine().device("ay2"), space, 0); //logerror("PSG porta ay2 returned %02X\n",psg_ret); } return psg_ret; @@ -750,13 +750,13 @@ WRITE8_MEMBER(aristmk4_state::via_b_w) break; case 0x06: //WRITE { - ay8910_data_w( machine().device("ay1"), 0 , m_psg_data ); + ay8910_data_w( machine().device("ay1"), space, 0 , m_psg_data ); //logerror("VIA Port A write data ay1: %02X\n",m_psg_data); break; } case 0x07: //LATCH Address (set register) { - ay8910_address_w( machine().device("ay1"), 0 , m_psg_data ); + ay8910_address_w( machine().device("ay1"), space, 0 , m_psg_data ); //logerror("VIA Port B write register ay1: %02X\n",m_psg_data); break; } @@ -777,13 +777,13 @@ WRITE8_MEMBER(aristmk4_state::via_b_w) break; case 0x06: //WRITE { - ay8910_data_w( machine().device("ay2"), 0 , m_psg_data ); + ay8910_data_w( machine().device("ay2"), space, 0 , m_psg_data ); //logerror("VIA Port A write data ay2: %02X\n",m_psg_data); break; } case 0x07: //LATCH Address (set register) { - ay8910_address_w( machine().device("ay2"), 0 , m_psg_data ); + ay8910_address_w( machine().device("ay2"), space, 0 , m_psg_data ); //logerror("VIA Port B write register ay2: %02X\n",m_psg_data); break; } diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c index 826e1c0fbb5..2ef76f54fdb 100644 --- a/src/mame/drivers/asterix.c +++ b/src/mame/drivers/asterix.c @@ -67,7 +67,7 @@ static INTERRUPT_GEN( asterix_interrupt ) READ8_MEMBER(asterix_state::asterix_sound_r) { device_t *device = machine().device("k053260"); - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } static TIMER_CALLBACK( nmi_callback ) diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c index 823ae9eef54..d3f9ad222d4 100644 --- a/src/mame/drivers/atarisy1.c +++ b/src/mame/drivers/atarisy1.c @@ -402,14 +402,14 @@ READ8_MEMBER(atarisy1_state::switch_6502_r) WRITE8_MEMBER(atarisy1_state::via_pa_w) { device_t *device = machine().device("tms"); - tms5220_data_w(device, 0, data); + tms5220_data_w(device, space, 0, data); } READ8_MEMBER(atarisy1_state::via_pa_r) { device_t *device = machine().device("tms"); - return tms5220_status_r(device, 0); + return tms5220_status_r(device, space, 0); } diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c index c9152a31413..03f45563e33 100644 --- a/src/mame/drivers/atarisy2.c +++ b/src/mame/drivers/atarisy2.c @@ -764,7 +764,7 @@ WRITE8_MEMBER(atarisy2_state::tms5220_w) { if (m_has_tms5220) { - tms5220_data_w(machine().device("tms"), 0, data); + tms5220_data_w(machine().device("tms"), space, 0, data); } } diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c index 12bbb8e79c7..d48ae7d3de9 100644 --- a/src/mame/drivers/bagman.c +++ b/src/mame/drivers/bagman.c @@ -81,16 +81,16 @@ WRITE8_MEMBER(bagman_state::bagman_ls259_w) case 0: case 1: case 2: - tmsprom_bit_w(device, 0, 7 - ((m_ls259_buf[0]<<2) | (m_ls259_buf[1]<<1) | (m_ls259_buf[2]<<0))); + tmsprom_bit_w(device, space, 0, 7 - ((m_ls259_buf[0]<<2) | (m_ls259_buf[1]<<1) | (m_ls259_buf[2]<<0))); break; case 3: tmsprom_enable_w(device, m_ls259_buf[offset]); break; case 4: - tmsprom_rom_csq_w(device, 0, m_ls259_buf[offset]); + tmsprom_rom_csq_w(device, space, 0, m_ls259_buf[offset]); break; case 5: - tmsprom_rom_csq_w(device, 1, m_ls259_buf[offset]); + tmsprom_rom_csq_w(device, space, 1, m_ls259_buf[offset]); break; } } diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c index e84438e7415..a2c2e167283 100644 --- a/src/mame/drivers/berzerk.c +++ b/src/mame/drivers/berzerk.c @@ -548,12 +548,12 @@ WRITE8_MEMBER(berzerk_state::berzerk_audio_w) /* offset 6 writes to the sfxcontrol latch */ case 6: - exidy_sfxctrl_w(machine().device("exidy"), data >> 6, data); + exidy_sfxctrl_w(machine().device("exidy"), space, data >> 6, data); break; /* everything else writes to the 6840 */ default: - exidy_sh6840_w(machine().device("exidy"), offset, data); + exidy_sh6840_w(machine().device("exidy"), space, offset, data); break; } @@ -574,7 +574,7 @@ READ8_MEMBER(berzerk_state::berzerk_audio_r) return 0; /* everything else reads from the 6840 */ default: - return exidy_sh6840_r(machine().device("exidy"), offset); + return exidy_sh6840_r(machine().device("exidy"), space, offset); } } diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c index d198cc9c081..b4e2d9b6678 100644 --- a/src/mame/drivers/bfcobra.c +++ b/src/mame/drivers/bfcobra.c @@ -1471,7 +1471,7 @@ WRITE8_MEMBER(bfcobra_state::upd_w) { device_t *device = machine().device("upd"); upd7759_reset_w(device, data & 0x80); - upd7759_port_w(device, 0, data & 0x3f); + upd7759_port_w(device, space, 0, data & 0x3f); upd7759_start_w(device, data & 0x40 ? 0 : 1); } diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c index c629d961d69..53cb816a970 100644 --- a/src/mame/drivers/bfm_sc1.c +++ b/src/mame/drivers/bfm_sc1.c @@ -602,7 +602,7 @@ WRITE8_MEMBER(bfm_sc1_state::nec_reset_w) WRITE8_MEMBER(bfm_sc1_state::nec_latch_w) { device_t *device = machine().device("upd"); - upd7759_port_w (device, 0, data&0x3F); // setup sample + upd7759_port_w (device, space, 0, data&0x3F); // setup sample upd7759_start_w(device, 0); upd7759_start_w(device, 1); // start } diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c index a8d2d9086a1..3ed5abed474 100644 --- a/src/mame/drivers/bfm_sc2.c +++ b/src/mame/drivers/bfm_sc2.c @@ -731,7 +731,7 @@ WRITE8_MEMBER(bfm_sc2_state::nec_latch_w) upd7759_set_bank_base(device, bank*0x20000); - upd7759_port_w(device, 0, data&0x3F); // setup sample + upd7759_port_w(device, space, 0, data&0x3F); // setup sample upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/drivers/bfm_sc4h.c b/src/mame/drivers/bfm_sc4h.c index 601ca6b7f5c..95d131fce80 100644 --- a/src/mame/drivers/bfm_sc4h.c +++ b/src/mame/drivers/bfm_sc4h.c @@ -192,10 +192,10 @@ READ16_MEMBER(sc4_state::sc4_mem_r) return 0x0000;//space.machine().rand();; case 0x1244: - return ymz280b_r(m_ymz,0); + return ymz280b_r(m_ymz,space,0); case 0x1246: - return ymz280b_r(m_ymz,1); + return ymz280b_r(m_ymz,space,1); default: logerror("%08x maincpu read access offset %08x mem_mask %04x cs %d (LAMPS etc.)\n", pc, offset*2, mem_mask, cs); @@ -215,7 +215,7 @@ READ16_MEMBER(sc4_state::sc4_mem_r) if ((offset>=base) && (offset<end)) { offset-=base; - return duart68681_r(m_duart,offset); + return duart68681_r(m_duart,space,offset); } else { @@ -336,11 +336,11 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w) break; case 0x1248: - ymz280b_w(m_ymz,0, data & 0xff); + ymz280b_w(m_ymz,space,0, data & 0xff); break; case 0x124a: - ymz280b_w(m_ymz,1, data & 0xff); + ymz280b_w(m_ymz,space,1, data & 0xff); break; case 0x1330: @@ -367,7 +367,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w) if ((offset>=base) && (offset<end)) { offset-=base; - duart68681_w(m_duart,offset,data&0x00ff); + duart68681_w(m_duart,space,offset,data&0x00ff); } else { diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c index f80d0cfb797..dee01456218 100644 --- a/src/mame/drivers/bigevglf.c +++ b/src/mame/drivers/bigevglf.c @@ -413,7 +413,8 @@ GFXDECODE_END static const msm5232_interface msm5232_config = { - { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 } /* 0.65 (???) uF capacitors */ + { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, /* 0.65 (???) uF capacitors */ + DEVCB_NULL }; void bigevglf_state::machine_start() diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c index a5edbb3ddf9..61f3e0dbaeb 100644 --- a/src/mame/drivers/bishi.c +++ b/src/mame/drivers/bishi.c @@ -138,7 +138,7 @@ READ16_MEMBER(bishi_state::bishi_K056832_rom_r) if (m_cur_control2 & 0x1000) ouroffs += 4; - return k056832_bishi_rom_word_r(m_k056832, ouroffs, mem_mask); + return k056832_bishi_rom_word_r(m_k056832, space, ouroffs, mem_mask); } static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state ) diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c index 05aaf75c538..cc541ee13ac 100644 --- a/src/mame/drivers/blockhl.c +++ b/src/mame/drivers/blockhl.c @@ -69,25 +69,25 @@ READ8_MEMBER(blockhl_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(blockhl_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c index 80ea4db1bdd..310154fc9b9 100644 --- a/src/mame/drivers/bogeyman.c +++ b/src/mame/drivers/bogeyman.c @@ -34,11 +34,11 @@ WRITE8_MEMBER(bogeyman_state::bogeyman_8910_control_w) // bit 5 goes to 8910 #0 BDIR pin if ((m_last_write & 0x20) == 0x20 && (data & 0x20) == 0x00) - ay8910_data_address_w(machine().device("ay1"), m_last_write >> 4, m_psg_latch); + ay8910_data_address_w(machine().device("ay1"), space, m_last_write >> 4, m_psg_latch); // bit 7 goes to 8910 #1 BDIR pin if ((m_last_write & 0x80) == 0x80 && (data & 0x80) == 0x00) - ay8910_data_address_w(machine().device("ay2"), m_last_write >> 6, m_psg_latch); + ay8910_data_address_w(machine().device("ay2"), space, m_last_write >> 6, m_psg_latch); m_last_write = data; } diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c index aec462323cf..cd00541a535 100644 --- a/src/mame/drivers/bottom9.c +++ b/src/mame/drivers/bottom9.c @@ -34,25 +34,25 @@ READ8_MEMBER(bottom9_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(bottom9_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } READ8_MEMBER(bottom9_state::bottom9_bankedram1_r) @@ -63,9 +63,9 @@ READ8_MEMBER(bottom9_state::bottom9_bankedram1_r) else { if (m_zoomreadroms) - return k051316_rom_r(m_k051316, offset); + return k051316_rom_r(m_k051316, space, offset); else - return k051316_r(m_k051316, offset); + return k051316_r(m_k051316, space, offset); } } @@ -75,7 +75,7 @@ WRITE8_MEMBER(bottom9_state::bottom9_bankedram1_w) if (m_k052109_selected) k052109_051960_w(space, offset, data); else - k051316_w(m_k051316, offset, data); + k051316_w(m_k051316, space, offset, data); } READ8_MEMBER(bottom9_state::bottom9_bankedram2_r) diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c index 61e29f667ff..86543a230dd 100644 --- a/src/mame/drivers/buggychl.c +++ b/src/mame/drivers/buggychl.c @@ -352,7 +352,8 @@ static const ay8910_interface ay8910_interface_2 = static const msm5232_interface msm5232_config = { - { 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6 } /* default 0.39 uF capacitors (not verified) */ + { 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6 }, /* default 0.39 uF capacitors (not verified) */ + DEVCB_NULL }; diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c index 1c467ce3992..c1350bffb01 100644 --- a/src/mame/drivers/bzone.c +++ b/src/mame/drivers/bzone.c @@ -286,7 +286,7 @@ WRITE8_MEMBER(bzone_state::redbaron_joysound_w) { device_t *device = machine().device("custom"); m_rb_input_select = data & 1; - redbaron_sounds_w(device, offset, data); + redbaron_sounds_w(device, space, offset, data); } diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c index a73e434cc98..47f1ca11388 100644 --- a/src/mame/drivers/calchase.c +++ b/src/mame/drivers/calchase.c @@ -184,13 +184,13 @@ static void ide_interrupt(device_t *device, int state); READ8_MEMBER(calchase_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(calchase_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } READ8_MEMBER(calchase_state::at_page8_r) @@ -298,13 +298,13 @@ static I8237_INTERFACE( dma8237_2_config ) READ32_MEMBER(calchase_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(calchase_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } @@ -314,14 +314,14 @@ WRITE32_MEMBER(calchase_state::ide_w) READ32_MEMBER(calchase_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(calchase_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index 34b6bb91018..11b63a22a9a 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -92,7 +92,7 @@ WRITE8_MEMBER(cd32_state::cd32_cia_0_porta_w) /* bit 2 = Power Led on Amiga */ set_led_status(machine(), 0, (data & 2) ? 0 : 1); - handle_cd32_joystick_cia(machine(), data, mos6526_r(device, 2)); + handle_cd32_joystick_cia(machine(), data, mos6526_r(device, space, 2)); } /************************************* diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index 016d9d0da86..59cda529e77 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -736,15 +736,15 @@ ADDRESS_MAP_END WRITE8_MEMBER(centiped_state::caterplr_AY8910_w) { device_t *device = machine().device("pokey"); - ay8910_address_w(device, 0, offset); - ay8910_data_w(device, 0, data); + ay8910_address_w(device, space, 0, offset); + ay8910_data_w(device, space, 0, data); } READ8_MEMBER(centiped_state::caterplr_AY8910_r) { device_t *device = machine().device("pokey"); - ay8910_address_w(device, 0, offset); - return ay8910_r(device, 0); + ay8910_address_w(device, space, 0, offset); + return ay8910_r(device, space, 0); } diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c index 9ce08855a48..c9e4a8b9e0c 100644 --- a/src/mame/drivers/cham24.c +++ b/src/mame/drivers/cham24.c @@ -148,19 +148,19 @@ WRITE8_MEMBER(cham24_state::sprite_dma_w) READ8_MEMBER(cham24_state::psg_4015_r) { device_t *device = machine().device("nes"); - return nes_psg_r(device,0x15); + return nes_psg_r(device,space,0x15); } WRITE8_MEMBER(cham24_state::psg_4015_w) { device_t *device = machine().device("nes"); - nes_psg_w(device,0x15, data); + nes_psg_w(device,space,0x15, data); } WRITE8_MEMBER(cham24_state::psg_4017_w) { device_t *device = machine().device("nes"); - nes_psg_w(device,0x17, data); + nes_psg_w(device,space,0x17, data); } diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c index 26867453793..2cad7ee0ae7 100644 --- a/src/mame/drivers/cidelsa.c +++ b/src/mame/drivers/cidelsa.c @@ -64,15 +64,15 @@ WRITE8_MEMBER( draco_state::sound_g_w ) switch (data) { case 0x01: - ay8910_data_w(m_psg, 0, m_psg_latch); + ay8910_data_w(m_psg, space, 0, m_psg_latch); break; case 0x02: - m_psg_latch = ay8910_r(m_psg, 0); + m_psg_latch = ay8910_r(m_psg, space, 0); break; case 0x03: - ay8910_address_w(m_psg, 0, m_psg_latch); + ay8910_address_w(m_psg, space, 0, m_psg_latch); break; } } diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c index e240384ad0f..7d2b8481a79 100644 --- a/src/mame/drivers/circusc.c +++ b/src/mame/drivers/circusc.c @@ -128,9 +128,9 @@ WRITE8_MEMBER(circusc_state::circusc_sound_w) /* CS6 */ case 4: - discrete_sound_w(m_discrete, NODE_05, (offset & 0x20) >> 5); - discrete_sound_w(m_discrete, NODE_06, (offset & 0x18) >> 3); - discrete_sound_w(m_discrete, NODE_07, (offset & 0x40) >> 6); + discrete_sound_w(m_discrete, space, NODE_05, (offset & 0x20) >> 5); + discrete_sound_w(m_discrete, space, NODE_06, (offset & 0x18) >> 3); + discrete_sound_w(m_discrete, space, NODE_07, (offset & 0x40) >> 6); break; } } diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c index f8f25c01405..156511feb9f 100644 --- a/src/mame/drivers/cliffhgr.c +++ b/src/mame/drivers/cliffhgr.c @@ -172,8 +172,8 @@ WRITE8_MEMBER(cliffhgr_state::cliff_sound_overlay_w) { device_t *device = machine().device("discrete"); /* audio */ - discrete_sound_w(device, CLIFF_ENABLE_SND_1, data & 1); - discrete_sound_w(device, CLIFF_ENABLE_SND_2, (data >> 1) & 1); + discrete_sound_w(device, space, CLIFF_ENABLE_SND_1, data & 1); + discrete_sound_w(device, space, CLIFF_ENABLE_SND_2, (data >> 1) & 1); // bit 4 (data & 0x10) is overlay related? } diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c index 17747b66e28..08093d90912 100644 --- a/src/mame/drivers/cninja.c +++ b/src/mame/drivers/cninja.c @@ -149,14 +149,14 @@ READ16_MEMBER(cninja_state::robocop2_prot_r) WRITE16_MEMBER(cninja_state::cninja_pf12_control_w) { machine().primary_screen->update_partial(machine().primary_screen->vpos()); - deco16ic_pf_control_w(m_deco_tilegen1, offset, data, mem_mask); + deco16ic_pf_control_w(m_deco_tilegen1, space, offset, data, mem_mask); } WRITE16_MEMBER(cninja_state::cninja_pf34_control_w) { machine().primary_screen->update_partial(machine().primary_screen->vpos()); - deco16ic_pf_control_w(m_deco_tilegen2, offset, data, mem_mask); + deco16ic_pf_control_w(m_deco_tilegen2, space, offset, data, mem_mask); } diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c index e67a34336c2..7d9d77ad2a7 100644 --- a/src/mame/drivers/contra.c +++ b/src/mame/drivers/contra.c @@ -28,7 +28,8 @@ Dip locations and factory settings verified with manual static INTERRUPT_GEN( contra_interrupt ) { contra_state *state = device->machine().driver_data<contra_state>(); - if (k007121_ctrlram_r(state->m_k007121_1, 7) & 0x02) + address_space &space = state->generic_space(); + if (k007121_ctrlram_r(state->m_k007121_1, space, 7) & 0x02) device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE); } diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c index 5a1a1020f31..cd7cea200dd 100644 --- a/src/mame/drivers/crbaloon.c +++ b/src/mame/drivers/crbaloon.c @@ -167,7 +167,7 @@ WRITE8_MEMBER(crbaloon_state::port_sound_w) machine().sound().system_enable((data & 0x02) ? TRUE : FALSE); /* D2 - unlabeled - music enable */ - crbaloon_audio_set_music_enable(discrete, 0, (data & 0x04) ? TRUE : FALSE); + crbaloon_audio_set_music_enable(discrete, space, 0, (data & 0x04) ? TRUE : FALSE); /* D3 - EXPLOSION */ crbaloon_audio_set_explosion_enable(sn, (data & 0x08) ? TRUE : FALSE); @@ -179,7 +179,7 @@ WRITE8_MEMBER(crbaloon_state::port_sound_w) crbaloon_audio_set_appear_enable(sn, (data & 0x20) ? TRUE : FALSE); /* D6 - unlabeled - laugh enable */ - crbaloon_audio_set_laugh_enable(discrete, 0, (data & 0x40) ? TRUE : FALSE); + crbaloon_audio_set_laugh_enable(discrete, space, 0, (data & 0x40) ? TRUE : FALSE); /* D7 - unlabeled - goes to PC3259 pin 16 */ @@ -339,12 +339,12 @@ GFXDECODE_END void crbaloon_state::machine_reset() { - address_space *space = machine().device("maincpu")->memory().space(AS_IO); + address_space &space = *machine().device("maincpu")->memory().space(AS_IO); device_t *discrete = machine().device("discrete"); pc3092_reset(); - port_sound_w(*space, 0, 0); - crbaloon_audio_set_music_freq(discrete, 0, 0); + port_sound_w(space, 0, 0); + crbaloon_audio_set_music_freq(discrete, space, 0, 0); } diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index e5f5c71ee57..3593b6ddb73 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -60,25 +60,25 @@ READ8_MEMBER(crimfght_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(crimfght_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } /********************************************/ diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index 3287cf385ce..80e4748a8aa 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -393,22 +393,22 @@ INPUT_PORTS_END READ16_MEMBER(cubeqst_state::read_rotram) { - return cubeqcpu_rotram_r(machine().device("rotate_cpu"), offset, mem_mask); + return cubeqcpu_rotram_r(machine().device("rotate_cpu"), space, offset, mem_mask); } WRITE16_MEMBER(cubeqst_state::write_rotram) { - cubeqcpu_rotram_w(machine().device("rotate_cpu"), offset, data, mem_mask); + cubeqcpu_rotram_w(machine().device("rotate_cpu"), space, offset, data, mem_mask); } READ16_MEMBER(cubeqst_state::read_sndram) { - return cubeqcpu_sndram_r(machine().device("sound_cpu"), offset, mem_mask); + return cubeqcpu_sndram_r(machine().device("sound_cpu"), space, offset, mem_mask); } WRITE16_MEMBER(cubeqst_state::write_sndram) { - cubeqcpu_sndram_w(machine().device("sound_cpu"), offset, data, mem_mask); + cubeqcpu_sndram_w(machine().device("sound_cpu"), space, offset, data, mem_mask); } static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16, cubeqst_state ) diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c index a5df70f5629..d2d18e32577 100644 --- a/src/mame/drivers/cvs.c +++ b/src/mame/drivers/cvs.c @@ -156,7 +156,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_r) if (*m_fo_state) return m_character_ram[(0 * 0x800) | 0x400 | m_character_ram_page_start | offset]; else - return s2636_work_ram_r(m_s2636_0, offset); + return s2636_work_ram_r(m_s2636_0, space, offset); } WRITE8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_w) @@ -169,7 +169,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_w) machine().gfx[1]->mark_dirty((offset / 8) % 256); } else - s2636_work_ram_w(m_s2636_0, offset, data); + s2636_work_ram_w(m_s2636_0, space, offset, data); } @@ -179,7 +179,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_r) if (*m_fo_state) return m_character_ram[(1 * 0x800) | 0x400 | m_character_ram_page_start | offset]; else - return s2636_work_ram_r(m_s2636_1, offset); + return s2636_work_ram_r(m_s2636_1, space, offset); } WRITE8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_w) @@ -192,7 +192,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_w) machine().gfx[1]->mark_dirty((offset / 8) % 256); } else - s2636_work_ram_w(m_s2636_1, offset, data); + s2636_work_ram_w(m_s2636_1, space, offset, data); } @@ -202,7 +202,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_r) if (*m_fo_state) return m_character_ram[(2 * 0x800) | 0x400 | m_character_ram_page_start | offset]; else - return s2636_work_ram_r(m_s2636_2, offset); + return s2636_work_ram_r(m_s2636_2, space, offset); } WRITE8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_w) @@ -215,7 +215,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_w) machine().gfx[1]->mark_dirty((offset / 8) % 256); } else - s2636_work_ram_w(m_s2636_2, offset, data); + s2636_work_ram_w(m_s2636_2, space, offset, data); } @@ -290,7 +290,7 @@ READ8_MEMBER(cvs_state::cvs_393hz_clock_r) READ8_MEMBER(cvs_state::tms_clock_r) { device_t *device = machine().device("tms"); - return tms5110_romclk_hack_r(device, 0) ? 0x80 : 0; + return tms5110_romclk_hack_r(device, space, 0) ? 0x80 : 0; } static TIMER_CALLBACK( cvs_393hz_timer_cb ) @@ -390,7 +390,7 @@ READ8_MEMBER(cvs_state::cvs_speech_command_r) /* FIXME: this was by observation on board ??? * -bit 7 is TMS status (active LO) */ - return ((tms5110_ctl_r(m_tms, 0) ^ 1) << 7) | (soundlatch_byte_r(space, 0) & 0x7f); + return ((tms5110_ctl_r(m_tms, space, 0) ^ 1) << 7) | (soundlatch_byte_r(space, 0) & 0x7f); } @@ -409,7 +409,7 @@ WRITE8_MEMBER(cvs_state::cvs_tms5110_ctl_w) (m_tms5110_ctl_data[1] << 3); /* CTL8 */ LOG(("CVS: Speech CTL = %04x %02x %02x\n", ctl, offset, data)); - tms5110_ctl_w(device, 0, ctl); + tms5110_ctl_w(device, space, 0, ctl); } diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c index 1bf79e58075..74c468fa5fd 100644 --- a/src/mame/drivers/cybertnk.c +++ b/src/mame/drivers/cybertnk.c @@ -821,7 +821,12 @@ GFXDECODE_END static const y8950_interface y8950_config = { - 0 /* TODO */ + /* TODO */ + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; static MACHINE_CONFIG_START( cybertnk, cybertnk_state ) diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c index 5a994bcc3fe..226599175d0 100644 --- a/src/mame/drivers/dambustr.c +++ b/src/mame/drivers/dambustr.c @@ -73,7 +73,7 @@ WRITE8_MEMBER(dambustr_state::dambustr_noise_enable_w) device_t *device = machine().device("GAL_AUDIO"); if (data != m_noise_data) { m_noise_data = data; - galaxian_noise_enable_w(device, offset, data); + galaxian_noise_enable_w(device, space, offset, data); } } diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c index 5013dd57833..d5eb171821e 100644 --- a/src/mame/drivers/darius.c +++ b/src/mame/drivers/darius.c @@ -177,7 +177,7 @@ READ16_MEMBER(darius_state::darius_ioc_r) switch (offset) { case 0x01: - return (tc0140syt_comm_r(m_tc0140syt, 0) & 0xff); /* sound interface read */ + return (tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff); /* sound interface read */ case 0x04: return ioport("P1")->read(); @@ -207,12 +207,12 @@ WRITE16_MEMBER(darius_state::darius_ioc_w) { case 0x00: /* sound interface write */ - tc0140syt_port_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff); return; case 0x01: /* sound interface write */ - tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff); return; case 0x28: /* unknown, written by both cpus - always 0? */ diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c index ce848b94e4b..2217562beca 100644 --- a/src/mame/drivers/dblewing.c +++ b/src/mame/drivers/dblewing.c @@ -104,7 +104,8 @@ UINT16 dblwings_pri_callback(UINT16 x) static SCREEN_UPDATE_IND16(dblewing) { dblewing_state *state = screen.machine().driver_data<dblewing_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = state->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c index cc905036ccf..b210d55eab7 100644 --- a/src/mame/drivers/djmain.c +++ b/src/mame/drivers/djmain.c @@ -208,7 +208,7 @@ READ32_MEMBER(djmain_state::v_rom_r) { device_t *k056832 = machine().device("k056832"); UINT8 *mem8 = memregion("gfx2")->base(); - int bank = k056832_word_r(k056832, 0x34/2, 0xffff); + int bank = k056832_word_r(k056832, space, 0x34/2, 0xffff); offset *= 2; @@ -280,18 +280,18 @@ READ32_MEMBER(djmain_state::ide_std_r) { device_t *device = machine().device("ide"); if (ACCESSING_BITS_0_7) - return ide_controller16_r(device, IDE_STD_OFFSET + offset, 0xff00) >> 8; + return ide_controller16_r(device, space, IDE_STD_OFFSET + offset, 0xff00) >> 8; else - return ide_controller16_r(device, IDE_STD_OFFSET + offset, 0xffff) << 16; + return ide_controller16_r(device, space, IDE_STD_OFFSET + offset, 0xffff) << 16; } WRITE32_MEMBER(djmain_state::ide_std_w) { device_t *device = machine().device("ide"); if (ACCESSING_BITS_0_7) - ide_controller16_w(device, IDE_STD_OFFSET + offset, data << 8, 0xff00); + ide_controller16_w(device, space, IDE_STD_OFFSET + offset, data << 8, 0xff00); else - ide_controller16_w(device, IDE_STD_OFFSET + offset, data >> 16, 0xffff); + ide_controller16_w(device, space, IDE_STD_OFFSET + offset, data >> 16, 0xffff); } @@ -299,7 +299,7 @@ READ32_MEMBER(djmain_state::ide_alt_r) { device_t *device = machine().device("ide"); if (offset == 0) - return ide_controller16_r(device, IDE_ALT_OFFSET, 0x00ff) << 24; + return ide_controller16_r(device, space, IDE_ALT_OFFSET, 0x00ff) << 24; return 0; } @@ -308,7 +308,7 @@ WRITE32_MEMBER(djmain_state::ide_alt_w) { device_t *device = machine().device("ide"); if (offset == 0 && ACCESSING_BITS_16_23) - ide_controller16_w(device, IDE_ALT_OFFSET, data >> 24, 0x00ff); + ide_controller16_w(device, space, IDE_ALT_OFFSET, data >> 24, 0x00ff); } diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index 949de03dbdd..8637f665d41 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -568,7 +568,7 @@ WRITE8_MEMBER(dkong_state::p8257_drq_w) READ8_MEMBER(dkong_state::dkong_in2_r) { /* mcu status (sound feedback) is inverted bit4 from port B (8039) */ - UINT8 mcustatus = latch8_bit4_q_r(m_dev_vp2, 0); + UINT8 mcustatus = latch8_bit4_q_r(m_dev_vp2, space, 0); UINT8 r; r = (ioport("IN2")->read() & 0xBF) | (mcustatus << 6); diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c index f9a0200d99f..6a8543ca3b4 100644 --- a/src/mame/drivers/dlair.c +++ b/src/mame/drivers/dlair.c @@ -148,24 +148,24 @@ static const UINT8 led_map[16] = * *************************************/ -static void dleuro_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( dleuro_interrupt ) { device->machine().device("maincpu")->execute().set_input_line(0, state); } -static WRITE8_DEVICE_HANDLER( serial_transmit ) +static WRITE16_DEVICE_HANDLER( serial_transmit ) { dlair_state *state = device->machine().driver_data<dlair_state>(); state->laserdisc_data_w(data); } -static int serial_receive(device_t *device, int channel) +static READ16_DEVICE_HANDLER( serial_receive ) { dlair_state *state = device->machine().driver_data<dlair_state>(); /* if we still have data to send, do it now */ - if (channel == 0 && state->laserdisc_data_available_r() == ASSERT_LINE) + if (offset == 0 && state->laserdisc_data_available_r() == ASSERT_LINE) return state->laserdisc_data_r(); return -1; @@ -183,12 +183,12 @@ static Z80CTC_INTERFACE( ctc_intf ) static const z80sio_interface sio_intf = { - dleuro_interrupt, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - serial_transmit, /* transmit handler */ - serial_receive /* receive handler */ + DEVCB_LINE(dleuro_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(serial_transmit), /* transmit handler */ + DEVCB_HANDLER(serial_receive) /* receive handler */ }; diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c index 8c07fe165e9..3a1ce7e4b1f 100644 --- a/src/mame/drivers/dogfgt.c +++ b/src/mame/drivers/dogfgt.c @@ -46,11 +46,11 @@ WRITE8_MEMBER(dogfgt_state::dogfgt_soundcontrol_w) /* bit 5 goes to 8910 #0 BDIR pin */ if ((m_last_snd_ctrl & 0x20) == 0x20 && (data & 0x20) == 0x00) - ay8910_data_address_w(machine().device("ay1"), m_last_snd_ctrl >> 4, m_soundlatch); + ay8910_data_address_w(machine().device("ay1"), space, m_last_snd_ctrl >> 4, m_soundlatch); /* bit 7 goes to 8910 #1 BDIR pin */ if ((m_last_snd_ctrl & 0x80) == 0x80 && (data & 0x80) == 0x00) - ay8910_data_address_w(machine().device("ay2"), m_last_snd_ctrl >> 6, m_soundlatch); + ay8910_data_address_w(machine().device("ay2"), space, m_last_snd_ctrl >> 6, m_soundlatch); m_last_snd_ctrl = data; } diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c index 3f1ebfb0110..83f0e6565a9 100644 --- a/src/mame/drivers/dragrace.c +++ b/src/mame/drivers/dragrace.c @@ -33,9 +33,9 @@ static TIMER_DEVICE_CALLBACK( dragrace_frame_callback ) } -static void dragrace_update_misc_flags( running_machine &machine ) +static void dragrace_update_misc_flags( address_space &space ) { - dragrace_state *state = machine.driver_data<dragrace_state>(); + dragrace_state *state = space.machine().driver_data<dragrace_state>(); /* 0x0900 = set 3SPEED1 0x00000001 * 0x0901 = set 4SPEED1 0x00000002 * 0x0902 = set 5SPEED1 0x00000004 @@ -67,24 +67,24 @@ static void dragrace_update_misc_flags( running_machine &machine ) * 0x091f = set Player 2 Start Lamp 0x80000000 * 0x0938 = clear 0x0918 - 0x091f */ - set_led_status(machine, 0, state->m_misc_flags & 0x00008000); - set_led_status(machine, 1, state->m_misc_flags & 0x80000000); - - discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR1_DATA, ~state->m_misc_flags & 0x0000001f); // Speed1 data* - discrete_sound_w(state->m_discrete, DRAGRACE_EXPLODE1_EN, (state->m_misc_flags & 0x00000020) ? 1: 0); // Explosion1 enable - discrete_sound_w(state->m_discrete, DRAGRACE_SCREECH1_EN, (state->m_misc_flags & 0x00000040) ? 1: 0); // Screech1 enable - discrete_sound_w(state->m_discrete, DRAGRACE_KLEXPL1_EN, (state->m_misc_flags & 0x00000200) ? 1: 0); // KLEXPL1 enable - discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR1_EN, (state->m_misc_flags & 0x00000800) ? 1: 0); // Motor1 enable - - discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR2_DATA, (~state->m_misc_flags & 0x001f0000) >> 0x10); // Speed2 data* - discrete_sound_w(state->m_discrete, DRAGRACE_EXPLODE2_EN, (state->m_misc_flags & 0x00200000) ? 1: 0); // Explosion2 enable - discrete_sound_w(state->m_discrete, DRAGRACE_SCREECH2_EN, (state->m_misc_flags & 0x00400000) ? 1: 0); // Screech2 enable - discrete_sound_w(state->m_discrete, DRAGRACE_KLEXPL2_EN, (state->m_misc_flags & 0x02000000) ? 1: 0); // KLEXPL2 enable - discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR2_EN, (state->m_misc_flags & 0x08000000) ? 1: 0); // Motor2 enable - - discrete_sound_w(state->m_discrete, DRAGRACE_ATTRACT_EN, (state->m_misc_flags & 0x00001000) ? 1: 0); // Attract enable - discrete_sound_w(state->m_discrete, DRAGRACE_LOTONE_EN, (state->m_misc_flags & 0x00002000) ? 1: 0); // LoTone enable - discrete_sound_w(state->m_discrete, DRAGRACE_HITONE_EN, (state->m_misc_flags & 0x20000000) ? 1: 0); // HiTone enable + set_led_status(space.machine(), 0, state->m_misc_flags & 0x00008000); + set_led_status(space.machine(), 1, state->m_misc_flags & 0x80000000); + + discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR1_DATA, ~state->m_misc_flags & 0x0000001f); // Speed1 data* + discrete_sound_w(state->m_discrete, space, DRAGRACE_EXPLODE1_EN, (state->m_misc_flags & 0x00000020) ? 1: 0); // Explosion1 enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_SCREECH1_EN, (state->m_misc_flags & 0x00000040) ? 1: 0); // Screech1 enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_KLEXPL1_EN, (state->m_misc_flags & 0x00000200) ? 1: 0); // KLEXPL1 enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR1_EN, (state->m_misc_flags & 0x00000800) ? 1: 0); // Motor1 enable + + discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR2_DATA, (~state->m_misc_flags & 0x001f0000) >> 0x10); // Speed2 data* + discrete_sound_w(state->m_discrete, space, DRAGRACE_EXPLODE2_EN, (state->m_misc_flags & 0x00200000) ? 1: 0); // Explosion2 enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_SCREECH2_EN, (state->m_misc_flags & 0x00400000) ? 1: 0); // Screech2 enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_KLEXPL2_EN, (state->m_misc_flags & 0x02000000) ? 1: 0); // KLEXPL2 enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR2_EN, (state->m_misc_flags & 0x08000000) ? 1: 0); // Motor2 enable + + discrete_sound_w(state->m_discrete, space, DRAGRACE_ATTRACT_EN, (state->m_misc_flags & 0x00001000) ? 1: 0); // Attract enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_LOTONE_EN, (state->m_misc_flags & 0x00002000) ? 1: 0); // LoTone enable + discrete_sound_w(state->m_discrete, space, DRAGRACE_HITONE_EN, (state->m_misc_flags & 0x20000000) ? 1: 0); // HiTone enable } WRITE8_MEMBER(dragrace_state::dragrace_misc_w) @@ -97,7 +97,7 @@ WRITE8_MEMBER(dragrace_state::dragrace_misc_w) else m_misc_flags &= (~mask); logerror("Set %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0900 + offset, mask, m_misc_flags, data & 0x01); - dragrace_update_misc_flags(machine()); + dragrace_update_misc_flags(space); } WRITE8_MEMBER(dragrace_state::dragrace_misc_clear_w) @@ -107,7 +107,7 @@ WRITE8_MEMBER(dragrace_state::dragrace_misc_clear_w) UINT32 mask = 0xff << (((offset >> 3) & 0x03) * 8); m_misc_flags &= (~mask); logerror("Clear %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0920 + offset, mask, m_misc_flags, data & 0x01); - dragrace_update_misc_flags(machine()); + dragrace_update_misc_flags(space); } READ8_MEMBER(dragrace_state::dragrace_input_r) diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c index 15a77ab5e3d..45e83a7c725 100644 --- a/src/mame/drivers/drw80pkr.c +++ b/src/mame/drivers/drw80pkr.c @@ -195,11 +195,11 @@ WRITE8_MEMBER(drw80pkr_state::drw80pkr_io_w) // ay8910 control port if (m_p1 == 0xfc) - ay8910_address_w(machine().device("aysnd"), 0, data); + ay8910_address_w(machine().device("aysnd"), space, 0, data); // ay8910_write_port_0_w if (m_p1 == 0xfe) - ay8910_data_w(machine().device("aysnd"), 0, data); + ay8910_data_w(machine().device("aysnd"), space, 0, data); } } diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c index 2c070fb6d7d..0652e8a4b50 100644 --- a/src/mame/drivers/dynadice.c +++ b/src/mame/drivers/dynadice.c @@ -93,10 +93,10 @@ WRITE8_MEMBER(dynadice_state::sound_control_w) */ if ((data & 7) == 7) - ay8910_address_w(device, 0, m_ay_data); + ay8910_address_w(device, space, 0, m_ay_data); if ((data & 7) == 6) - ay8910_data_w(device, 0, m_ay_data); + ay8910_data_w(device, space, 0, m_ay_data); } diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 2e5f32ecb4d..0d3d1994073 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -1636,8 +1636,8 @@ WRITE8_MEMBER(dynax_state::gekisha_8000_w) case 0x8050: // CRT controller case 0x8051: return; - case 0x8070: ym2413_register_port_w(m_ymsnd, 0, data); return; - case 0x8071: ym2413_data_port_w(m_ymsnd, 0, data); return; + case 0x8070: ym2413_register_port_w(m_ymsnd, space, 0, data); return; + case 0x8071: ym2413_data_port_w(m_ymsnd, space, 0, data); return; case 0x8060: m_keyb = data; return; diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index 78ceaf7815b..eb7736e82bb 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -566,7 +566,7 @@ WRITE8_MEMBER(equites_state::equites_8155_portb_w) equites_update_dac(machine()); } -static void equites_msm5232_gate( device_t *device, int state ) +static WRITE_LINE_DEVICE_HANDLER( equites_msm5232_gate ) { } @@ -1113,7 +1113,7 @@ GFXDECODE_END static const msm5232_interface equites_5232intf = { { 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6 }, // verified - equites_msm5232_gate + DEVCB_LINE(equites_msm5232_gate) }; diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c index cc581d83a22..be1cb3f0ed2 100644 --- a/src/mame/drivers/esripsys.c +++ b/src/mame/drivers/esripsys.c @@ -524,7 +524,7 @@ READ8_MEMBER(esripsys_state::tms5220_r) { /* TMS5220 core returns status bits in D7-D6 */ device_t *tms = machine().device("tms5220nl"); - UINT8 status = tms5220_status_r(tms, 0); + UINT8 status = tms5220_status_r(tms, space, 0); status = ((status & 0x80) >> 5) | ((status & 0x40) >> 5) | ((status & 0x20) >> 5); return (tms5220_readyq_r(tms) << 7) | (tms5220_intq_r(tms) << 6) | status; @@ -540,12 +540,12 @@ WRITE8_MEMBER(esripsys_state::tms5220_w) if (offset == 0) { m_tms_data = data; - tms5220_data_w(tms, 0, m_tms_data); + tms5220_data_w(tms, space, 0, m_tms_data); } #if 0 if (offset == 1) { - tms5220_data_w(tms, 0, m_tms_data); + tms5220_data_w(tms, space, 0, m_tms_data); } #endif } diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 711903fcb4f..5040f670a84 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -115,20 +115,20 @@ WRITE8_MEMBER(ettrivia_state::b800_w) /* special case to return the value written to 0xb000 */ /* does it reset the chips too ? */ case 0: break; - case 0xc4: m_b000_ret = ay8910_r(machine().device("ay1"), 0); break; - case 0x94: m_b000_ret = ay8910_r(machine().device("ay2"), 0); break; - case 0x86: m_b000_ret = ay8910_r(machine().device("ay3"), 0); break; + case 0xc4: m_b000_ret = ay8910_r(machine().device("ay1"), space, 0); break; + case 0x94: m_b000_ret = ay8910_r(machine().device("ay2"), space, 0); break; + case 0x86: m_b000_ret = ay8910_r(machine().device("ay3"), space, 0); break; case 0x80: switch(m_b800_prev) { - case 0xe0: ay8910_address_w(machine().device("ay1"),0,m_b000_val); break; - case 0x98: ay8910_address_w(machine().device("ay2"),0,m_b000_val); break; - case 0x83: ay8910_address_w(machine().device("ay3"),0,m_b000_val); break; + case 0xe0: ay8910_address_w(machine().device("ay1"),space,0,m_b000_val); break; + case 0x98: ay8910_address_w(machine().device("ay2"),space,0,m_b000_val); break; + case 0x83: ay8910_address_w(machine().device("ay3"),space,0,m_b000_val); break; - case 0xa0: ay8910_data_w(machine().device("ay1"),0,m_b000_val); break; - case 0x88: ay8910_data_w(machine().device("ay2"),0,m_b000_val); break; - case 0x81: ay8910_data_w(machine().device("ay3"),0,m_b000_val); break; + case 0xa0: ay8910_data_w(machine().device("ay1"),space,0,m_b000_val); break; + case 0x88: ay8910_data_w(machine().device("ay2"),space,0,m_b000_val); break; + case 0x81: ay8910_data_w(machine().device("ay3"),space,0,m_b000_val); break; } break; diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c index d4e8d1c533b..286b0dcbcc9 100644 --- a/src/mame/drivers/exterm.c +++ b/src/mame/drivers/exterm.c @@ -207,7 +207,7 @@ WRITE8_MEMBER(exterm_state::ym2151_data_latch_w) { device_t *device = machine().device("ymsnd"); /* bit 7 of the sound control selects which port */ - ym2151_w(device, m_sound_control >> 7, data); + ym2151_w(device, space, m_sound_control >> 7, data); } diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c index 2aa36998a79..f450071f0d1 100644 --- a/src/mame/drivers/famibox.c +++ b/src/mame/drivers/famibox.c @@ -180,19 +180,19 @@ WRITE8_MEMBER(famibox_state::sprite_dma_w) READ8_MEMBER(famibox_state::psg_4015_r) { device_t *device = machine().device("nes"); - return nes_psg_r(device, 0x15); + return nes_psg_r(device, space, 0x15); } WRITE8_MEMBER(famibox_state::psg_4015_w) { device_t *device = machine().device("nes"); - nes_psg_w(device, 0x15, data); + nes_psg_w(device, space, 0x15, data); } WRITE8_MEMBER(famibox_state::psg_4017_w) { device_t *device = machine().device("nes"); - nes_psg_w(device, 0x17, data); + nes_psg_w(device, space, 0x17, data); } /****************************************************** diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c index d028286b156..d3a46c5b006 100644 --- a/src/mame/drivers/fastlane.c +++ b/src/mame/drivers/fastlane.c @@ -21,9 +21,10 @@ static TIMER_DEVICE_CALLBACK( fastlane_scanline ) fastlane_state *state = timer.machine().driver_data<fastlane_state>(); int scanline = param; - if(scanline == 240 && k007121_ctrlram_r(state->m_k007121, 7) & 0x02) // vblank irq + address_space &space = state->generic_space(); + if(scanline == 240 && k007121_ctrlram_r(state->m_k007121, space, 7) & 0x02) // vblank irq state->m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE); - else if(((scanline % 32) == 0) && k007121_ctrlram_r(state->m_k007121, 7) & 0x01) // timer irq + else if(((scanline % 32) == 0) && k007121_ctrlram_r(state->m_k007121, space, 7) & 0x01) // timer irq state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } @@ -32,7 +33,7 @@ WRITE8_MEMBER(fastlane_state::k007121_registers_w) { if (offset < 8) - k007121_ctrl_w(m_k007121, offset, data); + k007121_ctrl_w(m_k007121, space, offset, data); else /* scroll registers */ m_k007121_regs[offset] = data; } @@ -59,25 +60,25 @@ WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w) READ8_MEMBER(fastlane_state::fastlane_k1_k007232_r) { device_t *device = machine().device("konami1"); - return k007232_r(device, offset ^ 1); + return k007232_r(device, space, offset ^ 1); } WRITE8_MEMBER(fastlane_state::fastlane_k1_k007232_w) { device_t *device = machine().device("konami1"); - k007232_w(device, offset ^ 1, data); + k007232_w(device, space, offset ^ 1, data); } READ8_MEMBER(fastlane_state::fastlane_k2_k007232_r) { device_t *device = machine().device("konami2"); - return k007232_r(device, offset ^ 1); + return k007232_r(device, space, offset ^ 1); } WRITE8_MEMBER(fastlane_state::fastlane_k2_k007232_w) { device_t *device = machine().device("konami2"); - k007232_w(device, offset ^ 1, data); + k007232_w(device, space, offset ^ 1, data); } static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state ) AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_SHARE("k007121_regs") /* 007121 registers */ diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index f29ee1d2a96..0b9373adfa4 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -137,14 +137,14 @@ WRITE8_MEMBER(fgoal_state::fgoal_row_w) { m_row = data; - mb14241_shift_data_w(m_mb14241, 0, 0); + mb14241_shift_data_w(m_mb14241, space, 0, 0); } WRITE8_MEMBER(fgoal_state::fgoal_col_w) { m_col = data; - mb14241_shift_count_w(m_mb14241, 0, data); + mb14241_shift_count_w(m_mb14241, space, 0, data); } READ8_MEMBER(fgoal_state::fgoal_address_hi_r) @@ -159,14 +159,14 @@ READ8_MEMBER(fgoal_state::fgoal_address_lo_r) READ8_MEMBER(fgoal_state::fgoal_shifter_r) { - UINT8 v = mb14241_shift_result_r(m_mb14241, 0); + UINT8 v = mb14241_shift_result_r(m_mb14241, space, 0); return BITSWAP8(v, 7, 6, 5, 4, 3, 2, 1, 0); } READ8_MEMBER(fgoal_state::fgoal_shifter_reverse_r) { - UINT8 v = mb14241_shift_result_r(m_mb14241, 0); + UINT8 v = mb14241_shift_result_r(m_mb14241, space, 0); return BITSWAP8(v, 0, 1, 2, 3, 4, 5, 6, 7); } diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index ac0cd7fc88c..9c14c2e2fae 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -36,7 +36,7 @@ INPUT_CHANGED_MEMBER(firetrk_state::service_mode_switch_changed) INPUT_CHANGED_MEMBER(firetrk_state::firetrk_horn_changed) { device_t *discrete = machine().device("discrete"); - discrete_sound_w(discrete, FIRETRUCK_HORN_EN, newval); + discrete_sound_w(discrete, generic_space(), FIRETRUCK_HORN_EN, newval); } @@ -90,7 +90,7 @@ WRITE8_MEMBER(firetrk_state::firetrk_output_w) set_led_status(machine(), 3, !(data & 0x08)); /* BIT4 => ATTRACT */ - discrete_sound_w(discrete, FIRETRUCK_ATTRACT_EN, data & 0x10); + discrete_sound_w(discrete, space, FIRETRUCK_ATTRACT_EN, data & 0x10); coin_lockout_w(machine(), 0, !(data & 0x10)); coin_lockout_w(machine(), 1, !(data & 0x10)); @@ -100,7 +100,7 @@ WRITE8_MEMBER(firetrk_state::firetrk_output_w) /* BIT6 => UNUSED */ /* BIT7 => BELL OUT */ - discrete_sound_w(discrete, FIRETRUCK_BELL_EN, data & 0x80); + discrete_sound_w(discrete, space, FIRETRUCK_BELL_EN, data & 0x80); } @@ -112,7 +112,7 @@ WRITE8_MEMBER(firetrk_state::superbug_output_w) set_led_status(machine(), 0, offset & 0x01); /* BIT1 => ATTRACT */ - discrete_sound_w(discrete, SUPERBUG_ATTRACT_EN, offset & 0x02); + discrete_sound_w(discrete, space, SUPERBUG_ATTRACT_EN, offset & 0x02); coin_lockout_w(machine(), 0, !(offset & 0x02)); coin_lockout_w(machine(), 1, !(offset & 0x02)); @@ -135,7 +135,7 @@ WRITE8_MEMBER(firetrk_state::montecar_output_1_w) set_led_status(machine(), 1, !(data & 0x02)); /* BIT2 => ATTRACT */ - discrete_sound_w(discrete, MONTECAR_ATTRACT_INV, data & 0x04); + discrete_sound_w(discrete, space, MONTECAR_ATTRACT_INV, data & 0x04); /* BIT3 => UNUSED */ /* BIT4 => UNUSED */ @@ -157,8 +157,8 @@ WRITE8_MEMBER(firetrk_state::montecar_output_2_w) m_flash = data & 0x80; - discrete_sound_w(discrete, MONTECAR_BEEPER_EN, data & 0x10); - discrete_sound_w(discrete, MONTECAR_DRONE_LOUD_DATA, data & 0x0f); + discrete_sound_w(discrete, space, MONTECAR_BEEPER_EN, data & 0x10); + discrete_sound_w(discrete, space, MONTECAR_DRONE_LOUD_DATA, data & 0x0f); } diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c index f152256a93e..bf4f45ccda8 100644 --- a/src/mame/drivers/flstory.c +++ b/src/mame/drivers/flstory.c @@ -997,7 +997,8 @@ static const ay8910_interface ay8910_config = static const msm5232_interface msm5232_config = { - { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 } /* 1.0 uF capacitors (verified on real PCB) */ + { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 }, /* 1.0 uF capacitors (verified on real PCB) */ + DEVCB_NULL }; diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c index 54813ac8ff5..592a40f011f 100644 --- a/src/mame/drivers/funkball.c +++ b/src/mame/drivers/funkball.c @@ -247,26 +247,26 @@ static void cx5510_pci_w(device_t *busdevice, device_t *device, int function, in READ32_MEMBER(funkball_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(funkball_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(funkball_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(funkball_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } #endif @@ -337,13 +337,13 @@ WRITE8_MEMBER(funkball_state::at_page8_w) READ8_MEMBER(funkball_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(funkball_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } WRITE_LINE_MEMBER(funkball_state::pc_dma_hrq_changed) @@ -436,7 +436,7 @@ READ8_MEMBER(funkball_state::io20_r) } else { - r = pic8259_r(device, offset); + r = pic8259_r(device, space, offset); } return r; } @@ -456,7 +456,7 @@ WRITE8_MEMBER(funkball_state::io20_w) } else { - pic8259_w(device, offset, data); + pic8259_w(device, space, offset, data); } } diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index b8f61914ab7..539eabff04c 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -283,11 +283,11 @@ WRITE8_MEMBER(fuuki32_state::snd_z80_w) WRITE8_MEMBER(fuuki32_state::snd_ymf278b_w) { - ymf278b_w(machine().device("ymf1"), offset, data); + ymf278b_w(machine().device("ymf1"), space, offset, data); // also write to ymf262 if (offset < 4) - ymf262_w(machine().device("ymf2"), offset, data); + ymf262_w(machine().device("ymf2"), space, offset, data); } static ADDRESS_MAP_START( fuuki32_sound_map, AS_PROGRAM, 8, fuuki32_state ) diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index 8a282e3c69c..e78d6e3c68c 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -267,7 +267,7 @@ WRITE32_MEMBER(gaelco3d_state::irq_ack32_w) if (mem_mask == 0xffff0000) irq_ack_w(space, offset, data, mem_mask >> 16); else if (ACCESSING_BITS_0_7) - gaelco_serial_tr_w(machine().device("serial"), 0, data & 0x01); + gaelco_serial_tr_w(machine().device("serial"), space, 0, data & 0x01); else logerror("%06X:irq_ack_w(%02X) = %08X & %08X\n", space.device().safe_pc(), offset, data, mem_mask); } @@ -290,7 +290,7 @@ READ16_MEMBER(gaelco3d_state::eeprom_data_r) /* bit 0 is clock */ /* bit 1 active */ result &= ~GAELCOSER_EXT_STATUS_MASK; - result |= gaelco_serial_status_r(machine().device("serial"), 0); + result |= gaelco_serial_status_r(machine().device("serial"), space, 0); } eeprom_device *eeprom = downcast<eeprom_device *>(device); @@ -307,7 +307,7 @@ READ32_MEMBER(gaelco3d_state::eeprom_data32_r) return (eeprom_data_r(space, 0, mem_mask >> 16) << 16) | 0xffff; else if (ACCESSING_BITS_0_7) { - UINT8 data = gaelco_serial_data_r(machine().device("serial"),0); + UINT8 data = gaelco_serial_data_r(machine().device("serial"),space,0); if (LOG) logerror("%06X:read(%02X) = %08X & %08X\n", machine().device("maincpu")->safe_pc(), offset, data, mem_mask); return data | 0xffffff00; diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 09e0f31e8b5..b4bb2018747 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -515,8 +515,8 @@ READ8_MEMBER(galaxian_state::konami_ay8910_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ UINT8 result = 0xff; - if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), 0); - if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), 0); + if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), space, 0); + if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), space, 0); return result; } @@ -526,14 +526,14 @@ WRITE8_MEMBER(galaxian_state::konami_ay8910_w) /* AV 4,5 ==> AY8910 #2 */ /* the decoding here is very simplistic, and you can address two simultaneously */ if (offset & 0x10) - ay8910_address_w(machine().device("8910.1"), 0, data); + ay8910_address_w(machine().device("8910.1"), space, 0, data); else if (offset & 0x20) - ay8910_data_w(machine().device("8910.1"), 0, data); + ay8910_data_w(machine().device("8910.1"), space, 0, data); /* AV6,7 ==> AY8910 #1 */ if (offset & 0x40) - ay8910_address_w(machine().device("8910.0"), 0, data); + ay8910_address_w(machine().device("8910.0"), space, 0, data); else if (offset & 0x80) - ay8910_data_w(machine().device("8910.0"), 0, data); + ay8910_data_w(machine().device("8910.0"), space, 0, data); } @@ -604,7 +604,7 @@ WRITE8_MEMBER(galaxian_state::konami_sound_filter_w) /* low bit goes to 0.22uF capacitor = 220000pF */ /* high bit goes to 0.047uF capacitor = 47000pF */ - discrete_sound_w(discrete, NODE(3 * which + chan + 11), bits); + discrete_sound_w(discrete, space, NODE(3 * which + chan + 11), bits); } } @@ -906,7 +906,7 @@ READ8_MEMBER(galaxian_state::frogger_ay8910_r) { /* the decoding here is very simplistic */ UINT8 result = 0xff; - if (offset & 0x40) result &= ay8910_r(machine().device("8910.0"), 0); + if (offset & 0x40) result &= ay8910_r(machine().device("8910.0"), space, 0); return result; } @@ -916,9 +916,9 @@ WRITE8_MEMBER(galaxian_state::frogger_ay8910_w) /* the decoding here is very simplistic */ /* AV6,7 ==> AY8910 #1 */ if (offset & 0x40) - ay8910_data_w(machine().device("8910.0"), 0, data); + ay8910_data_w(machine().device("8910.0"), space, 0, data); else if (offset & 0x80) - ay8910_address_w(machine().device("8910.0"), 0, data); + ay8910_address_w(machine().device("8910.0"), space, 0, data); } @@ -985,9 +985,9 @@ READ8_MEMBER(galaxian_state::scorpion_ay8910_r) { /* the decoding here is very simplistic, and you can address both simultaneously */ UINT8 result = 0xff; - if (offset & 0x08) result &= ay8910_r(machine().device("8910.2"), 0); - if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), 0); - if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), 0); + if (offset & 0x08) result &= ay8910_r(machine().device("8910.2"), space, 0); + if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), space, 0); + if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), space, 0); return result; } @@ -995,12 +995,12 @@ READ8_MEMBER(galaxian_state::scorpion_ay8910_r) WRITE8_MEMBER(galaxian_state::scorpion_ay8910_w) { /* the decoding here is very simplistic, and you can address all six simultaneously */ - if (offset & 0x04) ay8910_address_w(machine().device("8910.2"), 0, data); - if (offset & 0x08) ay8910_data_w(machine().device("8910.2"), 0, data); - if (offset & 0x10) ay8910_address_w(machine().device("8910.1"), 0, data); - if (offset & 0x20) ay8910_data_w(machine().device("8910.1"), 0, data); - if (offset & 0x40) ay8910_address_w(machine().device("8910.0"), 0, data); - if (offset & 0x80) ay8910_data_w(machine().device("8910.0"), 0, data); + if (offset & 0x04) ay8910_address_w(machine().device("8910.2"), space, 0, data); + if (offset & 0x08) ay8910_data_w(machine().device("8910.2"), space, 0, data); + if (offset & 0x10) ay8910_address_w(machine().device("8910.1"), space, 0, data); + if (offset & 0x20) ay8910_data_w(machine().device("8910.1"), space, 0, data); + if (offset & 0x40) ay8910_address_w(machine().device("8910.0"), space, 0, data); + if (offset & 0x80) ay8910_data_w(machine().device("8910.0"), space, 0, data); } @@ -1115,7 +1115,7 @@ WRITE8_MEMBER(galaxian_state::zigzag_ay8910_w) /* bit 0 = WRITE */ /* bit 1 = C/D */ if ((offset & 1) != 0) - ay8910_data_address_w(machine().device("aysnd"), offset >> 1, m_zigzag_ay8910_latch); + ay8910_data_address_w(machine().device("aysnd"), space, offset >> 1, m_zigzag_ay8910_latch); break; case 0x100: @@ -1208,21 +1208,21 @@ WRITE8_MEMBER(galaxian_state::mshuttle_ay8910_cs_w) WRITE8_MEMBER(galaxian_state::mshuttle_ay8910_control_w) { if (!m_mshuttle_ay8910_cs) - ay8910_address_w(machine().device("aysnd"), offset, data); + ay8910_address_w(machine().device("aysnd"), space, offset, data); } WRITE8_MEMBER(galaxian_state::mshuttle_ay8910_data_w) { if (!m_mshuttle_ay8910_cs) - ay8910_data_w(machine().device("aysnd"), offset, data); + ay8910_data_w(machine().device("aysnd"), space, offset, data); } READ8_MEMBER(galaxian_state::mshuttle_ay8910_data_r) { if (!m_mshuttle_ay8910_cs) - return ay8910_r(machine().device("aysnd"), offset); + return ay8910_r(machine().device("aysnd"), space, offset); return 0xff; } diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index bf300a82986..01d1c80019d 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -192,13 +192,13 @@ static SCREEN_UPDATE_IND16(gamecstl) READ8_MEMBER(gamecstl_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(gamecstl_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } // Intel 82439TX System Controller (MXTC) @@ -367,26 +367,26 @@ WRITE32_MEMBER(gamecstl_state::pnp_data_w) READ32_MEMBER(gamecstl_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(gamecstl_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(gamecstl_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(gamecstl_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c index 1361d38410a..6a53934fbfe 100644 --- a/src/mame/drivers/gbusters.c +++ b/src/mame/drivers/gbusters.c @@ -127,25 +127,25 @@ READ8_MEMBER(gbusters_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(gbusters_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c index d315a68a638..523206fa7f1 100644 --- a/src/mame/drivers/ghosteo.c +++ b/src/mame/drivers/ghosteo.c @@ -557,7 +557,7 @@ device_t* s3c2410; READ32_MEMBER(ghosteo_state::bballoon_speedup_r) { - UINT32 ret = s3c2410_lcd_r(s3c2410, offset+0x10/4, mem_mask); + UINT32 ret = s3c2410_lcd_r(s3c2410, space, offset+0x10/4, mem_mask); int pc = space.device().safe_pc(); diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index b46d7ae6c45..660119a410c 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -1272,11 +1272,11 @@ WRITE8_MEMBER(goldnpkr_state::wcfalcon_snd_w) { if (wcfalcon_flag == 0) { - ay8910_data_address_w(machine().device("ay8910"), 0, data); + ay8910_data_address_w(machine().device("ay8910"), space, 0, data); } else { - ay8910_data_address_w(machine().device("ay8910"), 1, data); + ay8910_data_address_w(machine().device("ay8910"), space, 1, data); } wcfalcon_flag = wcfalcon_flag ^ 1; @@ -1361,8 +1361,8 @@ WRITE8_MEMBER(goldnpkr_state::sound_w) logerror("Sound Data: %2x\n",data & 0x0f); /* discrete sound is connected to PIA1, portA: bits 0-3 */ - discrete_sound_w(device, NODE_01, data >> 3 & 0x01); - discrete_sound_w(device, NODE_10, data & 0x07); + discrete_sound_w(device, space, NODE_01, data >> 3 & 0x01); + discrete_sound_w(device, space, NODE_10, data & 0x07); } diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c index 9c9fb15217a..3e6180540cd 100644 --- a/src/mame/drivers/gradius3.c +++ b/src/mame/drivers/gradius3.c @@ -29,42 +29,42 @@ READ16_MEMBER(gradius3_state::k052109_halfword_r) { - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE16_MEMBER(gradius3_state::k052109_halfword_w) { if (ACCESSING_BITS_0_7) - k052109_w(m_k052109, offset, data & 0xff); + k052109_w(m_k052109, space, offset, data & 0xff); /* is this a bug in the game or something else? */ if (!ACCESSING_BITS_0_7) - k052109_w(m_k052109, offset, (data >> 8) & 0xff); + k052109_w(m_k052109, space, offset, (data >> 8) & 0xff); // logerror("%06x half %04x = %04x\n",space.device().safe_pc(),offset,data); } READ16_MEMBER(gradius3_state::k051937_halfword_r) { - return k051937_r(m_k051960, offset); + return k051937_r(m_k051960, space, offset); } WRITE16_MEMBER(gradius3_state::k051937_halfword_w) { if (ACCESSING_BITS_0_7) - k051937_w(m_k051960, offset, data & 0xff); + k051937_w(m_k051960, space, offset, data & 0xff); } READ16_MEMBER(gradius3_state::k051960_halfword_r) { - return k051960_r(m_k051960, offset); + return k051960_r(m_k051960, space, offset); } WRITE16_MEMBER(gradius3_state::k051960_halfword_w) { if (ACCESSING_BITS_0_7) - k051960_w(m_k051960, offset, data & 0xff); + k051960_w(m_k051960, space, offset, data & 0xff); } WRITE16_MEMBER(gradius3_state::cpuA_ctrl_w) diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c index 27630996797..f63cde578fa 100644 --- a/src/mame/drivers/grchamp.c +++ b/src/mame/drivers/grchamp.c @@ -305,18 +305,18 @@ WRITE8_MEMBER(grchamp_state::cpu1_outputs_w) /* bit 2-4: ATTACK UP 1-3 */ /* bit 5-6: SIFT 1-2 */ /* bit 7: ENGINE CS */ - discrete_sound_w(discrete, GRCHAMP_ENGINE_CS_EN, data & 0x80); - discrete_sound_w(discrete, GRCHAMP_SIFT_DATA, (data >> 5) & 0x03); - discrete_sound_w(discrete, GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07); - discrete_sound_w(discrete, GRCHAMP_IDLING_EN, data & 0x02); - discrete_sound_w(discrete, GRCHAMP_FOG_EN, data & 0x01); + discrete_sound_w(discrete, space, GRCHAMP_ENGINE_CS_EN, data & 0x80); + discrete_sound_w(discrete, space, GRCHAMP_SIFT_DATA, (data >> 5) & 0x03); + discrete_sound_w(discrete, space, GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07); + discrete_sound_w(discrete, space, GRCHAMP_IDLING_EN, data & 0x02); + discrete_sound_w(discrete, space, GRCHAMP_FOG_EN, data & 0x01); break; case 0x0d: /* OUTD */ /* bit 0-3: ATTACK SPEED 1-4 */ /* bit 4-7: PLAYER SPEED 1-4 */ - discrete_sound_w(discrete, GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f); - discrete_sound_w(discrete, GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f); + discrete_sound_w(discrete, space, GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f); + discrete_sound_w(discrete, space, GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f); break; default: @@ -416,13 +416,13 @@ READ8_MEMBER(grchamp_state::main_to_sub_comm_r) WRITE8_MEMBER(grchamp_state::grchamp_portA_0_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, GRCHAMP_A_DATA, data); + discrete_sound_w(device, space, GRCHAMP_A_DATA, data); } WRITE8_MEMBER(grchamp_state::grchamp_portB_0_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, GRCHAMP_B_DATA, 255-data); + discrete_sound_w(device, space, GRCHAMP_B_DATA, 255-data); } WRITE8_MEMBER(grchamp_state::grchamp_portA_2_w) diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c index d28e1792065..f4534379ccb 100644 --- a/src/mame/drivers/gsword.c +++ b/src/mame/drivers/gsword.c @@ -293,13 +293,13 @@ WRITE8_MEMBER(gsword_state::gsword_nmi_set_w) WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_0_w) { device_t *device = machine().device("ay1"); - ay8910_address_w(device,offset,data); + ay8910_address_w(device,space,offset,data); m_fake8910_0 = data; } WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_1_w) { device_t *device = machine().device("ay2"); - ay8910_address_w(device,offset,data); + ay8910_address_w(device,space,offset,data); m_fake8910_1 = data; } diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c index 7ee53ac59bb..11d30c08207 100644 --- a/src/mame/drivers/gticlub.c +++ b/src/mame/drivers/gticlub.c @@ -286,38 +286,38 @@ static void voodoo_vblank_1(device_t *device, int param) READ32_MEMBER(gticlub_state::gticlub_k001604_tile_r) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); - return k001604_tile_r(k001604, offset, mem_mask); + return k001604_tile_r(k001604, space, offset, mem_mask); } WRITE32_MEMBER(gticlub_state::gticlub_k001604_tile_w) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); - k001604_tile_w(k001604, offset, data, mem_mask); + k001604_tile_w(k001604, space, offset, data, mem_mask); } READ32_MEMBER(gticlub_state::gticlub_k001604_char_r) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); - return k001604_char_r(k001604, offset, mem_mask); + return k001604_char_r(k001604, space, offset, mem_mask); } WRITE32_MEMBER(gticlub_state::gticlub_k001604_char_w) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); - k001604_char_w(k001604, offset, data, mem_mask); + k001604_char_w(k001604, space, offset, data, mem_mask); } READ32_MEMBER(gticlub_state::gticlub_k001604_reg_r) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); - return k001604_reg_r(k001604, offset, mem_mask); + return k001604_reg_r(k001604, space, offset, mem_mask); } WRITE32_MEMBER(gticlub_state::gticlub_k001604_reg_w) { device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1"); - k001604_reg_w(k001604, offset, data, mem_mask); + k001604_reg_w(k001604, space, offset, data, mem_mask); } diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c index 7c83b85c713..89bb0d6df9f 100644 --- a/src/mame/drivers/gyruss.c +++ b/src/mame/drivers/gyruss.c @@ -113,7 +113,7 @@ READ8_MEMBER(gyruss_state::gyruss_portA_r) WRITE8_MEMBER(gyruss_state::gyruss_dac_w) { - discrete_sound_w(m_discrete, NODE(16), data); + discrete_sound_w(m_discrete, space, NODE(16), data); } WRITE8_MEMBER(gyruss_state::gyruss_irq_clear_w) @@ -130,7 +130,8 @@ static void filter_w( device_t *device, int chip, int data ) { /* low bit: 47000pF = 0.047uF */ /* high bit: 220000pF = 0.22uF */ - discrete_sound_w(device, NODE(3 * chip + i + 21), data & 3); + address_space &space = device->machine().driver_data()->generic_space(); + discrete_sound_w(device, space, NODE(3 * chip + i + 21), data & 3); data >>= 2; } } diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c index 61eb4f9103b..5cd7d0cf8e7 100644 --- a/src/mame/drivers/highvdeo.c +++ b/src/mame/drivers/highvdeo.c @@ -266,7 +266,7 @@ WRITE16_MEMBER(highvdeo_state::tv_oki6376_w) if (ACCESSING_BITS_0_7 && okidata != data) { okidata = data; - okim6376_w(device, 0, data & ~0x80); + okim6376_w(device, space, 0, data & ~0x80); okim6376_st_w (device, data & 0x80); } } @@ -340,7 +340,7 @@ WRITE16_MEMBER(highvdeo_state::tv_ncf_oki6376_w) static int okidata; if (ACCESSING_BITS_0_7 && okidata != data) { okidata = data; - okim6376_w(device, 0, data ); + okim6376_w(device, space, 0, data ); } } diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 8404cadf89a..05afa1f7f1b 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -194,16 +194,16 @@ WRITE8_MEMBER(hitme_state::output_port_0_w) attotime duration = attotime(0, ATTOSECONDS_PER_SECOND * 0.45 * 6.8e-6 * resistance * (data + 1)); m_timeout_time = machine().time() + duration; - discrete_sound_w(device, HITME_DOWNCOUNT_VAL, data); - discrete_sound_w(device, HITME_OUT0, 1); + discrete_sound_w(device, space, HITME_DOWNCOUNT_VAL, data); + discrete_sound_w(device, space, HITME_OUT0, 1); } WRITE8_MEMBER(hitme_state::output_port_1_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, HITME_ENABLE_VAL, data); - discrete_sound_w(device, HITME_OUT1, 1); + discrete_sound_w(device, space, HITME_ENABLE_VAL, data); + discrete_sound_w(device, space, HITME_OUT1, 1); } diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c index 2d541c13fb0..5f9bfb0b55f 100644 --- a/src/mame/drivers/homedata.c +++ b/src/mame/drivers/homedata.c @@ -359,10 +359,10 @@ WRITE8_MEMBER(homedata_state::reikaids_upd7807_portc_w) coin_counter_w(machine(), 0, ~data & 0x80); if (BIT(m_upd7807_portc, 5) && !BIT(data, 5)) /* write clock 1->0 */ - ym2203_w(m_ym, BIT(data, 3), m_upd7807_porta); + ym2203_w(m_ym, space, BIT(data, 3), m_upd7807_porta); if (BIT(m_upd7807_portc, 4) && !BIT(data, 4)) /* read clock 1->0 */ - m_upd7807_porta = ym2203_r(m_ym, BIT(data, 3)); + m_upd7807_porta = ym2203_r(m_ym, space, BIT(data, 3)); m_upd7807_portc = data; } diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c index 6558033d171..2d4b2494700 100644 --- a/src/mame/drivers/homerun.c +++ b/src/mame/drivers/homerun.c @@ -97,7 +97,7 @@ WRITE8_MEMBER(homerun_state::homerun_d7756_sample_w) m_sample = data; if (m_d7756 != NULL) - upd7759_port_w(m_d7756, 0, data); + upd7759_port_w(m_d7756, space, 0, data); } static ADDRESS_MAP_START( homerun_memmap, AS_PROGRAM, 8, homerun_state ) diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 310b6d1b171..2cde6e9a97e 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -377,38 +377,38 @@ public: READ32_MEMBER(hornet_state::hornet_k037122_sram_r) { device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1"); - return k037122_sram_r(k037122, offset, mem_mask); + return k037122_sram_r(k037122, space, offset, mem_mask); } WRITE32_MEMBER(hornet_state::hornet_k037122_sram_w) { device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1"); - k037122_sram_w(k037122, offset, data, mem_mask); + k037122_sram_w(k037122, space, offset, data, mem_mask); } READ32_MEMBER(hornet_state::hornet_k037122_char_r) { device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1"); - return k037122_char_r(k037122, offset, mem_mask); + return k037122_char_r(k037122, space, offset, mem_mask); } WRITE32_MEMBER(hornet_state::hornet_k037122_char_w) { device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1"); - k037122_char_w(k037122, offset, data, mem_mask); + k037122_char_w(k037122, space, offset, data, mem_mask); } READ32_MEMBER(hornet_state::hornet_k037122_reg_r) { device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1"); - return k037122_reg_r(k037122, offset, mem_mask); + return k037122_reg_r(k037122, space, offset, mem_mask); } WRITE32_MEMBER(hornet_state::hornet_k037122_reg_w) { device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1"); - k037122_reg_w(k037122, offset, data, mem_mask); + k037122_reg_w(k037122, space, offset, data, mem_mask); } static void voodoo_vblank_0(device_t *device, int param) @@ -490,7 +490,7 @@ READ8_MEMBER(hornet_state::sysreg_r) 0x01 = ADDO (ADC DO) */ r = 0xf0 | (eeprom->read_bit() << 3); - r |= adc1213x_do_r(adc12138, 0) | (adc1213x_eoc_r(adc12138, 0) << 2); + r |= adc1213x_do_r(adc12138, space, 0) | (adc1213x_eoc_r(adc12138, space, 0) << 2); break; case 4: /* I/O port 4 - DIP switches */ @@ -544,10 +544,10 @@ WRITE8_MEMBER(hornet_state::sysreg_w) 0x02 = ADDI (ADC DI) 0x01 = ADDSCLK (ADC SCLK) */ - adc1213x_cs_w(adc12138, 0, (data >> 3) & 0x1); - adc1213x_conv_w(adc12138, 0, (data >> 2) & 0x1); - adc1213x_di_w(adc12138, 0, (data >> 1) & 0x1); - adc1213x_sclk_w(adc12138, 0, data & 0x1); + adc1213x_cs_w(adc12138, space, 0, (data >> 3) & 0x1); + adc1213x_conv_w(adc12138, space, 0, (data >> 2) & 0x1); + adc1213x_di_w(adc12138, space, 0, (data >> 1) & 0x1); + adc1213x_sclk_w(adc12138, space, 0, data & 0x1); machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); mame_printf_debug("System register 1 = %02X\n", data); diff --git a/src/mame/drivers/icecold.c b/src/mame/drivers/icecold.c index 379faecda20..dd9f1e58838 100644 --- a/src/mame/drivers/icecold.c +++ b/src/mame/drivers/icecold.c @@ -221,9 +221,9 @@ READ8_MEMBER( icecold_state::kbd_r ) WRITE8_MEMBER( icecold_state::snd_ctrl_w ) { if (m_ay_ctrl & ~data & 0x04) - ay8910_data_address_w(m_ay8910_0, m_ay_ctrl & 0x01, m_sound_latch); + ay8910_data_address_w(m_ay8910_0, space, m_ay_ctrl & 0x01, m_sound_latch); if (m_ay_ctrl & ~data & 0x20) - ay8910_data_address_w(m_ay8910_1, (m_ay_ctrl>>3) & 0x01, m_sound_latch); + ay8910_data_address_w(m_ay8910_1, space, (m_ay_ctrl>>3) & 0x01, m_sound_latch); m_ay_ctrl = data; } @@ -236,9 +236,9 @@ WRITE8_MEMBER( icecold_state::ay_w ) READ8_MEMBER( icecold_state::ay_r ) { if (m_ay_ctrl & 0x02) - return ay8910_r(m_ay8910_0, 0); + return ay8910_r(m_ay8910_0, space, 0); if (m_ay_ctrl & 0x10) - return ay8910_r(m_ay8910_1, 0); + return ay8910_r(m_ay8910_1, space, 0); return 0; } diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index b1091cd85df..ae53cdb3aac 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -2461,9 +2461,9 @@ READ16_MEMBER(igs011_state::ics2115_word_r) ics2115_device* ics2115 = machine().device<ics2115_device>("ics"); switch(offset) { - case 0: return ics2115_device::read(ics2115, (offs_t)0); - case 1: return ics2115_device::read(ics2115, (offs_t)1); - case 2: return (ics2115_device::read(ics2115, (offs_t)3) << 8) | ics2115_device::read(ics2115, (offs_t)2); + case 0: return ics2115_device::read(ics2115, space, (offs_t)0); + case 1: return ics2115_device::read(ics2115, space, (offs_t)1); + case 2: return (ics2115_device::read(ics2115, space, (offs_t)3) << 8) | ics2115_device::read(ics2115, space, (offs_t)2); } return 0xff; } @@ -2474,11 +2474,11 @@ WRITE16_MEMBER(igs011_state::ics2115_word_w) switch(offset) { case 1: - if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,1,data); + if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,space, 1,data); break; case 2: - if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,2,data); - if (ACCESSING_BITS_8_15) ics2115_device::write(ics2115,3,data>>8); + if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,space, 2,data); + if (ACCESSING_BITS_8_15) ics2115_device::write(ics2115,space, 3,data>>8); break; } } diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c index 87ce05ff80b..25378618c17 100644 --- a/src/mame/drivers/ironhors.c +++ b/src/mame/drivers/ironhors.c @@ -46,9 +46,9 @@ WRITE8_MEMBER(ironhors_state::ironhors_sh_irqtrigger_w) WRITE8_MEMBER(ironhors_state::ironhors_filter_w) { device_t *device = machine().device("disc_ih"); - discrete_sound_w(device, NODE_11, (data & 0x04) >> 2); - discrete_sound_w(device, NODE_12, (data & 0x02) >> 1); - discrete_sound_w(device, NODE_13, (data & 0x01) >> 0); + discrete_sound_w(device, space, NODE_11, (data & 0x04) >> 2); + discrete_sound_w(device, space, NODE_12, (data & 0x02) >> 1); + discrete_sound_w(device, space, NODE_13, (data & 0x01) >> 0); } /************************************* diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c index 435de9d12ad..2724d5203e3 100644 --- a/src/mame/drivers/jpmimpct.c +++ b/src/mame/drivers/jpmimpct.c @@ -476,7 +476,7 @@ WRITE16_MEMBER(jpmimpct_state::upd7759_w) device_t *device = machine().device("upd"); if (ACCESSING_BITS_0_7) { - upd7759_port_w(device, 0, data); + upd7759_port_w(device, space, 0, data); upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c index 134d3f8ee64..e91ac2601a9 100644 --- a/src/mame/drivers/jpmsys5.c +++ b/src/mame/drivers/jpmsys5.c @@ -316,7 +316,7 @@ WRITE16_MEMBER(jpmsys5_state::jpm_upd7759_w) { case 0: { - upd7759_port_w(device, 0, data & 0xff); + upd7759_port_w(device, space, 0, data & 0xff); upd7759_start_w(device, 0); upd7759_start_w(device, 1); break; diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index b029ccd17aa..3363cc7d4fa 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -162,36 +162,36 @@ READ16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_r) { device_t *device = machine().device("ay1"); /* Each 2149 register is mapped to a different address */ - ay8910_address_w(device,0,offset); - return ay8910_r(device,0); + ay8910_address_w(device,space,0,offset); + return ay8910_r(device,space,0); } WRITE16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_w) { device_t *device = machine().device("ay1"); /* Each 2149 register is mapped to a different address */ - ay8910_address_w(device,0,offset); + ay8910_address_w(device,space,0,offset); /* The registers are mapped to odd addresses, except one! */ - if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff); - else ay8910_data_w(device,0,(data >> 8) & 0xff); + if (ACCESSING_BITS_0_7) ay8910_data_w(device,space,0, data & 0xff); + else ay8910_data_w(device,space,0,(data >> 8) & 0xff); } READ16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_r) { device_t *device = machine().device("ay2"); /* Each 2149 register is mapped to a different address */ - ay8910_address_w(device,0,offset); - return ay8910_r(device,0); + ay8910_address_w(device,space,0,offset); + return ay8910_r(device,space,0); } WRITE16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_w) { device_t *device = machine().device("ay2"); /* Each 2149 register is mapped to a different address */ - ay8910_address_w(device,0,offset); + ay8910_address_w(device,space,0,offset); /* The registers are mapped to odd addresses, except one! */ - if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff); - else ay8910_data_w(device,0,(data >> 8) & 0xff); + if (ACCESSING_BITS_0_7) ay8910_data_w(device,space,0, data & 0xff); + else ay8910_data_w(device,space,0,(data >> 8) & 0xff); } diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c index cebdf9b47b9..363e0af6ea2 100644 --- a/src/mame/drivers/kinst.c +++ b/src/mame/drivers/kinst.c @@ -304,28 +304,28 @@ static void ide_interrupt(device_t *device, int state) READ32_MEMBER(kinst_state::kinst_ide_r) { device_t *device = machine().device("ide"); - return midway_ide_asic_r(device, offset / 2, mem_mask); + return midway_ide_asic_r(device, space, offset / 2, mem_mask); } WRITE32_MEMBER(kinst_state::kinst_ide_w) { device_t *device = machine().device("ide"); - midway_ide_asic_w(device, offset / 2, data, mem_mask); + midway_ide_asic_w(device, space, offset / 2, data, mem_mask); } READ32_MEMBER(kinst_state::kinst_ide_extra_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f6/4, 0x00ff0000) >> 16; + return ide_controller32_r(device, space, 0x3f6/4, 0x00ff0000) >> 16; } WRITE32_MEMBER(kinst_state::kinst_ide_extra_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x3f6/4, data << 16, 0x00ff0000); + ide_controller32_w(device, space, 0x3f6/4, data << 16, 0x00ff0000); } diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c index f1daa576106..d00b7297739 100644 --- a/src/mame/drivers/kncljoe.c +++ b/src/mame/drivers/kncljoe.c @@ -76,7 +76,7 @@ WRITE8_MEMBER(kncljoe_state::m6803_port2_w) { /* control or data port? */ if (m_port2 & 0x08) - ay8910_data_address_w(device, m_port2 >> 2, m_port1); + ay8910_data_address_w(device, space, m_port2 >> 2, m_port1); } m_port2 = data; } @@ -86,7 +86,7 @@ READ8_MEMBER(kncljoe_state::m6803_port1_r) device_t *device = machine().device("aysnd"); if (m_port2 & 0x08) - return ay8910_r(device, 0); + return ay8910_r(device, space, 0); return 0xff; } diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c index a76409503f1..98f1e005ae9 100644 --- a/src/mame/drivers/ksys573.c +++ b/src/mame/drivers/ksys573.c @@ -1484,25 +1484,25 @@ READ32_MEMBER(ksys573_state::ge765pwbba_r) switch (offset) { case 0x26: - upd4701_y_add(upd4701, 0, ioport("uPD4701_y")->read_safe(0), 0xffff); - upd4701_switches_set(upd4701, 0, ioport("uPD4701_switches")->read_safe(0)); + upd4701_y_add(upd4701, space, 0, ioport("uPD4701_y")->read_safe(0), 0xffff); + upd4701_switches_set(upd4701, space, 0, ioport("uPD4701_switches")->read_safe(0)); - upd4701_cs_w(upd4701, 0, 0); - upd4701_xy_w(upd4701, 0, 1); + upd4701_cs_w(upd4701, space, 0, 0); + upd4701_xy_w(upd4701, space, 0, 1); if (ACCESSING_BITS_0_7) { - upd4701_ul_w(upd4701, 0, 0); - data |= upd4701_d_r(upd4701, 0, 0xffff) << 0; + upd4701_ul_w(upd4701, space, 0, 0); + data |= upd4701_d_r(upd4701, space, 0, 0xffff) << 0; } if (ACCESSING_BITS_16_23) { - upd4701_ul_w(upd4701, 0, 1); - data |= upd4701_d_r(upd4701, 0, 0xffff) << 16; + upd4701_ul_w(upd4701, space, 0, 1); + data |= upd4701_d_r(upd4701, space, 0, 0xffff) << 16; } - upd4701_cs_w(upd4701, 0, 1); + upd4701_cs_w(upd4701, space, 0, 1); break; default: @@ -1539,8 +1539,8 @@ WRITE32_MEMBER(ksys573_state::ge765pwbba_w) case 0x28: if (ACCESSING_BITS_0_7) { - upd4701_resety_w(upd4701, 0, 1); - upd4701_resety_w(upd4701, 0, 0); + upd4701_resety_w(upd4701, space, 0, 1); + upd4701_resety_w(upd4701, space, 0, 0); } break; diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c index 4aaa94c4d1d..a6d35b2b019 100644 --- a/src/mame/drivers/labyrunr.c +++ b/src/mame/drivers/labyrunr.c @@ -19,14 +19,16 @@ static INTERRUPT_GEN( labyrunr_vblank_interrupt ) { labyrunr_state *state = device->machine().driver_data<labyrunr_state>(); - if (k007121_ctrlram_r(state->m_k007121, 7) & 0x02) + address_space &space = state->generic_space(); + if (k007121_ctrlram_r(state->m_k007121, space, 7) & 0x02) device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE); } static INTERRUPT_GEN( labyrunr_timer_interrupt ) { labyrunr_state *state = device->machine().driver_data<labyrunr_state>(); - if (k007121_ctrlram_r(state->m_k007121, 7) & 0x01) + address_space &space = state->generic_space(); + if (k007121_ctrlram_r(state->m_k007121, space, 7) & 0x01) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c index cb0fdfb8b53..6d461e670bb 100644 --- a/src/mame/drivers/ladyfrog.c +++ b/src/mame/drivers/ladyfrog.c @@ -119,7 +119,8 @@ static const ay8910_interface ay8910_config = static const msm5232_interface msm5232_config = { - { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 } + { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, + DEVCB_NULL }; READ8_MEMBER(ladyfrog_state::snd_flag_r) diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index 8fa0333d8cc..3fae707fc50 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -582,7 +582,7 @@ WRITE_LINE_MEMBER(laserbat_state::zaccaria_irq0b) READ8_MEMBER(laserbat_state::zaccaria_port0a_r) { device_t *ay = (m_active_8910 == 0) ? m_ay1 : m_ay2; - return ay8910_r(ay, 0); + return ay8910_r(ay, space, 0); } WRITE8_MEMBER(laserbat_state::zaccaria_port0a_w) @@ -596,7 +596,7 @@ WRITE8_MEMBER(laserbat_state::zaccaria_port0b_w) if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00) { /* bit 0 goes to the 8910 #0 BC1 pin */ - ay8910_data_address_w(m_ay1, m_last_port0b >> 0, m_port0a); + ay8910_data_address_w(m_ay1, space, m_last_port0b >> 0, m_port0a); } else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02) { @@ -608,7 +608,7 @@ WRITE8_MEMBER(laserbat_state::zaccaria_port0b_w) if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00) { /* bit 2 goes to the 8910 #1 BC1 pin */ - ay8910_data_address_w(m_ay2, m_last_port0b >> 2, m_port0a); + ay8910_data_address_w(m_ay2, space, m_last_port0b >> 2, m_port0a); } else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08) { diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index c14489aa6a9..17b2dc83ee2 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -266,7 +266,7 @@ READ8_MEMBER(lethal_state::le_4800_r) case 0x4d: case 0x4e: case 0x4f: - return k053244_r(m_k053244, offset - 0x40); + return k053244_r(m_k053244, space, offset - 0x40); case 0x80: case 0x81: @@ -300,22 +300,22 @@ READ8_MEMBER(lethal_state::le_4800_r) case 0x9d: case 0x9e: case 0x9f: - return k054000_r(m_k054000, offset - 0x80); + return k054000_r(m_k054000, space, offset - 0x80); case 0xca: return sound_status_r(space, 0); } } else if (offset < 0x1800) - return k053245_r(m_k053244, (offset - 0x0800) & 0x07ff); + return k053245_r(m_k053244, space, (offset - 0x0800) & 0x07ff); else if (offset < 0x2000) - return k056832_ram_code_lo_r(m_k056832, offset - 0x1800); + return k056832_ram_code_lo_r(m_k056832, space, offset - 0x1800); else if (offset < 0x2800) - return k056832_ram_code_hi_r(m_k056832, offset - 0x2000); + return k056832_ram_code_hi_r(m_k056832, space, offset - 0x2000); else if (offset < 0x3000) - return k056832_ram_attr_lo_r(m_k056832, offset - 0x2800); + return k056832_ram_attr_lo_r(m_k056832, space, offset - 0x2800); else // (offset < 0x3800) - return k056832_ram_attr_hi_r(m_k056832, offset - 0x3000); + return k056832_ram_attr_hi_r(m_k056832, space, offset - 0x3000); } return 0; @@ -358,7 +358,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w) case 0x4d: case 0x4e: case 0x4f: - k053244_w(m_k053244, offset - 0x40, data); + k053244_w(m_k053244, space, offset - 0x40, data); break; case 0x80: @@ -393,7 +393,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w) case 0x9d: case 0x9e: case 0x9f: - k054000_w(m_k054000, offset - 0x80, data); + k054000_w(m_k054000, space, offset - 0x80, data); break; default: @@ -402,15 +402,15 @@ WRITE8_MEMBER(lethal_state::le_4800_w) } } else if (offset < 0x1800) - k053245_w(m_k053244, (offset - 0x0800) & 0x07ff, data); + k053245_w(m_k053244, space, (offset - 0x0800) & 0x07ff, data); else if (offset < 0x2000) - k056832_ram_code_lo_w(m_k056832, offset - 0x1800, data); + k056832_ram_code_lo_w(m_k056832, space, offset - 0x1800, data); else if (offset < 0x2800) - k056832_ram_code_hi_w(m_k056832, offset - 0x2000, data); + k056832_ram_code_hi_w(m_k056832, space, offset - 0x2000, data); else if (offset < 0x3000) - k056832_ram_attr_lo_w(m_k056832, offset - 0x2800, data); + k056832_ram_attr_lo_w(m_k056832, space, offset - 0x2800, data); else // (offset < 0x3800) - k056832_ram_attr_hi_w(m_k056832, offset - 0x3000, data); + k056832_ram_attr_hi_w(m_k056832, space, offset - 0x3000, data); } } diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c index bf5acbf1ad0..4370b0f4756 100644 --- a/src/mame/drivers/m10.c +++ b/src/mame/drivers/m10.c @@ -141,8 +141,8 @@ static WRITE8_DEVICE_HANDLER( ic8j2_output_changed ) /* written from /Q to A with slight delight */ LOG(("ic8j2: %d\n", data)); - ttl74123_a_w(device, 0, data); - ttl74123_a_w(state->m_ic8j1, 0, data); + ttl74123_a_w(device, space, 0, data); + ttl74123_a_w(state->m_ic8j1, space, 0, data); } static const ttl74123_interface ic8j1_intf = @@ -154,7 +154,7 @@ static const ttl74123_interface ic8j1_intf = 1, /* A pin - driven by the CRTC */ 1, /* B pin - pulled high */ 1, /* Clear pin - pulled high */ - ic8j1_output_changed + DEVCB_HANDLER(ic8j1_output_changed) }; static const ttl74123_interface ic8j2_intf = @@ -166,7 +166,7 @@ static const ttl74123_interface ic8j2_intf = 1, /* A pin - driven by the CRTC */ 1, /* B pin - pulled high */ 1, /* Clear pin - pulled high */ - ic8j2_output_changed + DEVCB_HANDLER(ic8j2_output_changed) }; /************************************* @@ -476,8 +476,8 @@ READ8_MEMBER(m10_state::m10_a700_r) { //LOG(("rd:%d\n",machine().primary_screen->vpos())); LOG(("clear\n")); - ttl74123_clear_w(m_ic8j1, 0, 0); - ttl74123_clear_w(m_ic8j1, 0, 1); + ttl74123_clear_w(m_ic8j1, space, 0, 0); + ttl74123_clear_w(m_ic8j1, space, 0, 1); return 0x00; } @@ -486,8 +486,8 @@ READ8_MEMBER(m10_state::m11_a700_r) //LOG(("rd:%d\n",machine().primary_screen->vpos())); //m_maincpu->set_input_line(0, CLEAR_LINE); LOG(("clear\n")); - ttl74123_clear_w(m_ic8j1, 0, 0); - ttl74123_clear_w(m_ic8j1, 0, 1); + ttl74123_clear_w(m_ic8j1, space, 0, 0); + ttl74123_clear_w(m_ic8j1, space, 0, 1); return 0x00; } diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c index 809e8f82eae..35a814678ef 100644 --- a/src/mame/drivers/m63.c +++ b/src/mame/drivers/m63.c @@ -390,13 +390,13 @@ WRITE8_MEMBER(m63_state::snddata_w) { if ((m_p2 & 0xf0) == 0xe0) - ay8910_address_w(m_ay1, 0, offset); + ay8910_address_w(m_ay1, space, 0, offset); else if ((m_p2 & 0xf0) == 0xa0) - ay8910_data_w(m_ay1, 0, offset); + ay8910_data_w(m_ay1, space, 0, offset); else if (m_ay2 != NULL && (m_p1 & 0xe0) == 0x60) - ay8910_address_w(m_ay2, 0, offset); + ay8910_address_w(m_ay2, space, 0, offset); else if (m_ay2 != NULL && (m_p1 & 0xe0) == 0x40) - ay8910_data_w(m_ay2, 0, offset); + ay8910_data_w(m_ay2, space, 0, offset); else if ((m_p2 & 0xf0) == 0x70 ) m_sound_status = offset; } diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index 5e2a410d422..b5883f1466f 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -437,9 +437,10 @@ static int find_sample(int num) static INTERRUPT_GEN(fake_nmi) { m72_state *state = device->machine().driver_data<m72_state>(); - int sample = m72_sample_r(state->m_audio,0); + address_space &space = state->generic_space(); + int sample = m72_sample_r(state->m_audio,space,0); if (sample) - m72_sample_w(state->m_audio,0,sample); + m72_sample_w(state->m_audio,space,0,sample); } diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c index 6f8c23c7baa..62cb9046c70 100644 --- a/src/mame/drivers/m90.c +++ b/src/mame/drivers/m90.c @@ -680,17 +680,19 @@ static const ym2151_interface dynablsb_ym2151_config = static INTERRUPT_GEN( fake_nmi ) { m90_state *state = device->machine().driver_data<m90_state>(); - int sample = m72_sample_r(state->m_audio,0); + address_space &space = *device->machine().firstcpu->space(AS_PROGRAM); + int sample = m72_sample_r(state->m_audio,space,0); if (sample) - m72_sample_w(state->m_audio,0,sample); + m72_sample_w(state->m_audio,space,0,sample); } static INTERRUPT_GEN( bomblord_fake_nmi ) { m90_state *state = device->machine().driver_data<m90_state>(); - int sample = m72_sample_r(state->m_audio,0); + address_space &space = *device->machine().firstcpu->space(AS_PROGRAM); + int sample = m72_sample_r(state->m_audio,space,0); if (sample != 0x80) - m72_sample_w(state->m_audio,0,sample); + m72_sample_w(state->m_audio,space,0,sample); } static INTERRUPT_GEN( m90_interrupt ) diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c index 0164cf5fad2..54313345b40 100644 --- a/src/mame/drivers/madalien.c +++ b/src/mame/drivers/madalien.c @@ -69,12 +69,12 @@ READ8_MEMBER(madalien_state::madalien_sound_command_r) WRITE8_MEMBER(madalien_state::madalien_portA_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, MADALIEN_8910_PORTA, data); + discrete_sound_w(device, space, MADALIEN_8910_PORTA, data); } WRITE8_MEMBER(madalien_state::madalien_portB_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, MADALIEN_8910_PORTB, data); + discrete_sound_w(device, space, MADALIEN_8910_PORTB, data); } diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c index 8f03ea6d871..54d8ad36640 100644 --- a/src/mame/drivers/mainevt.c +++ b/src/mame/drivers/mainevt.c @@ -140,25 +140,25 @@ READ8_MEMBER(mainevt_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(mainevt_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index 5211a43561a..9734a59c401 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -74,7 +74,7 @@ READ8_MEMBER(malzak_state::fake_VRLE_r) { - return (s2636_work_ram_r(m_s2636_0, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40); + return (s2636_work_ram_r(m_s2636_0, space, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40); } READ8_MEMBER(malzak_state::s2636_portA_r) diff --git a/src/mame/drivers/maygay1b.c b/src/mame/drivers/maygay1b.c index 80d674cd7f5..b9d007f744b 100644 --- a/src/mame/drivers/maygay1b.c +++ b/src/mame/drivers/maygay1b.c @@ -841,7 +841,7 @@ WRITE8_MEMBER(maygay1b_state::m1_latch_w) WRITE8_MEMBER(maygay1b_state::latch_ch2_w) { device_t *msm6376 = machine().device("msm6376"); - okim6376_w(msm6376, 0, data&0x7f); + okim6376_w(msm6376, space, 0, data&0x7f); okim6376_ch2_w(msm6376,data&0x80); } diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c index f77fd90aeba..0e7de1d2b21 100644 --- a/src/mame/drivers/mcr.c +++ b/src/mame/drivers/mcr.c @@ -651,7 +651,7 @@ WRITE8_MEMBER(mcr_state::dotron_op4_w) * *************************************/ -WRITE8_DEVICE_HANDLER( mcr_ipu_sio_transmit ) +WRITE16_DEVICE_HANDLER( mcr_ipu_sio_transmit ) { logerror("ipu_sio_transmit: %02X\n", data); diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index aa90258a903..663da48974b 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -426,38 +426,38 @@ WRITE32_MEMBER(mediagx_state::disp_ctrl_w) READ8_MEMBER(mediagx_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(mediagx_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } READ32_MEMBER(mediagx_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(mediagx_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(mediagx_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(mediagx_state::fdc_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } @@ -565,7 +565,7 @@ READ8_MEMBER(mediagx_state::io20_r) } else { - r = pic8259_r(device, offset); + r = pic8259_r(device, space, offset); } return r; } @@ -585,7 +585,7 @@ WRITE8_MEMBER(mediagx_state::io20_w) } else { - pic8259_w(device, offset, data); + pic8259_w(device, space, offset, data); } } diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c index 8feb2212118..298dea03759 100644 --- a/src/mame/drivers/mermaid.c +++ b/src/mame/drivers/mermaid.c @@ -124,14 +124,14 @@ Stephh's notes (based on the games Z80 code and some tests) : WRITE8_MEMBER(mermaid_state::mermaid_ay8910_write_port_w) { - if (m_ay8910_enable[0]) ay8910_data_w(m_ay1, offset, data); - if (m_ay8910_enable[1]) ay8910_data_w(m_ay2, offset, data); + if (m_ay8910_enable[0]) ay8910_data_w(m_ay1, space, offset, data); + if (m_ay8910_enable[1]) ay8910_data_w(m_ay2, space, offset, data); } WRITE8_MEMBER(mermaid_state::mermaid_ay8910_control_port_w) { - if (m_ay8910_enable[0]) ay8910_address_w(m_ay1, offset, data); - if (m_ay8910_enable[1]) ay8910_address_w(m_ay2, offset, data); + if (m_ay8910_enable[0]) ay8910_address_w(m_ay1, space, offset, data); + if (m_ay8910_enable[1]) ay8910_address_w(m_ay2, space, offset, data); } diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 69f3ee0a20a..aaa10d1a8cd 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -370,7 +370,7 @@ WRITE8_MEMBER(metro_state::metro_portb_w) { if (!BIT(data, 2)) { - ym2413_w(m_ymsnd, BIT(data, 1), m_porta); + ym2413_w(m_ymsnd, space, BIT(data, 1), m_porta); } m_portb = data; return; @@ -412,13 +412,13 @@ WRITE8_MEMBER(metro_state::daitorid_portb_w) if (!BIT(data, 2)) { /* write */ - ym2151_w(m_ymsnd, BIT(data, 1), m_porta); + ym2151_w(m_ymsnd, space, BIT(data, 1), m_porta); } if (!BIT(data, 3)) { /* read */ - m_porta = ym2151_r(m_ymsnd, BIT(data, 1)); + m_porta = ym2151_r(m_ymsnd, space, BIT(data, 1)); } m_portb = data; diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c index c02d431cdb3..04a8cef4808 100644 --- a/src/mame/drivers/mexico86.c +++ b/src/mame/drivers/mexico86.c @@ -66,7 +66,7 @@ PS4 J8635 PS4 J8541 PS4 J8648 READ8_MEMBER(mexico86_state::kiki_ym2203_r) { device_t *device = machine().device("ymsnd"); - UINT8 result = ym2203_r(device, offset); + UINT8 result = ym2203_r(device, space, offset); if (offset == 0) result &= 0x7f; diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c index 39fd77be878..a2e3c88d91c 100644 --- a/src/mame/drivers/midqslvr.c +++ b/src/mame/drivers/midqslvr.c @@ -396,26 +396,26 @@ WRITE32_MEMBER(midqslvr_state::bios_ram_w) READ32_MEMBER(midqslvr_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(midqslvr_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(midqslvr_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(midqslvr_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } READ8_MEMBER(midqslvr_state::at_page8_r) @@ -463,13 +463,13 @@ WRITE8_MEMBER(midqslvr_state::at_page8_w) READ8_MEMBER(midqslvr_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(midqslvr_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } WRITE_LINE_MEMBER(midqslvr_state::pc_dma_hrq_changed) diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index b8e313373e3..488aaf3a913 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -158,7 +158,7 @@ WRITE32_MEMBER(midzeus_state::cmos_protect_w) READ32_MEMBER(midzeus_state::zeus2_timekeeper_r) { device_t *device = machine().device("m48t35"); - return timekeeper_r(device, offset) | 0xffffff00; + return timekeeper_r(device, space, offset) | 0xffffff00; } @@ -166,7 +166,7 @@ WRITE32_MEMBER(midzeus_state::zeus2_timekeeper_w) { device_t *device = machine().device("m48t35"); if (bitlatch[2] && !cmos_protected) - timekeeper_w(device, offset, data); + timekeeper_w(device, space, offset, data); else logerror("%s:zeus2_timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", machine().describe_context(), bitlatch[2], cmos_protected); cmos_protected = TRUE; diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c index 0b6661765ca..8d04b8fa6b3 100644 --- a/src/mame/drivers/mirage.c +++ b/src/mame/drivers/mirage.c @@ -87,7 +87,8 @@ void miragemi_state::video_start() static SCREEN_UPDATE_RGB32( mirage ) { miragemi_state *state = screen.machine().driver_data<miragemi_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c index 561f3136d5e..6c1609cf94d 100644 --- a/src/mame/drivers/mirax.c +++ b/src/mame/drivers/mirax.c @@ -242,15 +242,15 @@ WRITE8_MEMBER(mirax_state::audio_w) WRITE8_MEMBER(mirax_state::ay1_sel) { device_t *device = machine().device("ay1"); - ay8910_address_w(device,0,m_nAyCtrl); - ay8910_data_w(device,0,data); + ay8910_address_w(device,space,0,m_nAyCtrl); + ay8910_data_w(device,space,0,data); } WRITE8_MEMBER(mirax_state::ay2_sel) { device_t *device = machine().device("ay2"); - ay8910_address_w(device,0,m_nAyCtrl); - ay8910_data_w(device,0,data); + ay8910_address_w(device,space,0,m_nAyCtrl); + ay8910_data_w(device,space,0,data); } WRITE8_MEMBER(mirax_state::nmi_mask_w) diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index 86cdffa53bb..e03dd2b8af3 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -348,11 +348,11 @@ WRITE16_MEMBER(mlanding_state::ml_to_sound_w) { device_t *tc0140syt = machine().device("tc0140syt"); if (offset == 0) - tc0140syt_port_w(tc0140syt, 0, data & 0xff); + tc0140syt_port_w(tc0140syt, space, 0, data & 0xff); else if (offset == 1) { //machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - tc0140syt_comm_w(tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(tc0140syt, space, 0, data & 0xff); } } @@ -360,11 +360,11 @@ WRITE8_MEMBER(mlanding_state::ml_sound_to_main_w) { device_t *tc0140syt = machine().device("tc0140syt"); if (offset == 0) - tc0140syt_slave_port_w(tc0140syt, 0, data & 0xff); + tc0140syt_slave_port_w(tc0140syt, space, 0, data & 0xff); else if (offset == 1) { //machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE); - tc0140syt_slave_comm_w(tc0140syt, 0, data & 0xff); + tc0140syt_slave_comm_w(tc0140syt, space, 0, data & 0xff); } } diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index ae7c4403326..3aea59d6fb2 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -1014,7 +1014,7 @@ WRITE32_MEMBER(model2_state::model2_serial_w) { if (ACCESSING_BITS_0_7 && (offset == 0)) { - scsp_midi_in(machine().device("scsp"), 0, data&0xff, 0); + scsp_midi_in(machine().device("scsp"), space, 0, data&0xff, 0); // give the 68k time to notice space.device().execute().spin_until_time(attotime::from_usec(40)); diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 57ae44f10f1..6caefd77f25 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -1638,7 +1638,7 @@ WRITE8_MEMBER(model3_state::model3_sound_w) model3_set_irq_line(machine(), 0x40, CLEAR_LINE); // send to the sound board - scsp_midi_in(machine().device("scsp1"), 0, data, 0); + scsp_midi_in(machine().device("scsp1"), space, 0, data, 0); if (m_sound_irq_enable) { diff --git a/src/mame/drivers/mpu4hw.c b/src/mame/drivers/mpu4hw.c index 2ce95e8706a..3687c8ebad2 100644 --- a/src/mame/drivers/mpu4hw.c +++ b/src/mame/drivers/mpu4hw.c @@ -1119,7 +1119,7 @@ BDIR BC1 | */ /* PSG function selected */ -static void update_ay(device_t *device) +static void update_ay(device_t *device, address_space &space) { device_t *ay = device->machine().device("ay8913"); if (!ay) return; @@ -1145,7 +1145,7 @@ static void update_ay(device_t *device) {/* CA2 = 0 CB2 = 1? : Write to selected PSG register and write data to Port A */ pia6821_device *pia_ic6 = device->machine().device<pia6821_device>("pia_ic6"); device_t *ay = device->machine().device("ay8913"); - ay8910_data_w(ay, 0, pia_ic6->a_output()); + ay8910_data_w(ay, space, 0, pia_ic6->a_output()); LOG(("AY Chip Write \n")); break; } @@ -1154,7 +1154,7 @@ static void update_ay(device_t *device) The register will remain selected until another is chosen.*/ pia6821_device *pia_ic6 = device->machine().device<pia6821_device>("pia_ic6"); device_t *ay = device->machine().device("ay8913"); - ay8910_address_w(ay, 0, pia_ic6->a_output()); + ay8910_address_w(ay, space, 0, pia_ic6->a_output()); LOG(("AY Chip Select \n")); break; } @@ -1170,7 +1170,7 @@ static void update_ay(device_t *device) WRITE_LINE_MEMBER(mpu4_state::pia_ic5_cb2_w) { device_t *device = machine().device("pia_ic5"); - update_ay(device); + update_ay(device, generic_space()); } @@ -1229,7 +1229,7 @@ WRITE8_MEMBER(mpu4_state::pia_ic6_porta_w) if (m_mod_number <4) { m_ay_data = data; - update_ay(device); + update_ay(device, space); } } @@ -1242,7 +1242,7 @@ WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w) { if ( state ) m_ay8913_address |= 0x01; else m_ay8913_address &= ~0x01; - update_ay(device); + update_ay(device, generic_space()); } } @@ -1255,7 +1255,7 @@ WRITE_LINE_MEMBER(mpu4_state::pia_ic6_cb2_w) { if ( state ) m_ay8913_address |= 0x02; else m_ay8913_address &= ~0x02; - update_ay(device); + update_ay(device, generic_space()); } } @@ -1461,7 +1461,7 @@ WRITE8_MEMBER(mpu4_state::pia_gb_porta_w) { device_t *msm6376 = machine().device("msm6376"); LOG_SS(("%s: GAMEBOARD: PIA Port A Set to %2x\n", machine().describe_context(),data)); - okim6376_w(msm6376, 0, data); + okim6376_w(msm6376, space, 0, data); } WRITE8_MEMBER(mpu4_state::pia_gb_portb_w) @@ -2292,7 +2292,7 @@ READ8_MEMBER(mpu4_state::bwb_characteriser_r) WRITE8_MEMBER(mpu4_state::mpu4_ym2413_w) { device_t *ym = machine().device("ym2413"); - if (ym) ym2413_w(ym,offset,data); + if (ym) ym2413_w(ym,space,offset,data); } READ8_MEMBER(mpu4_state::mpu4_ym2413_r) diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c index 660a83f1245..c68d2f96cc8 100644 --- a/src/mame/drivers/msisaac.c +++ b/src/mame/drivers/msisaac.c @@ -424,7 +424,8 @@ GFXDECODE_END static const msm5232_interface msm5232_config = { - { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 } /* 0.65 (???) uF capacitors (match the sample, not verified) */ + { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, /* 0.65 (???) uF capacitors (match the sample, not verified) */ + DEVCB_NULL }; diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 4193f77fdd4..4845d5a5033 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -363,13 +363,13 @@ WRITE8_MEMBER(multfish_state::multfish_bank_w) READ8_MEMBER(multfish_state::multfish_timekeeper_r) { device_t *device = machine().device("m48t35"); - return timekeeper_r(device, offset + 0x6000); + return timekeeper_r(device, space, offset + 0x6000); } WRITE8_MEMBER(multfish_state::multfish_timekeeper_w) { device_t *device = machine().device("m48t35"); - timekeeper_w(device, offset + 0x6000, data); + timekeeper_w(device, space, offset + 0x6000, data); } READ8_MEMBER(multfish_state::bankedram_r) @@ -377,7 +377,7 @@ READ8_MEMBER(multfish_state::bankedram_r) if ((m_rambk & 0x80) == 0x00) { - return timekeeper_r(machine().device("m48t35"), offset + 0x2000*(m_rambk & 0x03)); + return timekeeper_r(machine().device("m48t35"), space, offset + 0x2000*(m_rambk & 0x03)); } else { @@ -391,7 +391,7 @@ WRITE8_MEMBER(multfish_state::bankedram_w) if ((m_rambk & 0x80) == 0x00) { - timekeeper_w(machine().device("m48t35"), offset + 0x2000*(m_rambk & 0x03), data); + timekeeper_w(machine().device("m48t35"), space, offset + 0x2000*(m_rambk & 0x03), data); } else { @@ -1131,8 +1131,8 @@ MACHINE_RESET_MEMBER(multfish_state,island2a) multfish_state::machine_reset(); // this set needs preprogrammed data in timekeeper - timekeeper_w(machine().device("m48t35"), 0x2003 , 0x01); - timekeeper_w(machine().device("m48t35"), 0x4003 , 0x02); + timekeeper_w(machine().device("m48t35"), generic_space(), 0x2003 , 0x01); + timekeeper_w(machine().device("m48t35"), generic_space(), 0x4003 , 0x02); } static MACHINE_CONFIG_DERIVED( island2a, multfish ) diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c index 68c3e376f04..4379573c253 100644 --- a/src/mame/drivers/multigam.c +++ b/src/mame/drivers/multigam.c @@ -242,19 +242,19 @@ WRITE8_MEMBER(multigam_state::sprite_dma_w) READ8_MEMBER(multigam_state::psg_4015_r) { device_t *device = machine().device("nes"); - return nes_psg_r(device, 0x15); + return nes_psg_r(device, space, 0x15); } WRITE8_MEMBER(multigam_state::psg_4015_w) { device_t *device = machine().device("nes"); - nes_psg_w(device, 0x15, data); + nes_psg_w(device, space, 0x15, data); } WRITE8_MEMBER(multigam_state::psg_4017_w) { device_t *device = machine().device("nes"); - nes_psg_w(device, 0x17, data); + nes_psg_w(device, space, 0x17, data); } /****************************************************** diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c index fa0f3a6b9ac..bc233fdb25a 100644 --- a/src/mame/drivers/munchmo.c +++ b/src/mame/drivers/munchmo.c @@ -74,14 +74,14 @@ WRITE8_MEMBER(munchmo_state::sound_nmi_ack_w) READ8_MEMBER(munchmo_state::munchmo_ay1reset_r) { device_t *device = machine().device("ay1"); - ay8910_reset_w(device,0,0); + ay8910_reset_w(device,space,0,0); return 0; } READ8_MEMBER(munchmo_state::munchmo_ay2reset_r) { device_t *device = machine().device("ay2"); - ay8910_reset_w(device,0,0); + ay8910_reset_w(device,space,0,0); return 0; } /************************************* diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c index e4fdd78df28..c40d5ff3276 100644 --- a/src/mame/drivers/mw8080bw.c +++ b/src/mame/drivers/mw8080bw.c @@ -168,7 +168,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_shift_result_rev_r) { - UINT8 ret = mb14241_shift_result_r(m_mb14241, 0); + UINT8 ret = mb14241_shift_result_r(m_mb14241, space, 0); return BITSWAP8(ret,0,1,2,3,4,5,6,7); } @@ -184,7 +184,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r) } else { - ret = mb14241_shift_result_r(m_mb14241, 0); + ret = mb14241_shift_result_r(m_mb14241, space, 0); } return ret; @@ -192,7 +192,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r) WRITE8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_count_w) { - mb14241_shift_count_w(m_mb14241, offset, data); + mb14241_shift_count_w(m_mb14241, space, offset, data); m_rev_shift_res = data & 0x08; } @@ -425,10 +425,10 @@ WRITE8_MEMBER(mw8080bw_state::gunfight_io_w) gunfight_audio_w(space, 0, data); if (offset & 0x02) - mb14241_shift_count_w(m_mb14241, 0, data); + mb14241_shift_count_w(m_mb14241, space, 0, data); if (offset & 0x04) - mb14241_shift_data_w(m_mb14241, 0, data); + mb14241_shift_data_w(m_mb14241, space, 0, data); } @@ -618,13 +618,13 @@ WRITE8_MEMBER(mw8080bw_state::tornbase_io_w) { if (offset & 0x01) - tornbase_audio_w(machine().device("discrete"), 0, data); + tornbase_audio_w(machine().device("discrete"), space, 0, data); if (offset & 0x02) - mb14241_shift_count_w(m_mb14241, 0, data); + mb14241_shift_count_w(m_mb14241, space, 0, data); if (offset & 0x04) - mb14241_shift_data_w(m_mb14241, 0, data); + mb14241_shift_data_w(m_mb14241, space, 0, data); } @@ -1070,7 +1070,7 @@ MACHINE_CONFIG_END WRITE8_MEMBER(mw8080bw_state::checkmat_io_w) { - if (offset & 0x01) checkmat_audio_w(m_discrete, 0, data); + if (offset & 0x01) checkmat_audio_w(m_discrete, space, 0, data); if (offset & 0x02) watchdog_reset_w(space, 0, data); } @@ -2165,13 +2165,13 @@ WRITE8_MEMBER(mw8080bw_state::spcenctr_io_w) watchdog_reset_w(space, 0, data); /* - - - - - 0 1 0 */ else if ((offset & 0x5f) == 0x01) - spcenctr_audio_1_w(m_discrete, 0, data); /* - 0 - 0 0 0 0 1 */ + spcenctr_audio_1_w(m_discrete, space, 0, data); /* - 0 - 0 0 0 0 1 */ else if ((offset & 0x5f) == 0x09) - spcenctr_audio_2_w(m_discrete, 0, data); /* - 0 - 0 1 0 0 1 */ + spcenctr_audio_2_w(m_discrete, space, 0, data); /* - 0 - 0 1 0 0 1 */ else if ((offset & 0x5f) == 0x11) - spcenctr_audio_3_w(m_discrete, 0, data); /* - 0 - 1 0 0 0 1 */ + spcenctr_audio_3_w(m_discrete, space, 0, data); /* - 0 - 1 0 0 0 1 */ else if ((offset & 0x07) == 0x03) { /* - - - - - 0 1 1 */ @@ -2381,7 +2381,7 @@ READ8_MEMBER(mw8080bw_state::bowler_shift_result_r) anything unusual on the schematics that would cause the bits to flip */ - return ~mb14241_shift_result_r(m_mb14241, 0); + return ~mb14241_shift_result_r(m_mb14241, space, 0); } WRITE8_MEMBER(mw8080bw_state::bowler_lights_1_w) diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c index 31605d71d8a..8e3c29ae5b9 100644 --- a/src/mame/drivers/mystston.c +++ b/src/mame/drivers/mystston.c @@ -77,14 +77,14 @@ WRITE8_MEMBER(mystston_state::mystston_ay8910_select_w) if (((*m_ay8910_select & 0x20) == 0x20) && ((data & 0x20) == 0x00)) { /* bit 4 goes to the 8910 #0 BC1 pin */ - ay8910_data_address_w(machine().device("ay1"), *m_ay8910_select >> 4, *m_ay8910_data); + ay8910_data_address_w(machine().device("ay1"), space, *m_ay8910_select >> 4, *m_ay8910_data); } /* bit 7 goes to 8910 #1 BDIR pin */ if (((*m_ay8910_select & 0x80) == 0x80) && ((data & 0x80) == 0x00)) { /* bit 6 goes to the 8910 #1 BC1 pin */ - ay8910_data_address_w(machine().device("ay2"), *m_ay8910_select >> 6, *m_ay8910_data); + ay8910_data_address_w(machine().device("ay2"), space, *m_ay8910_select >> 6, *m_ay8910_data); } *m_ay8910_select = data; diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index f3833e4a1c2..32d60b5f39f 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -806,7 +806,7 @@ READ16_MEMBER(namcona1_state::snd_r) { device_t *device = machine().device("c140"); /* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */ - return c140_r(device,offset*2+1) | c140_r(device,offset*2)<<8; + return c140_r(device,space,offset*2+1) | c140_r(device,space,offset*2)<<8; } WRITE16_MEMBER(namcona1_state::snd_w) @@ -815,12 +815,12 @@ WRITE16_MEMBER(namcona1_state::snd_w) /* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */ if (ACCESSING_BITS_0_7) { - c140_w(device,(offset*2)+1, data); + c140_w(device,space,(offset*2)+1, data); } if (ACCESSING_BITS_8_15) { - c140_w(device,(offset*2), data>>8); + c140_w(device,space,(offset*2), data>>8); } } diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index ab0a0e129c5..0ade1d44ffc 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -306,7 +306,7 @@ WRITE8_MEMBER(namcos86_state::cus115_w) case 1: case 2: case 3: - namco_63701x_w(machine().device("namco2"), (offset & 0x1e00) >> 9,data); + namco_63701x_w(machine().device("namco2"), space, (offset & 0x1e00) >> 9,data); break; case 4: diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index 4522d88af44..00617df2112 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -426,7 +426,7 @@ WRITE16_MEMBER(neogeo_state::io_control_w) case 0x00: select_controller(machine(), data & 0x00ff); break; case 0x18: set_output_latch(machine(), data & 0x00ff); break; case 0x20: set_output_data(machine(), data & 0x00ff); break; - case 0x28: upd4990a_control_16_w(m_upd4990a, 0, data, mem_mask); break; + case 0x28: upd4990a_control_16_w(m_upd4990a, space, 0, data, mem_mask); break; // case 0x30: break; // coin counters // case 0x31: break; // coin counters // case 0x32: break; // coin lockout @@ -476,7 +476,7 @@ READ16_MEMBER(neogeo_state::neogeo_unmapped_r) CUSTOM_INPUT_MEMBER(neogeo_state::get_calendar_status) { - return (upd4990a_databit_r(m_upd4990a, 0) << 1) | upd4990a_testbit_r(m_upd4990a, 0); + return (upd4990a_databit_r(m_upd4990a, generic_space(), 0) << 1) | upd4990a_testbit_r(m_upd4990a, generic_space(), 0); } diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index 655921aeb00..6e0392789b7 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -136,12 +136,12 @@ READ16_MEMBER(neoprint_state::neoprint_calendar_r) //if(space.device().safe_pc() != 0x4b38 )//&& space.device().safe_pc() != 0x5f86 && space.device().safe_pc() != 0x5f90) // printf("%08x\n",space.device().safe_pc()); - return (upd4990a_databit_r(machine().device("upd4990a"), 0) << 15); + return (upd4990a_databit_r(machine().device("upd4990a"), space, 0) << 15); } WRITE16_MEMBER(neoprint_state::neoprint_calendar_w) { - upd4990a_control_16_w(machine().device("upd4990a"), 0, ((data >> 8) & 7), mem_mask); + upd4990a_control_16_w(machine().device("upd4990a"), space, 0, ((data >> 8) & 7), mem_mask); } READ8_MEMBER(neoprint_state::neoprint_unk_r) diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index 70bf258efac..62c138b5a0b 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -369,9 +369,9 @@ WRITE16_MEMBER(ninjaw_state::ninjaw_sound_w) { if (offset == 0) - tc0140syt_port_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff); else if (offset == 1) - tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff); #ifdef MAME_DEBUG if (data & 0xff00) @@ -383,7 +383,7 @@ READ16_MEMBER(ninjaw_state::ninjaw_sound_r) { if (offset == 1) - return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff)); + return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff)); else return 0; } @@ -413,9 +413,9 @@ WRITE8_MEMBER(ninjaw_state::ninjaw_pancontrol) WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w) { - tc0100scn_word_w(m_tc0100scn_1, offset, data, mem_mask); - tc0100scn_word_w(m_tc0100scn_2, offset, data, mem_mask); - tc0100scn_word_w(m_tc0100scn_3, offset, data, mem_mask); + tc0100scn_word_w(m_tc0100scn_1, space, offset, data, mem_mask); + tc0100scn_word_w(m_tc0100scn_2, space, offset, data, mem_mask); + tc0100scn_word_w(m_tc0100scn_3, space, offset, data, mem_mask); } /*********************************************************** diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c index 4fb4f068330..1c2de5cc52c 100644 --- a/src/mame/drivers/norautp.c +++ b/src/mame/drivers/norautp.c @@ -669,8 +669,8 @@ WRITE8_MEMBER(norautp_state::soundlamps_w) output_set_lamp_value(9, (data >> 1) & 1); /* BET / COLLECT lamp */ /* the 4 MSB are for discrete sound */ - discrete_sound_w(discrete, NORAUTP_SND_EN, (data >> 7) & 0x01); - discrete_sound_w(discrete, NORAUTP_FREQ_DATA, (data >> 4) & 0x07); + discrete_sound_w(discrete, space, NORAUTP_SND_EN, (data >> 7) & 0x01); + discrete_sound_w(discrete, space, NORAUTP_FREQ_DATA, (data >> 4) & 0x07); // popmessage("sound bits 4-5-6-7: %02x, %02x, %02x, %02x", ((data >> 4) & 0x01), ((data >> 5) & 0x01), ((data >> 6) & 0x01), ((data >> 7) & 0x01)); } diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c index c5bec5f234b..420f1cd9c6f 100644 --- a/src/mame/drivers/nss.c +++ b/src/mame/drivers/nss.c @@ -354,12 +354,12 @@ ADDRESS_MAP_END static READ8_DEVICE_HANDLER( spc_ram_100_r ) { - return spc_ram_r(device, offset + 0x100); + return spc_ram_r(device, space, offset + 0x100); } static WRITE8_DEVICE_HANDLER( spc_ram_100_w ) { - spc_ram_w(device, offset + 0x100, data); + spc_ram_w(device, space, offset + 0x100, data); } static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, nss_state ) @@ -465,13 +465,13 @@ READ8_MEMBER(nss_state::nss_prot_r) if (m_cart_sel == 0) { - rp5h01_enable_w(m_rp5h01, 0, 0); - data |= ((~rp5h01_counter_r(m_rp5h01, 0)) << 4) & 0x10; /* D4 */ - data |= ((rp5h01_data_r(m_rp5h01, 0)) << 3) & 0x08; /* D3 */ - rp5h01_enable_w(m_rp5h01, 0, 1); + rp5h01_enable_w(m_rp5h01, space, 0, 0); + data |= ((~rp5h01_counter_r(m_rp5h01, space, 0)) << 4) & 0x10; /* D4 */ + data |= ((rp5h01_data_r(m_rp5h01, space, 0)) << 3) & 0x08; /* D3 */ + rp5h01_enable_w(m_rp5h01, space, 0, 1); } else - rp5h01_enable_w(m_rp5h01, 0, 1); + rp5h01_enable_w(m_rp5h01, space, 0, 1); return data; } @@ -480,14 +480,14 @@ WRITE8_MEMBER(nss_state::nss_prot_w) { if (m_cart_sel == 0) { - rp5h01_enable_w(m_rp5h01, 0, 0); - rp5h01_test_w(m_rp5h01, 0, data & 0x10); /* D4 */ - rp5h01_clock_w(m_rp5h01, 0, data & 0x08); /* D3 */ - rp5h01_cs_w(m_rp5h01, 0, ~data & 0x01); - rp5h01_enable_w(m_rp5h01, 0, 1); + rp5h01_enable_w(m_rp5h01, space, 0, 0); + rp5h01_test_w(m_rp5h01, space, 0, data & 0x10); /* D4 */ + rp5h01_clock_w(m_rp5h01, space, 0, data & 0x08); /* D3 */ + rp5h01_cs_w(m_rp5h01, space, 0, ~data & 0x01); + rp5h01_enable_w(m_rp5h01, space, 0, 1); } else - rp5h01_enable_w(m_rp5h01, 0, 1); + rp5h01_enable_w(m_rp5h01, space, 0, 1); ioport("EEPROMOUT")->write(data, 0xff); } diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c index b95173afc30..25eb08ad126 100644 --- a/src/mame/drivers/nwk-tr.c +++ b/src/mame/drivers/nwk-tr.c @@ -315,7 +315,7 @@ READ32_MEMBER(nwktr_state::sysreg_r) } if (ACCESSING_BITS_0_7) { - r |= adc1213x_do_r(adc12138, 0) | (adc1213x_eoc_r(adc12138, 0) << 2); + r |= adc1213x_do_r(adc12138, space, 0) | (adc1213x_eoc_r(adc12138, space, 0) << 2); } } else if (offset == 1) @@ -352,10 +352,10 @@ WRITE32_MEMBER(nwktr_state::sysreg_w) int di = (data >> 25) & 0x1; int sclk = (data >> 24) & 0x1; - adc1213x_cs_w(adc12138, 0, cs); - adc1213x_conv_w(adc12138, 0, conv); - adc1213x_di_w(adc12138, 0, di); - adc1213x_sclk_w(adc12138, 0, sclk); + adc1213x_cs_w(adc12138, space, 0, cs); + adc1213x_conv_w(adc12138, space, 0, conv); + adc1213x_di_w(adc12138, space, 0, di); + adc1213x_sclk_w(adc12138, space, 0, sclk); } if (ACCESSING_BITS_0_7) { diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c index 7a17fad9f2d..b1b9e6ae520 100644 --- a/src/mame/drivers/nycaptor.c +++ b/src/mame/drivers/nycaptor.c @@ -318,7 +318,8 @@ static const ay8910_interface ay8910_config = static const msm5232_interface msm5232_config = { - { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 } /* 0.65 (???) uF capacitors (match the sample, not verified) */ + { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, /* 0.65 (???) uF capacitors (match the sample, not verified) */ + DEVCB_NULL }; diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index be9358acd3b..edf9e583e88 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -277,7 +277,7 @@ static const ttl74123_interface ic48_1_config = 1, /* A pin - driven by the CRTC */ 1, /* B pin - pulled high */ 1, /* Clear pin - pulled high */ - ic48_1_74123_output_changed + DEVCB_HANDLER(ic48_1_74123_output_changed) }; @@ -420,7 +420,7 @@ static MC6845_END_UPDATE( end_update ) WRITE_LINE_MEMBER(nyny_state::display_enable_changed) { - ttl74123_a_w(m_ic48_1, 0, state); + ttl74123_a_w(m_ic48_1, generic_space(), 0, state); } diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index 57df7006c8a..0745052ffd9 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -61,9 +61,9 @@ static INTERRUPT_GEN( orbit_interrupt ) * *************************************/ -static void update_misc_flags(running_machine &machine, UINT8 val) +static void update_misc_flags(address_space &space, UINT8 val) { - orbit_state *state = machine.driver_data<orbit_state>(); + orbit_state *state = space.machine().driver_data<orbit_state>(); state->m_misc_flags = val; @@ -76,13 +76,13 @@ static void update_misc_flags(running_machine &machine, UINT8 val) /* BIT6 => HYPER LED */ /* BIT7 => WARNING SND */ - discrete_sound_w(state->m_discrete, ORBIT_WARNING_EN, BIT(state->m_misc_flags, 7)); + discrete_sound_w(state->m_discrete, space, ORBIT_WARNING_EN, BIT(state->m_misc_flags, 7)); - set_led_status(machine, 0, BIT(state->m_misc_flags, 3)); - set_led_status(machine, 1, BIT(state->m_misc_flags, 6)); + set_led_status(space.machine(), 0, BIT(state->m_misc_flags, 3)); + set_led_status(space.machine(), 1, BIT(state->m_misc_flags, 6)); - coin_lockout_w(machine, 0, !BIT(state->m_misc_flags, 1)); - coin_lockout_w(machine, 1, !BIT(state->m_misc_flags, 1)); + coin_lockout_w(space.machine(), 0, !BIT(state->m_misc_flags, 1)); + coin_lockout_w(space.machine(), 1, !BIT(state->m_misc_flags, 1)); } @@ -91,9 +91,9 @@ WRITE8_MEMBER(orbit_state::orbit_misc_w) UINT8 bit = offset >> 1; if (offset & 1) - update_misc_flags(machine(), m_misc_flags | (1 << bit)); + update_misc_flags(space, m_misc_flags | (1 << bit)); else - update_misc_flags(machine(), m_misc_flags & ~(1 << bit)); + update_misc_flags(space, m_misc_flags & ~(1 << bit)); } @@ -283,8 +283,7 @@ void orbit_state::machine_start() void orbit_state::machine_reset() { - - update_misc_flags(machine(), 0); + update_misc_flags(generic_space(), 0); m_flip_screen = 0; } diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c index ae1ab6f8048..5e2cf62a169 100644 --- a/src/mame/drivers/othello.c +++ b/src/mame/drivers/othello.c @@ -225,15 +225,15 @@ WRITE8_MEMBER(othello_state::ack_w) WRITE8_MEMBER(othello_state::ay_address_w) { - if (m_ay_select & 1) ay8910_address_w(m_ay1, 0, data); - if (m_ay_select & 2) ay8910_address_w(m_ay2, 0, data); + if (m_ay_select & 1) ay8910_address_w(m_ay1, space, 0, data); + if (m_ay_select & 2) ay8910_address_w(m_ay2, space, 0, data); } WRITE8_MEMBER(othello_state::ay_data_w) { - if (m_ay_select & 1) ay8910_data_w(m_ay1, 0, data); - if (m_ay_select & 2) ay8910_data_w(m_ay2, 0, data); + if (m_ay_select & 1) ay8910_data_w(m_ay1, space, 0, data); + if (m_ay_select & 2) ay8910_data_w(m_ay2, space, 0, data); } static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, othello_state ) @@ -300,7 +300,7 @@ WRITE8_MEMBER(othello_state::n7751_p2_w) device_t *device = machine().device("n7751_8243"); /* write to P2; low 4 bits go to 8243 */ - i8243_p2_w(device, offset, data & 0x0f); + i8243_p2_w(device, space, offset, data & 0x0f); /* output of bit $80 indicates we are ready (1) or busy (0) */ /* no other outputs are used */ diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index 91a43103c4e..4ee5bd44b36 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -340,7 +340,7 @@ WRITE16_MEMBER(othunder_state::othunder_tc0220ioc_w) break; default: - tc0220ioc_w(m_tc0220ioc, offset, data & 0xff); + tc0220ioc_w(m_tc0220ioc, space, offset, data & 0xff); } } } @@ -359,7 +359,7 @@ READ16_MEMBER(othunder_state::othunder_tc0220ioc_r) return (m_eeprom->read_bit() & 1) << 7; default: - return tc0220ioc_r(m_tc0220ioc, offset); + return tc0220ioc_r(m_tc0220ioc, space, offset); } } @@ -406,15 +406,15 @@ WRITE8_MEMBER(othunder_state::sound_bankswitch_w) WRITE16_MEMBER(othunder_state::othunder_sound_w) { if (offset == 0) - tc0140syt_port_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff); else if (offset == 1) - tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff); } READ16_MEMBER(othunder_state::othunder_sound_r) { if (offset == 1) - return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff)); + return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff)); else return 0; } diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index dec80a7e346..6120863c70b 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -137,13 +137,13 @@ WRITE16_MEMBER(overdriv_state::cpuB_ctrl_w) READ8_MEMBER(overdriv_state::overdriv_1_sound_r) { device_t *device = machine().device("k053260_1"); - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } READ8_MEMBER(overdriv_state::overdriv_2_sound_r) { device_t *device = machine().device("k053260_2"); - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } WRITE16_MEMBER(overdriv_state::overdriv_soundirq_w) diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c index 2b4b81e9d10..fea831e0cfd 100644 --- a/src/mame/drivers/pacman.c +++ b/src/mame/drivers/pacman.c @@ -537,11 +537,11 @@ WRITE8_MEMBER(pacman_state::alibaba_sound_w) /* since the sound region in Ali Baba is not contiguous, translate the offset into the 0-0x1f range */ if (offset < 0x10) - pacman_sound_w(machine().device("namco"), offset, data); + pacman_sound_w(machine().device("namco"), space, offset, data); else if (offset < 0x20) m_spriteram2[offset - 0x10] = data; else - pacman_sound_w(machine().device("namco"), offset - 0x10, data); + pacman_sound_w(machine().device("namco"), space, offset - 0x10, data); } READ8_MEMBER(pacman_state::alibaba_mystery_1_r) diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c index d1e72e841cf..93188ac187a 100644 --- a/src/mame/drivers/parodius.c +++ b/src/mame/drivers/parodius.c @@ -58,18 +58,18 @@ READ8_MEMBER(parodius_state::parodius_052109_053245_r) { if (m_videobank & 0x02) - return k053245_r(m_k053245, offset); + return k053245_r(m_k053245, space, offset); else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(parodius_state::parodius_052109_053245_w) { if (m_videobank & 0x02) - k053245_w(m_k053245, offset, data); + k053245_w(m_k053245, space, offset, data); else - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); } WRITE8_MEMBER(parodius_state::parodius_videobank_w) @@ -103,7 +103,7 @@ WRITE8_MEMBER(parodius_state::parodius_3fc0_w) READ8_MEMBER(parodius_state::parodius_sound_r) { device_t *device = machine().device("k053260"); - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } WRITE8_MEMBER(parodius_state::parodius_sh_irqtrigger_w) diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c index d4fea1e619d..ba85601f69d 100644 --- a/src/mame/drivers/playch10.c +++ b/src/mame/drivers/playch10.c @@ -350,19 +350,19 @@ WRITE8_MEMBER(playch10_state::time_w) READ8_MEMBER(playch10_state::psg_4015_r) { device_t *device = machine().device("nes"); - return nes_psg_r(device, 0x15); + return nes_psg_r(device, space, 0x15); } WRITE8_MEMBER(playch10_state::psg_4015_w) { device_t *device = machine().device("nes"); - nes_psg_w(device, 0x15, data); + nes_psg_w(device, space, 0x15, data); } WRITE8_MEMBER(playch10_state::psg_4017_w) { device_t *device = machine().device("nes"); - nes_psg_w(device, 0x17, data); + nes_psg_w(device, space, 0x17, data); } /******************************************************************************/ diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index cd8237d435a..18de7399d02 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -303,8 +303,8 @@ WRITE8_MEMBER(polepos_state::polepos_latch_w) polepos_sound_enable(machine().device("namco"),bit); if (!bit) { - polepos_engine_sound_lsb_w(machine().device("polepos"), 0, 0); - polepos_engine_sound_msb_w(machine().device("polepos"), 0, 0); + polepos_engine_sound_lsb_w(machine().device("polepos"), space, 0, 0); + polepos_engine_sound_msb_w(machine().device("polepos"), space, 0, 0); } break; diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c index 20c90c7fb78..185cbd0bebc 100644 --- a/src/mame/drivers/ppmast93.c +++ b/src/mame/drivers/ppmast93.c @@ -217,7 +217,7 @@ WRITE8_MEMBER(ppmast93_state::ppmast_sound_w) switch(offset&0xff) { case 0: - case 1: ym2413_w(machine().device("ymsnd"),offset,data); break; + case 1: ym2413_w(machine().device("ymsnd"),space,offset,data); break; case 2: machine().device<dac_device>("dac")->write_unsigned8(data);break; default: logerror("%x %x - %x\n",offset,data,space.device().safe_pcbase()); } diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c index 074348193bd..f8ad1f5102a 100644 --- a/src/mame/drivers/prehisle.c +++ b/src/mame/drivers/prehisle.c @@ -42,7 +42,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(prehisle_state::D7759_write_port_0_w) { device_t *device = machine().device("upd"); - upd7759_port_w(device, 0, data); + upd7759_port_w(device, space, 0, data); upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/drivers/proconn.c b/src/mame/drivers/proconn.c index 9cf4b427289..0b133417a63 100644 --- a/src/mame/drivers/proconn.c +++ b/src/mame/drivers/proconn.c @@ -35,8 +35,8 @@ public: optional_device<roc10937_t> m_vfd; - DECLARE_WRITE8_MEMBER( ay_w0 ) { ay8910_address_data_w(m_ay, 0, data); } - DECLARE_WRITE8_MEMBER( ay_w1 ) { ay8910_address_data_w(m_ay, 1, data); } + DECLARE_WRITE8_MEMBER( ay_w0 ) { ay8910_address_data_w(m_ay, space, 0, data); } + DECLARE_WRITE8_MEMBER( ay_w1 ) { ay8910_address_data_w(m_ay, space, 1, data); } DECLARE_WRITE8_MEMBER( ctc_w0 ) { m_z80ctc->write(space, 0, data); } DECLARE_WRITE8_MEMBER( ctc_w1 ) { m_z80ctc->write(space, 1, data); } @@ -73,7 +73,7 @@ public: DECLARE_WRITE8_MEMBER( pio5_w2 ) { m_z80pio_5->write(space, 2, data); } DECLARE_WRITE8_MEMBER( pio5_w3 ) { m_z80pio_5->write(space, 3, data); } - DECLARE_READ8_MEMBER( ay_r0 ) { return ay8910_r(m_ay, 0); } + DECLARE_READ8_MEMBER( ay_r0 ) { return ay8910_r(m_ay, space, 0); } DECLARE_READ8_MEMBER( ctc_r0 ) { return m_z80ctc->read(space, 0); } DECLARE_READ8_MEMBER( ctc_r1 ) { return m_z80ctc->read(space, 1); } @@ -307,7 +307,7 @@ static Z80CTC_INTERFACE( ctc_intf ) DEVCB_NULL // ZC/TO2 callback }; -static WRITE8_DEVICE_HANDLER( serial_transmit ) +static WRITE16_DEVICE_HANDLER( serial_transmit ) { proconn_state *state = device->machine().driver_data<proconn_state>(); @@ -324,20 +324,20 @@ static WRITE8_DEVICE_HANDLER( serial_transmit ) } -static int serial_receive(device_t *device, int channel) +static READ16_DEVICE_HANDLER( serial_receive ) { - return 0xff; + return -1; } static const z80sio_interface sio_intf = { - 0, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - serial_transmit, /* transmit handler */ - serial_receive /* receive handler */ + DEVCB_NULL, /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(serial_transmit), /* transmit handler */ + DEVCB_HANDLER(serial_receive) /* receive handler */ }; static const ay8910_interface ay8910_config = diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index b84dfa6b0b3..c1354d1de44 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -120,7 +120,7 @@ READ16_MEMBER(qdrmfgp_state::v_rom_r) { device_t *k056832 = machine().device("k056832"); UINT8 *mem8 = memregion("gfx1")->base(); - int bank = k056832_word_r(k056832, 0x34/2, 0xffff); + int bank = k056832_word_r(k056832, space, 0x34/2, 0xffff); offset += bank * 0x800 * 4; @@ -136,9 +136,9 @@ READ16_MEMBER(qdrmfgp_state::gp2_vram_r) device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) - return k056832_ram_word_r(k056832, offset * 2 + 1, mem_mask); + return k056832_ram_word_r(k056832, space, offset * 2 + 1, mem_mask); else - return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2, mem_mask); + return k056832_ram_word_r(k056832, space, (offset - 0x1000 / 2) * 2, mem_mask); } READ16_MEMBER(qdrmfgp_state::gp2_vram_mirror_r) @@ -146,9 +146,9 @@ READ16_MEMBER(qdrmfgp_state::gp2_vram_mirror_r) device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) - return k056832_ram_word_r(k056832, offset * 2, mem_mask); + return k056832_ram_word_r(k056832, space, offset * 2, mem_mask); else - return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2 + 1, mem_mask); + return k056832_ram_word_r(k056832, space, (offset - 0x1000 / 2) * 2 + 1, mem_mask); } WRITE16_MEMBER(qdrmfgp_state::gp2_vram_w) @@ -156,9 +156,9 @@ WRITE16_MEMBER(qdrmfgp_state::gp2_vram_w) device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) - k056832_ram_word_w(k056832, offset * 2 + 1, data, mem_mask); + k056832_ram_word_w(k056832, space, offset * 2 + 1, data, mem_mask); else - k056832_ram_word_w(k056832, (offset - 0x1000 / 2) * 2, data, mem_mask); + k056832_ram_word_w(k056832, space, (offset - 0x1000 / 2) * 2, data, mem_mask); } WRITE16_MEMBER(qdrmfgp_state::gp2_vram_mirror_w) @@ -166,9 +166,9 @@ WRITE16_MEMBER(qdrmfgp_state::gp2_vram_mirror_w) device_t *k056832 = machine().device("k056832"); if (offset < 0x1000 / 2) - k056832_ram_word_w(k056832, offset * 2, data, mem_mask); + k056832_ram_word_w(k056832, space, offset * 2, data, mem_mask); else - k056832_ram_word_w(k056832, (offset - 0x1000 / 2) * 2 + 1, data, mem_mask); + k056832_ram_word_w(k056832, space, (offset - 0x1000 / 2) * 2 + 1, data, mem_mask); } @@ -201,25 +201,25 @@ READ16_MEMBER(qdrmfgp_state::ide_std_r) { device_t *device = machine().device("ide"); if (offset & 0x01) - return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xff00) >> 8; + return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xff00) >> 8; else - return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xffff); + return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xffff); } WRITE16_MEMBER(qdrmfgp_state::ide_std_w) { device_t *device = machine().device("ide"); if (offset & 0x01) - ide_controller16_w(device, IDE_STD_OFFSET + offset/2, data << 8, 0xff00); + ide_controller16_w(device, space, IDE_STD_OFFSET + offset/2, data << 8, 0xff00); else - ide_controller16_w(device, IDE_STD_OFFSET + offset/2, data, 0xffff); + ide_controller16_w(device, space, IDE_STD_OFFSET + offset/2, data, 0xffff); } READ16_MEMBER(qdrmfgp_state::ide_alt_r) { device_t *device = machine().device("ide"); if (offset == 0) - return ide_controller16_r(device, IDE_ALT_OFFSET, 0x00ff); + return ide_controller16_r(device, space, IDE_ALT_OFFSET, 0x00ff); return 0; } @@ -228,7 +228,7 @@ WRITE16_MEMBER(qdrmfgp_state::ide_alt_w) { device_t *device = machine().device("ide"); if (offset == 0) - ide_controller16_w(device, IDE_ALT_OFFSET, data, 0x00ff); + ide_controller16_w(device, space, IDE_ALT_OFFSET, data, 0x00ff); } @@ -251,9 +251,9 @@ READ16_MEMBER(qdrmfgp_state::gp2_ide_std_r) break; } } - return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xff00) >> 8; + return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xff00) >> 8; } else { - return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xffff); + return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xffff); } } diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c index d98349271af..48f5e8e5a97 100644 --- a/src/mame/drivers/queen.c +++ b/src/mame/drivers/queen.c @@ -380,26 +380,26 @@ WRITE32_MEMBER(queen_state::bios_ram_w) READ32_MEMBER(queen_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(queen_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(queen_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(queen_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } READ8_MEMBER(queen_state::at_page8_r) @@ -448,13 +448,13 @@ WRITE8_MEMBER(queen_state::at_page8_w) READ8_MEMBER(queen_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(queen_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } WRITE_LINE_MEMBER(queen_state::pc_dma_hrq_changed) diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c index 625d2c38569..7883c48e44c 100644 --- a/src/mame/drivers/r2dtank.c +++ b/src/mame/drivers/r2dtank.c @@ -175,10 +175,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r) UINT8 ret = 0; if (m_AY8910_selected & 0x08) - ret = ay8910_r(machine().device("ay1"), 0); + ret = ay8910_r(machine().device("ay1"), space, 0); if (m_AY8910_selected & 0x10) - ret = ay8910_r(machine().device("ay2"), 0); + ret = ay8910_r(machine().device("ay2"), space, 0); return ret; } @@ -187,10 +187,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r) WRITE8_MEMBER(r2dtank_state::AY8910_port_w) { if (m_AY8910_selected & 0x08) - ay8910_data_address_w(machine().device("ay1"), m_AY8910_selected >> 2, data); + ay8910_data_address_w(machine().device("ay1"), space, m_AY8910_selected >> 2, data); if (m_AY8910_selected & 0x10) - ay8910_data_address_w(machine().device("ay2"), m_AY8910_selected >> 2, data); + ay8910_data_address_w(machine().device("ay2"), space, m_AY8910_selected >> 2, data); } @@ -252,7 +252,7 @@ static const ttl74123_interface ttl74123_intf = 1, /* A pin - driven by the CRTC */ 1, /* B pin - pulled high */ 1, /* Clear pin - pulled high */ - ttl74123_output_changed + DEVCB_HANDLER(ttl74123_output_changed) }; @@ -387,7 +387,8 @@ static MC6845_UPDATE_ROW( update_row ) WRITE_LINE_MEMBER(r2dtank_state::display_enable_changed) { - ttl74123_a_w(machine().device("74123"), 0, state); + address_space &space = generic_space(); + ttl74123_a_w(machine().device("74123"), space, 0, state); } diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c index c5716ed10b5..f98ae2f8117 100644 --- a/src/mame/drivers/rbmk.c +++ b/src/mame/drivers/rbmk.c @@ -141,7 +141,7 @@ READ8_MEMBER(rbmk_state::rbmk_mcu_io_r) { if(m_mux_data & 8) { - return ym2151_r(machine().device("ymsnd"), offset & 1); + return ym2151_r(machine().device("ymsnd"), space, offset & 1); } else if(m_mux_data & 4) { @@ -157,7 +157,7 @@ READ8_MEMBER(rbmk_state::rbmk_mcu_io_r) WRITE8_MEMBER(rbmk_state::rbmk_mcu_io_w) { - if(m_mux_data & 8) { ym2151_w(machine().device("ymsnd"), offset & 1, data); } + if(m_mux_data & 8) { ym2151_w(machine().device("ymsnd"), space, offset & 1, data); } else if(m_mux_data & 4) { //printf("%02x %02x W\n",offset,data); diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c index 9fa5a406624..53d7828da7f 100644 --- a/src/mame/drivers/rollerg.c +++ b/src/mame/drivers/rollerg.c @@ -43,9 +43,9 @@ READ8_MEMBER(rollerg_state::rollerg_k051316_r) { if (m_readzoomroms) - return k051316_rom_r(m_k051316, offset); + return k051316_rom_r(m_k051316, space, offset); else - return k051316_r(m_k051316, offset); + return k051316_r(m_k051316, space, offset); } READ8_MEMBER(rollerg_state::rollerg_sound_r) @@ -53,7 +53,7 @@ READ8_MEMBER(rollerg_state::rollerg_sound_r) device_t *device = machine().device("k053260"); /* If the sound CPU is running, read the status, otherwise just make it pass the test */ - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } WRITE8_MEMBER(rollerg_state::soundirq_w) diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index a183f81c76e..87feb2b05ad 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -894,7 +894,7 @@ READ8_MEMBER(royalmah_state::mjifb_rom_io_r) { case 0x8000: return ioport("DSW4")->read(); // dsw 4 case 0x8200: return ioport("DSW3")->read(); // dsw 3 - case 0x9001: return ay8910_r(machine().device("aysnd"), 0); // inputs + case 0x9001: return ay8910_r(machine().device("aysnd"), space, 0); // inputs case 0x9011: return ioport("SYSTEM")->read(); } @@ -916,8 +916,8 @@ WRITE8_MEMBER(royalmah_state::mjifb_rom_io_w) switch(offset) { case 0x8e00: m_palette_base = data & 0x1f; return; - case 0x9002: ay8910_data_w(machine().device("aysnd"),0,data); return; - case 0x9003: ay8910_address_w(machine().device("aysnd"),0,data); return; + case 0x9002: ay8910_data_w(machine().device("aysnd"),space,0,data); return; + case 0x9003: ay8910_address_w(machine().device("aysnd"),space,0,data); return; case 0x9010: mjifb_coin_counter_w(space,0,data); return; @@ -1003,7 +1003,7 @@ READ8_MEMBER(royalmah_state::mjdejavu_rom_io_r) { case 0x8000: return ioport("DSW2")->read(); // dsw 2 case 0x8001: return ioport("DSW1")->read(); // dsw 1 - case 0x9001: return ay8910_r(machine().device("aysnd"), 0); // inputs + case 0x9001: return ay8910_r(machine().device("aysnd"), space, 0); // inputs case 0x9011: return ioport("SYSTEM")->read(); } @@ -1024,8 +1024,8 @@ WRITE8_MEMBER(royalmah_state::mjdejavu_rom_io_w) switch(offset) { case 0x8802: m_palette_base = data & 0x1f; return; - case 0x9002: ay8910_data_w(machine().device("aysnd"),0,data); return; - case 0x9003: ay8910_address_w(machine().device("aysnd"),0,data); return; + case 0x9002: ay8910_data_w(machine().device("aysnd"),space,0,data); return; + case 0x9003: ay8910_address_w(machine().device("aysnd"),space,0,data); return; case 0x9010: mjifb_coin_counter_w(space,0,data); return; case 0x9011: input_port_select_w(space,0,data); return; case 0x9013: diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c index d5067abddea..610af4bce61 100644 --- a/src/mame/drivers/rpunch.c +++ b/src/mame/drivers/rpunch.c @@ -209,7 +209,7 @@ WRITE8_MEMBER(rpunch_state::upd_control_w) WRITE8_MEMBER(rpunch_state::upd_data_w) { device_t *device = machine().device("upd"); - upd7759_port_w(device, 0, data); + upd7759_port_w(device, space, 0, data); upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c index c148d469ec4..258905c62a1 100644 --- a/src/mame/drivers/sauro.c +++ b/src/mame/drivers/sauro.c @@ -161,7 +161,7 @@ WRITE8_MEMBER(sauro_state::flip_screen_w) WRITE8_MEMBER(sauro_state::adpcm_w) { device_t *device = machine().device("speech"); - sp0256_ALD_w(device, 0, data); + sp0256_ALD_w(device, space, 0, data); } static ADDRESS_MAP_START( sauro_map, AS_PROGRAM, 8, sauro_state ) diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c index c7a7ece6e0d..4627cf1ab6d 100644 --- a/src/mame/drivers/savquest.c +++ b/src/mame/drivers/savquest.c @@ -257,26 +257,26 @@ WRITE32_MEMBER(savquest_state::bios_ram_w) READ32_MEMBER(savquest_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(savquest_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(savquest_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(savquest_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } READ8_MEMBER(savquest_state::at_page8_r) @@ -325,13 +325,13 @@ WRITE8_MEMBER(savquest_state::at_page8_w) READ8_MEMBER(savquest_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(savquest_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } WRITE_LINE_MEMBER(savquest_state::pc_dma_hrq_changed) diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c index bde28244997..cf039de5ff2 100644 --- a/src/mame/drivers/seattle.c +++ b/src/mame/drivers/seattle.c @@ -1068,7 +1068,7 @@ static void galileo_perform_dma(address_space *space, int which) } /* write the data and advance */ - voodoo_w(state->m_voodoo, (dstaddr & 0xffffff) / 4, space->read_dword(srcaddr), 0xffffffff); + voodoo_w(state->m_voodoo, *space, (dstaddr & 0xffffff) / 4, space->read_dword(srcaddr), 0xffffffff); srcaddr += srcinc; dstaddr += dstinc; bytesleft -= 4; @@ -1353,7 +1353,7 @@ WRITE32_MEMBER(seattle_state::seattle_voodoo_w) /* if we're not stalled, just write and get out */ if (!m_voodoo_stalled) { - voodoo_w(m_voodoo, offset, data, mem_mask); + voodoo_w(m_voodoo, space, offset, data, mem_mask); return; } @@ -1419,7 +1419,10 @@ static void voodoo_stall(device_t *device, int stall) { /* if the CPU had a pending write, do it now */ if (state->m_cpu_stalled_on_voodoo) - voodoo_w(device, state->m_cpu_stalled_offset, state->m_cpu_stalled_data, state->m_cpu_stalled_mem_mask); + { + address_space &space = *device->machine().firstcpu->space(AS_PROGRAM); + voodoo_w(device, space, state->m_cpu_stalled_offset, state->m_cpu_stalled_data, state->m_cpu_stalled_mem_mask); + } state->m_cpu_stalled_on_voodoo = FALSE; /* resume CPU execution */ @@ -1523,9 +1526,9 @@ READ32_MEMBER(seattle_state::ethernet_r) { device_t *device = machine().device("ethernet"); if (!(offset & 8)) - return smc91c9x_r(device, offset & 7, mem_mask & 0xffff); + return smc91c9x_r(device, space, offset & 7, mem_mask & 0xffff); else - return smc91c9x_r(device, offset & 7, mem_mask & 0x00ff); + return smc91c9x_r(device, space, offset & 7, mem_mask & 0x00ff); } @@ -1533,9 +1536,9 @@ WRITE32_MEMBER(seattle_state::ethernet_w) { device_t *device = machine().device("ethernet"); if (!(offset & 8)) - smc91c9x_w(device, offset & 7, data & 0xffff, mem_mask | 0xffff); + smc91c9x_w(device, space, offset & 7, data & 0xffff, mem_mask | 0xffff); else - smc91c9x_w(device, offset & 7, data & 0x00ff, mem_mask | 0x00ff); + smc91c9x_w(device, space, offset & 7, data & 0x00ff, mem_mask | 0x00ff); } @@ -1589,7 +1592,7 @@ READ32_MEMBER(seattle_state::widget_r) break; case WREG_ETHER_DATA: - result = smc91c9x_r(device, m_widget.ethernet_addr & 7, mem_mask & 0xffff); + result = smc91c9x_r(device, space, m_widget.ethernet_addr & 7, mem_mask & 0xffff); break; } @@ -1621,7 +1624,7 @@ WRITE32_MEMBER(seattle_state::widget_w) break; case WREG_ETHER_DATA: - smc91c9x_w(device, m_widget.ethernet_addr & 7, data & 0xffff, mem_mask & 0xffff); + smc91c9x_w(device, space, m_widget.ethernet_addr & 7, data & 0xffff, mem_mask & 0xffff); break; } } @@ -1784,7 +1787,7 @@ READ32_MEMBER(seattle_state::seattle_ide_r) /* note that blitz times out if we don't have this cycle stealing */ if (offset == 0x3f6/4) machine().device("maincpu")->execute().eat_cycles(100); - return ide_controller32_r(device, offset, mem_mask); + return ide_controller32_r(device, space, offset, mem_mask); } static ADDRESS_MAP_START( seattle_map, AS_PROGRAM, 32, seattle_state ) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index bae76aacbba..3819ff7630e 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -174,7 +174,7 @@ static WRITE16_DEVICE_HANDLER( segac2_upd7759_w ) /* only works if we're accessing the low byte */ if (ACCESSING_BITS_0_7) { - upd7759_port_w(device, 0, data & 0xff); + upd7759_port_w(device, space, 0, data & 0xff); upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c index b8818607630..9604b9ba212 100644 --- a/src/mame/drivers/segag80r.c +++ b/src/mame/drivers/segag80r.c @@ -188,7 +188,7 @@ WRITE8_MEMBER(segag80r_state::vidram_w){ segag80r_videoram_w(space, decrypt_offs WRITE8_MEMBER(segag80r_state::monsterb_vidram_w){ monsterb_videoram_w(space, decrypt_offset(&space, offset), data); } WRITE8_MEMBER(segag80r_state::pignewt_vidram_w){ pignewt_videoram_w(space, decrypt_offset(&space, offset), data); } WRITE8_MEMBER(segag80r_state::sindbadm_vidram_w){ sindbadm_videoram_w(space, decrypt_offset(&space, offset), data); } -WRITE8_MEMBER(segag80r_state::usb_ram_w){ device_t *device = machine().device("usbsnd"); sega_usb_ram_w(device, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); } +WRITE8_MEMBER(segag80r_state::usb_ram_w){ device_t *device = machine().device("usbsnd"); sega_usb_ram_w(device, space, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); } diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c index 0c4f11d5bbb..00e0c17d039 100644 --- a/src/mame/drivers/segag80v.c +++ b/src/mame/drivers/segag80v.c @@ -202,7 +202,7 @@ WRITE8_MEMBER(segag80v_state::mainram_w) m_mainram[decrypt_offset(&space, offset)] = data; } -WRITE8_MEMBER(segag80v_state::usb_ram_w){ sega_usb_ram_w(m_usb, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); } +WRITE8_MEMBER(segag80v_state::usb_ram_w){ sega_usb_ram_w(m_usb, space, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); } WRITE8_MEMBER(segag80v_state::vectorram_w) { m_vectorram[decrypt_offset(&space, offset)] = data; diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index 3e8eef32127..a32e8ff34ec 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -455,7 +455,7 @@ READ8_MEMBER( segas16a_state::n7751_p2_r ) { // read from P2 - 8255's PC0-2 connects to 7751's S0-2 (P24-P26 on an 8048) // bit 0x80 is an alternate way to control the sample on/off; doesn't appear to be used - return 0x80 | ((m_n7751_command & 0x07) << 4) | (i8243_p2_r(m_n7751_i8243, offset) & 0x0f); + return 0x80 | ((m_n7751_command & 0x07) << 4) | (i8243_p2_r(m_n7751_i8243, space, offset) & 0x0f); } @@ -466,7 +466,7 @@ READ8_MEMBER( segas16a_state::n7751_p2_r ) WRITE8_MEMBER( segas16a_state::n7751_p2_w ) { // write to P2; low 4 bits go to 8243 - i8243_p2_w(m_n7751_i8243, offset, data & 0x0f); + i8243_p2_w(m_n7751_i8243, space, offset, data & 0x0f); // output of bit $80 indicates we are ready (1) or busy (0) // no other outputs are used diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index 34e3291c856..c0d124023b7 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -1170,7 +1170,7 @@ WRITE16_MEMBER( segas16b_state::standard_io_w ) WRITE16_MEMBER( segas16b_state::atomicp_sound_w ) { - ym2413_w(m_ym2413, offset, data >> 8); + ym2413_w(m_ym2413, space, offset, data >> 8); } diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index fc4d9d0bf4f..19e3cb474e5 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -2280,20 +2280,20 @@ ADDRESS_MAP_END WRITE16_MEMBER(seta_state::setaroul_spriteylow_w) { seta001_device *dev = machine().device<seta001_device>("spritegen"); - if ((offset&1)==0) spriteylow_w8(dev, offset>>1, (data & 0xff00) >> 8); + if ((offset&1)==0) spriteylow_w8(dev, space, offset>>1, (data & 0xff00) >> 8); } WRITE16_MEMBER(seta_state::setaroul_spritectrl_w) { seta001_device *dev = machine().device<seta001_device>("spritegen"); - if ((offset&1)==0) spritectrl_w8(dev, offset>>1, (data & 0xff00) >> 8); + if ((offset&1)==0) spritectrl_w8(dev, space, offset>>1, (data & 0xff00) >> 8); } WRITE16_MEMBER(seta_state::setaroul_spritecode_w) { seta001_device *dev = machine().device<seta001_device>("spritegen"); - if ((offset&1)==1) spritecodelow_w8(dev, offset>>1, (data & 0xff00) >> 8); - if ((offset&1)==0) spritecodehigh_w8(dev, offset>>1, (data & 0xff00) >> 8); + if ((offset&1)==1) spritecodelow_w8(dev, space, offset>>1, (data & 0xff00) >> 8); + if ((offset&1)==0) spritecodehigh_w8(dev, space, offset>>1, (data & 0xff00) >> 8); } READ16_MEMBER(seta_state::setaroul_spritecode_r) @@ -2301,9 +2301,9 @@ READ16_MEMBER(seta_state::setaroul_spritecode_r) UINT16 ret; seta001_device *dev = machine().device<seta001_device>("spritegen"); if ((offset&1)==1) - ret = spritecodelow_r8(dev, offset>>1); + ret = spritecodelow_r8(dev, space, offset>>1); else - ret = spritecodehigh_r8(dev, offset>>1); + ret = spritecodehigh_r8(dev, space, offset>>1); return ret << 8; } diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c index 3217dfd26f8..00def6d38ba 100644 --- a/src/mame/drivers/sfcbox.c +++ b/src/mame/drivers/sfcbox.c @@ -171,12 +171,12 @@ ADDRESS_MAP_END static READ8_DEVICE_HANDLER( spc_ram_100_r ) { - return spc_ram_r(device, offset + 0x100); + return spc_ram_r(device, space, offset + 0x100); } static WRITE8_DEVICE_HANDLER( spc_ram_100_w ) { - spc_ram_w(device, offset + 0x100, data); + spc_ram_w(device, space, offset + 0x100, data); } static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, sfcbox_state ) diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c index 69c782d0c3d..aaf1b64e7fe 100644 --- a/src/mame/drivers/shanghai.c +++ b/src/mame/drivers/shanghai.c @@ -80,36 +80,37 @@ static SCREEN_UPDATE_IND16( shanghai ) device_t *hd63484 = screen.machine().device("hd63484"); int x, y, b, src; - b = ((hd63484_regs_r(hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + b = ((hd63484_regs_r(hd63484, space, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xce/2, 0xffff); for (y = 0; y < 280; y++) { - for (x = 0 ; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2) + for (x = 0 ; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2) { b &= (HD63484_RAM_SIZE - 1); - src = hd63484_ram_r(hd63484, b, 0xffff); + src = hd63484_ram_r(hd63484, space, b, 0xffff); bitmap.pix16(y, x) = src & 0x00ff; bitmap.pix16(y, x + 1) = (src & 0xff00) >> 8; b++; } } - if ((hd63484_regs_r(hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300) + if ((hd63484_regs_r(hd63484, space, 0x06/2, 0xffff) & 0x0300) == 0x0300) { - int sy = (hd63484_regs_r(hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, 0x88/2, 0xffff) >> 8); - int h = hd63484_regs_r(hd63484, 0x96/2, 0xffff) & 0x0fff; - int sx = ((hd63484_regs_r(hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, 0x84/2, 0xffff) >> 8)) * 4; - int w = (hd63484_regs_r(hd63484, 0x92/2, 0xffff) & 0xff) * 4; + int sy = (hd63484_regs_r(hd63484, space, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, space, 0x88/2, 0xffff) >> 8); + int h = hd63484_regs_r(hd63484, space, 0x96/2, 0xffff) & 0x0fff; + int sx = ((hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, space, 0x84/2, 0xffff) >> 8)) * 4; + int w = (hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) & 0xff) * 4; if (sx < 0) sx = 0; // not sure about this (shangha2 title screen) - b = (((hd63484_regs_r(hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xde/2, 0xffff)); + b = (((hd63484_regs_r(hd63484, space, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xde/2, 0xffff)); for (y = sy ; y <= sy + h && y < 280 ; y++) { - for (x = 0 ; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2) + for (x = 0 ; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2) { b &= (HD63484_RAM_SIZE - 1); - src = hd63484_ram_r(hd63484, b, 0xffff); - if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 2) + src = hd63484_ram_r(hd63484, space, b, 0xffff); + if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 2) { bitmap.pix16(y, x + sx) = src & 0x00ff; bitmap.pix16(y, x + sx + 1) = (src & 0xff00) >> 8; diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c index 230d7634018..ee47d83b8a0 100644 --- a/src/mame/drivers/sigmab52.c +++ b/src/mame/drivers/sigmab52.c @@ -171,7 +171,8 @@ static SCREEN_UPDATE_IND16( jwildb52 ) int x, y, b, src; - b = ((hd63484_regs_r(hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + b = ((hd63484_regs_r(hd63484, space, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xce/2, 0xffff); //save vram to file #if 0 @@ -186,10 +187,10 @@ static SCREEN_UPDATE_IND16( jwildb52 ) for (y = 0; y < 480; y++) { - for (x = 0; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 4; x += 4) + for (x = 0; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 4; x += 4) { - src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff); + src = hd63484_ram_r(hd63484, space, b & (HD63484_RAM_SIZE - 1), 0xffff); bitmap.pix16(y, x ) = ((src & 0x000f) >> 0) << 0; bitmap.pix16(y, x + 1) = ((src & 0x00f0) >> 4) << 0; @@ -200,24 +201,24 @@ static SCREEN_UPDATE_IND16( jwildb52 ) } if (!screen.machine().input().code_pressed(KEYCODE_O)) - if ((hd63484_regs_r(hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300) + if ((hd63484_regs_r(hd63484, space, 0x06/2, 0xffff) & 0x0300) == 0x0300) { - int sy = (hd63484_regs_r(hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, 0x88/2, 0xffff) >> 8); - int h = hd63484_regs_r(hd63484, 0x96/2, 0xffff) & 0x0fff; - int sx = ((hd63484_regs_r(hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, 0x84/2, 0xffff) >> 8)) * 4; - int w = (hd63484_regs_r(hd63484, 0x92/2, 0xffff) & 0xff) * 2; + int sy = (hd63484_regs_r(hd63484, space, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, space, 0x88/2, 0xffff) >> 8); + int h = hd63484_regs_r(hd63484, space, 0x96/2, 0xffff) & 0x0fff; + int sx = ((hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, space, 0x84/2, 0xffff) >> 8)) * 4; + int w = (hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) & 0xff) * 2; if (sx < 0) sx = 0; // not sure about this (shangha2 title screen) - b = (((hd63484_regs_r(hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xde/2, 0xffff)); + b = (((hd63484_regs_r(hd63484, space, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xde/2, 0xffff)); for (y = sy; y <= sy + h && y < 480; y++) { - for (x = 0; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff)* 4; x += 4) + for (x = 0; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff)* 4; x += 4) { - src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff); + src = hd63484_ram_r(hd63484, space, b & (HD63484_RAM_SIZE - 1), 0xffff); - if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 4) + if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 4) { bitmap.pix16(y, x + sx ) = ((src & 0x000f) >> 0) << 0; bitmap.pix16(y, x + sx + 1) = ((src & 0x00f0) >> 4) << 0; @@ -249,7 +250,7 @@ WRITE8_MEMBER(sigmab52_state::acrtc_w) if(!offset) { //address select - hd63484_address_w(hd63484, 0, data, 0x00ff); + hd63484_address_w(hd63484, space, 0, data, 0x00ff); m_latch = 0; } else @@ -265,7 +266,7 @@ WRITE8_MEMBER(sigmab52_state::acrtc_w) m_acrtc_data <<= 8; m_acrtc_data |= data; - hd63484_data_w(hd63484, 0, m_acrtc_data, 0xffff); + hd63484_data_w(hd63484, space, 0, m_acrtc_data, 0xffff); } m_latch ^= 1; @@ -277,7 +278,7 @@ READ8_MEMBER(sigmab52_state::acrtc_r) if(offset&1) { device_t *hd63484 = machine().device("hd63484"); - return hd63484_data_r(hd63484, 0, 0xff); + return hd63484_data_r(hd63484, space, 0, 0xff); } else @@ -569,9 +570,10 @@ void sigmab52_state::machine_start() device_t *hd63484 = machine().device("hd63484"); + address_space &space = generic_space(); for(i = 0; i < 0x40000/2; ++i) { - hd63484_ram_w(hd63484, i + 0x40000/2, rom[i], 0xffff); + hd63484_ram_w(hd63484, space, i + 0x40000/2, rom[i], 0xffff); } } } diff --git a/src/mame/drivers/skeetsht.c b/src/mame/drivers/skeetsht.c index 940aa1fcb8e..18ddc04c4be 100644 --- a/src/mame/drivers/skeetsht.c +++ b/src/mame/drivers/skeetsht.c @@ -93,7 +93,7 @@ READ16_MEMBER(skeetsht_state::ramdac_r) if (offset & 8) offset = (offset & ~8) | 4; - return tlc34076_r(machine().device("tlc34076"), offset); + return tlc34076_r(machine().device("tlc34076"), space, offset); } WRITE16_MEMBER(skeetsht_state::ramdac_w) @@ -103,7 +103,7 @@ WRITE16_MEMBER(skeetsht_state::ramdac_w) if (offset & 8) offset = (offset & ~8) | 4; - tlc34076_w(machine().device("tlc34076"), offset, data); + tlc34076_w(machine().device("tlc34076"), space, offset, data); } @@ -163,9 +163,9 @@ WRITE8_MEMBER(skeetsht_state::ay8910_w) { if (m_ay_sel) - ay8910_data_w(m_ay, 0, data); + ay8910_data_w(m_ay, space, 0, data); else - ay8910_address_w(m_ay, 0, data); + ay8910_address_w(m_ay, space, 0, data); } diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c index fc374cd0c15..abb0068c184 100644 --- a/src/mame/drivers/skydiver.c +++ b/src/mame/drivers/skydiver.c @@ -149,11 +149,12 @@ static INTERRUPT_GEN( skydiver_interrupt ) device_t *discrete = device->machine().device("discrete"); /* Convert range data to divide value and write to sound */ - discrete_sound_w(discrete, SKYDIVER_RANGE_DATA, (0x01 << (~state->m_videoram[0x394] & 0x07)) & 0xff); // Range 0-2 + address_space &space = *device->machine().firstcpu->space(AS_PROGRAM); + discrete_sound_w(discrete, space, SKYDIVER_RANGE_DATA, (0x01 << (~state->m_videoram[0x394] & 0x07)) & 0xff); // Range 0-2 - discrete_sound_w(discrete, SKYDIVER_RANGE3_EN, state->m_videoram[0x394] & 0x08); // Range 3 - note disable - discrete_sound_w(discrete, SKYDIVER_NOTE_DATA, ~state->m_videoram[0x395] & 0xff); // Note - freq - discrete_sound_w(discrete, SKYDIVER_NOISE_DATA, state->m_videoram[0x396] & 0x0f); // NAM - Noise Amplitude + discrete_sound_w(discrete, space, SKYDIVER_RANGE3_EN, state->m_videoram[0x394] & 0x08); // Range 3 - note disable + discrete_sound_w(discrete, space, SKYDIVER_NOTE_DATA, ~state->m_videoram[0x395] & 0xff); // Note - freq + discrete_sound_w(discrete, space, SKYDIVER_NOISE_DATA, state->m_videoram[0x396] & 0x0f); // NAM - Noise Amplitude if (state->m_nmion) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); @@ -170,13 +171,13 @@ static INTERRUPT_GEN( skydiver_interrupt ) WRITE8_MEMBER(skydiver_state::skydiver_sound_enable_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SKYDIVER_SOUND_EN, offset); + discrete_sound_w(device, space, SKYDIVER_SOUND_EN, offset); } WRITE8_MEMBER(skydiver_state::skydiver_whistle_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01); + discrete_sound_w(device, space, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01); } diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index 7d263ed3a1c..24c8931feb1 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -198,7 +198,7 @@ READ16_MEMBER(slapshot_state::slapshot_service_input_r) (ioport("SERVICE")->read() & 0x10)) << 8; /* IN3 + service switch */ default: - return tc0640fio_r(m_tc0640fio, offset) << 8; + return tc0640fio_r(m_tc0640fio, space, offset) << 8; } } @@ -259,9 +259,9 @@ WRITE8_MEMBER(slapshot_state::sound_bankswitch_w) WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w) { if (offset == 0) - tc0140syt_port_w(m_tc0140syt, 0, (data >> 8) & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, (data >> 8) & 0xff); else if (offset == 1) - tc0140syt_comm_w(m_tc0140syt, 0, (data >> 8) & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, (data >> 8) & 0xff); #ifdef MAME_DEBUG if (data & 0xff) @@ -272,7 +272,7 @@ WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w) READ16_MEMBER(slapshot_state::slapshot_msb_sound_r) { if (offset == 1) - return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff) << 8); + return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff) << 8); else return 0; } diff --git a/src/mame/drivers/snesb.c b/src/mame/drivers/snesb.c index 1b7ffc17dfb..6c7e4d6cbb6 100644 --- a/src/mame/drivers/snesb.c +++ b/src/mame/drivers/snesb.c @@ -247,12 +247,12 @@ ADDRESS_MAP_END static READ8_DEVICE_HANDLER( spc_ram_100_r ) { - return spc_ram_r(device, offset + 0x100); + return spc_ram_r(device, space, offset + 0x100); } static WRITE8_DEVICE_HANDLER( spc_ram_100_w ) { - spc_ram_w(device, offset + 0x100, data); + spc_ram_w(device, space, offset + 0x100, data); } static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, snesb_state ) diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c index e1056cfeef3..02b9fc4f100 100644 --- a/src/mame/drivers/snk.c +++ b/src/mame/drivers/snk.c @@ -484,7 +484,7 @@ static const ym3812_interface ym3812_config_1 = static const y8950_interface y8950_config_2 = { - ymirq_callback_2 + DEVCB_LINE(ymirq_callback_2) }; diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c index 051f1c9fe48..0187a0580f4 100644 --- a/src/mame/drivers/snk68.c +++ b/src/mame/drivers/snk68.c @@ -165,7 +165,7 @@ ADDRESS_MAP_END WRITE8_MEMBER(snk68_state::D7759_write_port_0_w) { device_t *device = machine().device("upd"); - upd7759_port_w(device, 0, data); + upd7759_port_w(device, space, 0, data); upd7759_start_w(device, 0); upd7759_start_w(device, 1); } diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c index 0cc40425242..fd11bcfff0d 100644 --- a/src/mame/drivers/spiders.c +++ b/src/mame/drivers/spiders.c @@ -387,7 +387,7 @@ static const ttl74123_interface ic60_intf = 1, /* A pin - driven by the CRTC */ 1, /* B pin - pulled high */ 1, /* Clear pin - pulled high */ - ic60_74123_output_changed + DEVCB_HANDLER(ic60_74123_output_changed) }; @@ -500,7 +500,8 @@ static MC6845_UPDATE_ROW( update_row ) WRITE_LINE_MEMBER(spiders_state::display_enable_changed) { - ttl74123_a_w(machine().device("ic60"), 0, state); + address_space &space = generic_space(); + ttl74123_a_w(machine().device("ic60"), space, 0, state); } diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index 24d9c8c2019..1ab98d5cd22 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -102,9 +102,10 @@ static INTERRUPT_GEN( sprint2 ) } } - discrete_sound_w(discrete, SPRINT2_MOTORSND1_DATA, state->m_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA - discrete_sound_w(discrete, SPRINT2_MOTORSND2_DATA, state->m_video_ram[0x395] & 15); - discrete_sound_w(discrete, SPRINT2_CRASHSND_DATA, state->m_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA + address_space &space = *device->machine().firstcpu->space(AS_PROGRAM); + discrete_sound_w(discrete, space, SPRINT2_MOTORSND1_DATA, state->m_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA + discrete_sound_w(discrete, space, SPRINT2_MOTORSND2_DATA, state->m_video_ram[0x395] & 15); + discrete_sound_w(discrete, space, SPRINT2_CRASHSND_DATA, state->m_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA /* interrupts and watchdog are disabled during service mode */ @@ -212,14 +213,14 @@ WRITE8_MEMBER(sprint2_state::sprint2_attract_w) m_attract = offset & 1; // also DOMINOS_ATTRACT_EN - discrete_sound_w(device, SPRINT2_ATTRACT_EN, m_attract); + discrete_sound_w(device, space, SPRINT2_ATTRACT_EN, m_attract); } WRITE8_MEMBER(sprint2_state::sprint2_noise_reset_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT2_NOISE_RESET, 0); + discrete_sound_w(device, space, SPRINT2_NOISE_RESET, 0); } @@ -227,13 +228,13 @@ WRITE8_MEMBER(sprint2_state::sprint2_skid1_w) { device_t *device = machine().device("discrete"); // also DOMINOS_TUMBLE_EN - discrete_sound_w(device, SPRINT2_SKIDSND1_EN, offset & 1); + discrete_sound_w(device, space, SPRINT2_SKIDSND1_EN, offset & 1); } WRITE8_MEMBER(sprint2_state::sprint2_skid2_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT2_SKIDSND2_EN, offset & 1); + discrete_sound_w(device, space, SPRINT2_SKIDSND2_EN, offset & 1); } diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index 9e6dc99a7c2..7f906f3529a 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -187,28 +187,28 @@ WRITE8_MEMBER(sprint4_state::sprint4_lockout_w) WRITE8_MEMBER(sprint4_state::sprint4_screech_1_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT4_SCREECH_EN_1, offset & 1); + discrete_sound_w(device, space, SPRINT4_SCREECH_EN_1, offset & 1); } WRITE8_MEMBER(sprint4_state::sprint4_screech_2_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT4_SCREECH_EN_2, offset & 1); + discrete_sound_w(device, space, SPRINT4_SCREECH_EN_2, offset & 1); } WRITE8_MEMBER(sprint4_state::sprint4_screech_3_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT4_SCREECH_EN_3, offset & 1); + discrete_sound_w(device, space, SPRINT4_SCREECH_EN_3, offset & 1); } WRITE8_MEMBER(sprint4_state::sprint4_screech_4_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT4_SCREECH_EN_4, offset & 1); + discrete_sound_w(device, space, SPRINT4_SCREECH_EN_4, offset & 1); } @@ -217,14 +217,14 @@ WRITE8_MEMBER(sprint4_state::sprint4_screech_4_w) WRITE8_MEMBER(sprint4_state::sprint4_bang_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT4_BANG_DATA, data & 0x0f); + discrete_sound_w(device, space, SPRINT4_BANG_DATA, data & 0x0f); } WRITE8_MEMBER(sprint4_state::sprint4_attract_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, SPRINT4_ATTRACT_EN, data & 1); + discrete_sound_w(device, space, SPRINT4_ATTRACT_EN, data & 1); } diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c index e06eacefb0c..fb4090239da 100644 --- a/src/mame/drivers/spy.c +++ b/src/mame/drivers/spy.c @@ -356,25 +356,25 @@ READ8_MEMBER(spy_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(spy_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } static ADDRESS_MAP_START( spy_map, AS_PROGRAM, 8, spy_state ) diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c index a6a92766c42..c5c6c1e4283 100644 --- a/src/mame/drivers/starshp1.c +++ b/src/mame/drivers/starshp1.c @@ -30,26 +30,26 @@ WRITE8_MEMBER(starshp1_state::starshp1_audio_w) { case 0: m_attract = data; - discrete_sound_w(device, STARSHP1_ATTRACT, data); + discrete_sound_w(device, space, STARSHP1_ATTRACT, data); break; case 1: m_phasor = data; - discrete_sound_w(device, STARSHP1_PHASOR_ON, data); + discrete_sound_w(device, space, STARSHP1_PHASOR_ON, data); break; case 2: - discrete_sound_w(device, STARSHP1_KICKER, data); + discrete_sound_w(device, space, STARSHP1_KICKER, data); break; case 3: - discrete_sound_w(device, STARSHP1_SL1, data); + discrete_sound_w(device, space, STARSHP1_SL1, data); break; case 4: - discrete_sound_w(device, STARSHP1_SL2, data); + discrete_sound_w(device, space, STARSHP1_SL2, data); break; case 5: - discrete_sound_w(device, STARSHP1_MOLVL, data); + discrete_sound_w(device, space, STARSHP1_MOLVL, data); break; case 6: - discrete_sound_w(device, STARSHP1_NOISE_FREQ, data); + discrete_sound_w(device, space, STARSHP1_NOISE_FREQ, data); break; } @@ -109,13 +109,13 @@ WRITE8_MEMBER(starshp1_state::starshp1_analog_out_w) m_ship_size = data; break; case 2: - discrete_sound_w(device, STARSHP1_NOISE_AMPLITUDE, data); + discrete_sound_w(device, space, STARSHP1_NOISE_AMPLITUDE, data); break; case 3: - discrete_sound_w(device, STARSHP1_TONE_PITCH, data); + discrete_sound_w(device, space, STARSHP1_TONE_PITCH, data); break; case 4: - discrete_sound_w(device, STARSHP1_MOTOR_SPEED, data); + discrete_sound_w(device, space, STARSHP1_MOTOR_SPEED, data); break; case 5: m_circle_hpos = data; diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c index 4a3ab4e5e28..2a31a76d128 100644 --- a/src/mame/drivers/surpratk.c +++ b/src/mame/drivers/surpratk.c @@ -36,7 +36,7 @@ READ8_MEMBER(surpratk_state::bankedram_r) return m_generic_paletteram_8[offset]; } else if (m_videobank & 0x01) - return k053245_r(m_k053244, offset); + return k053245_r(m_k053244, space, offset); else return m_ram[offset]; } @@ -52,7 +52,7 @@ WRITE8_MEMBER(surpratk_state::bankedram_w) paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset,data); } else if (m_videobank & 0x01) - k053245_w(m_k053244, offset, data); + k053245_w(m_k053244, space, offset, data); else m_ram[offset] = data; } diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index dd49d7bddde..930f003744d 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -481,7 +481,7 @@ WRITE8_MEMBER(system1_state::sound_control_w) machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); /* remaining bits are used for video RAM banking */ - system1_videoram_bank_w(device, offset, data); + system1_videoram_bank_w(device, space, offset, data); } diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index 9a754709cc0..eae7bfb4f24 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -478,18 +478,18 @@ READ16_MEMBER(taitob_state::pbobble_input_bypass_r) return ioport("COIN")->read() << 8; default: - return tc0640fio_r(m_tc0640fio, offset) << 8; + return tc0640fio_r(m_tc0640fio, space, offset) << 8; } } WRITE16_MEMBER(taitob_state::spacedxo_tc0220ioc_w) { if (ACCESSING_BITS_0_7) - tc0220ioc_w(m_tc0220ioc, offset, data & 0xff); + tc0220ioc_w(m_tc0220ioc, space, offset, data & 0xff); else { /* &spacedxo also writes here - bug? */ - tc0220ioc_w(m_tc0220ioc, offset, (data >> 8) & 0xff); + tc0220ioc_w(m_tc0220ioc, space, offset, (data >> 8) & 0xff); } } @@ -731,7 +731,7 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state ) AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE_LEGACY("hd63484", hd63484_status_r, hd63484_address_w) AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE_LEGACY("hd63484", hd63484_data_r, hd63484_data_w) // AM_RANGE(0x320000, 0x320001) AM_READ_LEGACY(SMH_NOP) // ? - AM_RANGE(0x320002, 0x320003) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, 0xff00) + AM_RANGE(0x320002, 0x320003) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_comm_w, 0xff00) ADDRESS_MAP_END static ADDRESS_MAP_START( masterw_sound_map, AS_PROGRAM, 8, taitob_state ) diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c index 6e82ad8dca8..5da35666620 100644 --- a/src/mame/drivers/taito_h.c +++ b/src/mame/drivers/taito_h.c @@ -183,7 +183,7 @@ READ8_MEMBER(taitoh_state::syvalion_input_bypass_r) { /* Bypass TC0220IOC controller for analog input */ - UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */ + UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */ switch( port ) { @@ -224,7 +224,7 @@ READ8_MEMBER(taitoh_state::syvalion_input_bypass_r) return 0x00; default: - return tc0220ioc_portreg_r(m_tc0220ioc, offset); + return tc0220ioc_portreg_r(m_tc0220ioc, space, offset); } } diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index 92235577d5b..5bc74e000d5 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -487,7 +487,7 @@ READ8_MEMBER(taitol_state::extport_select_and_ym2203_r) { device_t *device = machine().device("ymsnd"); m_extport = (offset >> 1) & 1; - return ym2203_r(device, offset & 1); + return ym2203_r(device, space, offset & 1); } WRITE8_MEMBER(taitol_state::mcu_data_w) diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index 59fe28c9ef3..11ce7b4fb99 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -1106,7 +1106,7 @@ WRITE16_MEMBER(taitoz_state::spacegun_output_bypass_w) break; default: - tc0220ioc_w(m_tc0220ioc, offset, data); /* might be a 510NIO ! */ + tc0220ioc_w(m_tc0220ioc, space, offset, data); /* might be a 510NIO ! */ } } @@ -1127,7 +1127,7 @@ READ8_MEMBER(taitoz_state::contcirc_input_bypass_r) { /* Bypass TC0220IOC controller for analog input */ - UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */ + UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */ UINT16 steer = 0xff80 + ioport("STEER")->read_safe(0x80); switch (port) @@ -1139,7 +1139,7 @@ READ8_MEMBER(taitoz_state::contcirc_input_bypass_r) return steer >> 8; default: - return tc0220ioc_portreg_r(m_tc0220ioc, offset); + return tc0220ioc_portreg_r(m_tc0220ioc, space, offset); } } @@ -1148,7 +1148,7 @@ READ8_MEMBER(taitoz_state::chasehq_input_bypass_r) { /* Bypass TC0220IOC controller for extra inputs */ - UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */ + UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */ UINT16 steer = 0xff80 + ioport("STEER")->read_safe(0x80); switch (port) @@ -1172,7 +1172,7 @@ READ8_MEMBER(taitoz_state::chasehq_input_bypass_r) return steer >> 8; default: - return tc0220ioc_portreg_r(m_tc0220ioc, offset); + return tc0220ioc_portreg_r(m_tc0220ioc, space, offset); } } @@ -1261,7 +1261,7 @@ READ16_MEMBER(taitoz_state::spacegun_input_bypass_r) return m_eeprom->read_bit() << 7; default: - return tc0220ioc_r(m_tc0220ioc, offset); /* might be a 510NIO ! */ + return tc0220ioc_r(m_tc0220ioc, space, offset); /* might be a 510NIO ! */ } } @@ -1422,9 +1422,9 @@ WRITE8_MEMBER(taitoz_state::sound_bankswitch_w) WRITE16_MEMBER(taitoz_state::taitoz_sound_w) { if (offset == 0) - tc0140syt_port_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff); else if (offset == 1) - tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff); #ifdef MAME_DEBUG // if (data & 0xff00) @@ -1440,7 +1440,7 @@ WRITE16_MEMBER(taitoz_state::taitoz_sound_w) READ16_MEMBER(taitoz_state::taitoz_sound_r) { if (offset == 1) - return (tc0140syt_comm_r(m_tc0140syt, 0) & 0xff); + return (tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff); else return 0; } diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c index 01c5cf818c9..ffe5293a405 100644 --- a/src/mame/drivers/taitogn.c +++ b/src/mame/drivers/taitogn.c @@ -424,7 +424,7 @@ static UINT8 rf5c296_reg_r(ATTR_UNUSED running_machine &machine, UINT8 reg) WRITE32_MEMBER(taitogn_state::rf5c296_io_w) { if(offset < 2) { - ide_controller32_pcmcia_w(machine().device(":card"), offset, data, mem_mask); + ide_controller32_pcmcia_w(machine().device(":card"), space, offset, data, mem_mask); return; } @@ -439,7 +439,7 @@ WRITE32_MEMBER(taitogn_state::rf5c296_io_w) READ32_MEMBER(taitogn_state::rf5c296_io_r) { if(offset < 2) - return ide_controller32_pcmcia_r(machine().device(":card"), offset, mem_mask); + return ide_controller32_pcmcia_r(machine().device(":card"), space, offset, mem_mask); offset *= 4; diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 0074351a509..1f9c13ae93d 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -119,13 +119,13 @@ static void ide_interrupt(device_t *device, int state); READ8_MEMBER(taitowlf_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(taitowlf_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } // Intel 82439TX System Controller (MXTC) @@ -295,26 +295,26 @@ WRITE32_MEMBER(taitowlf_state::pnp_data_w) READ32_MEMBER(taitowlf_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(taitowlf_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(taitowlf_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(taitowlf_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c index 118adaa54e2..76fe1dc8433 100644 --- a/src/mame/drivers/tank8.c +++ b/src/mame/drivers/tank8.c @@ -47,19 +47,19 @@ WRITE8_MEMBER(tank8_state::tank8_int_reset_w) WRITE8_MEMBER(tank8_state::tank8_crash_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, TANK8_CRASH_EN, data); + discrete_sound_w(device, space, TANK8_CRASH_EN, data); } WRITE8_MEMBER(tank8_state::tank8_explosion_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, TANK8_EXPLOSION_EN, data); + discrete_sound_w(device, space, TANK8_EXPLOSION_EN, data); } WRITE8_MEMBER(tank8_state::tank8_bugle_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, TANK8_BUGLE_EN, data); + discrete_sound_w(device, space, TANK8_BUGLE_EN, data); } WRITE8_MEMBER(tank8_state::tank8_bug_w) @@ -68,20 +68,20 @@ WRITE8_MEMBER(tank8_state::tank8_bug_w) /* D0 and D1 determine the on/off time off the square wave */ switch(data & 3) { case 0: - discrete_sound_w(device, TANK8_BUGLE_DATA1,8.0); - discrete_sound_w(device, TANK8_BUGLE_DATA2,4.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA2,4.0); break; case 1: - discrete_sound_w(device, TANK8_BUGLE_DATA1,8.0); - discrete_sound_w(device, TANK8_BUGLE_DATA2,7.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA2,7.0); break; case 2: - discrete_sound_w(device, TANK8_BUGLE_DATA1,8.0); - discrete_sound_w(device, TANK8_BUGLE_DATA2,2.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA2,2.0); break; case 3: - discrete_sound_w(device, TANK8_BUGLE_DATA1,16.0); - discrete_sound_w(device, TANK8_BUGLE_DATA2,4.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA1,16.0); + discrete_sound_w(device, space, TANK8_BUGLE_DATA2,4.0); break; } @@ -90,13 +90,13 @@ WRITE8_MEMBER(tank8_state::tank8_bug_w) WRITE8_MEMBER(tank8_state::tank8_attract_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, TANK8_ATTRACT_EN, data); + discrete_sound_w(device, space, TANK8_ATTRACT_EN, data); } WRITE8_MEMBER(tank8_state::tank8_motor_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data); + discrete_sound_w(device, space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data); } static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state ) diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c index 455a1d6b296..6615295592e 100644 --- a/src/mame/drivers/thunderx.c +++ b/src/mame/drivers/thunderx.c @@ -373,25 +373,25 @@ READ8_MEMBER(thunderx_state::k052109_051960_r) if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE) { if (offset >= 0x3800 && offset < 0x3808) - return k051937_r(m_k051960, offset - 0x3800); + return k051937_r(m_k051960, space, offset - 0x3800); else if (offset < 0x3c00) - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); else - return k051960_r(m_k051960, offset - 0x3c00); + return k051960_r(m_k051960, space, offset - 0x3c00); } else - return k052109_r(m_k052109, offset); + return k052109_r(m_k052109, space, offset); } WRITE8_MEMBER(thunderx_state::k052109_051960_w) { if (offset >= 0x3800 && offset < 0x3808) - k051937_w(m_k051960, offset - 0x3800, data); + k051937_w(m_k051960, space, offset - 0x3800, data); else if (offset < 0x3c00) - k052109_w(m_k052109, offset, data); + k052109_w(m_k052109, space, offset, data); else - k051960_w(m_k051960, offset - 0x3c00, data); + k051960_w(m_k051960, space, offset - 0x3c00, data); } /***************************************************************************/ diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index b995f904356..94749f2846a 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -86,7 +86,7 @@ READ16_MEMBER(tmnt_state::k052109_word_noA12_r) /* some games have the A12 line not connected, so the chip spans */ /* twice the memory range, with mirroring */ offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff); - return k052109_word_r(m_k052109, offset, mem_mask); + return k052109_word_r(m_k052109, space, offset, mem_mask); } WRITE16_MEMBER(tmnt_state::k052109_word_noA12_w) @@ -95,7 +95,7 @@ WRITE16_MEMBER(tmnt_state::k052109_word_noA12_w) /* some games have the A12 line not connected, so the chip spans */ /* twice the memory range, with mirroring */ offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff); - k052109_word_w(m_k052109, offset, data, mem_mask); + k052109_word_w(m_k052109, space, offset, data, mem_mask); } WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_w) @@ -104,9 +104,9 @@ WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_w) /* it seems that a word write is supposed to affect only the MSB. The */ /* "ROUND 1" text in punkshtj goes lost otherwise. */ if (ACCESSING_BITS_8_15) - k052109_w(m_k052109, offset, (data >> 8) & 0xff); + k052109_w(m_k052109, space, offset, (data >> 8) & 0xff); else if (ACCESSING_BITS_0_7) - k052109_w(m_k052109, offset + 0x2000, data & 0xff); + k052109_w(m_k052109, space, offset + 0x2000, data & 0xff); } WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_noA12_w) @@ -129,7 +129,7 @@ READ16_MEMBER(tmnt_state::k053245_scattered_word_r) else { offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3); - return k053245_word_r(m_k053245, offset, mem_mask); + return k053245_word_r(m_k053245, space, offset, mem_mask); } } @@ -141,7 +141,7 @@ WRITE16_MEMBER(tmnt_state::k053245_scattered_word_w) if (!(offset & 0x0031)) { offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3); - k053245_word_w(m_k053245, offset, data, mem_mask); + k053245_word_w(m_k053245, space, offset, data, mem_mask); } } @@ -150,7 +150,7 @@ READ16_MEMBER(tmnt_state::k053244_word_noA1_r) offset &= ~1; /* handle mirror address */ - return k053244_r(m_k053245, offset + 1) | (k053244_r(m_k053245, offset) << 8); + return k053244_r(m_k053245, space, offset + 1) | (k053244_r(m_k053245, space, offset) << 8); } WRITE16_MEMBER(tmnt_state::k053244_word_noA1_w) @@ -159,9 +159,9 @@ WRITE16_MEMBER(tmnt_state::k053244_word_noA1_w) offset &= ~1; /* handle mirror address */ if (ACCESSING_BITS_8_15) - k053244_w(m_k053245, offset, (data >> 8) & 0xff); + k053244_w(m_k053245, space, offset, (data >> 8) & 0xff); if (ACCESSING_BITS_0_7) - k053244_w(m_k053245, offset + 1, data & 0xff); + k053244_w(m_k053245, space, offset + 1, data & 0xff); } static INTERRUPT_GEN(cuebrick_interrupt) @@ -201,13 +201,13 @@ READ8_MEMBER(tmnt_state::punkshot_sound_r) device_t *device = machine().device("k053260"); /* If the sound CPU is running, read the status, otherwise just make it pass the test */ - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } WRITE8_MEMBER(tmnt_state::glfgreat_sound_w) { device_t *device = machine().device("k053260"); - k053260_w(device, offset, data); + k053260_w(device, space, offset, data); if (offset) m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); @@ -376,7 +376,7 @@ READ16_MEMBER(tmnt_state::ssriders_protection_r) data = -space.read_word(0x105818); data = ((data / 8 - 4) & 0x1f) * 0x40; data += ((space.read_word(0x105cb0) + - 256 * k052109_r(m_k052109, 0x1a01) + k052109_r(m_k052109, 0x1a00) - 6) / 8 + 12) & 0x3f; + 256 * k052109_r(m_k052109, space, 0x1a01) + k052109_r(m_k052109, space, 0x1a00) - 6) / 8 + 12) & 0x3f; return data; default: @@ -403,7 +403,7 @@ WRITE16_MEMBER(tmnt_state::ssriders_protection_w) { if ((space.read_word(0x180006 + 128 * i) >> 8) == logical_pri) { - k053245_word_w(m_k053245, 8 * i, hardware_pri, 0x00ff); + k053245_word_w(m_k053245, space, 8 * i, hardware_pri, 0x00ff); hardware_pri++; } } @@ -697,7 +697,7 @@ WRITE16_MEMBER(tmnt_state::k053251_glfgreat_w) if (ACCESSING_BITS_8_15) { - k053251_w(m_k053251, offset, (data >> 8) & 0xff); + k053251_w(m_k053251, space, offset, (data >> 8) & 0xff); /* FIXME: in the old code k052109 tilemaps were tilemaps 2,3,4 for k053251 and got marked as dirty in the write above... how was the original hardware working?!? */ @@ -785,7 +785,7 @@ static void tmnt2_put_word( address_space *space, UINT32 addr, UINT16 data ) if (!(offs & 0x0031)) { offs = ((offs & 0x000e) >> 1) | ((offs & 0x1fc0) >> 3); - k053245_word_w(state->m_k053245, offs, data, 0xffff); + k053245_word_w(state->m_k053245, *space, offs, data, 0xffff); } } else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2) diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index d3ed361a3d5..bb222689dc0 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -855,8 +855,8 @@ WRITE8_MEMBER(toaplan2_state::raizing_oki_bankswitch_w) { nmk112_device *nmk112 = machine().device<nmk112_device>("nmk112"); - nmk112_okibank_w(nmk112, offset, data & 0x0f); - nmk112_okibank_w(nmk112, offset + 1, (data >> 4) & 0x0f); + nmk112_okibank_w(nmk112, space, offset, data & 0x0f); + nmk112_okibank_w(nmk112, space, offset + 1, (data >> 4) & 0x0f); } diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c index 568abaee859..4d021fcdb6f 100644 --- a/src/mame/drivers/topspeed.c +++ b/src/mame/drivers/topspeed.c @@ -359,7 +359,7 @@ static INTERRUPT_GEN( topspeed_cpub_interrupt ) READ8_MEMBER(topspeed_state::topspeed_input_bypass_r) { - UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */ + UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */ UINT16 steer = 0xff80 + ioport("STEER")->read_safe(0); switch (port) @@ -371,7 +371,7 @@ READ8_MEMBER(topspeed_state::topspeed_input_bypass_r) return steer >> 8; default: - return tc0220ioc_portreg_r(m_tc0220ioc, offset); + return tc0220ioc_portreg_r(m_tc0220ioc, space, offset); } } @@ -424,7 +424,7 @@ WRITE8_MEMBER(topspeed_state::sound_bankswitch_w)/* assumes Z80 sandwiched betwe static WRITE8_DEVICE_HANDLER( topspeed_tc0140syt_comm_w ) { device->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); - tc0140syt_comm_w(device, 0, data); + tc0140syt_comm_w(device, space, 0, data); } static void topspeed_msm5205_clock( device_t *device, int chip ) diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c index d72ef25b699..28f1c78a333 100644 --- a/src/mame/drivers/triplhnt.c +++ b/src/mame/drivers/triplhnt.c @@ -32,11 +32,11 @@ void triplhnt_set_collision(running_machine &machine, int code) } -static void triplhnt_update_misc(running_machine &machine, int offset) +static void triplhnt_update_misc(address_space &space, int offset) { - triplhnt_state *state = machine.driver_data<triplhnt_state>(); - samples_device *samples = machine.device<samples_device>("samples"); - device_t *discrete = machine.device("discrete"); + triplhnt_state *state = space.machine().driver_data<triplhnt_state>(); + samples_device *samples = space.machine().device<samples_device>("samples"); + device_t *discrete = space.machine().device("discrete"); UINT8 is_witch_hunt; UINT8 bit = offset >> 1; @@ -66,16 +66,16 @@ static void triplhnt_update_misc(running_machine &machine, int offset) state->m_sprite_zoom = (state->m_misc_flags >> 4) & 1; state->m_sprite_bank = (state->m_misc_flags >> 7) & 1; - set_led_status(machine, 0, state->m_misc_flags & 0x02); + set_led_status(space.machine(), 0, state->m_misc_flags & 0x02); - coin_lockout_w(machine, 0, !(state->m_misc_flags & 0x08)); - coin_lockout_w(machine, 1, !(state->m_misc_flags & 0x08)); + coin_lockout_w(space.machine(), 0, !(state->m_misc_flags & 0x08)); + coin_lockout_w(space.machine(), 1, !(state->m_misc_flags & 0x08)); - discrete_sound_w(discrete, TRIPLHNT_SCREECH_EN, state->m_misc_flags & 0x04); // screech - discrete_sound_w(discrete, TRIPLHNT_LAMP_EN, state->m_misc_flags & 0x02); // Lamp is used to reset noise - discrete_sound_w(discrete, TRIPLHNT_BEAR_EN, state->m_misc_flags & 0x80); // bear + discrete_sound_w(discrete, space, TRIPLHNT_SCREECH_EN, state->m_misc_flags & 0x04); // screech + discrete_sound_w(discrete, space, TRIPLHNT_LAMP_EN, state->m_misc_flags & 0x02); // Lamp is used to reset noise + discrete_sound_w(discrete, space, TRIPLHNT_BEAR_EN, state->m_misc_flags & 0x80); // bear - is_witch_hunt = machine.root_device().ioport("0C09")->read() == 0x40; + is_witch_hunt = space.machine().root_device().ioport("0C09")->read() == 0x40; bit = ~state->m_misc_flags & 0x40; /* if we're not playing the sample yet, start it */ @@ -92,7 +92,7 @@ static void triplhnt_update_misc(running_machine &machine, int offset) WRITE8_MEMBER(triplhnt_state::triplhnt_misc_w) { - triplhnt_update_misc(machine(), offset); + triplhnt_update_misc(space, offset); } @@ -113,7 +113,7 @@ READ8_MEMBER(triplhnt_state::triplhnt_input_port_4_r) READ8_MEMBER(triplhnt_state::triplhnt_misc_r) { - triplhnt_update_misc(machine(), offset); + triplhnt_update_misc(space, offset); return ioport("VBLANK")->read() | m_hit_code; } diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c index d6f045d7057..50543630e53 100644 --- a/src/mame/drivers/uapce.c +++ b/src/mame/drivers/uapce.c @@ -157,7 +157,7 @@ WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w) 752 Hz (D-3) square wave to be output on the common audio path. (1= Tone output ON, 0= Tone output OFF) */ - discrete_sound_w(machine().device("discrete"), UAPCE_SOUND_EN, BIT(data,3)); + discrete_sound_w(machine().device("discrete"), space, UAPCE_SOUND_EN, BIT(data,3)); /* D2 : Not latched, though software writes to this bit like it is. */ diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index f24a4eb093a..72ea3e7b86f 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -130,22 +130,22 @@ WRITE8_MEMBER(ultratnk_state::ultratnk_lockout_w) WRITE8_MEMBER(ultratnk_state::ultratnk_fire_1_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, ULTRATNK_FIRE_EN_1, offset & 1); + discrete_sound_w(device, space, ULTRATNK_FIRE_EN_1, offset & 1); } WRITE8_MEMBER(ultratnk_state::ultratnk_fire_2_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, ULTRATNK_FIRE_EN_2, offset & 1); + discrete_sound_w(device, space, ULTRATNK_FIRE_EN_2, offset & 1); } WRITE8_MEMBER(ultratnk_state::ultratnk_attract_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, ULTRATNK_ATTRACT_EN, data & 1); + discrete_sound_w(device, space, ULTRATNK_ATTRACT_EN, data & 1); } WRITE8_MEMBER(ultratnk_state::ultratnk_explosion_w) { device_t *device = machine().device("discrete"); - discrete_sound_w(device, ULTRATNK_EXPLOSION_DATA, data & 15); + discrete_sound_w(device, space, ULTRATNK_EXPLOSION_DATA, data & 15); } diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c index d528afd3ab3..c17e7ff5e15 100644 --- a/src/mame/drivers/ultrsprt.c +++ b/src/mame/drivers/ultrsprt.c @@ -136,10 +136,10 @@ READ16_MEMBER(ultrsprt_state::K056800_68k_r) UINT16 r = 0; if (ACCESSING_BITS_8_15) - r |= k056800_sound_r(k056800, (offset*2)+0, 0xffff) << 8; + r |= k056800_sound_r(k056800, space, (offset*2)+0, 0xffff) << 8; if (ACCESSING_BITS_0_7) - r |= k056800_sound_r(k056800, (offset*2)+1, 0xffff) << 0; + r |= k056800_sound_r(k056800, space, (offset*2)+1, 0xffff) << 0; return r; } @@ -149,10 +149,10 @@ WRITE16_MEMBER(ultrsprt_state::K056800_68k_w) device_t *k056800 = machine().device("k056800"); if (ACCESSING_BITS_8_15) - k056800_sound_w(k056800, (offset*2)+0, (data >> 8) & 0xff, 0x00ff); + k056800_sound_w(k056800, space, (offset*2)+0, (data >> 8) & 0xff, 0x00ff); if (ACCESSING_BITS_0_7) - k056800_sound_w(k056800, (offset*2)+1, (data >> 0) & 0xff, 0x00ff); + k056800_sound_w(k056800, space, (offset*2)+1, (data >> 0) & 0xff, 0x00ff); } static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, ultrsprt_state ) diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c index 09da3fd90ff..0d219df9fa0 100644 --- a/src/mame/drivers/vega.c +++ b/src/mame/drivers/vega.c @@ -167,7 +167,7 @@ WRITE8_MEMBER(vega_state::extern_w) case 1: /* 04-07 */ { /* AY 3-8910 */ - ay8910_address_w(m_ay8910, 0, offset); + ay8910_address_w(m_ay8910, space, 0, offset); } break; @@ -182,7 +182,7 @@ WRITE8_MEMBER(vega_state::extern_w) else { //register w ? - ins8154_w(m_ins8154,offset&0x7f,data); + ins8154_w(m_ins8154,space,offset&0x7f,data); } } break; @@ -296,7 +296,7 @@ READ8_MEMBER(vega_state::extern_r) case 1: /* 04-07 */ { /* AY 3-8910 */ - ay8910_data_w(m_ay8910, 0, offset); + ay8910_data_w(m_ay8910, space, 0, offset); return 0xff;//mame_rand(space->machine); } @@ -313,7 +313,7 @@ READ8_MEMBER(vega_state::extern_r) else { //register r ? - return ins8154_r(m_ins8154,offset&0x7f); + return ins8154_r(m_ins8154,space,offset&0x7f); } } diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c index 14ff7b1720d..870027d4800 100644 --- a/src/mame/drivers/vegas.c +++ b/src/mame/drivers/vegas.c @@ -1464,25 +1464,25 @@ static WRITE32_HANDLER( asic_fifo_w ) static READ32_DEVICE_HANDLER( ide_main_r ) { - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } static WRITE32_DEVICE_HANDLER( ide_main_w ) { - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } static READ32_DEVICE_HANDLER( ide_alt_r ) { - return ide_controller32_r(device, 0x3f4/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f4/4 + offset, mem_mask); } static WRITE32_DEVICE_HANDLER( ide_alt_w ) { - ide_controller32_w(device, 0x3f4/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f4/4 + offset, data, mem_mask); } @@ -1490,9 +1490,9 @@ static READ32_DEVICE_HANDLER( ethernet_r ) { UINT32 result = 0; if (ACCESSING_BITS_0_15) - result |= smc91c9x_r(device, offset * 2 + 0, mem_mask); + result |= smc91c9x_r(device, space, offset * 2 + 0, mem_mask); if (ACCESSING_BITS_16_31) - result |= smc91c9x_r(device, offset * 2 + 1, mem_mask >> 16) << 16; + result |= smc91c9x_r(device, space, offset * 2 + 1, mem_mask >> 16) << 16; return result; } @@ -1500,9 +1500,9 @@ static READ32_DEVICE_HANDLER( ethernet_r ) static WRITE32_DEVICE_HANDLER( ethernet_w ) { if (ACCESSING_BITS_0_15) - smc91c9x_w(device, offset * 2 + 0, data, mem_mask); + smc91c9x_w(device, space, offset * 2 + 0, data, mem_mask); if (ACCESSING_BITS_16_31) - smc91c9x_w(device, offset * 2 + 1, data >> 16, mem_mask >> 16); + smc91c9x_w(device, space, offset * 2 + 1, data >> 16, mem_mask >> 16); } diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c index 69687167433..794e96c256d 100644 --- a/src/mame/drivers/vendetta.c +++ b/src/mame/drivers/vendetta.c @@ -145,7 +145,7 @@ WRITE8_MEMBER(vendetta_state::vendetta_eeprom_w) READ8_MEMBER(vendetta_state::vendetta_K052109_r) { - return k052109_r(m_k052109, offset + 0x2000); + return k052109_r(m_k052109, space, offset + 0x2000); } WRITE8_MEMBER(vendetta_state::vendetta_K052109_w) @@ -156,8 +156,8 @@ WRITE8_MEMBER(vendetta_state::vendetta_K052109_w) // * Tilemap MASK-ROM Test (0x1d80<->0x3d80, 0x1e00<->0x3e00, 0x1f00<->0x3f00) * // ************************************************************************************* if ((offset == 0x1d80) || (offset == 0x1e00) || (offset == 0x1f00)) - k052109_w(m_k052109, offset, data); - k052109_w(m_k052109, offset + 0x2000, data); + k052109_w(m_k052109, space, offset, data); + k052109_w(m_k052109, space, offset + 0x2000, data); } @@ -225,7 +225,7 @@ READ8_MEMBER(vendetta_state::vendetta_sound_interrupt_r) READ8_MEMBER(vendetta_state::vendetta_sound_r) { device_t *device = machine().device("k053260"); - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } /********************************************/ diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c index a28ab9dbb9e..d49bbd36d45 100644 --- a/src/mame/drivers/vertigo.c +++ b/src/mame/drivers/vertigo.c @@ -31,7 +31,7 @@ READ16_MEMBER(vertigo_state::vertigo_pit8254_lsb_r) { device_t * device = machine().device("pit8254"); - return pit8253_r( device, offset ); + return pit8253_r( device, space, offset ); } WRITE16_MEMBER(vertigo_state::vertigo_pit8254_lsb_w) @@ -39,7 +39,7 @@ WRITE16_MEMBER(vertigo_state::vertigo_pit8254_lsb_w) device_t * device = machine().device("pit8254"); if (ACCESSING_BITS_0_7) - pit8253_w(device, offset, data); + pit8253_w(device, space, offset, data); } static ADDRESS_MAP_START( vertigo_map, AS_PROGRAM, 16, vertigo_state ) diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c index 2752d8e2c67..a738fef45d7 100644 --- a/src/mame/drivers/videopin.c +++ b/src/mame/drivers/videopin.c @@ -155,7 +155,7 @@ WRITE8_MEMBER(videopin_state::videopin_out1_w) coin_lockout_global_w(machine(), ~data & 0x08); /* Convert octave data to divide value and write to sound */ - discrete_sound_w(device, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe); + discrete_sound_w(device, space, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe); } @@ -173,10 +173,10 @@ WRITE8_MEMBER(videopin_state::videopin_out2_w) coin_counter_w(machine(), 0, data & 0x10); - discrete_sound_w(device, VIDEOPIN_BELL_EN, data & 0x40); // Bell - discrete_sound_w(device, VIDEOPIN_BONG_EN, data & 0x20); // Bong - discrete_sound_w(device, VIDEOPIN_ATTRACT_EN, data & 0x80); // Attract - discrete_sound_w(device, VIDEOPIN_VOL_DATA, data & 0x07); // Vol0,1,2 + discrete_sound_w(device, space, VIDEOPIN_BELL_EN, data & 0x40); // Bell + discrete_sound_w(device, space, VIDEOPIN_BONG_EN, data & 0x20); // Bong + discrete_sound_w(device, space, VIDEOPIN_ATTRACT_EN, data & 0x80); // Attract + discrete_sound_w(device, space, VIDEOPIN_VOL_DATA, data & 0x07); // Vol0,1,2 } @@ -184,7 +184,7 @@ WRITE8_MEMBER(videopin_state::videopin_note_dvsr_w) { device_t *device = machine().device("discrete"); /* note data */ - discrete_sound_w(device, VIDEOPIN_NOTE_DATA, ~data &0xff); + discrete_sound_w(device, space, VIDEOPIN_NOTE_DATA, ~data &0xff); } diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index d53ee9cadee..b1befb82467 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -921,11 +921,11 @@ WRITE8_MEMBER(videopkr_state::baby_sound_p3_w) case 0x00: break; case 0x01: break; case 0x02: break; - case 0x03: ay8910_data_w(device, 1, m_sbp0); break; + case 0x03: ay8910_data_w(device, space, 1, m_sbp0); break; case 0x04: break; - case 0x05: m_sbp0 = ay8910_r(device, m_sbp0); break; + case 0x05: m_sbp0 = ay8910_r(device, space, m_sbp0); break; case 0x06: break; - case 0x07: ay8910_address_w(device, 0, m_sbp0); break; + case 0x07: ay8910_address_w(device, space, 0, m_sbp0); break; } } diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c index 1e00dfdd0fd..ea29930b93f 100644 --- a/src/mame/drivers/viper.c +++ b/src/mame/drivers/viper.c @@ -1527,40 +1527,40 @@ static void voodoo3_pci_w(device_t *busdevice, device_t *device, int function, i READ64_MEMBER(viper_state::voodoo3_io_r) { device_t *device = machine().device("voodoo"); - return read64be_with_32le_device_handler(banshee_io_r, device, offset, mem_mask); + return read64be_with_32le_device_handler(banshee_io_r, device, space, offset, mem_mask); } WRITE64_MEMBER(viper_state::voodoo3_io_w) { // printf("voodoo3_io_w: %08X%08X, %08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), offset, space.device().safe_pc()); device_t *device = machine().device("voodoo"); - write64be_with_32le_device_handler(banshee_io_w, device, offset, data, mem_mask); + write64be_with_32le_device_handler(banshee_io_w, device, space, offset, data, mem_mask); } READ64_MEMBER(viper_state::voodoo3_r) { device_t *device = machine().device("voodoo"); - return read64be_with_32le_device_handler(banshee_r, device, offset, mem_mask); + return read64be_with_32le_device_handler(banshee_r, device, space, offset, mem_mask); } WRITE64_MEMBER(viper_state::voodoo3_w) { // printf("voodoo3_w: %08X%08X, %08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), offset, space.device().safe_pc()); device_t *device = machine().device("voodoo"); - write64be_with_32le_device_handler(banshee_w, device, offset, data, mem_mask); + write64be_with_32le_device_handler(banshee_w, device, space, offset, data, mem_mask); } READ64_MEMBER(viper_state::voodoo3_lfb_r) { device_t *device = machine().device("voodoo"); - return read64be_with_32le_device_handler(banshee_fb_r, device, offset, mem_mask); + return read64be_with_32le_device_handler(banshee_fb_r, device, space, offset, mem_mask); } WRITE64_MEMBER(viper_state::voodoo3_lfb_w) { // printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), offset, space.device().safe_pc()); device_t *device = machine().device("voodoo"); - write64be_with_32le_device_handler(banshee_fb_w, device, offset, data, mem_mask); + write64be_with_32le_device_handler(banshee_fb_w, device, space, offset, data, mem_mask); } diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c index e3ee8bda716..6693884e486 100644 --- a/src/mame/drivers/vmetal.c +++ b/src/mame/drivers/vmetal.c @@ -239,7 +239,7 @@ WRITE8_MEMBER(vmetal_state::vmetal_es8712_w) 16 002a 000e 0083 00ee 000f 0069 0069 0e832a-0f69ee */ - es8712_w(device, offset, data); + es8712_w(device, space, offset, data); logerror("%s:Writing %04x to ES8712 offset %02x\n", machine().describe_context(), data, offset); } diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c index 7c515287393..bee83776fc1 100644 --- a/src/mame/drivers/voyager.c +++ b/src/mame/drivers/voyager.c @@ -78,13 +78,13 @@ static void ide_interrupt(device_t *device, int state); READ8_MEMBER(voyager_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(voyager_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } READ8_MEMBER(voyager_state::at_page8_r) @@ -192,13 +192,13 @@ static I8237_INTERFACE( dma8237_2_config ) READ32_MEMBER(voyager_state::ide_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(voyager_state::ide_w) { device_t *device = machine().device("ide"); - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } @@ -208,14 +208,14 @@ WRITE32_MEMBER(voyager_state::ide_w) READ32_MEMBER(voyager_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(voyager_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c index aee6672ea25..39a1a474d89 100644 --- a/src/mame/drivers/vsnes.c +++ b/src/mame/drivers/vsnes.c @@ -196,37 +196,37 @@ WRITE8_MEMBER(vsnes_state::vsnes_coin_counter_1_w) READ8_MEMBER(vsnes_state::psg1_4015_r) { device_t *device = machine().device("nes1"); - return nes_psg_r(device, 0x15); + return nes_psg_r(device, space, 0x15); } WRITE8_MEMBER(vsnes_state::psg1_4015_w) { device_t *device = machine().device("nes1"); - nes_psg_w(device, 0x15, data); + nes_psg_w(device, space, 0x15, data); } WRITE8_MEMBER(vsnes_state::psg1_4017_w) { device_t *device = machine().device("nes1"); - nes_psg_w(device, 0x17, data); + nes_psg_w(device, space, 0x17, data); } READ8_MEMBER(vsnes_state::psg2_4015_r) { device_t *device = machine().device("nes2"); - return nes_psg_r(device, 0x15); + return nes_psg_r(device, space, 0x15); } WRITE8_MEMBER(vsnes_state::psg2_4015_w) { device_t *device = machine().device("nes2"); - nes_psg_w(device, 0x15, data); + nes_psg_w(device, space, 0x15, data); } WRITE8_MEMBER(vsnes_state::psg2_4017_w) { device_t *device = machine().device("nes2"); - nes_psg_w(device, 0x17, data); + nes_psg_w(device, space, 0x17, data); } static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8, vsnes_state ) AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("work_ram") diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c index dbbc1680e8b..9e4a79b6cae 100644 --- a/src/mame/drivers/warpwarp.c +++ b/src/mame/drivers/warpwarp.c @@ -184,7 +184,7 @@ WRITE8_MEMBER(warpwarp_state::geebee_out6_w) /* n.c. */ break; case 3: - geebee_sound_w(machine().device("geebee"),0,data); + geebee_sound_w(machine().device("geebee"),space,0,data); break; } } @@ -268,7 +268,7 @@ WRITE8_MEMBER(warpwarp_state::warpwarp_out0_w) m_ball_v = data; break; case 2: - warpwarp_sound_w(machine().device("warpwarp"),0,data); + warpwarp_sound_w(machine().device("warpwarp"),space,0,data); break; case 3: watchdog_reset_w(space,0,data); diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index c1e2b40469f..0d68349335a 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -181,16 +181,16 @@ WRITE16_MEMBER(warriorb_state::warriorb_sound_w) { if (offset == 0) - tc0140syt_port_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff); else if (offset == 1) - tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff); } READ16_MEMBER(warriorb_state::warriorb_sound_r) { if (offset == 1) - return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff)); + return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff)); else return 0; } @@ -218,8 +218,8 @@ WRITE8_MEMBER(warriorb_state::warriorb_pancontrol) WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w) { - tc0100scn_word_w(m_tc0100scn_1, offset, data, mem_mask); - tc0100scn_word_w(m_tc0100scn_2, offset, data, mem_mask); + tc0100scn_word_w(m_tc0100scn_1, space, offset, data, mem_mask); + tc0100scn_word_w(m_tc0100scn_2, space, offset, data, mem_mask); } /*********************************************************** diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c index fa19e0282d4..76d4999ff20 100644 --- a/src/mame/drivers/wecleman.c +++ b/src/mame/drivers/wecleman.c @@ -707,37 +707,37 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w) READ8_MEMBER(wecleman_state::hotchase_1_k007232_r) { device_t *device = machine().device("konami1"); - return k007232_r(device, offset ^ 1); + return k007232_r(device, space, offset ^ 1); } WRITE8_MEMBER(wecleman_state::hotchase_1_k007232_w) { device_t *device = machine().device("konami1"); - k007232_w(device, offset ^ 1, data); + k007232_w(device, space, offset ^ 1, data); } READ8_MEMBER(wecleman_state::hotchase_2_k007232_r) { device_t *device = machine().device("konami2"); - return k007232_r(device, offset ^ 1); + return k007232_r(device, space, offset ^ 1); } WRITE8_MEMBER(wecleman_state::hotchase_2_k007232_w) { device_t *device = machine().device("konami2"); - k007232_w(device, offset ^ 1, data); + k007232_w(device, space, offset ^ 1, data); } READ8_MEMBER(wecleman_state::hotchase_3_k007232_r) { device_t *device = machine().device("konami3"); - return k007232_r(device, offset ^ 1); + return k007232_r(device, space, offset ^ 1); } WRITE8_MEMBER(wecleman_state::hotchase_3_k007232_w) { device_t *device = machine().device("konami3"); - k007232_w(device, offset ^ 1, data); + k007232_w(device, space, offset ^ 1, data); } static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8, wecleman_state ) diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c index 3fc0c8dee3b..a444fc5a56b 100644 --- a/src/mame/drivers/wgp.c +++ b/src/mame/drivers/wgp.c @@ -621,16 +621,16 @@ WRITE16_MEMBER(wgp_state::wgp_sound_w) { if (offset == 0) - tc0140syt_port_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff); else if (offset == 1) - tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff); + tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff); } READ16_MEMBER(wgp_state::wgp_sound_r) { if (offset == 1) - return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff)); + return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff)); else return 0; } diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c index ad8573bba66..5019c97b542 100644 --- a/src/mame/drivers/wiz.c +++ b/src/mame/drivers/wiz.c @@ -185,14 +185,14 @@ WRITE8_MEMBER(wiz_state::sound_command_w) // explosion sound trigger(analog?) case 0x08: - discrete_sound_w(discrete, STINGER_BOOM_EN1, m_dsc1); - discrete_sound_w(discrete, STINGER_BOOM_EN2, m_dsc1^=1); + discrete_sound_w(discrete, space, STINGER_BOOM_EN1, m_dsc1); + discrete_sound_w(discrete, space, STINGER_BOOM_EN2, m_dsc1^=1); break; // player shot sound trigger(analog?) case 0x0a: - discrete_sound_w(discrete, STINGER_SHOT_EN1, m_dsc0); - discrete_sound_w(discrete, STINGER_SHOT_EN2, m_dsc0^=1); + discrete_sound_w(discrete, space, STINGER_SHOT_EN1, m_dsc0); + discrete_sound_w(discrete, space, STINGER_SHOT_EN2, m_dsc0^=1); break; } } diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c index 474d2d5b961..81e8a8cec30 100644 --- a/src/mame/drivers/xtom3d.c +++ b/src/mame/drivers/xtom3d.c @@ -386,27 +386,27 @@ READ32_MEMBER(xtom3d_state::ide_r) device_t *device = machine().device("ide"); return -1; // crashes otherwise - return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask); } WRITE32_MEMBER(xtom3d_state::ide_w) { device_t *device = machine().device("ide"); if(0) // crashes otherwise - ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask); } READ32_MEMBER(xtom3d_state::fdc_r) { device_t *device = machine().device("ide"); - return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask); + return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask); } WRITE32_MEMBER(xtom3d_state::fdc_w) { device_t *device = machine().device("ide"); //mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask); - ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask); + ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask); } READ8_MEMBER(xtom3d_state::at_page8_r) @@ -455,13 +455,13 @@ WRITE8_MEMBER(xtom3d_state::at_page8_w) READ8_MEMBER(xtom3d_state::at_dma8237_2_r) { device_t *device = machine().device("dma8237_2"); - return i8237_r(device, offset / 2); + return i8237_r(device, space, offset / 2); } WRITE8_MEMBER(xtom3d_state::at_dma8237_2_w) { device_t *device = machine().device("dma8237_2"); - i8237_w(device, offset / 2, data); + i8237_w(device, space, offset / 2, data); } WRITE_LINE_MEMBER(xtom3d_state::pc_dma_hrq_changed) diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c index 0cbba7a6769..e0efe3fde48 100644 --- a/src/mame/drivers/zaccaria.c +++ b/src/mame/drivers/zaccaria.c @@ -112,7 +112,7 @@ WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0b) READ8_MEMBER(zaccaria_state::zaccaria_port0a_r) { - return ay8910_r(machine().device((m_active_8910 == 0) ? "ay1" : "ay2"), 0); + return ay8910_r(machine().device((m_active_8910 == 0) ? "ay1" : "ay2"), space, 0); } WRITE8_MEMBER(zaccaria_state::zaccaria_port0a_w) @@ -127,7 +127,7 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w) if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00) { /* bit 0 goes to the 8910 #0 BC1 pin */ - ay8910_data_address_w(machine().device("ay1"), m_last_port0b, m_port0a); + ay8910_data_address_w(machine().device("ay1"), space, m_last_port0b, m_port0a); } else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02) { @@ -139,7 +139,7 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w) if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00) { /* bit 2 goes to the 8910 #1 BC1 pin */ - ay8910_data_address_w(machine().device("ay2"), m_last_port0b >> 2, m_port0a); + ay8910_data_address_w(machine().device("ay2"), space, m_last_port0b >> 2, m_port0a); } else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08) { diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index c33546c6757..aaa7fd0f0cf 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -1216,7 +1216,7 @@ WRITE8_MEMBER(zn_state::fx1a_sound_bankswitch_w) READ32_MEMBER(zn_state::taitofx1a_ymsound_r) { device_t *tc0140syt = machine().device("tc0140syt"); - return tc0140syt_comm_r(tc0140syt, 0) << 16; + return tc0140syt_comm_r(tc0140syt, space, 0) << 16; } WRITE32_MEMBER(zn_state::taitofx1a_ymsound_w) @@ -1225,11 +1225,11 @@ WRITE32_MEMBER(zn_state::taitofx1a_ymsound_w) if (mem_mask == 0x0000ffff) { - tc0140syt_port_w(tc0140syt, 0, data & 0xff); + tc0140syt_port_w(tc0140syt, space, 0, data & 0xff); } else { - tc0140syt_comm_w(tc0140syt, 0, (data >> 16) & 0xff); + tc0140syt_comm_w(tc0140syt, space, 0, (data >> 16) & 0xff); } } @@ -1498,9 +1498,10 @@ static void atpsx_dma_read( zn_state *state, UINT32 n_address, INT32 n_size ) /* dma size is in 32-bit words, convert to bytes */ n_size <<= 2; + address_space &space = *state->machine().firstcpu->space(AS_PROGRAM); while( n_size > 0 ) { - psxwritebyte( p_n_psxram, n_address, ide_controller32_r( ide, 0x1f0 / 4, 0x000000ff ) ); + psxwritebyte( p_n_psxram, n_address, ide_controller32_r( ide, space, 0x1f0 / 4, 0x000000ff ) ); n_address++; n_size--; } diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h index 6df00a4198c..86b53b6f48d 100644 --- a/src/mame/includes/8080bw.h +++ b/src/mame/includes/8080bw.h @@ -83,12 +83,12 @@ public: extern const samples_interface lrescue_samples_interface; -WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w ); +DECLARE_WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w ); DISCRETE_SOUND_EXTERN( indianbt ); -WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w ); -WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w ); -WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w ); +DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w ); DISCRETE_SOUND_EXTERN( polaris ); diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h index 073cb3c684f..9d02207afbb 100644 --- a/src/mame/includes/asteroid.h +++ b/src/mame/includes/asteroid.h @@ -48,16 +48,16 @@ INTERRUPT_GEN( llander_interrupt ); DISCRETE_SOUND_EXTERN( asteroid ); DISCRETE_SOUND_EXTERN( astdelux ); -WRITE8_DEVICE_HANDLER( asteroid_explode_w ); -WRITE8_DEVICE_HANDLER( asteroid_thump_w ); -WRITE8_DEVICE_HANDLER( asteroid_sounds_w ); -WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w ); -WRITE8_DEVICE_HANDLER( astdelux_sounds_w ); +DECLARE_WRITE8_DEVICE_HANDLER( asteroid_explode_w ); +DECLARE_WRITE8_DEVICE_HANDLER( asteroid_thump_w ); +DECLARE_WRITE8_DEVICE_HANDLER( asteroid_sounds_w ); +DECLARE_WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( astdelux_sounds_w ); /*----------- defined in audio/llander.c -----------*/ DISCRETE_SOUND_EXTERN( llander ); -WRITE8_DEVICE_HANDLER( llander_snd_reset_w ); -WRITE8_DEVICE_HANDLER( llander_sounds_w ); +DECLARE_WRITE8_DEVICE_HANDLER( llander_snd_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( llander_sounds_w ); diff --git a/src/mame/includes/atari.h b/src/mame/includes/atari.h index 01d14d55325..3c2e671a444 100644 --- a/src/mame/includes/atari.h +++ b/src/mame/includes/atari.h @@ -20,9 +20,9 @@ extern const pia6821_interface atarixl_pia_interface; /* These handlers are needed by MESS Atari 8bit drivers (for their custom pia_interface) */ -READ8_DEVICE_HANDLER(atari_pia_pa_r); -READ8_DEVICE_HANDLER(atari_pia_pb_r); -WRITE8_DEVICE_HANDLER(a600xl_pia_pb_w); +DECLARE_READ8_DEVICE_HANDLER(atari_pia_pa_r); +DECLARE_READ8_DEVICE_HANDLER(atari_pia_pb_r); +DECLARE_WRITE8_DEVICE_HANDLER(a600xl_pia_pb_w); WRITE_LINE_DEVICE_HANDLER(atari_pia_cb2_w); diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h index 1341d792cc5..06e699e4175 100644 --- a/src/mame/includes/avalnche.h +++ b/src/mame/includes/avalnche.h @@ -30,8 +30,8 @@ public: /*----------- defined in audio/avalnche.c -----------*/ DISCRETE_SOUND_EXTERN( avalnche ); -WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w ); -WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w ); -WRITE8_DEVICE_HANDLER( avalnche_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w ); +DECLARE_WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w ); +DECLARE_WRITE8_DEVICE_HANDLER( avalnche_audio_w ); WRITE8_HANDLER( catch_audio_w ); diff --git a/src/mame/includes/beezer.h b/src/mame/includes/beezer.h index 5cfbbe931de..04a0b9aa735 100644 --- a/src/mame/includes/beezer.h +++ b/src/mame/includes/beezer.h @@ -53,11 +53,11 @@ private: extern const device_type BEEZER; -READ8_DEVICE_HANDLER( beezer_sh6840_r ); -WRITE8_DEVICE_HANDLER( beezer_sh6840_w ); -WRITE8_DEVICE_HANDLER( beezer_sfxctrl_w ); -WRITE8_DEVICE_HANDLER( beezer_timer1_w ); -READ8_DEVICE_HANDLER( beezer_noise_r ); +DECLARE_READ8_DEVICE_HANDLER( beezer_sh6840_r ); +DECLARE_WRITE8_DEVICE_HANDLER( beezer_sh6840_w ); +DECLARE_WRITE8_DEVICE_HANDLER( beezer_sfxctrl_w ); +DECLARE_WRITE8_DEVICE_HANDLER( beezer_timer1_w ); +DECLARE_READ8_DEVICE_HANDLER( beezer_noise_r ); /*----------- defined in video/beezer.c -----------*/ diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h index d98e059599a..8c3fe307c67 100644 --- a/src/mame/includes/blockade.h +++ b/src/mame/includes/blockade.h @@ -40,4 +40,4 @@ SCREEN_UPDATE_IND16( blockade ); extern const samples_interface blockade_samples_interface; DISCRETE_SOUND_EXTERN( blockade ); -WRITE8_DEVICE_HANDLER( blockade_sound_freq_w ); +DECLARE_WRITE8_DEVICE_HANDLER( blockade_sound_freq_w ); diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h index ad4135e81d7..760d0428c4b 100644 --- a/src/mame/includes/bsktball.h +++ b/src/mame/includes/bsktball.h @@ -66,9 +66,9 @@ TIMER_DEVICE_CALLBACK( bsktball_scanline ); /*----------- defined in audio/bsktball.c -----------*/ -WRITE8_DEVICE_HANDLER( bsktball_bounce_w ); -WRITE8_DEVICE_HANDLER( bsktball_note_w ); -WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bsktball_bounce_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bsktball_note_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w ); DISCRETE_SOUND_EXTERN( bsktball ); diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h index bf9811a2ec2..841bcadf944 100644 --- a/src/mame/includes/bzone.h +++ b/src/mame/includes/bzone.h @@ -31,13 +31,13 @@ public: /*----------- defined in audio/bzone.c -----------*/ -WRITE8_DEVICE_HANDLER( bzone_sounds_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bzone_sounds_w ); MACHINE_CONFIG_EXTERN( bzone_audio ); /*----------- defined in audio/redbaron.c -----------*/ -WRITE8_DEVICE_HANDLER( redbaron_sounds_w ); +DECLARE_WRITE8_DEVICE_HANDLER( redbaron_sounds_w ); class redbaron_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h index 41cd04bd469..11621d98b45 100644 --- a/src/mame/includes/canyon.h +++ b/src/mame/includes/canyon.h @@ -41,10 +41,10 @@ public: /*----------- defined in audio/canyon.c -----------*/ -WRITE8_DEVICE_HANDLER( canyon_motor_w ); -WRITE8_DEVICE_HANDLER( canyon_explode_w ); -WRITE8_DEVICE_HANDLER( canyon_attract_w ); -WRITE8_DEVICE_HANDLER( canyon_whistle_w ); +DECLARE_WRITE8_DEVICE_HANDLER( canyon_motor_w ); +DECLARE_WRITE8_DEVICE_HANDLER( canyon_explode_w ); +DECLARE_WRITE8_DEVICE_HANDLER( canyon_attract_w ); +DECLARE_WRITE8_DEVICE_HANDLER( canyon_whistle_w ); DISCRETE_SOUND_EXTERN( canyon ); diff --git a/src/mame/includes/cd32.h b/src/mame/includes/cd32.h index 23ff02786cf..2d543e5cbc4 100644 --- a/src/mame/includes/cd32.h +++ b/src/mame/includes/cd32.h @@ -43,8 +43,8 @@ public: /*----------- defined in machine/cd32.c -----------*/ -READ32_DEVICE_HANDLER( amiga_akiko32_r ); -WRITE32_DEVICE_HANDLER( amiga_akiko32_w ); +DECLARE_READ32_DEVICE_HANDLER( amiga_akiko32_r ); +DECLARE_WRITE32_DEVICE_HANDLER( amiga_akiko32_w ); class akiko_device : public device_t { diff --git a/src/mame/includes/cps3.h b/src/mame/includes/cps3.h index 75e934fd322..bf5baaa559a 100644 --- a/src/mame/includes/cps3.h +++ b/src/mame/includes/cps3.h @@ -134,5 +134,5 @@ private: extern const device_type CPS3; -WRITE32_DEVICE_HANDLER( cps3_sound_w ); -READ32_DEVICE_HANDLER( cps3_sound_r ); +DECLARE_WRITE32_DEVICE_HANDLER( cps3_sound_w ); +DECLARE_READ32_DEVICE_HANDLER( cps3_sound_r ); diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h index ff234adfa7f..7ce16da31cb 100644 --- a/src/mame/includes/crbaloon.h +++ b/src/mame/includes/crbaloon.h @@ -41,12 +41,12 @@ public: /*----------- defined in audio/crbaloon.c -----------*/ -WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq ); -WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable ); +DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq ); +DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable ); void crbaloon_audio_set_explosion_enable(device_t *sn, int enabled); void crbaloon_audio_set_breath_enable(device_t *sn, int enabled); void crbaloon_audio_set_appear_enable(device_t *sn, int enabled); -WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable ); +DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable ); MACHINE_CONFIG_EXTERN( crbaloon_audio ); diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h index ccc3cbb83f0..7ce72e616cc 100644 --- a/src/mame/includes/dc.h +++ b/src/mame/includes/dc.h @@ -115,11 +115,11 @@ READ64_HANDLER( dc_modem_r ); WRITE64_HANDLER( dc_modem_w ); READ64_HANDLER( dc_rtc_r ); WRITE64_HANDLER( dc_rtc_w ); -READ64_DEVICE_HANDLER( dc_aica_reg_r ); -WRITE64_DEVICE_HANDLER( dc_aica_reg_w ); +DECLARE_READ64_DEVICE_HANDLER( dc_aica_reg_r ); +DECLARE_WRITE64_DEVICE_HANDLER( dc_aica_reg_w ); -READ32_DEVICE_HANDLER( dc_arm_aica_r ); -WRITE32_DEVICE_HANDLER( dc_arm_aica_w ); +DECLARE_READ32_DEVICE_HANDLER( dc_arm_aica_r ); +DECLARE_WRITE32_DEVICE_HANDLER( dc_arm_aica_w ); diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h index 2c885938a2e..51c903f1a6e 100644 --- a/src/mame/includes/firetrk.h +++ b/src/mame/includes/firetrk.h @@ -106,13 +106,13 @@ public: /*----------- defined in audio/firetrk.c -----------*/ -WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w ); -WRITE8_DEVICE_HANDLER( montecar_skid_reset_w ); -WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w ); -WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w ); -WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w ); -WRITE8_DEVICE_HANDLER( superbug_motor_snd_w ); -WRITE8_DEVICE_HANDLER( firetrk_xtndply_w ); +DECLARE_WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( montecar_skid_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w ); +DECLARE_WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w ); +DECLARE_WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w ); +DECLARE_WRITE8_DEVICE_HANDLER( superbug_motor_snd_w ); +DECLARE_WRITE8_DEVICE_HANDLER( firetrk_xtndply_w ); DISCRETE_SOUND_EXTERN( firetrk ); DISCRETE_SOUND_EXTERN( superbug ); diff --git a/src/mame/includes/flower.h b/src/mame/includes/flower.h index 98e9cd7b032..b8e94b62426 100644 --- a/src/mame/includes/flower.h +++ b/src/mame/includes/flower.h @@ -45,8 +45,8 @@ public: /*----------- defined in audio/flower.c -----------*/ -WRITE8_DEVICE_HANDLER( flower_sound1_w ); -WRITE8_DEVICE_HANDLER( flower_sound2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( flower_sound1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( flower_sound2_w ); class flower_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h index 17661fc6fb4..358ed77695d 100644 --- a/src/mame/includes/gaelco2.h +++ b/src/mame/includes/gaelco2.h @@ -55,9 +55,9 @@ public: /*----------- defined in machine/gaelco2.c -----------*/ TIMER_DEVICE_CALLBACK( bang_irq ); -WRITE16_DEVICE_HANDLER( gaelco2_eeprom_cs_w ); -WRITE16_DEVICE_HANDLER( gaelco2_eeprom_sk_w ); -WRITE16_DEVICE_HANDLER( gaelco2_eeprom_data_w ); +DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_cs_w ); +DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_sk_w ); +DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_data_w ); /*----------- defined in video/gaelco2.c -----------*/ diff --git a/src/mame/includes/gomoku.h b/src/mame/includes/gomoku.h index c64e3248d69..2653eac0bc8 100644 --- a/src/mame/includes/gomoku.h +++ b/src/mame/includes/gomoku.h @@ -30,8 +30,8 @@ public: /*----------- defined in audio/gomoku.c -----------*/ -WRITE8_DEVICE_HANDLER( gomoku_sound1_w ); -WRITE8_DEVICE_HANDLER( gomoku_sound2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( gomoku_sound1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( gomoku_sound2_w ); class gomoku_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h index 438cd457df2..5e9e83e48ae 100644 --- a/src/mame/includes/gridlee.h +++ b/src/mame/includes/gridlee.h @@ -60,7 +60,7 @@ public: /*----------- defined in audio/gridlee.c -----------*/ -WRITE8_DEVICE_HANDLER( gridlee_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( gridlee_sound_w ); class gridlee_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/includes/hanaawas.h b/src/mame/includes/hanaawas.h index 9c4ee04cf49..e09ce719459 100644 --- a/src/mame/includes/hanaawas.h +++ b/src/mame/includes/hanaawas.h @@ -35,7 +35,7 @@ public: /*----------- defined in video/hanaawas.c -----------*/ -WRITE8_DEVICE_HANDLER( hanaawas_portB_w ); +DECLARE_WRITE8_DEVICE_HANDLER( hanaawas_portB_w ); diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h index 4f231628332..da5c18d733d 100644 --- a/src/mame/includes/harddriv.h +++ b/src/mame/includes/harddriv.h @@ -349,7 +349,7 @@ void hdsnd_init(running_machine &machine); -WRITE16_DEVICE_HANDLER( hdsnddsp_dac_w ); +DECLARE_WRITE16_DEVICE_HANDLER( hdsnddsp_dac_w ); diff --git a/src/mame/includes/homerun.h b/src/mame/includes/homerun.h index 47f98b53781..2d5a71cbf54 100644 --- a/src/mame/includes/homerun.h +++ b/src/mame/includes/homerun.h @@ -57,7 +57,7 @@ public: /*----------- defined in video/homerun.c -----------*/ -WRITE8_DEVICE_HANDLER( homerun_banking_w ); +DECLARE_WRITE8_DEVICE_HANDLER( homerun_banking_w ); SCREEN_UPDATE_IND16(homerun); diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index 434ea584d87..e1b0af22a29 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -177,15 +177,15 @@ void ataxx_bankswitch(running_machine &machine); void leland_init_eeprom(running_machine &machine, UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type); void ataxx_init_eeprom(running_machine &machine, const UINT16 *data); -READ8_DEVICE_HANDLER( ataxx_eeprom_r ); -WRITE8_DEVICE_HANDLER( ataxx_eeprom_w ); +DECLARE_READ8_DEVICE_HANDLER( ataxx_eeprom_r ); +DECLARE_WRITE8_DEVICE_HANDLER( ataxx_eeprom_w ); -READ8_DEVICE_HANDLER( leland_sound_port_r ); -WRITE8_DEVICE_HANDLER( leland_sound_port_w ); +DECLARE_READ8_DEVICE_HANDLER( leland_sound_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( leland_sound_port_w ); @@ -257,12 +257,12 @@ extern const device_type REDLINE_80186; void leland_dac_update(device_t *device, int dacnum, UINT8 sample); -READ8_DEVICE_HANDLER( leland_80186_response_r ); +DECLARE_READ8_DEVICE_HANDLER( leland_80186_response_r ); -WRITE8_DEVICE_HANDLER( leland_80186_control_w ); -WRITE8_DEVICE_HANDLER( leland_80186_command_lo_w ); -WRITE8_DEVICE_HANDLER( leland_80186_command_hi_w ); -WRITE8_DEVICE_HANDLER( ataxx_80186_control_w ); +DECLARE_WRITE8_DEVICE_HANDLER( leland_80186_control_w ); +DECLARE_WRITE8_DEVICE_HANDLER( leland_80186_command_lo_w ); +DECLARE_WRITE8_DEVICE_HANDLER( leland_80186_command_hi_w ); +DECLARE_WRITE8_DEVICE_HANDLER( ataxx_80186_control_w ); ADDRESS_MAP_EXTERN(leland_80186_map_program, 16); ADDRESS_MAP_EXTERN(leland_80186_map_io, 16); @@ -272,7 +272,7 @@ ADDRESS_MAP_EXTERN(ataxx_80186_map_io, 16); /*----------- defined in video/leland.c -----------*/ -WRITE8_DEVICE_HANDLER( leland_gfx_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( leland_gfx_port_w ); diff --git a/src/mame/includes/m79amb.h b/src/mame/includes/m79amb.h index 25da1dbb77f..38590e8308b 100644 --- a/src/mame/includes/m79amb.h +++ b/src/mame/includes/m79amb.h @@ -5,5 +5,5 @@ DISCRETE_SOUND_EXTERN( m79amb ); -WRITE8_DEVICE_HANDLER( m79amb_8000_w ); -WRITE8_DEVICE_HANDLER( m79amb_8003_w ); +DECLARE_WRITE8_DEVICE_HANDLER( m79amb_8000_w ); +DECLARE_WRITE8_DEVICE_HANDLER( m79amb_8003_w ); diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h index 26207f78fbe..a4715f8bf81 100644 --- a/src/mame/includes/mario.h +++ b/src/mame/includes/mario.h @@ -93,8 +93,8 @@ SCREEN_UPDATE_IND16( mario ); /*----------- defined in audio/mario.c -----------*/ -WRITE8_DEVICE_HANDLER( mario_sh1_w ); -WRITE8_DEVICE_HANDLER( mario_sh2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( mario_sh1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( mario_sh2_w ); MACHINE_CONFIG_EXTERN( mario_audio ); diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h index 95f5a7f4ae0..008c19926b6 100644 --- a/src/mame/includes/mcr.h +++ b/src/mame/includes/mcr.h @@ -105,7 +105,7 @@ public: /*----------- defined in drivers/mcr.c -----------*/ -WRITE8_DEVICE_HANDLER( mcr_ipu_sio_transmit ); +DECLARE_WRITE16_DEVICE_HANDLER( mcr_ipu_sio_transmit ); /*----------- defined in machine/mcr.c -----------*/ diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index efd0f2dbeee..fd1f45e660c 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -73,8 +73,8 @@ extern READ16_HANDLER( megadriv_68k_io_read ); extern WRITE16_HANDLER( megadriv_68k_io_write ); /* These handlers are needed by puckpkmn.c for his memory map */ -extern READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read); -extern WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write); +extern DECLARE_READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read); +extern DECLARE_WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write); /* These are needed to create external input handlers (see e.g. MESS) */ /* Regs are also used by Megaplay! */ diff --git a/src/mame/includes/micro3d.h b/src/mame/includes/micro3d.h index 5f0d5253202..78146ce7055 100644 --- a/src/mame/includes/micro3d.h +++ b/src/mame/includes/micro3d.h @@ -134,7 +134,7 @@ void micro3d_duart_tx(device_t *device, int channel, UINT8 data); /*----------- defined in audio/micro3d.c -----------*/ -WRITE8_DEVICE_HANDLER( micro3d_upd7759_w ); +DECLARE_WRITE8_DEVICE_HANDLER( micro3d_upd7759_w ); void micro3d_noise_sh_w(running_machine &machine, UINT8 data); diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h index f4fe858cb10..7da148cb438 100644 --- a/src/mame/includes/mw8080bw.h +++ b/src/mame/includes/mw8080bw.h @@ -199,15 +199,15 @@ int invaders_is_cabinet_cocktail(running_machine &machine); /*----------- defined in audio/mw8080bw.c -----------*/ -WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w ); -WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w ); +DECLARE_WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w ); +DECLARE_WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w ); MACHINE_CONFIG_EXTERN( seawolf_audio ); MACHINE_CONFIG_EXTERN( gunfight_audio ); MACHINE_CONFIG_EXTERN( tornbase_audio ); -WRITE8_DEVICE_HANDLER( tornbase_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tornbase_audio_w ); MACHINE_CONFIG_EXTERN( zzzap_audio ); @@ -215,59 +215,59 @@ MACHINE_CONFIG_EXTERN( maze_audio ); void maze_write_discrete(device_t *device, UINT8 maze_tone_timing_state); MACHINE_CONFIG_EXTERN( boothill_audio ); -WRITE8_DEVICE_HANDLER( boothill_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( boothill_audio_w ); MACHINE_CONFIG_EXTERN( checkmat_audio ); -WRITE8_DEVICE_HANDLER( checkmat_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( checkmat_audio_w ); MACHINE_CONFIG_EXTERN( desertgu_audio ); -WRITE8_DEVICE_HANDLER( desertgu_audio_1_w ); -WRITE8_DEVICE_HANDLER( desertgu_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( desertgu_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( desertgu_audio_2_w ); MACHINE_CONFIG_EXTERN( dplay_audio ); -WRITE8_DEVICE_HANDLER( dplay_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( dplay_audio_w ); MACHINE_CONFIG_EXTERN( gmissile_audio ); MACHINE_CONFIG_EXTERN( m4_audio ); MACHINE_CONFIG_EXTERN( clowns_audio ); -WRITE8_DEVICE_HANDLER( clowns_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( clowns_audio_2_w ); MACHINE_CONFIG_EXTERN( spacwalk_audio ); -WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w ); -WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w ); MACHINE_CONFIG_EXTERN( shuffle_audio ); -WRITE8_DEVICE_HANDLER( shuffle_audio_1_w ); -WRITE8_DEVICE_HANDLER( shuffle_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( shuffle_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( shuffle_audio_2_w ); MACHINE_CONFIG_EXTERN( dogpatch_audio ); -WRITE8_DEVICE_HANDLER( dogpatch_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( dogpatch_audio_w ); MACHINE_CONFIG_EXTERN( spcenctr_audio ); -WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w ); -WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w ); -WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w ); MACHINE_CONFIG_EXTERN( phantom2_audio ); MACHINE_CONFIG_EXTERN( bowler_audio ); -WRITE8_DEVICE_HANDLER( bowler_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bowler_audio_1_w ); MACHINE_CONFIG_EXTERN( invaders_samples_audio ); MACHINE_CONFIG_EXTERN( invaders_audio ); -WRITE8_DEVICE_HANDLER( invaders_audio_1_w ); -WRITE8_DEVICE_HANDLER( invaders_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( invaders_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( invaders_audio_2_w ); MACHINE_CONFIG_EXTERN( blueshrk_audio ); -WRITE8_DEVICE_HANDLER( blueshrk_audio_w ); +DECLARE_WRITE8_DEVICE_HANDLER( blueshrk_audio_w ); MACHINE_CONFIG_EXTERN( invad2ct_audio ); -WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w ); -WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w ); -WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w ); -WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w ); +DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w ); +DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w ); /*----------- defined in video/mw8080bw.c -----------*/ diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h index b4f86f66c7b..c73b63b0a3e 100644 --- a/src/mame/includes/n64.h +++ b/src/mame/includes/n64.h @@ -280,10 +280,10 @@ extern UINT32 *rsp_dmem; extern void dp_full_sync(running_machine &machine); extern void signal_rcp_interrupt(running_machine &machine, int interrupt); -extern READ32_DEVICE_HANDLER( n64_sp_reg_r ); -extern WRITE32_DEVICE_HANDLER( n64_sp_reg_w ); -extern READ32_DEVICE_HANDLER( n64_dp_reg_r ); -extern WRITE32_DEVICE_HANDLER( n64_dp_reg_w ); +extern DECLARE_READ32_DEVICE_HANDLER( n64_sp_reg_r ); +extern DECLARE_WRITE32_DEVICE_HANDLER( n64_sp_reg_w ); +extern DECLARE_READ32_DEVICE_HANDLER( n64_dp_reg_r ); +extern DECLARE_WRITE32_DEVICE_HANDLER( n64_dp_reg_w ); diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h index c6c0dc5365c..152ea32f7f2 100644 --- a/src/mame/includes/orbit.h +++ b/src/mame/includes/orbit.h @@ -48,10 +48,10 @@ public: /*----------- defined in audio/orbit.c -----------*/ -WRITE8_DEVICE_HANDLER( orbit_note_w ); -WRITE8_DEVICE_HANDLER( orbit_note_amp_w ); -WRITE8_DEVICE_HANDLER( orbit_noise_amp_w ); -WRITE8_DEVICE_HANDLER( orbit_noise_rst_w ); +DECLARE_WRITE8_DEVICE_HANDLER( orbit_note_w ); +DECLARE_WRITE8_DEVICE_HANDLER( orbit_note_amp_w ); +DECLARE_WRITE8_DEVICE_HANDLER( orbit_noise_amp_w ); +DECLARE_WRITE8_DEVICE_HANDLER( orbit_noise_rst_w ); DISCRETE_SOUND_EXTERN( orbit ); diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h index ab96fc49ac0..f870b371934 100644 --- a/src/mame/includes/phoenix.h +++ b/src/mame/includes/phoenix.h @@ -55,8 +55,8 @@ public: DISCRETE_SOUND_EXTERN( phoenix ); -WRITE8_DEVICE_HANDLER( phoenix_sound_control_a_w ); -WRITE8_DEVICE_HANDLER( phoenix_sound_control_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( phoenix_sound_control_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( phoenix_sound_control_b_w ); class phoenix_sound_device : public device_t, public device_sound_interface @@ -92,7 +92,7 @@ extern const device_type PHOENIX; SCREEN_UPDATE_IND16( phoenix ); -READ8_DEVICE_HANDLER( survival_protection_r ); +DECLARE_READ8_DEVICE_HANDLER( survival_protection_r ); READ_LINE_DEVICE_HANDLER( survival_sid_callback ); diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h index 53f6b4fb97a..da97e8d11bb 100644 --- a/src/mame/includes/polepos.h +++ b/src/mame/includes/polepos.h @@ -109,8 +109,8 @@ private: extern const device_type POLEPOS; -WRITE8_DEVICE_HANDLER( polepos_engine_sound_lsb_w ); -WRITE8_DEVICE_HANDLER( polepos_engine_sound_msb_w ); +DECLARE_WRITE8_DEVICE_HANDLER( polepos_engine_sound_lsb_w ); +DECLARE_WRITE8_DEVICE_HANDLER( polepos_engine_sound_msb_w ); DISCRETE_SOUND_EXTERN( polepos ); diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h index cbd5a6c3a5c..4a5702eef5e 100644 --- a/src/mame/includes/poolshrk.h +++ b/src/mame/includes/poolshrk.h @@ -36,10 +36,10 @@ public: /*----------- defined in audio/poolshrk.c -----------*/ -WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w ); -WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w ); -WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w ); -WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w ); DISCRETE_SOUND_EXTERN( poolshrk ); diff --git a/src/mame/includes/qix.h b/src/mame/includes/qix.h index 86cc8369366..e5eea8738a2 100644 --- a/src/mame/includes/qix.h +++ b/src/mame/includes/qix.h @@ -105,7 +105,7 @@ extern const pia6821_interface slither_pia_2_intf; -WRITE8_DEVICE_HANDLER( qix_pia_w ); +DECLARE_WRITE8_DEVICE_HANDLER( qix_pia_w ); WRITE_LINE_DEVICE_HANDLER( qix_vsync_changed ); @@ -116,7 +116,7 @@ MACHINE_CONFIG_EXTERN( qix_video ); MACHINE_CONFIG_EXTERN( zookeep_video ); MACHINE_CONFIG_EXTERN( slither_video ); -WRITE8_DEVICE_HANDLER( qix_flip_screen_w ); +DECLARE_WRITE8_DEVICE_HANDLER( qix_flip_screen_w ); /*----------- defined in audio/qix.c -----------*/ diff --git a/src/mame/includes/scramble.h b/src/mame/includes/scramble.h index 1bc298f31f2..237c7d94537 100644 --- a/src/mame/includes/scramble.h +++ b/src/mame/includes/scramble.h @@ -72,8 +72,8 @@ READ8_HANDLER( triplep_pap_r ); READ8_HANDLER( hunchbks_mirror_r ); WRITE8_HANDLER( hunchbks_mirror_w ); -READ8_DEVICE_HANDLER( scramble_protection_r ); -WRITE8_DEVICE_HANDLER( scramble_protection_w ); +DECLARE_READ8_DEVICE_HANDLER( scramble_protection_r ); +DECLARE_WRITE8_DEVICE_HANDLER( scramble_protection_w ); /*----------- defined in audio/scramble.c -----------*/ @@ -82,13 +82,13 @@ void scramble_sh_init(running_machine &machine); WRITE_LINE_DEVICE_HANDLER( scramble_sh_7474_q_callback ); -READ8_DEVICE_HANDLER( scramble_portB_r ); -READ8_DEVICE_HANDLER( frogger_portB_r ); +DECLARE_READ8_DEVICE_HANDLER( scramble_portB_r ); +DECLARE_READ8_DEVICE_HANDLER( frogger_portB_r ); -READ8_DEVICE_HANDLER( hotshock_soundlatch_r ); +DECLARE_READ8_DEVICE_HANDLER( hotshock_soundlatch_r ); -WRITE8_DEVICE_HANDLER( scramble_sh_irqtrigger_w ); -WRITE8_DEVICE_HANDLER( mrkougar_sh_irqtrigger_w ); +DECLARE_WRITE8_DEVICE_HANDLER( scramble_sh_irqtrigger_w ); +DECLARE_WRITE8_DEVICE_HANDLER( mrkougar_sh_irqtrigger_w ); MACHINE_CONFIG_EXTERN( ad2083_audio ); diff --git a/src/mame/includes/segas16a.h b/src/mame/includes/segas16a.h index 9513c23334b..efdac597b7d 100644 --- a/src/mame/includes/segas16a.h +++ b/src/mame/includes/segas16a.h @@ -91,7 +91,7 @@ public: DECLARE_WRITE8_MEMBER( n7751_command_w ); DECLARE_WRITE8_MEMBER( n7751_control_w ); DECLARE_WRITE8_MEMBER( n7751_rom_offset_w ); - static WRITE8_DEVICE_HANDLER( static_n7751_rom_offset_w ); + static DECLARE_WRITE8_DEVICE_HANDLER( static_n7751_rom_offset_w ); // N7751 sound generator CPU read/write handlers DECLARE_READ8_MEMBER( n7751_rom_r ); diff --git a/src/mame/includes/simpsons.h b/src/mame/includes/simpsons.h index bb4634b2404..c0266d25576 100644 --- a/src/mame/includes/simpsons.h +++ b/src/mame/includes/simpsons.h @@ -43,7 +43,7 @@ public: /*----------- defined in machine/simpsons.c -----------*/ -READ8_DEVICE_HANDLER( simpsons_sound_r ); +DECLARE_READ8_DEVICE_HANDLER( simpsons_sound_r ); diff --git a/src/mame/includes/skyraid.h b/src/mame/includes/skyraid.h index 43930d54e71..f703b84d93d 100644 --- a/src/mame/includes/skyraid.h +++ b/src/mame/includes/skyraid.h @@ -32,7 +32,7 @@ public: DISCRETE_SOUND_EXTERN( skyraid ); -WRITE8_DEVICE_HANDLER( skyraid_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( skyraid_sound_w ); /*----------- defined in video/skyraid.c -----------*/ diff --git a/src/mame/includes/spiders.h b/src/mame/includes/spiders.h index 42db9bc7904..ca85236cae0 100644 --- a/src/mame/includes/spiders.h +++ b/src/mame/includes/spiders.h @@ -34,9 +34,9 @@ public: /*----------- defined in audio/spiders.c -----------*/ -WRITE8_DEVICE_HANDLER( spiders_audio_command_w ); -WRITE8_DEVICE_HANDLER( spiders_audio_a_w ); -WRITE8_DEVICE_HANDLER( spiders_audio_b_w ); -WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_command_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w ); MACHINE_CONFIG_EXTERN( spiders_audio ); diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h index 6889c4bfe2c..0f2f3902b62 100644 --- a/src/mame/includes/sprint8.h +++ b/src/mame/includes/sprint8.h @@ -56,7 +56,7 @@ SCREEN_UPDATE_IND16( sprint8 ); DISCRETE_SOUND_EXTERN( sprint8 ); -WRITE8_DEVICE_HANDLER( sprint8_crash_w ); -WRITE8_DEVICE_HANDLER( sprint8_screech_w ); -WRITE8_DEVICE_HANDLER( sprint8_attract_w ); -WRITE8_DEVICE_HANDLER( sprint8_motor_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sprint8_crash_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sprint8_screech_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sprint8_attract_w ); +DECLARE_WRITE8_DEVICE_HANDLER( sprint8_motor_w ); diff --git a/src/mame/includes/stfight.h b/src/mame/includes/stfight.h index 5163d551db6..4e367ee70fd 100644 --- a/src/mame/includes/stfight.h +++ b/src/mame/includes/stfight.h @@ -53,7 +53,7 @@ public: INTERRUPT_GEN( stfight_vb_interrupt ); void stfight_adpcm_int(device_t *device); -WRITE8_DEVICE_HANDLER( stfight_adpcm_control_w ); +DECLARE_WRITE8_DEVICE_HANDLER( stfight_adpcm_control_w ); /*----------- defined in video/stfight.c -----------*/ diff --git a/src/mame/includes/subs.h b/src/mame/includes/subs.h index 4b94c224123..2ad26b25512 100644 --- a/src/mame/includes/subs.h +++ b/src/mame/includes/subs.h @@ -53,11 +53,11 @@ INTERRUPT_GEN( subs_interrupt ); /*----------- defined in audio/subs.c -----------*/ -WRITE8_DEVICE_HANDLER( subs_noise_reset_w ); -WRITE8_DEVICE_HANDLER( subs_sonar2_w ); -WRITE8_DEVICE_HANDLER( subs_sonar1_w ); -WRITE8_DEVICE_HANDLER( subs_crash_w ); -WRITE8_DEVICE_HANDLER( subs_explode_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subs_noise_reset_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subs_sonar2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subs_sonar1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subs_crash_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subs_explode_w ); DISCRETE_SOUND_EXTERN( subs ); diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h index f0342c6d8b5..89612dffbce 100644 --- a/src/mame/includes/suna8.h +++ b/src/mame/includes/suna8.h @@ -108,9 +108,9 @@ public: /*----------- defined in audio/suna8.c -----------*/ -WRITE8_DEVICE_HANDLER( suna8_play_samples_w ); -WRITE8_DEVICE_HANDLER( rranger_play_samples_w ); -WRITE8_DEVICE_HANDLER( suna8_samples_number_w ); +DECLARE_WRITE8_DEVICE_HANDLER( suna8_play_samples_w ); +DECLARE_WRITE8_DEVICE_HANDLER( rranger_play_samples_w ); +DECLARE_WRITE8_DEVICE_HANDLER( suna8_samples_number_w ); SAMPLES_START( suna8_sh_start ); diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h index 407806c6300..f8296321042 100644 --- a/src/mame/includes/system1.h +++ b/src/mame/includes/system1.h @@ -113,7 +113,7 @@ public: -WRITE8_DEVICE_HANDLER( system1_videoram_bank_w ); +DECLARE_WRITE8_DEVICE_HANDLER( system1_videoram_bank_w ); diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h index 3a02c61c95d..be44145d436 100644 --- a/src/mame/includes/tatsumi.h +++ b/src/mame/includes/tatsumi.h @@ -126,8 +126,8 @@ public: /*----------- defined in machine/tatsumi.c -----------*/ -READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r); -READ8_DEVICE_HANDLER(tatsumi_hack_oki_r); +DECLARE_READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r); +DECLARE_READ8_DEVICE_HANDLER(tatsumi_hack_oki_r); void tatsumi_reset(running_machine &machine); diff --git a/src/mame/includes/tiamc1.h b/src/mame/includes/tiamc1.h index 06a077c2bef..cfe3875d1a2 100644 --- a/src/mame/includes/tiamc1.h +++ b/src/mame/includes/tiamc1.h @@ -62,9 +62,9 @@ private: extern const device_type TIAMC1; -WRITE8_DEVICE_HANDLER( tiamc1_timer0_w ); -WRITE8_DEVICE_HANDLER( tiamc1_timer1_w ); -WRITE8_DEVICE_HANDLER( tiamc1_timer1_gate_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer0_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer1_gate_w ); /*----------- defined in video/tiamc1.c -----------*/ diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h index 0c6f0cf60c9..1b7d143407d 100644 --- a/src/mame/includes/turbo.h +++ b/src/mame/includes/turbo.h @@ -137,16 +137,16 @@ MACHINE_CONFIG_EXTERN( turbo_samples ); MACHINE_CONFIG_EXTERN( subroc3d_samples ); MACHINE_CONFIG_EXTERN( buckrog_samples ); -WRITE8_DEVICE_HANDLER( turbo_sound_a_w ); -WRITE8_DEVICE_HANDLER( turbo_sound_b_w ); -WRITE8_DEVICE_HANDLER( turbo_sound_c_w ); +DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_c_w ); -WRITE8_DEVICE_HANDLER( subroc3d_sound_a_w ); -WRITE8_DEVICE_HANDLER( subroc3d_sound_b_w ); -WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w ); -WRITE8_DEVICE_HANDLER( buckrog_sound_a_w ); -WRITE8_DEVICE_HANDLER( buckrog_sound_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_b_w ); /*----------- defined in video/turbo.c -----------*/ diff --git a/src/mame/includes/tx1.h b/src/mame/includes/tx1.h index 510807d225f..8d5f645d7fc 100644 --- a/src/mame/includes/tx1.h +++ b/src/mame/includes/tx1.h @@ -178,16 +178,16 @@ public: /*----------- defined in audio/tx1.c -----------*/ -READ8_DEVICE_HANDLER( tx1_pit8253_r ); -WRITE8_DEVICE_HANDLER( tx1_pit8253_w ); +DECLARE_READ8_DEVICE_HANDLER( tx1_pit8253_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tx1_pit8253_w ); -WRITE8_DEVICE_HANDLER( bb_ym1_a_w ); -WRITE8_DEVICE_HANDLER( bb_ym2_a_w ); -WRITE8_DEVICE_HANDLER( bb_ym2_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bb_ym1_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bb_ym2_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( bb_ym2_b_w ); -WRITE8_DEVICE_HANDLER( tx1_ay8910_a_w ); -WRITE8_DEVICE_HANDLER( tx1_ay8910_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tx1_ay8910_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( tx1_ay8910_b_w ); class tx1_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/includes/vectrex.h b/src/mame/includes/vectrex.h index a5e009c859c..e2281d17836 100644 --- a/src/mame/includes/vectrex.h +++ b/src/mame/includes/vectrex.h @@ -79,13 +79,13 @@ DEVICE_IMAGE_LOAD( vectrex_cart ); TIMER_CALLBACK(vectrex_imager_eye); void vectrex_configuration(running_machine &machine); -READ8_DEVICE_HANDLER (vectrex_via_pa_r); -READ8_DEVICE_HANDLER(vectrex_via_pb_r ); +DECLARE_READ8_DEVICE_HANDLER (vectrex_via_pa_r); +DECLARE_READ8_DEVICE_HANDLER(vectrex_via_pb_r ); void vectrex_via_irq (device_t *device, int level); /* for spectrum 1+ */ -READ8_DEVICE_HANDLER( vectrex_s1_via_pb_r ); +DECLARE_READ8_DEVICE_HANDLER( vectrex_s1_via_pb_r ); /*----------- defined in video/vectrex.c -----------*/ diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h index 5639f696940..8c43b3c37d2 100644 --- a/src/mame/includes/warpwarp.h +++ b/src/mame/includes/warpwarp.h @@ -62,7 +62,7 @@ SCREEN_UPDATE_IND16( geebee ); /*----------- defined in audio/geebee.c -----------*/ -WRITE8_DEVICE_HANDLER( geebee_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( geebee_sound_w ); class geebee_sound_device : public device_t, public device_sound_interface @@ -91,9 +91,9 @@ extern const device_type GEEBEE; /*----------- defined in audio/warpwarp.c -----------*/ -WRITE8_DEVICE_HANDLER( warpwarp_sound_w ); -WRITE8_DEVICE_HANDLER( warpwarp_music1_w ); -WRITE8_DEVICE_HANDLER( warpwarp_music2_w ); +DECLARE_WRITE8_DEVICE_HANDLER( warpwarp_sound_w ); +DECLARE_WRITE8_DEVICE_HANDLER( warpwarp_music1_w ); +DECLARE_WRITE8_DEVICE_HANDLER( warpwarp_music2_w ); class warpwarp_sound_device : public device_t, public device_sound_interface diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h index 3afe59db01e..5e7adf9689a 100644 --- a/src/mame/includes/xxmissio.h +++ b/src/mame/includes/xxmissio.h @@ -36,7 +36,7 @@ public: SCREEN_UPDATE_IND16( xxmissio ); -WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w ); -WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w ); +DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w ); +DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w ); diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h index bffdb6acce1..7169fc659b8 100644 --- a/src/mame/includes/zaxxon.h +++ b/src/mame/includes/zaxxon.h @@ -73,12 +73,12 @@ public: /*----------- defined in audio/zaxxon.c -----------*/ -WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w ); -WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w ); -WRITE8_DEVICE_HANDLER( zaxxon_sound_c_w ); +DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w ); +DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_c_w ); -WRITE8_DEVICE_HANDLER( congo_sound_b_w ); -WRITE8_DEVICE_HANDLER( congo_sound_c_w ); +DECLARE_WRITE8_DEVICE_HANDLER( congo_sound_b_w ); +DECLARE_WRITE8_DEVICE_HANDLER( congo_sound_c_w ); MACHINE_CONFIG_EXTERN( zaxxon_samples ); MACHINE_CONFIG_EXTERN( congo_samples ); diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c index 8c821f843ff..3db22d69dfa 100644 --- a/src/mame/machine/amiga.c +++ b/src/mame/machine/amiga.c @@ -1039,7 +1039,7 @@ READ16_HANDLER( amiga_cia_r ) } /* handle the reads */ - data = mos6526_r(cia, offset >> 7); + data = mos6526_r(cia, *space, offset >> 7); if (LOG_CIA) logerror("%06x:cia_%c_read(%03x) = %04x & %04x\n", space->device().safe_pc(), 'A' + ((~offset & 0x0800) >> 11), offset * 2, data << shift, mem_mask); @@ -1081,7 +1081,7 @@ WRITE16_HANDLER( amiga_cia_w ) } /* handle the writes */ - mos6526_w(cia, offset >> 7, (UINT8) data); + mos6526_w(cia, *space, offset >> 7, (UINT8) data); } diff --git a/src/mame/machine/archimds.c b/src/mame/machine/archimds.c index 6f1945ec99e..4b6775bb504 100644 --- a/src/mame/machine/archimds.c +++ b/src/mame/machine/archimds.c @@ -684,7 +684,7 @@ READ32_HANDLER(archimedes_ioc_r) case 1: if (fdc) { logerror("17XX: R @ addr %x mask %08x\n", offset*4, mem_mask); - return wd17xx_data_r(fdc, offset&0xf); + return wd17xx_data_r(fdc, *space, offset&0xf); } else { logerror("Read from FDC device?\n"); return 0; @@ -740,7 +740,7 @@ WRITE32_HANDLER(archimedes_ioc_w) case 1: if (fdc) { logerror("17XX: %x to addr %x mask %08x\n", data, offset*4, mem_mask); - wd17xx_data_w(fdc, offset&0xf, data&0xff); + wd17xx_data_w(fdc, *space, offset&0xf, data&0xff); } else { logerror("Write to FDC device?\n"); } diff --git a/src/mame/machine/atarifb.c b/src/mame/machine/atarifb.c index 658f34357e9..1af25b748a9 100644 --- a/src/mame/machine/atarifb.c +++ b/src/mame/machine/atarifb.c @@ -15,10 +15,10 @@ WRITE8_MEMBER(atarifb_state::atarifb_out1_w) m_CTRLD = data; - discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle - discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit - discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract - discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker + discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle + discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit + discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract + discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker } @@ -28,10 +28,10 @@ WRITE8_MEMBER(atarifb_state::atarifb4_out1_w) m_CTRLD = data; - discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle - discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit - discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract - discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker + discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle + discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit + discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract + discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker coin_counter_w(machine(), 1, data & 0x80); } @@ -43,10 +43,10 @@ WRITE8_MEMBER(atarifb_state::abaseb_out1_w) m_CTRLD = data; - discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle - discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit - discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract - discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker + discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle + discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit + discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract + discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker if (data & 0x80) { @@ -77,10 +77,10 @@ WRITE8_MEMBER(atarifb_state::soccer_out1_w) /* bit 5-6 = trackball CTRL bits */ /* bit 7 = Rule LED */ - discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle - discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit - discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract - discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker + discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle + discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit + discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract + discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker // set_led_status(machine(), 0, data & 0x10); // !!!!!!!!!! Is this correct???? set_led_status(machine(), 1, data & 0x80); @@ -91,7 +91,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out2_w) { device_t *discrete = machine().device("discrete"); - discrete_sound_w(discrete, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd + discrete_sound_w(discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd coin_counter_w (machine(), 0, data & 0x10); } @@ -101,7 +101,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out2_w) { device_t *discrete = machine().device("discrete"); - discrete_sound_w(discrete, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd + discrete_sound_w(discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd coin_counter_w (machine(), 0, data & 0x10); coin_counter_w (machine(), 1, data & 0x20); diff --git a/src/mame/machine/beezer.c b/src/mame/machine/beezer.c index 731ae9eb68c..8701ae2c655 100644 --- a/src/mame/machine/beezer.c +++ b/src/mame/machine/beezer.c @@ -4,16 +4,16 @@ #include "includes/beezer.h" -static READ8_DEVICE_HANDLER( b_via_0_pa_r ); -static READ8_DEVICE_HANDLER( b_via_0_pb_r ); -static WRITE8_DEVICE_HANDLER( b_via_0_pa_w ); -static WRITE8_DEVICE_HANDLER( b_via_0_pb_w ); +static DECLARE_READ8_DEVICE_HANDLER( b_via_0_pa_r ); +static DECLARE_READ8_DEVICE_HANDLER( b_via_0_pb_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( b_via_0_pa_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( b_via_0_pb_w ); static READ_LINE_DEVICE_HANDLER( b_via_0_ca2_r ); -static READ8_DEVICE_HANDLER( b_via_1_pa_r ); -static READ8_DEVICE_HANDLER( b_via_1_pb_r ); -static WRITE8_DEVICE_HANDLER( b_via_1_pa_w ); -static WRITE8_DEVICE_HANDLER( b_via_1_pb_w ); +static DECLARE_READ8_DEVICE_HANDLER( b_via_1_pa_r ); +static DECLARE_READ8_DEVICE_HANDLER( b_via_1_pb_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( b_via_1_pa_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( b_via_1_pb_w ); /* VIA 0 (aka "PPCNP74", U6 @1C on schematics) @@ -140,7 +140,7 @@ static READ8_DEVICE_HANDLER( b_via_1_pa_r ) static READ8_DEVICE_HANDLER( b_via_1_pb_r ) { - return 0x1F | (beezer_noise_r(device->machine().device("custom"), 0)?0x40:0); + return 0x1F | (beezer_noise_r(device->machine().device("custom"), space, 0)?0x40:0); } static WRITE8_DEVICE_HANDLER( b_via_1_pa_w ) @@ -151,7 +151,7 @@ static WRITE8_DEVICE_HANDLER( b_via_1_pa_w ) static WRITE8_DEVICE_HANDLER( b_via_1_pb_w ) { - beezer_timer1_w(device->machine().device("custom"), 0, data&0x80); + beezer_timer1_w(device->machine().device("custom"), space, 0, data&0x80); //if ((data&0x1f) != 0x01) // popmessage("via1 pb low write of 0x%02x is not supported! contact mamedev!", data&0x1f); } diff --git a/src/mame/machine/buggychl.h b/src/mame/machine/buggychl.h index 4ed33f5bb73..f3a33d31857 100644 --- a/src/mame/machine/buggychl.h +++ b/src/mame/machine/buggychl.h @@ -1,8 +1,8 @@ ADDRESS_MAP_EXTERN( buggychl_mcu_map, 8 ); -WRITE8_DEVICE_HANDLER( buggychl_mcu_w ); -READ8_DEVICE_HANDLER( buggychl_mcu_r ); -READ8_DEVICE_HANDLER( buggychl_mcu_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( buggychl_mcu_w ); +DECLARE_READ8_DEVICE_HANDLER( buggychl_mcu_r ); +DECLARE_READ8_DEVICE_HANDLER( buggychl_mcu_status_r ); class buggychl_mcu_device : public device_t { diff --git a/src/mame/machine/cd32.c b/src/mame/machine/cd32.c index ab0a8efe0e7..37971be4f52 100644 --- a/src/mame/machine/cd32.c +++ b/src/mame/machine/cd32.c @@ -774,18 +774,17 @@ static void akiko_update_cdrom(akiko_state *state) READ32_DEVICE_HANDLER( amiga_akiko32_r ) { akiko_state *state = get_safe_token(device); - address_space *space = state->m_space; UINT32 retval; if ( LOG_AKIKO && offset < (0x30/4) ) { - logerror( "Reading AKIKO reg %0x [%s] at PC=%06x\n", offset, get_akiko_reg_name(offset), space->device().safe_pc() ); + logerror( "Reading AKIKO reg %0x [%s] at PC=%06x\n", offset, get_akiko_reg_name(offset), state->m_space->device().safe_pc() ); } switch( offset ) { case 0x00/4: /* ID */ - if ( state->m_cdrom != NULL ) cdda_set_cdrom(space->machine().device("cdda"), state->m_cdrom); + if ( state->m_cdrom != NULL ) cdda_set_cdrom(state->m_space->machine().device("cdda"), state->m_cdrom); return 0x0000cafe; case 0x04/4: /* CDROM STATUS 1 */ @@ -838,11 +837,10 @@ READ32_DEVICE_HANDLER( amiga_akiko32_r ) WRITE32_DEVICE_HANDLER( amiga_akiko32_w ) { akiko_state *state = get_safe_token(device); - address_space *space = state->m_space; if ( LOG_AKIKO && offset < (0x30/4) ) { - logerror( "Writing AKIKO reg %0x [%s] with %08x at PC=%06x\n", offset, get_akiko_reg_name(offset), data, space->device().safe_pc() ); + logerror( "Writing AKIKO reg %0x [%s] with %08x at PC=%06x\n", offset, get_akiko_reg_name(offset), data, state->m_space->device().safe_pc() ); } switch( offset ) diff --git a/src/mame/machine/cdicdic.h b/src/mame/machine/cdicdic.h index a3531d13c1a..2eb8c7fc846 100644 --- a/src/mame/machine/cdicdic.h +++ b/src/mame/machine/cdicdic.h @@ -128,10 +128,10 @@ extern const device_type MACHINE_CDICDIC; // READ/WRITE HANDLERS //************************************************************************** -READ16_DEVICE_HANDLER( cdic_r ); -WRITE16_DEVICE_HANDLER( cdic_w ); -READ16_DEVICE_HANDLER( cdic_ram_r ); -WRITE16_DEVICE_HANDLER( cdic_ram_w ); +DECLARE_READ16_DEVICE_HANDLER( cdic_r ); +DECLARE_WRITE16_DEVICE_HANDLER( cdic_w ); +DECLARE_READ16_DEVICE_HANDLER( cdic_ram_r ); +DECLARE_WRITE16_DEVICE_HANDLER( cdic_ram_w ); #endif // __CDICDIC_H__ diff --git a/src/mame/machine/cdislave.h b/src/mame/machine/cdislave.h index 9040d5d7be3..d9d93e2c6fc 100644 --- a/src/mame/machine/cdislave.h +++ b/src/mame/machine/cdislave.h @@ -119,8 +119,8 @@ extern const device_type MACHINE_CDISLAVE; // READ/WRITE HANDLERS //************************************************************************** -READ16_DEVICE_HANDLER( slave_r ); -WRITE16_DEVICE_HANDLER( slave_w ); +DECLARE_READ16_DEVICE_HANDLER( slave_r ); +DECLARE_WRITE16_DEVICE_HANDLER( slave_w ); #endif // __CDISLAVE_H__ diff --git a/src/mame/machine/dc.c b/src/mame/machine/dc.c index ce9ed093000..77247d311d3 100644 --- a/src/mame/machine/dc.c +++ b/src/mame/machine/dc.c @@ -843,7 +843,7 @@ READ64_DEVICE_HANDLER( dc_aica_reg_r ) // mame_printf_verbose("AICA REG: [%08x] read %" I64FMT "x, mask %" I64FMT "x\n", 0x700000+reg*4, (UINT64)offset, mem_mask); - return (UINT64) aica_r(device, offset*2, 0xffff)<<shift; + return (UINT64) aica_r(device, space, offset*2, 0xffff)<<shift; } WRITE64_DEVICE_HANDLER( dc_aica_reg_w ) @@ -870,18 +870,18 @@ WRITE64_DEVICE_HANDLER( dc_aica_reg_w ) } } - aica_w(device, offset*2, dat, shift ? ((mem_mask>>32)&0xffff) : (mem_mask & 0xffff)); + aica_w(device, space, offset*2, dat, shift ? ((mem_mask>>32)&0xffff) : (mem_mask & 0xffff)); // mame_printf_verbose("AICA REG: [%08x=%x] write %" I64FMT "x to %x, mask %" I64FMT "x\n", 0x700000+reg*4, dat, data, offset, mem_mask); } READ32_DEVICE_HANDLER( dc_arm_aica_r ) { - return aica_r(device, offset*2, 0xffff) & 0xffff; + return aica_r(device, space, offset*2, 0xffff) & 0xffff; } WRITE32_DEVICE_HANDLER( dc_arm_aica_w ) { - aica_w(device, offset*2, data, mem_mask&0xffff); + aica_w(device, space, offset*2, data, mem_mask&0xffff); } diff --git a/src/mame/machine/gaelco3d.h b/src/mame/machine/gaelco3d.h index 7df6278940d..1af8983c59a 100644 --- a/src/mame/machine/gaelco3d.h +++ b/src/mame/machine/gaelco3d.h @@ -44,12 +44,12 @@ struct gaelco_serial_interface FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( gaelco_serial_status_r); -WRITE8_DEVICE_HANDLER( gaelco_serial_data_w); -READ8_DEVICE_HANDLER( gaelco_serial_data_r); -WRITE8_DEVICE_HANDLER( gaelco_serial_rts_w ); +DECLARE_READ8_DEVICE_HANDLER( gaelco_serial_status_r); +DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_data_w); +DECLARE_READ8_DEVICE_HANDLER( gaelco_serial_data_r); +DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_rts_w ); /* Set to 1 during transmit, 0 for receive */ -WRITE8_DEVICE_HANDLER( gaelco_serial_tr_w); +DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_tr_w); /* Big questions marks, related to serial i/o */ @@ -57,11 +57,11 @@ WRITE8_DEVICE_HANDLER( gaelco_serial_tr_w); /* Not used in surfplnt, but in radikalb * Set at beginning of transfer sub, cleared at end */ -WRITE8_DEVICE_HANDLER( gaelco_serial_unknown_w); +DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_unknown_w); /* only used in radikalb, set at beginning of receive isr, cleared at end */ -WRITE8_DEVICE_HANDLER( gaelco_serial_irq_enable ); +DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_irq_enable ); diff --git a/src/mame/machine/konppc.c b/src/mame/machine/konppc.c index d5939ae72c6..60790f1f84e 100644 --- a/src/mame/machine/konppc.c +++ b/src/mame/machine/konppc.c @@ -413,13 +413,13 @@ READ32_HANDLER( K033906_0_r ) if (nwk_device_sel[0] & 0x01) return nwk_fifo_r(space, 0); else - return k033906_r(k033906_1, offset, mem_mask); + return k033906_r(k033906_1, *space, offset, mem_mask); } WRITE32_HANDLER( K033906_0_w ) { device_t *k033906_1 = space->machine().device("k033906_1"); - k033906_w(k033906_1, offset, data, mem_mask); + k033906_w(k033906_1, *space, offset, data, mem_mask); } READ32_HANDLER( K033906_1_r ) @@ -428,13 +428,13 @@ READ32_HANDLER( K033906_1_r ) if (nwk_device_sel[1] & 0x01) return nwk_fifo_r(space, 1); else - return k033906_r(k033906_2, offset, mem_mask); + return k033906_r(k033906_2, *space, offset, mem_mask); } WRITE32_HANDLER(K033906_1_w) { device_t *k033906_2 = space->machine().device("k033906_2"); - k033906_w(k033906_2, offset, data, mem_mask); + k033906_w(k033906_2, *space, offset, data, mem_mask); } /*****************************************************************************/ @@ -452,7 +452,7 @@ WRITE32_DEVICE_HANDLER(nwk_fifo_0_w) } else { - voodoo_w(device, offset ^ 0x80000, data, mem_mask); + voodoo_w(device, space, offset ^ 0x80000, data, mem_mask); } } @@ -469,7 +469,7 @@ WRITE32_DEVICE_HANDLER(nwk_fifo_1_w) } else { - voodoo_w(device, offset ^ 0x80000, data, mem_mask); + voodoo_w(device, space, offset ^ 0x80000, data, mem_mask); } } @@ -481,7 +481,7 @@ READ32_DEVICE_HANDLER(nwk_voodoo_0_r) } else { - return voodoo_r(device, offset, mem_mask); + return voodoo_r(device, space, offset, mem_mask); } } @@ -493,7 +493,7 @@ READ32_DEVICE_HANDLER(nwk_voodoo_1_r) } else { - return voodoo_r(device, offset, mem_mask); + return voodoo_r(device, space, offset, mem_mask); } } @@ -510,7 +510,7 @@ WRITE32_DEVICE_HANDLER(nwk_voodoo_0_w) } else { - voodoo_w(device, offset, data, mem_mask); + voodoo_w(device, space, offset, data, mem_mask); } } @@ -527,7 +527,7 @@ WRITE32_DEVICE_HANDLER(nwk_voodoo_1_w) } else { - voodoo_w(device, offset, data, mem_mask); + voodoo_w(device, space, offset, data, mem_mask); } } diff --git a/src/mame/machine/konppc.h b/src/mame/machine/konppc.h index 621253d665c..20972ffd08f 100644 --- a/src/mame/machine/konppc.h +++ b/src/mame/machine/konppc.h @@ -31,12 +31,12 @@ WRITE32_HANDLER(K033906_0_w); READ32_HANDLER(K033906_1_r); WRITE32_HANDLER(K033906_1_w); -WRITE32_DEVICE_HANDLER(nwk_fifo_0_w); -WRITE32_DEVICE_HANDLER(nwk_fifo_1_w); -READ32_DEVICE_HANDLER(nwk_voodoo_0_r); -READ32_DEVICE_HANDLER(nwk_voodoo_1_r); -WRITE32_DEVICE_HANDLER(nwk_voodoo_0_w); -WRITE32_DEVICE_HANDLER(nwk_voodoo_1_w); +DECLARE_WRITE32_DEVICE_HANDLER(nwk_fifo_0_w); +DECLARE_WRITE32_DEVICE_HANDLER(nwk_fifo_1_w); +DECLARE_READ32_DEVICE_HANDLER(nwk_voodoo_0_r); +DECLARE_READ32_DEVICE_HANDLER(nwk_voodoo_1_r); +DECLARE_WRITE32_DEVICE_HANDLER(nwk_voodoo_0_w); +DECLARE_WRITE32_DEVICE_HANDLER(nwk_voodoo_1_w); void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, UINT8 value); diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index 19314a66644..72acbaea020 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -332,7 +332,8 @@ MACHINE_RESET_MEMBER(leland_state,leland) /* reset globals */ m_gfx_control = 0x00; - leland_sound_port_w(machine().device("ay8910.1"), 0, 0xff); + address_space &space = generic_space(); + leland_sound_port_w(machine().device("ay8910.1"), space, 0, 0xff); m_wcol_enable = 0; m_dangerz_x = 512; @@ -470,7 +471,7 @@ WRITE8_MEMBER(leland_state::leland_master_alt_bankswitch_w) (*m_update_master_bank)(machine()); /* sound control is in the rest */ - leland_80186_control_w(machine().device("custom"), offset, data); + leland_80186_control_w(machine().device("custom"), space, offset, data); } @@ -1103,7 +1104,7 @@ READ8_MEMBER(leland_state::leland_master_input_r) case 0x03: /* /IGID */ case 0x13: - result = ay8910_r(machine().device("ay8910.1"), offset); + result = ay8910_r(machine().device("ay8910.1"), space, offset); break; case 0x10: /* /GIN0 */ @@ -1145,7 +1146,7 @@ WRITE8_MEMBER(leland_state::leland_master_output_w) case 0x0a: /* /OGIA */ case 0x0b: /* /OGID */ - ay8910_address_data_w(machine().device("ay8910.1"), offset, data); + ay8910_address_data_w(machine().device("ay8910.1"), space, offset, data); break; case 0x0c: /* /BKXL */ @@ -1314,7 +1315,7 @@ WRITE8_DEVICE_HANDLER( leland_sound_port_w ) { leland_state *state = device->machine().driver_data<leland_state>(); /* update the graphics banking */ - leland_gfx_port_w(device, 0, data); + leland_gfx_port_w(device, space, 0, data); /* set the new value */ state->m_gfx_control = data; diff --git a/src/mame/machine/mathbox.h b/src/mame/machine/mathbox.h index 5c0cdf5581c..ff4b5df839e 100644 --- a/src/mame/machine/mathbox.h +++ b/src/mame/machine/mathbox.h @@ -20,10 +20,10 @@ FUNCTION PROTOTYPES ***************************************************************************/ -WRITE8_DEVICE_HANDLER( mathbox_go_w ); -READ8_DEVICE_HANDLER( mathbox_status_r ); -READ8_DEVICE_HANDLER( mathbox_lo_r ); -READ8_DEVICE_HANDLER( mathbox_hi_r ); +DECLARE_WRITE8_DEVICE_HANDLER( mathbox_go_w ); +DECLARE_READ8_DEVICE_HANDLER( mathbox_status_r ); +DECLARE_READ8_DEVICE_HANDLER( mathbox_lo_r ); +DECLARE_READ8_DEVICE_HANDLER( mathbox_hi_r ); /* ----- device interface ----- */ class mathbox_device : public device_t diff --git a/src/mame/machine/mcr.c b/src/mame/machine/mcr.c index 34c55dcc137..8da73dc7319 100644 --- a/src/mame/machine/mcr.c +++ b/src/mame/machine/mcr.c @@ -41,7 +41,7 @@ static emu_timer *ipu_watchdog_timer; *************************************/ static TIMER_CALLBACK( ipu_watchdog_reset ); -static WRITE8_DEVICE_HANDLER( ipu_break_changed ); +static DECLARE_WRITE8_DEVICE_HANDLER( ipu_break_changed ); @@ -140,11 +140,11 @@ static WRITE_LINE_DEVICE_HANDLER( ipu_ctc_interrupt ) const z80sio_interface nflfoot_sio_intf = { - ipu_ctc_interrupt, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - ipu_break_changed, /* BREAK changed handler */ - mcr_ipu_sio_transmit/* transmit handler */ + DEVCB_LINE(ipu_ctc_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_HANDLER(ipu_break_changed), /* BREAK changed handler */ + DEVCB_HANDLER(mcr_ipu_sio_transmit)/* transmit handler */ }; diff --git a/src/mame/machine/mcr68.c b/src/mame/machine/mcr68.c index cd1fe803fef..011ef0a4dc0 100644 --- a/src/mame/machine/mcr68.c +++ b/src/mame/machine/mcr68.c @@ -24,8 +24,8 @@ static void subtract_from_counter(running_machine &machine, int counter, int cou static TIMER_CALLBACK( mcr68_493_callback ); static TIMER_CALLBACK( zwackery_493_callback ); -static WRITE8_DEVICE_HANDLER( zwackery_pia0_w ); -static WRITE8_DEVICE_HANDLER( zwackery_pia1_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( zwackery_pia0_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( zwackery_pia1_w ); static WRITE_LINE_DEVICE_HANDLER( zwackery_ca2_w ); static WRITE_LINE_DEVICE_HANDLER( zwackery_pia_irq ); diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index 140ecb49666..68ef263e9c9 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -110,7 +110,7 @@ READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read) //mame_printf_debug("megadriv_68k_YM2612_read %02x %04x\n",offset,mem_mask); if ( (genz80.z80_has_bus==0) && (genz80.z80_is_reset==0) ) { - return ym2612_r(device, offset); + return ym2612_r(device, space, offset); } else { @@ -127,7 +127,7 @@ WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write) //mame_printf_debug("megadriv_68k_YM2612_write %02x %04x %04x\n",offset,data,mem_mask); if ( (genz80.z80_has_bus==0) && (genz80.z80_is_reset==0) ) { - ym2612_w(device, offset, data); + ym2612_w(device, space, offset, data); } else { @@ -820,7 +820,7 @@ static WRITE8_HANDLER( megadriv_z80_vdp_write ) case 0x13: case 0x15: case 0x17: - sn76496_w(space->machine().device("snsnd"), 0, data); + sn76496_w(space->machine().device("snsnd"), *space, 0, data); break; default: diff --git a/src/mame/machine/megavdp.c b/src/mame/machine/megavdp.c index dd0540532c2..9df2638a4b0 100644 --- a/src/mame/machine/megavdp.c +++ b/src/mame/machine/megavdp.c @@ -854,7 +854,7 @@ WRITE16_MEMBER( sega_genesis_vdp_device::megadriv_vdp_w ) case 0x12: case 0x14: case 0x16: - if (ACCESSING_BITS_0_7) sn76496_w(space.machine().device(":snsnd"), 0, data & 0xff); + if (ACCESSING_BITS_0_7) sn76496_w(space.machine().device(":snsnd"), space, 0, data & 0xff); //if (ACCESSING_BITS_8_15) sn76496_w(space->machine().device("snsnd"), 0, (data >>8) & 0xff); break; diff --git a/src/mame/machine/mhavoc.c b/src/mame/machine/mhavoc.c index f207f893723..42e81a1b958 100644 --- a/src/mame/machine/mhavoc.c +++ b/src/mame/machine/mhavoc.c @@ -311,7 +311,7 @@ WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_data_w) WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_strobe_w) { device_t *tms = machine().device("tms"); - tms5220_data_w(tms, 0, m_speech_write_buffer); + tms5220_data_w(tms, space, 0, m_speech_write_buffer); } /************************************* diff --git a/src/mame/machine/midwayic.c b/src/mame/machine/midwayic.c index 93cf028a458..05371cc139d 100644 --- a/src/mame/machine/midwayic.c +++ b/src/mame/machine/midwayic.c @@ -1067,11 +1067,11 @@ READ32_DEVICE_HANDLER( midway_ide_asic_r ) /* offset 0 is a special case */ if (offset == 0) - result = ide_controller32_r(device, ideoffs, 0x0000ffff); + result = ide_controller32_r(device, space, ideoffs, 0x0000ffff); /* everything else is byte-sized */ else - result = ide_controller32_r(device, ideoffs, 0xff << shift) >> shift; + result = ide_controller32_r(device, space, ideoffs, 0xff << shift) >> shift; return result; } @@ -1084,9 +1084,9 @@ WRITE32_DEVICE_HANDLER( midway_ide_asic_w ) /* offset 0 is a special case */ if (offset == 0) - ide_controller32_w(device, ideoffs, data, 0x0000ffff); + ide_controller32_w(device, space, ideoffs, data, 0x0000ffff); /* everything else is byte-sized */ else - ide_controller32_w(device, ideoffs, data << shift, 0xff << shift); + ide_controller32_w(device, space, ideoffs, data << shift, 0xff << shift); } diff --git a/src/mame/machine/midwayic.h b/src/mame/machine/midwayic.h index 61cfda69cdd..565f982ecfe 100644 --- a/src/mame/machine/midwayic.h +++ b/src/mame/machine/midwayic.h @@ -51,5 +51,5 @@ enum /* IDE ASIC maps the IDE registers */ -READ32_DEVICE_HANDLER( midway_ide_asic_r ); -WRITE32_DEVICE_HANDLER( midway_ide_asic_w ); +DECLARE_READ32_DEVICE_HANDLER( midway_ide_asic_r ); +DECLARE_WRITE32_DEVICE_HANDLER( midway_ide_asic_w ); diff --git a/src/mame/machine/namco06.c b/src/mame/machine/namco06.c index 79203db1e36..675e62ae059 100644 --- a/src/mame/machine/namco06.c +++ b/src/mame/machine/namco06.c @@ -145,7 +145,7 @@ READ8_DEVICE_HANDLER( namco_06xx_data_r ) for (devnum = 0; devnum < 4; devnum++) if ((state->m_control & (1 << devnum)) && state->m_read[devnum] != NULL) - result &= (*state->m_read[devnum])(state->m_device[devnum], 0); + result &= (*state->m_read[devnum])(state->m_device[devnum], space, 0, 0xff); return result; } @@ -166,7 +166,7 @@ WRITE8_DEVICE_HANDLER( namco_06xx_data_w ) for (devnum = 0; devnum < 4; devnum++) if ((state->m_control & (1 << devnum)) && state->m_write[devnum] != NULL) - (*state->m_write[devnum])(state->m_device[devnum], 0, data); + (*state->m_write[devnum])(state->m_device[devnum], space, 0, data, 0xff); } diff --git a/src/mame/machine/namco06.h b/src/mame/machine/namco06.h index 031c7d08b9f..80efebc8622 100644 --- a/src/mame/machine/namco06.h +++ b/src/mame/machine/namco06.h @@ -19,10 +19,10 @@ struct namco_06xx_config MCFG_DEVICE_CONFIG(_config) -READ8_DEVICE_HANDLER( namco_06xx_data_r ); -WRITE8_DEVICE_HANDLER( namco_06xx_data_w ); -READ8_DEVICE_HANDLER( namco_06xx_ctrl_r ); -WRITE8_DEVICE_HANDLER( namco_06xx_ctrl_w ); +DECLARE_READ8_DEVICE_HANDLER( namco_06xx_data_r ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_06xx_data_w ); +DECLARE_READ8_DEVICE_HANDLER( namco_06xx_ctrl_r ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_06xx_ctrl_w ); /* device get info callback */ diff --git a/src/mame/machine/namco50.h b/src/mame/machine/namco50.h index da6a61f3909..ad6227ad683 100644 --- a/src/mame/machine/namco50.h +++ b/src/mame/machine/namco50.h @@ -8,9 +8,9 @@ MCFG_DEVICE_ADD(_tag, NAMCO_50XX, _clock) \ -READ8_DEVICE_HANDLER( namco_50xx_read ); +DECLARE_READ8_DEVICE_HANDLER( namco_50xx_read ); void namco_50xx_read_request(device_t *device); -WRITE8_DEVICE_HANDLER( namco_50xx_write ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_50xx_write ); /* device get info callback */ diff --git a/src/mame/machine/namco51.h b/src/mame/machine/namco51.h index 7ac6309c3a7..44637e62862 100644 --- a/src/mame/machine/namco51.h +++ b/src/mame/machine/namco51.h @@ -16,8 +16,8 @@ struct namco_51xx_interface MCFG_DEVICE_CONFIG(_interface) -READ8_DEVICE_HANDLER( namco_51xx_read ); -WRITE8_DEVICE_HANDLER( namco_51xx_write ); +DECLARE_READ8_DEVICE_HANDLER( namco_51xx_read ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_51xx_write ); class namco_51xx_device : public device_t diff --git a/src/mame/machine/namco53.h b/src/mame/machine/namco53.h index 84213e48681..4833e066029 100644 --- a/src/mame/machine/namco53.h +++ b/src/mame/machine/namco53.h @@ -18,7 +18,7 @@ struct namco_53xx_interface void namco_53xx_read_request(device_t *device); -READ8_DEVICE_HANDLER( namco_53xx_read ); +DECLARE_READ8_DEVICE_HANDLER( namco_53xx_read ); class namco_53xx_device : public device_t diff --git a/src/mame/machine/namco62.h b/src/mame/machine/namco62.h index c456b4b8698..230674d0203 100644 --- a/src/mame/machine/namco62.h +++ b/src/mame/machine/namco62.h @@ -16,8 +16,8 @@ struct namco_62xx_interface MCFG_DEVICE_CONFIG(_interface) -READ8_DEVICE_HANDLER( namco_62xx_read ); -WRITE8_DEVICE_HANDLER( namco_62xx_write ); +DECLARE_READ8_DEVICE_HANDLER( namco_62xx_read ); +DECLARE_WRITE8_DEVICE_HANDLER( namco_62xx_write ); class namco_62xx_device : public device_t diff --git a/src/mame/machine/namcoio.h b/src/mame/machine/namcoio.h index e29b5f21324..87152ad8d33 100644 --- a/src/mame/machine/namcoio.h +++ b/src/mame/machine/namcoio.h @@ -59,8 +59,8 @@ extern const device_type NAMCO56XX; DEVICE I/O FUNCTIONS ***************************************************************************/ -READ8_DEVICE_HANDLER( namcoio_r ); -WRITE8_DEVICE_HANDLER( namcoio_w ); +DECLARE_READ8_DEVICE_HANDLER( namcoio_r ); +DECLARE_WRITE8_DEVICE_HANDLER( namcoio_w ); WRITE_LINE_DEVICE_HANDLER( namcoio_set_reset_line ); READ_LINE_DEVICE_HANDLER( namcoio_read_reset_line ); diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c index 1bfc4836e3a..8f6bd26b81f 100644 --- a/src/mame/machine/namcos1.c +++ b/src/mame/machine/namcos1.c @@ -611,7 +611,7 @@ static READ8_HANDLER( soundram_r ) offset &= 0x3ff; /* CUS 30 */ - return namcos1_cus30_r(space->machine().device("namco"),offset); + return namcos1_cus30_r(space->machine().device("namco"),*space,offset); } else { @@ -630,7 +630,7 @@ static WRITE8_HANDLER( soundram_w ) offset &= 0x3ff; /* CUS 30 */ - namcos1_cus30_w(space->machine().device("namco"),offset,data); + namcos1_cus30_w(space->machine().device("namco"),*space,offset,data); } else { diff --git a/src/mame/machine/nitedrvr.c b/src/mame/machine/nitedrvr.c index a8a3311688e..c41f6492b1f 100644 --- a/src/mame/machine/nitedrvr.c +++ b/src/mame/machine/nitedrvr.c @@ -209,9 +209,9 @@ D5 = SKID2 WRITE8_MEMBER(nitedrvr_state::nitedrvr_out0_w) { - discrete_sound_w(m_discrete, NITEDRVR_MOTOR_DATA, data & 0x0f); // Motor freq data - discrete_sound_w(m_discrete, NITEDRVR_SKID1_EN, data & 0x10); // Skid1 enable - discrete_sound_w(m_discrete, NITEDRVR_SKID2_EN, data & 0x20); // Skid2 enable + discrete_sound_w(m_discrete, space, NITEDRVR_MOTOR_DATA, data & 0x0f); // Motor freq data + discrete_sound_w(m_discrete, space, NITEDRVR_SKID1_EN, data & 0x10); // Skid1 enable + discrete_sound_w(m_discrete, space, NITEDRVR_SKID2_EN, data & 0x20); // Skid2 enable } /*************************************************************************** @@ -232,8 +232,8 @@ WRITE8_MEMBER(nitedrvr_state::nitedrvr_out1_w) m_crash_en = data & 0x01; - discrete_sound_w(m_discrete, NITEDRVR_CRASH_EN, m_crash_en); // Crash enable - discrete_sound_w(m_discrete, NITEDRVR_ATTRACT_EN, data & 0x02); // Attract enable (sound disable) + discrete_sound_w(m_discrete, space, NITEDRVR_CRASH_EN, m_crash_en); // Crash enable + discrete_sound_w(m_discrete, space, NITEDRVR_ATTRACT_EN, data & 0x02); // Attract enable (sound disable) if (!m_crash_en) { @@ -244,7 +244,7 @@ WRITE8_MEMBER(nitedrvr_state::nitedrvr_out1_w) palette_set_color(machine(), 1, MAKE_RGB(0x00,0x00,0x00)); /* BLACK */ palette_set_color(machine(), 0, MAKE_RGB(0xff,0xff,0xff)); /* WHITE */ } - discrete_sound_w(m_discrete, NITEDRVR_BANG_DATA, m_crash_data_en ? m_crash_data : 0); // Crash Volume + discrete_sound_w(m_discrete, space, NITEDRVR_BANG_DATA, m_crash_data_en ? m_crash_data : 0); // Crash Volume } @@ -255,7 +255,8 @@ TIMER_DEVICE_CALLBACK( nitedrvr_crash_toggle_callback ) if (state->m_crash_en && state->m_crash_data_en) { state->m_crash_data--; - discrete_sound_w(state->m_discrete, NITEDRVR_BANG_DATA, state->m_crash_data); // Crash Volume + address_space &space = timer.machine().driver_data()->generic_space(); + discrete_sound_w(state->m_discrete, space, NITEDRVR_BANG_DATA, state->m_crash_data); // Crash Volume if (!state->m_crash_data) state->m_crash_data_en = 0; // Done counting? diff --git a/src/mame/machine/nmk004.c b/src/mame/machine/nmk004.c index 38833fea28c..852005d0ca1 100644 --- a/src/mame/machine/nmk004.c +++ b/src/mame/machine/nmk004.c @@ -311,6 +311,7 @@ static void effects_update(int channel) static void fm_update(int channel) { struct fm_control *fm = &NMK004_state.fm_control[channel]; + address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM); // advance the timers if (fm->timer1) @@ -356,8 +357,8 @@ static void fm_update(int channel) fm->slot = read8(fm->current++); if (channel < 3 || !(NMK004_state.fm_control[channel-3].flags & FM_FLAG_ACTIVE)) { - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x28); // keyon/off - ym2203_write_port_w(NMK004_state.ymdevice, 0, channel % 3); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x28); // keyon/off + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, channel % 3); } break; @@ -594,6 +595,7 @@ static void fm_voices_update(void) }; int channel,i; + address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM); for (channel = 0; channel < 3;channel++) { struct fm_control *fm1 = &NMK004_state.fm_control[channel]; @@ -605,8 +607,8 @@ static void fm_voices_update(void) for (i = 0; i < 0x18; i++) { - ym2203_control_port_w(NMK004_state.ymdevice, 0, ym2203_registers[i] + channel); - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->voice_params[i]); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, ym2203_registers[i] + channel); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->voice_params[i]); } } @@ -618,8 +620,8 @@ static void fm_voices_update(void) { for (i = 0; i < 0x18; i++) { - ym2203_control_port_w(NMK004_state.ymdevice, 0, ym2203_registers[i] + channel); - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->voice_params[i]); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, ym2203_registers[i] + channel); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->voice_params[i]); } } } @@ -627,25 +629,25 @@ static void fm_voices_update(void) if (fm1->flags & FM_FLAG_ACTIVE) { - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xb0 + channel); // self-feedback - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->self_feedback); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xb0 + channel); // self-feedback + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->self_feedback); - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa4 + channel); // F-number - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->f_number >> 8); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa4 + channel); // F-number + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->f_number >> 8); - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa0 + channel); // F-number - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->f_number & 0xff); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa0 + channel); // F-number + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->f_number & 0xff); } else { - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xb0 + channel); // self-feedback - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->self_feedback); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xb0 + channel); // self-feedback + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->self_feedback); - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa4 + channel); // F-number - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->f_number >> 8); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa4 + channel); // F-number + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->f_number >> 8); - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa0 + channel); // F-number - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->f_number & 0xff); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa0 + channel); // F-number + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->f_number & 0xff); } @@ -654,8 +656,8 @@ static void fm_voices_update(void) { fm1->flags &= ~FM_FLAG_MUST_SEND_KEYON; - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x28); // keyon/off - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->slot | channel); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x28); // keyon/off + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->slot | channel); } if (fm2->flags & FM_FLAG_MUST_SEND_KEYON) @@ -664,8 +666,8 @@ static void fm_voices_update(void) if (!(fm1->flags & FM_FLAG_ACTIVE)) { - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x28); // keyon/off - ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->slot | channel); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x28); // keyon/off + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->slot | channel); } } } @@ -682,6 +684,7 @@ static void fm_voices_update(void) static void psg_update(int channel) { struct psg_control *psg = &NMK004_state.psg_control[channel]; + address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM); // advance the timers if (psg->note_timer) @@ -703,11 +706,11 @@ static void psg_update(int channel) psg->flags &= ~PSG_FLAG_NOISE_NOT_ENABLED; // enable noise, disable tone on this channel - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x07); - enable = ym2203_read_port_r(NMK004_state.ymdevice, 0); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x07); + enable = ym2203_read_port_r(NMK004_state.ymdevice, space, 0); enable |= (0x01 << channel); // disable tone enable &= ~(0x08 << channel); // enable noise - ym2203_write_port_w(NMK004_state.ymdevice, 0, enable); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, enable); } @@ -741,11 +744,11 @@ static void psg_update(int channel) psg->flags &= ~PSG_FLAG_NOISE_NOT_ENABLED; // enable noise, disable tone on this channel - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x07); - enable = ym2203_read_port_r(NMK004_state.ymdevice, 0); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x07); + enable = ym2203_read_port_r(NMK004_state.ymdevice, space, 0); enable |= (0x01 << channel); // disable tone enable &= ~(0x08 << channel); // enable noise - ym2203_write_port_w(NMK004_state.ymdevice, 0, enable); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, enable); break; case 0xf2: // set volume shape @@ -790,8 +793,8 @@ static void psg_update(int channel) psg->volume_shape = 0; // mute channel - ym2203_control_port_w(NMK004_state.ymdevice, 0, 8 + channel); - ym2203_write_port_w(NMK004_state.ymdevice, 0, 0); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 8 + channel); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, 0); return; } } @@ -831,10 +834,10 @@ static void psg_update(int channel) period >>= octave; - ym2203_control_port_w(NMK004_state.ymdevice, 0, 2 * channel + 1); - ym2203_write_port_w(NMK004_state.ymdevice, 0, (period & 0x0f00) >> 8); - ym2203_control_port_w(NMK004_state.ymdevice, 0, 2 * channel + 0); - ym2203_write_port_w(NMK004_state.ymdevice, 0, (period & 0x00ff)); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 2 * channel + 1); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, (period & 0x0f00) >> 8); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 2 * channel + 0); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, (period & 0x00ff)); psg->note_period_hi_bits = (period & 0x0f00) >> 8; } @@ -847,15 +850,15 @@ static void psg_update(int channel) psg->flags |= PSG_FLAG_NOISE_NOT_ENABLED; // disable noise, enable tone on this channel - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x07); - enable = ym2203_read_port_r(NMK004_state.ymdevice, 0); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x07); + enable = ym2203_read_port_r(NMK004_state.ymdevice, space, 0); enable &= ~(0x01 << channel); // enable tone enable |= (0x08 << channel); // disable noise - ym2203_write_port_w(NMK004_state.ymdevice, 0, enable); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, enable); } - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x06); // noise period - ym2203_write_port_w(NMK004_state.ymdevice, 0, psg->note); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x06); // noise period + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, psg->note); psg->note_period_hi_bits = psg->note; } } @@ -880,8 +883,8 @@ static void psg_update(int channel) volume = 0; // set volume - ym2203_control_port_w(NMK004_state.ymdevice, 0, 8 + channel); - ym2203_write_port_w(NMK004_state.ymdevice, 0, volume & 0x0f); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 8 + channel); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, volume & 0x0f); } } } @@ -1000,7 +1003,8 @@ void NMK004_irq(device_t *device, int irq) { if (irq) { - int status = ym2203_status_port_r(device,0); + address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM); + int status = ym2203_status_port_r(device,space,0); if (status & 1) // timer A expired { @@ -1009,8 +1013,8 @@ void NMK004_irq(device_t *device, int irq) update_music(); // restart timer - ym2203_control_port_w(device, 0, 0x27); - ym2203_write_port_w(device, 0, 0x15); + ym2203_control_port_w(device, space, 0, 0x27); + ym2203_write_port_w(device, space, 0, 0x15); } } } @@ -1035,13 +1039,14 @@ static TIMER_CALLBACK( real_nmk004_init ) NMK004_state.rom = machine.root_device().memregion("audiocpu")->base(); - ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x2f); + address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x2f); i = 0; while (ym2203_init[i] != 0xff) { - ym2203_control_port_w(NMK004_state.ymdevice, 0, ym2203_init[i++]); - ym2203_write_port_w(NMK004_state.ymdevice, 0, ym2203_init[i++]); + ym2203_control_port_w(NMK004_state.ymdevice, space, 0, ym2203_init[i++]); + ym2203_write_port_w(NMK004_state.ymdevice, space, 0, ym2203_init[i++]); } NMK004_state.oki_playing = 0; diff --git a/src/mame/machine/nmk112.c b/src/mame/machine/nmk112.c index 7724d6eeaf0..64299583b93 100644 --- a/src/mame/machine/nmk112.c +++ b/src/mame/machine/nmk112.c @@ -92,7 +92,7 @@ WRITE16_DEVICE_HANDLER( nmk112_okibank_lsb_w ) { if (ACCESSING_BITS_0_7) { - nmk112_okibank_w(device, offset, data & 0xff); + nmk112_okibank_w(device, space, offset, data & 0xff); } } diff --git a/src/mame/machine/nmk112.h b/src/mame/machine/nmk112.h index 2b682ad7a6f..2a4c472c94a 100644 --- a/src/mame/machine/nmk112.h +++ b/src/mame/machine/nmk112.h @@ -52,8 +52,8 @@ extern const device_type NMK112; DEVICE I/O FUNCTIONS ***************************************************************************/ -WRITE8_DEVICE_HANDLER( nmk112_okibank_w ); -WRITE16_DEVICE_HANDLER( nmk112_okibank_lsb_w ); +DECLARE_WRITE8_DEVICE_HANDLER( nmk112_okibank_w ); +DECLARE_WRITE16_DEVICE_HANDLER( nmk112_okibank_lsb_w ); #endif /* __NMK112_H__ */ diff --git a/src/mame/machine/playch10.c b/src/mame/machine/playch10.c index 0726788d863..3eb8f30e38c 100644 --- a/src/mame/machine/playch10.c +++ b/src/mame/machine/playch10.c @@ -34,10 +34,11 @@ void playch10_state::machine_reset() m_MMC2_bank_latch[0] = m_MMC2_bank_latch[1] = 0xfe; /* reset the security chip */ - rp5h01_enable_w(rp5h01, 0, 0); - rp5h01_reset_w(rp5h01, 0, 0); - rp5h01_reset_w(rp5h01, 0, 1); - rp5h01_enable_w(rp5h01, 0, 1); + address_space &space = generic_space(); + rp5h01_enable_w(rp5h01, space, 0, 0); + rp5h01_reset_w(rp5h01, space, 0, 0); + rp5h01_reset_w(rp5h01, space, 0, 1); + rp5h01_enable_w(rp5h01, space, 0, 1); pc10_set_mirroring(m_mirroring); } @@ -168,10 +169,10 @@ READ8_MEMBER(playch10_state::pc10_prot_r) /* we only support a single cart connected at slot 0 */ if (m_cart_sel == 0) { - rp5h01_enable_w(rp5h01, 0, 0); - data |= ((~rp5h01_counter_r(rp5h01, 0)) << 4) & 0x10; /* D4 */ - data |= ((rp5h01_data_r(rp5h01, 0)) << 3) & 0x08; /* D3 */ - rp5h01_enable_w(rp5h01, 0, 1); + rp5h01_enable_w(rp5h01, space, 0, 0); + data |= ((~rp5h01_counter_r(rp5h01, space, 0)) << 4) & 0x10; /* D4 */ + data |= ((rp5h01_data_r(rp5h01, space, 0)) << 3) & 0x08; /* D3 */ + rp5h01_enable_w(rp5h01, space, 0, 1); } return data; } @@ -182,11 +183,11 @@ WRITE8_MEMBER(playch10_state::pc10_prot_w) /* we only support a single cart connected at slot 0 */ if (m_cart_sel == 0) { - rp5h01_enable_w(rp5h01, 0, 0); - rp5h01_test_w(rp5h01, 0, data & 0x10); /* D4 */ - rp5h01_clock_w(rp5h01, 0, data & 0x08); /* D3 */ - rp5h01_reset_w(rp5h01, 0, ~data & 0x01); /* D0 */ - rp5h01_enable_w(rp5h01, 0, 1); + rp5h01_enable_w(rp5h01, space, 0, 0); + rp5h01_test_w(rp5h01, space, 0, data & 0x10); /* D4 */ + rp5h01_clock_w(rp5h01, space, 0, data & 0x08); /* D3 */ + rp5h01_reset_w(rp5h01, space, 0, ~data & 0x01); /* D0 */ + rp5h01_enable_w(rp5h01, space, 0, 1); /* this thing gets dense at some point */ /* it wants to jump and execute an opcode at $ffff, wich */ diff --git a/src/mame/machine/qix.c b/src/mame/machine/qix.c index 7ba08f3eaee..4c0968d5462 100644 --- a/src/mame/machine/qix.c +++ b/src/mame/machine/qix.c @@ -22,17 +22,17 @@ * *************************************/ -static READ8_DEVICE_HANDLER( qixmcu_coin_r ); -static WRITE8_DEVICE_HANDLER( qixmcu_coinctrl_w ); -static WRITE8_DEVICE_HANDLER( qixmcu_coin_w ); +static DECLARE_READ8_DEVICE_HANDLER( qixmcu_coin_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( qixmcu_coinctrl_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( qixmcu_coin_w ); -static WRITE8_DEVICE_HANDLER( qix_coinctl_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( qix_coinctl_w ); -static WRITE8_DEVICE_HANDLER( slither_76489_0_w ); -static WRITE8_DEVICE_HANDLER( slither_76489_1_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( slither_76489_0_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( slither_76489_1_w ); -static READ8_DEVICE_HANDLER( slither_trak_lr_r ); -static READ8_DEVICE_HANDLER( slither_trak_ud_r ); +static DECLARE_READ8_DEVICE_HANDLER( slither_trak_lr_r ); +static DECLARE_READ8_DEVICE_HANDLER( slither_trak_ud_r ); diff --git a/src/mame/machine/simpsons.c b/src/mame/machine/simpsons.c index 33c750d52e2..ecb2772cd6c 100644 --- a/src/mame/machine/simpsons.c +++ b/src/mame/machine/simpsons.c @@ -53,7 +53,7 @@ READ8_MEMBER(simpsons_state::simpsons_sound_interrupt_r) READ8_DEVICE_HANDLER( simpsons_sound_r ) { - return k053260_r(device, 2 + offset); + return k053260_r(device, space, 2 + offset); } diff --git a/src/mame/machine/snes.c b/src/mame/machine/snes.c index 265d821c8cf..1c02d9a4ccd 100644 --- a/src/mame/machine/snes.c +++ b/src/mame/machine/snes.c @@ -442,7 +442,7 @@ READ8_HANDLER( snes_r_io ) // APU is mirrored from 2140 to 217f if (offset >= APU00 && offset < WMDATA) { - return spc_port_out(state->m_spc700, offset & 0x3); + return spc_port_out(state->m_spc700, *space, offset & 0x3); } if (state->m_has_addon_chip == HAS_SUPERFX && state->m_superfx != NULL) @@ -605,7 +605,7 @@ WRITE8_HANDLER( snes_w_io ) if (offset >= APU00 && offset < WMDATA) { // printf("816: %02x to APU @ %d (PC=%06x)\n", data, offset & 3,space->device().safe_pc()); - spc_port_in(state->m_spc700, offset & 0x3, data); + spc_port_in(state->m_spc700, *space, offset & 0x3, data); space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(20)); return; } diff --git a/src/mame/machine/taitoio.c b/src/mame/machine/taitoio.c index eaf237bedaa..7b7b70c99c8 100644 --- a/src/mame/machine/taitoio.c +++ b/src/mame/machine/taitoio.c @@ -162,13 +162,13 @@ WRITE8_DEVICE_HANDLER( tc0220ioc_port_w ) READ8_DEVICE_HANDLER( tc0220ioc_portreg_r ) { tc0220ioc_state *tc0220ioc = tc0220ioc_get_safe_token(device); - return tc0220ioc_r(device, tc0220ioc->port); + return tc0220ioc_r(device, space, tc0220ioc->port); } WRITE8_DEVICE_HANDLER( tc0220ioc_portreg_w ) { tc0220ioc_state *tc0220ioc = tc0220ioc_get_safe_token(device); - tc0220ioc_w(device, tc0220ioc->port, data); + tc0220ioc_w(device, space, tc0220ioc->port, data); } @@ -300,29 +300,29 @@ WRITE8_DEVICE_HANDLER( tc0510nio_w ) READ16_DEVICE_HANDLER( tc0510nio_halfword_r ) { - return tc0510nio_r(device, offset); + return tc0510nio_r(device, space, offset); } WRITE16_DEVICE_HANDLER( tc0510nio_halfword_w ) { if (ACCESSING_BITS_0_7) - tc0510nio_w(device, offset, data & 0xff); + tc0510nio_w(device, space, offset, data & 0xff); else { /* driftout writes the coin counters here - bug? */ //logerror("CPU #0 PC %06x: warning - write to MSB of TC0510NIO address %02x\n",space->device().safe_pc(),offset); - tc0510nio_w(device, offset, (data >> 8) & 0xff); + tc0510nio_w(device, space, offset, (data >> 8) & 0xff); } } READ16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_r ) { - return tc0510nio_halfword_r(device, offset ^ 1, mem_mask); + return tc0510nio_halfword_r(device, space, offset ^ 1, mem_mask); } WRITE16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_w ) { - tc0510nio_halfword_w(device, offset ^ 1,data, mem_mask); + tc0510nio_halfword_w(device, space, offset ^ 1,data, mem_mask); } @@ -450,32 +450,32 @@ WRITE8_DEVICE_HANDLER( tc0640fio_w ) READ16_DEVICE_HANDLER( tc0640fio_halfword_r ) { - return tc0640fio_r(device, offset); + return tc0640fio_r(device, space, offset); } WRITE16_DEVICE_HANDLER( tc0640fio_halfword_w ) { if (ACCESSING_BITS_0_7) - tc0640fio_w(device, offset, data & 0xff); + tc0640fio_w(device, space, offset, data & 0xff); else { - tc0640fio_w(device, offset, (data >> 8) & 0xff); + tc0640fio_w(device, space, offset, (data >> 8) & 0xff); //logerror("CPU #0 PC %06x: warning - write to MSB of TC0640FIO address %02x\n",space->device().safe_pc(),offset); } } READ16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_r ) { - return tc0640fio_halfword_r(device, offset, mem_mask) << 8; + return tc0640fio_halfword_r(device, space, offset, mem_mask) << 8; } WRITE16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_w ) { if (ACCESSING_BITS_8_15) - tc0640fio_w(device, offset, (data >> 8) & 0xff); + tc0640fio_w(device, space, offset, (data >> 8) & 0xff); else { - tc0640fio_w(device, offset, data & 0xff); + tc0640fio_w(device, space, offset, data & 0xff); //logerror("CPU #0 PC %06x: warning - write to LSB of TC0640FIO address %02x\n",space->device().safe_pc(),offset); } } diff --git a/src/mame/machine/taitoio.h b/src/mame/machine/taitoio.h index 7c5bade1b25..f5533cf7348 100644 --- a/src/mame/machine/taitoio.h +++ b/src/mame/machine/taitoio.h @@ -127,30 +127,30 @@ extern const device_type TC0640FIO; ***************************************************************************/ /** TC0220IOC **/ -READ8_DEVICE_HANDLER( tc0220ioc_r ); -WRITE8_DEVICE_HANDLER( tc0220ioc_w ); -READ8_DEVICE_HANDLER( tc0220ioc_port_r ); -WRITE8_DEVICE_HANDLER( tc0220ioc_port_w ); -READ8_DEVICE_HANDLER( tc0220ioc_portreg_r ); -WRITE8_DEVICE_HANDLER( tc0220ioc_portreg_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0220ioc_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0220ioc_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0220ioc_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0220ioc_port_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0220ioc_portreg_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0220ioc_portreg_w ); /** TC0510NIO **/ -READ8_DEVICE_HANDLER( tc0510nio_r ); -WRITE8_DEVICE_HANDLER( tc0510nio_w ); -READ16_DEVICE_HANDLER( tc0510nio_halfword_r ); -WRITE16_DEVICE_HANDLER( tc0510nio_halfword_w ); -READ16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_r ); -WRITE16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0510nio_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0510nio_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0510nio_halfword_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0510nio_halfword_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_w ); /** TC0640FIO**/ -READ8_DEVICE_HANDLER( tc0640fio_r ); -WRITE8_DEVICE_HANDLER( tc0640fio_w ); -READ16_DEVICE_HANDLER( tc0640fio_halfword_r ); -WRITE16_DEVICE_HANDLER( tc0640fio_halfword_w ); -READ16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_r ); -WRITE16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0640fio_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0640fio_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0640fio_halfword_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0640fio_halfword_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_w ); #endif /* __TAITOIO_H__ */ diff --git a/src/mame/machine/tatsumi.c b/src/mame/machine/tatsumi.c index 734eeca598b..be6141f3c34 100644 --- a/src/mame/machine/tatsumi.c +++ b/src/mame/machine/tatsumi.c @@ -337,12 +337,11 @@ WRITE16_MEMBER(tatsumi_state::tatsumi_v30_68000_w) // self-test in Tatsumi games. Needs fixed, but hack it here for now. READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r) { - address_space *space = device->machine().device("audiocpu")->memory().space(AS_PROGRAM); - int r=ym2151_status_port_r(device,0); + int r=ym2151_status_port_r(device,space,0); - if (space->device().safe_pc()==0x2aca || space->device().safe_pc()==0x29fe - || space->device().safe_pc()==0xf9721 - || space->device().safe_pc()==0x1b96 || space->device().safe_pc()==0x1c65) // BigFight + if (space.device().safe_pc()==0x2aca || space.device().safe_pc()==0x29fe + || space.device().safe_pc()==0xf9721 + || space.device().safe_pc()==0x1b96 || space.device().safe_pc()==0x1c65) // BigFight return 0x80; return r; } @@ -351,17 +350,16 @@ READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r) // Mame really should emulate the OKI status reads even with Mame sound off. READ8_DEVICE_HANDLER(tatsumi_hack_oki_r) { - address_space *space = device->machine().device("audiocpu")->memory().space(AS_PROGRAM); - int r=downcast<okim6295_device *>(device)->read(*space,0); - - if (space->device().safe_pc()==0x2b70 || space->device().safe_pc()==0x2bb5 - || space->device().safe_pc()==0x2acc - || space->device().safe_pc()==0x1c79 // BigFight - || space->device().safe_pc()==0x1cbe // BigFight - || space->device().safe_pc()==0xf9881) + int r=downcast<okim6295_device *>(device)->read(space,0); + + if (space.device().safe_pc()==0x2b70 || space.device().safe_pc()==0x2bb5 + || space.device().safe_pc()==0x2acc + || space.device().safe_pc()==0x1c79 // BigFight + || space.device().safe_pc()==0x1cbe // BigFight + || space.device().safe_pc()==0xf9881) return 0xf; - if (space->device().safe_pc()==0x2ba3 || space->device().safe_pc()==0x2a9b || space->device().safe_pc()==0x2adc - || space->device().safe_pc()==0x1cac) // BigFight + if (space.device().safe_pc()==0x2ba3 || space.device().safe_pc()==0x2a9b || space.device().safe_pc()==0x2adc + || space.device().safe_pc()==0x1cac) // BigFight return 0; return r; } diff --git a/src/mame/machine/vectrex.c b/src/mame/machine/vectrex.c index aca931c975e..29da8f88da7 100644 --- a/src/mame/machine/vectrex.c +++ b/src/mame/machine/vectrex.c @@ -252,7 +252,7 @@ READ8_DEVICE_HANDLER(vectrex_via_pa_r) { device_t *ay = device->machine().device("ay8912"); - state->m_via_out[PORTA] = ay8910_r(ay, 0) + state->m_via_out[PORTA] = ay8910_r(ay, space, 0) & ~(state->m_imager_pinlevel & 0x80); } return state->m_via_out[PORTA]; diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c index 3f188590c62..7bef4419221 100644 --- a/src/mame/machine/williams.c +++ b/src/mame/machine/williams.c @@ -19,31 +19,31 @@ static void williams_main_irq(device_t *device, int state); static void williams_main_firq(device_t *device, int state); static void williams_snd_irq(device_t *device, int state); static void williams_snd_irq_b(device_t *device, int state); -static WRITE8_DEVICE_HANDLER( williams_snd_cmd_w ); -static WRITE8_DEVICE_HANDLER( playball_snd_cmd_w ); -static WRITE8_DEVICE_HANDLER( blaster_snd_cmd_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( williams_snd_cmd_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( playball_snd_cmd_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( blaster_snd_cmd_w ); /* input port mapping */ -static WRITE8_DEVICE_HANDLER( williams_port_select_w ); -static READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r ); -static READ8_DEVICE_HANDLER( williams_49way_port_0_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( williams_port_select_w ); +static DECLARE_READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r ); +static DECLARE_READ8_DEVICE_HANDLER( williams_49way_port_0_r ); /* newer-Williams routines */ -static WRITE8_DEVICE_HANDLER( williams2_snd_cmd_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( williams2_snd_cmd_w ); static void mysticm_main_irq(device_t *device, int state); static void tshoot_main_irq(device_t *device, int state); /* Lotto Fun-specific code */ -static WRITE8_DEVICE_HANDLER( lottofun_coin_lock_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( lottofun_coin_lock_w ); /* Turkey Shoot-specific code */ -static READ8_DEVICE_HANDLER( tshoot_input_port_0_3_r ); -static WRITE8_DEVICE_HANDLER( tshoot_lamp_w ); -static WRITE8_DEVICE_HANDLER( tshoot_maxvol_w ); +static DECLARE_READ8_DEVICE_HANDLER( tshoot_input_port_0_3_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( tshoot_lamp_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( tshoot_maxvol_w ); /* Joust 2-specific code */ -static WRITE8_DEVICE_HANDLER( joust2_snd_cmd_w ); -static WRITE8_DEVICE_HANDLER( joust2_pia_3_cb1_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( joust2_snd_cmd_w ); +static DECLARE_WRITE8_DEVICE_HANDLER( joust2_pia_3_cb1_w ); /************************************* @@ -658,7 +658,7 @@ READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r ) { williams_state *state = device->machine().driver_data<williams_state>(); if (state->m_port_select) - return williams_49way_port_0_r(device, 0); + return williams_49way_port_0_r(device, space, 0); else return state->ioport("IN3")->read(); } diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c index f92c25ff4fc..980f3e270ea 100644 --- a/src/mame/video/astrocde.c +++ b/src/mame/video/astrocde.c @@ -598,7 +598,7 @@ WRITE8_MEMBER(astrocde_state::astrocade_data_chip_register_w) case 0x17: /* noise volume register */ case 0x18: /* sound block transfer */ if (m_video_config & AC_SOUND_PRESENT) - astrocade_sound_w(machine().device("astrocade1"), offset, data); + astrocade_sound_w(machine().device("astrocade1"), space, offset, data); break; case 0x19: /* expand register */ diff --git a/src/mame/video/atarirle.h b/src/mame/video/atarirle.h index 41b6974cd01..23efdd8c075 100644 --- a/src/mame/video/atarirle.h +++ b/src/mame/video/atarirle.h @@ -97,10 +97,10 @@ void atarirle_control_w(device_t *device, UINT8 bits); void atarirle_command_w(device_t *device, UINT8 command); /* read/write handlers */ -READ16_DEVICE_HANDLER( atarirle_spriteram_r ); -READ32_DEVICE_HANDLER( atarirle_spriteram32_r ); -WRITE16_DEVICE_HANDLER( atarirle_spriteram_w ); -WRITE32_DEVICE_HANDLER( atarirle_spriteram32_w ); +DECLARE_READ16_DEVICE_HANDLER( atarirle_spriteram_r ); +DECLARE_READ32_DEVICE_HANDLER( atarirle_spriteram32_r ); +DECLARE_WRITE16_DEVICE_HANDLER( atarirle_spriteram_w ); +DECLARE_WRITE32_DEVICE_HANDLER( atarirle_spriteram32_w ); /* render helpers */ void atarirle_eof(device_t *device); diff --git a/src/mame/video/boogwing.c b/src/mame/video/boogwing.c index 492376bf3f4..5db9bbbd59c 100644 --- a/src/mame/video/boogwing.c +++ b/src/mame/video/boogwing.c @@ -28,7 +28,8 @@ static void mix_boogwing(running_machine &machine, bitmap_rgb32 &bitmap, const r bitmap_ind16 *sprite_bitmap1, *sprite_bitmap2; bitmap_ind8* priority_bitmap; - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = machine.driver_data()->generic_space(); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); sprite_bitmap1 = &machine.device<decospr_device>("spritegen1")->get_sprite_temp_bitmap(); sprite_bitmap2 = &machine.device<decospr_device>("spritegen2")->get_sprite_temp_bitmap(); @@ -180,8 +181,9 @@ static void mix_boogwing(running_machine &machine, bitmap_rgb32 &bitmap, const r SCREEN_UPDATE_RGB32( boogwing ) { boogwing_state *state = screen.machine().driver_data<boogwing_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); /* Draw sprite planes to bitmaps for later mixing */ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true); diff --git a/src/mame/video/btoads.c b/src/mame/video/btoads.c index 5484f35d085..65d933cbe1b 100644 --- a/src/mame/video/btoads.c +++ b/src/mame/video/btoads.c @@ -123,13 +123,13 @@ WRITE16_MEMBER( btoads_state::scroll1_w ) WRITE16_MEMBER( btoads_state::paletteram_w ) { - tlc34076_w(m_tlc34076, offset/2, data); + tlc34076_w(m_tlc34076, space, offset/2, data); } READ16_MEMBER( btoads_state::paletteram_r ) { - return tlc34076_r(m_tlc34076, offset/2); + return tlc34076_r(m_tlc34076, space, offset/2); } diff --git a/src/mame/video/cbuster.c b/src/mame/video/cbuster.c index c7ea461bfa9..71dcede049e 100644 --- a/src/mame/video/cbuster.c +++ b/src/mame/video/cbuster.c @@ -51,7 +51,8 @@ void cbuster_state::video_start() SCREEN_UPDATE_RGB32( twocrude ) { cbuster_state *state = screen.machine().driver_data<cbuster_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(!BIT(flip, 7)); diff --git a/src/mame/video/cninja.c b/src/mame/video/cninja.c index 4b2527e1d26..011ca542793 100644 --- a/src/mame/video/cninja.c +++ b/src/mame/video/cninja.c @@ -127,7 +127,8 @@ static void cninjabl_draw_sprites( running_machine &machine, bitmap_ind16 &bitma SCREEN_UPDATE_IND16( cninja ) { cninja_state *state = screen.machine().driver_data<cninja_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); @@ -148,7 +149,8 @@ SCREEN_UPDATE_IND16( cninja ) SCREEN_UPDATE_IND16( cninjabl ) { cninja_state *state = screen.machine().driver_data<cninja_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); /* force layers to be enabled */ deco16ic_set_enable(state->m_deco_tilegen2, 0, 1 ); @@ -173,7 +175,8 @@ SCREEN_UPDATE_IND16( cninjabl ) SCREEN_UPDATE_IND16( edrandy ) { cninja_state *state = screen.machine().driver_data<cninja_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); @@ -192,8 +195,9 @@ SCREEN_UPDATE_IND16( edrandy ) SCREEN_UPDATE_IND16( robocop2 ) { cninja_state *state = screen.machine().driver_data<cninja_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); /* One of the tilemap chips can switch between 2 tilemaps at 4bpp, or 1 at 8bpp */ if (priority & 4) @@ -249,8 +253,9 @@ VIDEO_START_MEMBER(cninja_state,mutantf) SCREEN_UPDATE_RGB32( mutantf ) { cninja_state *state = screen.machine().driver_data<cninja_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c index 3107f9cb287..aa4d9688f8b 100644 --- a/src/mame/video/combatsc.c +++ b/src/mame/video/combatsc.c @@ -115,7 +115,7 @@ static void set_pens( running_machine &machine ) TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0) { - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6); UINT8 attributes = m_page[0][tile_index]; int bank = 4 * ((m_vreg & 0x0f) - 1); int number, color; @@ -149,7 +149,7 @@ TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0) TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info1) { - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, generic_space(), 6); UINT8 attributes = m_page[1][tile_index]; int bank = 4 * ((m_vreg >> 4) - 1); int number, color; @@ -350,7 +350,7 @@ WRITE8_MEMBER(combatsc_state::combatsc_video_w) WRITE8_MEMBER(combatsc_state::combatsc_pf_control_w) { device_t *k007121 = m_video_circuit ? m_k007121_2 : m_k007121_1; - k007121_ctrl_w(k007121, offset, data); + k007121_ctrl_w(k007121, space, offset, data); if (offset == 7) m_bg_tilemap[m_video_circuit]->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); @@ -386,7 +386,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const { combatsc_state *state = machine.driver_data<combatsc_state>(); device_t *k007121 = circuit ? state->m_k007121_2 : state->m_k007121_1; - int base_color = (circuit * 4) * 16 + (k007121_ctrlram_r(k007121, 6) & 0x10) * 2; + address_space &space = machine.driver_data()->generic_space(); + int base_color = (circuit * 4) * 16 + (k007121_ctrlram_r(k007121, space, 6) & 0x10) * 2; k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[circuit], machine.colortable, source, base_color, 0, 0, pri_mask); } @@ -399,7 +400,8 @@ SCREEN_UPDATE_IND16( combatsc ) set_pens(screen.machine()); - if (k007121_ctrlram_r(state->m_k007121_1, 1) & 0x02) + address_space &space = screen.machine().driver_data()->generic_space(); + if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x02) { state->m_bg_tilemap[0]->set_scroll_rows(32); for (i = 0; i < 32; i++) @@ -408,10 +410,10 @@ SCREEN_UPDATE_IND16( combatsc ) else { state->m_bg_tilemap[0]->set_scroll_rows(1); - state->m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_1, 0) | ((k007121_ctrlram_r(state->m_k007121_1, 1) & 0x01) << 8)); + state->m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_1, space, 0) | ((k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x01) << 8)); } - if (k007121_ctrlram_r(state->m_k007121_2, 1) & 0x02) + if (k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x02) { state->m_bg_tilemap[1]->set_scroll_rows(32); for (i = 0; i < 32; i++) @@ -420,11 +422,11 @@ SCREEN_UPDATE_IND16( combatsc ) else { state->m_bg_tilemap[1]->set_scroll_rows(1); - state->m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_2, 0) | ((k007121_ctrlram_r(state->m_k007121_2, 1) & 0x01) << 8)); + state->m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_2, space, 0) | ((k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x01) << 8)); } - state->m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_1, 2)); - state->m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_2, 2)); + state->m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_1, space, 2)); + state->m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_2, space, 2)); screen.machine().priority_bitmap.fill(0, cliprect); @@ -451,7 +453,7 @@ SCREEN_UPDATE_IND16( combatsc ) draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[0], 0, 0x4444); } - if (k007121_ctrlram_r(state->m_k007121_1, 1) & 0x08) + if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x08) { for (i = 0; i < 32; i++) { @@ -461,7 +463,7 @@ SCREEN_UPDATE_IND16( combatsc ) } /* chop the extreme columns if necessary */ - if (k007121_ctrlram_r(state->m_k007121_1, 3) & 0x40) + if (k007121_ctrlram_r(state->m_k007121_1, space, 3) & 0x40) { rectangle clip; diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c index f7ee799983b..cef249849ed 100644 --- a/src/mame/video/contra.c +++ b/src/mame/video/contra.c @@ -78,10 +78,10 @@ static void set_pens( running_machine &machine ) TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info) { - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_1, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_1, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_1, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_1, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6); int attr = m_fg_cram[tile_index]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; @@ -106,10 +106,10 @@ TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info) TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info) { - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_2, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_2, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_2, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_2, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, generic_space(), 6); int attr = m_bg_cram[tile_index]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; @@ -135,8 +135,8 @@ TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info) TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info) { - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6); int attr = m_tx_cram[tile_index]; int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; @@ -238,7 +238,7 @@ WRITE8_MEMBER(contra_state::contra_text_cram_w) WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w) { - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, space, 6); if (offset == 3) { @@ -257,12 +257,12 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w) if (offset == 7) m_fg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); - k007121_ctrl_w(m_k007121_1, offset, data); + k007121_ctrl_w(m_k007121_1, space, offset, data); } WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w) { - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, space, 6); if (offset == 3) { @@ -279,7 +279,7 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w) if (offset == 7) m_bg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); - k007121_ctrl_w(m_k007121_2, offset, data); + k007121_ctrl_w(m_k007121_2, space, offset, data); } @@ -294,7 +294,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r { contra_state *state = machine.driver_data<contra_state>(); device_t *k007121 = bank ? state->m_k007121_2 : state->m_k007121_1; - int base_color = (k007121_ctrlram_r(k007121, 6) & 0x30) * 2; + address_space &space = machine.driver_data()->generic_space(); + int base_color = (k007121_ctrlram_r(k007121, space, 6) & 0x30) * 2; const UINT8 *source; if (bank == 0) @@ -308,10 +309,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r SCREEN_UPDATE_IND16( contra ) { contra_state *state = screen.machine().driver_data<contra_state>(); - UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, 0); - UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, 2); - UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, 0); - UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, 2); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0); + UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2); + UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0); + UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2); rectangle bg_finalclip = state->m_bg_clip; rectangle fg_finalclip = state->m_fg_clip; rectangle tx_finalclip = state->m_tx_clip; diff --git a/src/mame/video/dassault.c b/src/mame/video/dassault.c index 272bed66fc0..3d778b29129 100644 --- a/src/mame/video/dassault.c +++ b/src/mame/video/dassault.c @@ -77,8 +77,9 @@ static void mixdassaultlayer(running_machine &machine, bitmap_rgb32 &bitmap, bit SCREEN_UPDATE_RGB32( dassault ) { dassault_state *state = screen.machine().driver_data<dassault_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, false); screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, false); diff --git a/src/mame/video/dec0.c b/src/mame/video/dec0.c index 1a490ec5220..94ec968bf8f 100644 --- a/src/mame/video/dec0.c +++ b/src/mame/video/dec0.c @@ -155,30 +155,31 @@ SCREEN_UPDATE_IND16( automat ) // layer enables seem different... where are they? // the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation.. - deco_bac06_pf_control_0_w(state->m_tilegen1,0,0x0003, 0x00ff); // 8x8 - deco_bac06_pf_control_0_w(state->m_tilegen1,1,0x0003, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen1,2,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen1,3,0x0001, 0x00ff); // dimensions - - deco_bac06_pf_control_0_w(state->m_tilegen2,0,0x0082, 0x00ff); // 16x16 - deco_bac06_pf_control_0_w(state->m_tilegen2,1,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen2,2,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen2,3,0x0001, 0x00ff); // dimensions - - deco_bac06_pf_control_0_w(state->m_tilegen3,0,0x0082, 0x00ff); // 16x16 - deco_bac06_pf_control_0_w(state->m_tilegen3,1,0x0003, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen3,2,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen3,3,0x0001, 0x00ff); // dimensions + address_space &space = screen.machine().driver_data()->generic_space(); + deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8 + deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions + + deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16 + deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions + + deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16 + deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions // scroll registers got written elsewhere, copy them across - deco_bac06_pf_control_1_w(state->m_tilegen1,0,0x0000, 0xffff); // no scroll? - deco_bac06_pf_control_1_w(state->m_tilegen1,1,0x0000, 0xffff); // no scroll? + deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll? + deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll? - deco_bac06_pf_control_1_w(state->m_tilegen2,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff); - deco_bac06_pf_control_1_w(state->m_tilegen2,1,state->m_automat_scroll_regs[2], 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff); - deco_bac06_pf_control_1_w(state->m_tilegen3,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff); - deco_bac06_pf_control_1_w(state->m_tilegen3,1,state->m_automat_scroll_regs[0], 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff); state->flip_screen_set(state->m_tilegen1->get_flip_state()); @@ -223,30 +224,31 @@ SCREEN_UPDATE_IND16( secretab ) // layer enables seem different... where are they? // the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation.. - deco_bac06_pf_control_0_w(state->m_tilegen1,0,0x0003, 0x00ff); // 8x8 - deco_bac06_pf_control_0_w(state->m_tilegen1,1,0x0003, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen1,2,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen1,3,0x0001, 0x00ff); // dimensions - - deco_bac06_pf_control_0_w(state->m_tilegen2,0,0x0082, 0x00ff); // 16x16 - deco_bac06_pf_control_0_w(state->m_tilegen2,1,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen2,2,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen2,3,0x0001, 0x00ff); // dimensions - - deco_bac06_pf_control_0_w(state->m_tilegen3,0,0x0082, 0x00ff); // 16x16 - deco_bac06_pf_control_0_w(state->m_tilegen3,1,0x0003, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen3,2,0x0000, 0x00ff); - deco_bac06_pf_control_0_w(state->m_tilegen3,3,0x0001, 0x00ff); // dimensions + address_space &space = screen.machine().driver_data()->generic_space(); + deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8 + deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions + + deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16 + deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions + + deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16 + deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff); + deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions // scroll registers got written elsewhere, copy them across - deco_bac06_pf_control_1_w(state->m_tilegen1,0,0x0000, 0xffff); // no scroll? - deco_bac06_pf_control_1_w(state->m_tilegen1,1,0x0000, 0xffff); // no scroll? + deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll? + deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll? - deco_bac06_pf_control_1_w(state->m_tilegen2,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff); - deco_bac06_pf_control_1_w(state->m_tilegen2,1,state->m_automat_scroll_regs[2], 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff); - deco_bac06_pf_control_1_w(state->m_tilegen3,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff); - deco_bac06_pf_control_1_w(state->m_tilegen3,1,state->m_automat_scroll_regs[0], 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff); + deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff); state->flip_screen_set(state->m_tilegen1->get_flip_state()); diff --git a/src/mame/video/decbac06.c b/src/mame/video/decbac06.c index 45b718ccf11..cf8c402c325 100644 --- a/src/mame/video/decbac06.c +++ b/src/mame/video/decbac06.c @@ -389,17 +389,17 @@ READ16_DEVICE_HANDLER( deco_bac06_pf_data_r ) WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_w ) { if (offset&1) - deco_bac06_pf_data_w(device,offset/2,data,0x00ff); + deco_bac06_pf_data_w(device,space,offset/2,data,0x00ff); else - deco_bac06_pf_data_w(device,offset/2,data<<8,0xff00); + deco_bac06_pf_data_w(device,space,offset/2,data<<8,0xff00); } READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_r ) { if (offset&1) /* MSB */ - return deco_bac06_pf_data_r(device,offset/2,0x00ff); + return deco_bac06_pf_data_r(device,space,offset/2,0x00ff); else - return deco_bac06_pf_data_r(device,offset/2,0xff00)>>8; + return deco_bac06_pf_data_r(device,space,offset/2,0xff00)>>8; } WRITE16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_w ) @@ -430,18 +430,18 @@ READ16_DEVICE_HANDLER( deco_bac06_pf_colscroll_r ) WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_w ) { if (offset&1) - deco_bac06_pf_control_0_w(device,offset/2,data,0x00ff); // oscar (mirrors?) + deco_bac06_pf_control_0_w(device,space,offset/2,data,0x00ff); // oscar (mirrors?) else - deco_bac06_pf_control_0_w(device,offset/2,data,0x00ff); + deco_bac06_pf_control_0_w(device,space,offset/2,data,0x00ff); } /* used by dec8.c */ READ8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_r ) { if (offset&1) - return deco_bac06_pf_control_1_r(device,offset/2,0x00ff); + return deco_bac06_pf_control_1_r(device,space,offset/2,0x00ff); else - return deco_bac06_pf_control_1_r(device,offset/2,0xff00)>>8; + return deco_bac06_pf_control_1_r(device,space,offset/2,0xff00)>>8; } /* used by dec8.c */ @@ -450,50 +450,50 @@ WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_w ) if (offset<4) // these registers are 16-bit? { if (offset&1) - deco_bac06_pf_control_1_w(device,offset/2,data,0x00ff); + deco_bac06_pf_control_1_w(device,space,offset/2,data,0x00ff); else - deco_bac06_pf_control_1_w(device,offset/2,data<<8,0xff00); + deco_bac06_pf_control_1_w(device,space,offset/2,data<<8,0xff00); } else // these registers are 8-bit and mirror? (triothep vs actfancr) { if (offset&1) - deco_bac06_pf_control_1_w(device,offset/2,data,0x00ff); + deco_bac06_pf_control_1_w(device,space,offset/2,data,0x00ff); else - deco_bac06_pf_control_1_w(device,offset/2,data,0x00ff); + deco_bac06_pf_control_1_w(device,space,offset/2,data,0x00ff); } } READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_r ) { if (offset&1) - return deco_bac06_pf_rowscroll_r(device,offset/2,0x00ff); + return deco_bac06_pf_rowscroll_r(device,space,offset/2,0x00ff); else - return deco_bac06_pf_rowscroll_r(device,offset/2,0xff00)>>8; + return deco_bac06_pf_rowscroll_r(device,space,offset/2,0xff00)>>8; } WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_w ) { if (offset&1) - deco_bac06_pf_rowscroll_w(device,offset/2,data,0x00ff); + deco_bac06_pf_rowscroll_w(device,space,offset/2,data,0x00ff); else - deco_bac06_pf_rowscroll_w(device,offset/2,data<<8,0xff00); + deco_bac06_pf_rowscroll_w(device,space,offset/2,data<<8,0xff00); } READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_r ) { if (offset&1) - return deco_bac06_pf_rowscroll_r(device,offset/2,0xff00)>>8; + return deco_bac06_pf_rowscroll_r(device,space,offset/2,0xff00)>>8; else - return deco_bac06_pf_rowscroll_r(device,offset/2,0x00ff); + return deco_bac06_pf_rowscroll_r(device,space,offset/2,0x00ff); } WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w ) { if (offset&1) - deco_bac06_pf_rowscroll_w(device,offset/2,data<<8,0xff00); + deco_bac06_pf_rowscroll_w(device,space,offset/2,data<<8,0xff00); else - deco_bac06_pf_rowscroll_w(device,offset/2,data,0x00ff); + deco_bac06_pf_rowscroll_w(device,space,offset/2,data,0x00ff); } @@ -502,25 +502,25 @@ WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w ) WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_packed_w ) { if (offset&1) - deco_bac06_pf_control_0_w(device,offset/2,data<<8,0xff00); + deco_bac06_pf_control_0_w(device,space,offset/2,data<<8,0xff00); else - deco_bac06_pf_control_0_w(device,offset/2,data,0x00ff); + deco_bac06_pf_control_0_w(device,space,offset/2,data,0x00ff); } /* used by hippodrm */ WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_swap_w ) { - deco_bac06_pf_control1_8bit_w(device, offset^1, data); + deco_bac06_pf_control1_8bit_w(device,space, offset^1, data); } /* used by hippodrm */ READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_r ) { - return deco_bac06_pf_data_8bit_r(device, offset^1); + return deco_bac06_pf_data_8bit_r(device,space, offset^1); } /* used by hippodrm */ WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_w ) { - deco_bac06_pf_data_8bit_w(device, offset^1, data); + deco_bac06_pf_data_8bit_w(device,space, offset^1, data); } diff --git a/src/mame/video/decbac06.h b/src/mame/video/decbac06.h index fdafd76278a..5bedc95b71a 100644 --- a/src/mame/video/decbac06.h +++ b/src/mame/video/decbac06.h @@ -65,37 +65,37 @@ private: /* 16-bit accessors */ -WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_0_w ); -READ16_DEVICE_HANDLER( deco_bac06_pf_control_1_r ); -WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_1_w ); +DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_0_w ); +DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_control_1_r ); +DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_1_w ); -WRITE16_DEVICE_HANDLER( deco_bac06_pf_data_w ); -READ16_DEVICE_HANDLER( deco_bac06_pf_data_r ); -WRITE16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_w ); -READ16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_r ); -WRITE16_DEVICE_HANDLER( deco_bac06_pf_colscroll_w ); -READ16_DEVICE_HANDLER( deco_bac06_pf_colscroll_r ); +DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_data_w ); +DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_data_r ); +DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_w ); +DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_r ); +DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_colscroll_w ); +DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_colscroll_r ); /* 8-bit accessors */ /* for dec8.c, pcktgal.c */ -READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_r ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_w ); +DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_r ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_w ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_w ); -READ8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_r ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_w ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_w ); +DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_r ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_w ); -READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_r ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_w ); +DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_r ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_w ); /* for hippodrm (dec0.c) and actfancr / triothep (H6280 based games)*/ -WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_packed_w ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_swap_w ); -READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_r ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_w ); -READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_r ); -WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_packed_w ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_swap_w ); +DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_r ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_w ); +DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_r ); +DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w ); extern const device_type DECO_BAC06; diff --git a/src/mame/video/deco16ic.c b/src/mame/video/deco16ic.c index 4775ac51983..099d2975bb7 100644 --- a/src/mame/video/deco16ic.c +++ b/src/mame/video/deco16ic.c @@ -585,32 +585,32 @@ READ16_DEVICE_HANDLER( deco16ic_pf_control_r ) READ32_DEVICE_HANDLER ( deco16ic_pf_control_dword_r ) { - return deco16ic_pf_control_r(device, offset, 0xffff)^0xffff0000; + return deco16ic_pf_control_r(device, space, offset, 0xffff)^0xffff0000; } WRITE32_DEVICE_HANDLER( deco16ic_pf_control_dword_w ) { - deco16ic_pf_control_w(device, offset, data & 0xffff, mem_mask & 0xffff); + deco16ic_pf_control_w(device, space, offset, data & 0xffff, mem_mask & 0xffff); } READ32_DEVICE_HANDLER( deco16ic_pf1_data_dword_r ) { - return deco16ic_pf1_data_r(device, offset, 0xffff)^0xffff0000; + return deco16ic_pf1_data_r(device, space, offset, 0xffff)^0xffff0000; } WRITE32_DEVICE_HANDLER( deco16ic_pf1_data_dword_w ) { - deco16ic_pf1_data_w(device, offset, data & 0xffff, mem_mask & 0xffff); + deco16ic_pf1_data_w(device, space, offset, data & 0xffff, mem_mask & 0xffff); } READ32_DEVICE_HANDLER( deco16ic_pf2_data_dword_r ) { - return deco16ic_pf2_data_r(device, offset, 0xffff)^0xffff0000; + return deco16ic_pf2_data_r(device, space, offset, 0xffff)^0xffff0000; } WRITE32_DEVICE_HANDLER( deco16ic_pf2_data_dword_w ) { - deco16ic_pf2_data_w(device, offset, data & 0xffff, mem_mask & 0xffff); + deco16ic_pf2_data_w(device, space, offset, data & 0xffff, mem_mask & 0xffff); } diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h index 755e118ebae..0769f5e973d 100644 --- a/src/mame/video/deco16ic.h +++ b/src/mame/video/deco16ic.h @@ -74,25 +74,25 @@ extern const device_type DECO16IC; DEVICE I/O FUNCTIONS ***************************************************************************/ -WRITE16_DEVICE_HANDLER( deco16ic_pf1_data_w ); -WRITE16_DEVICE_HANDLER( deco16ic_pf2_data_w ); +DECLARE_WRITE16_DEVICE_HANDLER( deco16ic_pf1_data_w ); +DECLARE_WRITE16_DEVICE_HANDLER( deco16ic_pf2_data_w ); -READ16_DEVICE_HANDLER( deco16ic_pf1_data_r ); -READ16_DEVICE_HANDLER( deco16ic_pf2_data_r ); +DECLARE_READ16_DEVICE_HANDLER( deco16ic_pf1_data_r ); +DECLARE_READ16_DEVICE_HANDLER( deco16ic_pf2_data_r ); -WRITE16_DEVICE_HANDLER( deco16ic_pf_control_w ); +DECLARE_WRITE16_DEVICE_HANDLER( deco16ic_pf_control_w ); -READ16_DEVICE_HANDLER( deco16ic_pf_control_r ); +DECLARE_READ16_DEVICE_HANDLER( deco16ic_pf_control_r ); -WRITE32_DEVICE_HANDLER( deco16ic_pf1_data_dword_w ); -WRITE32_DEVICE_HANDLER( deco16ic_pf2_data_dword_w ); +DECLARE_WRITE32_DEVICE_HANDLER( deco16ic_pf1_data_dword_w ); +DECLARE_WRITE32_DEVICE_HANDLER( deco16ic_pf2_data_dword_w ); -READ32_DEVICE_HANDLER( deco16ic_pf1_data_dword_r ); -READ32_DEVICE_HANDLER( deco16ic_pf2_data_dword_r ); +DECLARE_READ32_DEVICE_HANDLER( deco16ic_pf1_data_dword_r ); +DECLARE_READ32_DEVICE_HANDLER( deco16ic_pf2_data_dword_r ); -WRITE32_DEVICE_HANDLER( deco16ic_pf_control_dword_w ); +DECLARE_WRITE32_DEVICE_HANDLER( deco16ic_pf_control_dword_w ); -READ32_DEVICE_HANDLER( deco16ic_pf_control_dword_r ); +DECLARE_READ32_DEVICE_HANDLER( deco16ic_pf_control_dword_r ); void deco16ic_print_debug_info(device_t *device, bitmap_ind16 &bitmap); diff --git a/src/mame/video/decocomn.h b/src/mame/video/decocomn.h index fac6f99d8d7..9e60d4c7ee1 100644 --- a/src/mame/video/decocomn.h +++ b/src/mame/video/decocomn.h @@ -55,13 +55,13 @@ extern const device_type DECOCOMN; DEVICE I/O FUNCTIONS ***************************************************************************/ -WRITE16_DEVICE_HANDLER( decocomn_nonbuffered_palette_w ); -WRITE16_DEVICE_HANDLER( decocomn_buffered_palette_w ); -WRITE16_DEVICE_HANDLER( decocomn_palette_dma_w ); +DECLARE_WRITE16_DEVICE_HANDLER( decocomn_nonbuffered_palette_w ); +DECLARE_WRITE16_DEVICE_HANDLER( decocomn_buffered_palette_w ); +DECLARE_WRITE16_DEVICE_HANDLER( decocomn_palette_dma_w ); -WRITE16_DEVICE_HANDLER( decocomn_priority_w ); -READ16_DEVICE_HANDLER( decocomn_priority_r ); +DECLARE_WRITE16_DEVICE_HANDLER( decocomn_priority_w ); +DECLARE_READ16_DEVICE_HANDLER( decocomn_priority_r ); -READ16_DEVICE_HANDLER( decocomn_71_r ); +DECLARE_READ16_DEVICE_HANDLER( decocomn_71_r ); #endif diff --git a/src/mame/video/dietgo.c b/src/mame/video/dietgo.c index 9b0a177b738..470400cf836 100644 --- a/src/mame/video/dietgo.c +++ b/src/mame/video/dietgo.c @@ -6,7 +6,8 @@ SCREEN_UPDATE_IND16( dietgo ) { dietgo_state *state = screen.machine().driver_data<dietgo_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c index 9476a07a728..afdce753898 100644 --- a/src/mame/video/dkong.c +++ b/src/mame/video/dkong.c @@ -725,7 +725,8 @@ static void radarscp_step(running_machine &machine, int line_cnt) state->m_sig30Hz = (1-state->m_sig30Hz); /* Now mix with SND02 (sound 2) line - on 74ls259, bit2 */ - state->m_rflip_sig = latch8_bit2_r(state->m_dev_6h, 0) & state->m_sig30Hz; + address_space &space = machine.driver_data()->generic_space(); + state->m_rflip_sig = latch8_bit2_r(state->m_dev_6h, space, 0) & state->m_sig30Hz; sig = state->m_rflip_sig ^ ((line_cnt & 0x80)>>7); @@ -759,7 +760,7 @@ static void radarscp_step(running_machine &machine, int line_cnt) * * Mixed with ANS line (bit 5) from Port B of 8039 */ - if (state->m_grid_on && latch8_bit5_r(state->m_dev_vp2, 0)) + if (state->m_grid_on && latch8_bit5_r(state->m_dev_vp2, space, 0)) { diff = (0.0 - state->m_cv3); diff = diff - diff*exp(0.0 - (1.0/RC32 * dt) ); diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c index e2a8a343ffc..14f197bd10e 100644 --- a/src/mame/video/fastlane.c +++ b/src/mame/video/fastlane.c @@ -49,9 +49,9 @@ static void set_pens( running_machine &machine ) TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0) { - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5); int attr = m_videoram1[tile_index]; int code = m_videoram1[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; @@ -77,9 +77,9 @@ TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0) TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1) { - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5); int attr = m_videoram2[tile_index]; int code = m_videoram2[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; @@ -163,11 +163,12 @@ SCREEN_UPDATE_IND16( fastlane ) set_pens(screen.machine()); /* set scroll registers */ - xoffs = k007121_ctrlram_r(state->m_k007121, 0); + address_space &space = screen.machine().driver_data()->generic_space(); + xoffs = k007121_ctrlram_r(state->m_k007121, space, 0); for (i = 0; i < 32; i++) state->m_layer0->set_scrollx(i, state->m_k007121_regs[0x20 + i] + xoffs - 40); - state->m_layer0->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, 2)); + state->m_layer0->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2)); state->m_layer0->draw(bitmap, finalclip0, 0, 0); k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, 0, 40, 0, (UINT32)-1); diff --git a/src/mame/video/flkatck.c b/src/mame/video/flkatck.c index 18135749ad8..8b15b2d1bd3 100644 --- a/src/mame/video/flkatck.c +++ b/src/mame/video/flkatck.c @@ -16,11 +16,11 @@ TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_A) { - UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, 0); - UINT8 ctrl_2 = k007121_ctrlram_r(m_k007121, 2); - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); + UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, generic_space(), 0); + UINT8 ctrl_2 = k007121_ctrlram_r(m_k007121, generic_space(), 2); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5); int attr = m_k007121_ram[tile_index]; int code = m_k007121_ram[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; @@ -99,7 +99,7 @@ WRITE8_MEMBER(flkatck_state::flkatck_k007121_regs_w) switch (offset) { case 0x04: /* ROM bank select */ - if (data != k007121_ctrlram_r(m_k007121, 4)) + if (data != k007121_ctrlram_r(m_k007121, space, 4)) machine().tilemap().mark_all_dirty(); break; @@ -110,7 +110,7 @@ WRITE8_MEMBER(flkatck_state::flkatck_k007121_regs_w) break; } - k007121_ctrl_w(m_k007121, offset, data); + k007121_ctrl_w(m_k007121, space, offset, data); } @@ -133,6 +133,7 @@ SCREEN_UPDATE_IND16( flkatck ) rectangle clip[2]; const rectangle &visarea = screen.visible_area(); + address_space &space = screen.machine().driver_data()->generic_space(); if (state->m_flipscreen) { clip[0] = visarea; @@ -141,8 +142,8 @@ SCREEN_UPDATE_IND16( flkatck ) clip[1] = visarea; clip[1].min_x = clip[1].max_x - 40; - state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, 0) - 56 ); - state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, 2)); + state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 56 ); + state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2)); state->m_k007121_tilemap[1]->set_scrollx(0, -16); } else @@ -154,8 +155,8 @@ SCREEN_UPDATE_IND16( flkatck ) clip[1].max_x = 39; clip[1].min_x = 0; - state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, 0) - 40 ); - state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, 2)); + state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 40 ); + state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2)); state->m_k007121_tilemap[1]->set_scrollx(0, 0); } diff --git a/src/mame/video/funkyjet.c b/src/mame/video/funkyjet.c index 38ac860794f..face8a83149 100644 --- a/src/mame/video/funkyjet.c +++ b/src/mame/video/funkyjet.c @@ -14,7 +14,8 @@ SCREEN_UPDATE_IND16( funkyjet ) { funkyjet_state *state = screen.machine().driver_data<funkyjet_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); diff --git a/src/mame/video/gp9001.c b/src/mame/video/gp9001.c index f0efe7cb760..07357177322 100644 --- a/src/mame/video/gp9001.c +++ b/src/mame/video/gp9001.c @@ -594,10 +594,10 @@ READ16_DEVICE_HANDLER( gp9001_vdp_r ) { case 0x04/2: case 0x06/2: - return gp9001_devvideoram16_r(device, offset-0x04/2, mem_mask); + return gp9001_devvideoram16_r(device, space, offset-0x04/2, mem_mask); case 0x0c/2: - return gp9001_vdpstatus_r(device, offset-0x0c/2, mem_mask); + return gp9001_vdpstatus_r(device, space, offset-0x0c/2, mem_mask); default: logerror("gp9001_vdp_r: read from unhandled offset %04x\n",offset*2); @@ -611,20 +611,20 @@ WRITE16_DEVICE_HANDLER( gp9001_vdp_w ) switch (offset) { case 0x00/2: - gp9001_devvoffs_w(device, offset-0x00/2, data, mem_mask); + gp9001_devvoffs_w(device, space, offset-0x00/2, data, mem_mask); break; case 0x04/2: case 0x06/2: - gp9001_devvideoram16_w(device, offset-0x04/2, data, mem_mask); + gp9001_devvideoram16_w(device, space, offset-0x04/2, data, mem_mask); break; case 0x08/2: - gp9001_scroll_reg_select_w(device, offset-0x08/2, data, mem_mask); + gp9001_scroll_reg_select_w(device, space, offset-0x08/2, data, mem_mask); break; case 0x0c/2: - gp9001_scroll_reg_devvdata_w(device, offset-0x0c/2, data, mem_mask); + gp9001_scroll_reg_devvdata_w(device, space, offset-0x0c/2, data, mem_mask); break; default: @@ -639,11 +639,11 @@ READ16_DEVICE_HANDLER( gp9001_vdp_alt_r ) switch (offset) { case 0x00/2: - return gp9001_vdpstatus_r(device, offset-0x0c/2, mem_mask); + return gp9001_vdpstatus_r(device, space, offset-0x0c/2, mem_mask); case 0x08/2: case 0x0a/2: - return gp9001_devvideoram16_r(device, offset-0x04/2, mem_mask); + return gp9001_devvideoram16_r(device, space, offset-0x04/2, mem_mask); default: @@ -658,20 +658,20 @@ WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w ) switch (offset) { case 0x00/2: - gp9001_scroll_reg_devvdata_w(device, offset-0x0c/2, data, mem_mask); + gp9001_scroll_reg_devvdata_w(device, space, offset-0x0c/2, data, mem_mask); break; case 0x04/2: - gp9001_scroll_reg_select_w(device, offset-0x08/2, data, mem_mask); + gp9001_scroll_reg_select_w(device, space, offset-0x08/2, data, mem_mask); break; case 0x08/2: case 0x0a/2: - gp9001_devvideoram16_w(device, offset-0x04/2, data, mem_mask); + gp9001_devvideoram16_w(device, space, offset-0x04/2, data, mem_mask); break; case 0x0c/2: - gp9001_devvoffs_w(device, offset-0x00/2, data, mem_mask); + gp9001_devvoffs_w(device, space, offset-0x00/2, data, mem_mask); break; default: diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h index ad7fee05899..7ceb6fe78f9 100644 --- a/src/mame/video/gp9001.h +++ b/src/mame/video/gp9001.h @@ -101,13 +101,13 @@ extern const device_type GP9001_VDP; // access to VDP -READ16_DEVICE_HANDLER( gp9001_vdp_r ); -WRITE16_DEVICE_HANDLER( gp9001_vdp_w ); -READ16_DEVICE_HANDLER( gp9001_vdp_alt_r ); -WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w ); +DECLARE_READ16_DEVICE_HANDLER( gp9001_vdp_r ); +DECLARE_WRITE16_DEVICE_HANDLER( gp9001_vdp_w ); +DECLARE_READ16_DEVICE_HANDLER( gp9001_vdp_alt_r ); +DECLARE_WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w ); // this bootleg has strange access -READ16_DEVICE_HANDLER ( pipibibi_bootleg_videoram16_r ); -WRITE16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_w ); -READ16_DEVICE_HANDLER ( pipibibi_bootleg_spriteram16_r ); -WRITE16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_w ); -WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w ); +DECLARE_READ16_DEVICE_HANDLER ( pipibibi_bootleg_videoram16_r ); +DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_w ); +DECLARE_READ16_DEVICE_HANDLER ( pipibibi_bootleg_spriteram16_r ); +DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_w ); +DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w ); diff --git a/src/mame/video/gradius3.c b/src/mame/video/gradius3.c index 6745b7617d1..0d811ac0fe6 100644 --- a/src/mame/video/gradius3.c +++ b/src/mame/video/gradius3.c @@ -126,8 +126,9 @@ SCREEN_UPDATE_IND16( gradius3 ) gradius3_state *state = screen.machine().driver_data<gradius3_state>(); /* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */ - k052109_w(state->m_k052109, 0x1d80, 0x10); - k052109_w(state->m_k052109, 0x1f00, 0x32); + address_space &space = screen.machine().driver_data()->generic_space(); + k052109_w(state->m_k052109, space, 0x1d80, 0x10); + k052109_w(state->m_k052109, space, 0x1f00, 0x32); k052109_tilemap_update(state->m_k052109); diff --git a/src/mame/video/groundfx.c b/src/mame/video/groundfx.c index b96347dfe72..fd103fc9ab9 100644 --- a/src/mame/video/groundfx.c +++ b/src/mame/video/groundfx.c @@ -198,6 +198,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re SCREEN_UPDATE_IND16( groundfx ) { groundfx_state *state = screen.machine().driver_data<groundfx_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); device_t *tc0100scn = screen.machine().device("tc0100scn"); device_t *tc0480scp = screen.machine().device("tc0480scp"); UINT8 layer[5]; @@ -241,8 +242,8 @@ SCREEN_UPDATE_IND16( groundfx ) it's contents the usual way. */ - if (tc0100scn_long_r(tc0100scn, 0x4090 / 4, 0xffffffff) || - tc0480scp_long_r(tc0480scp, 0x20 / 4, 0xffffffff) == 0x240866) /* Anything in text layer - really stupid hack */ + if (tc0100scn_long_r(tc0100scn, space, 0x4090 / 4, 0xffffffff) || + tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) == 0x240866) /* Anything in text layer - really stupid hack */ { tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2); tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4); @@ -250,7 +251,7 @@ SCREEN_UPDATE_IND16( groundfx ) //tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, 0, pivlayer[2], 0, 0); - if (tc0480scp_long_r(tc0480scp, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */ + if (tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */ tc0480scp_tilemap_draw(tc0480scp, bitmap, state->m_hack_cliprect, layer[0], 0, 0); draw_sprites(screen.machine(), bitmap, cliprect, 1, 44, -574); } diff --git a/src/mame/video/hcastle.c b/src/mame/video/hcastle.c index 4c0afd21359..42ffc993958 100644 --- a/src/mame/video/hcastle.c +++ b/src/mame/video/hcastle.c @@ -73,8 +73,8 @@ TILEMAP_MAPPER_MEMBER(hcastle_state::tilemap_scan) TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info) { - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6); int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -97,8 +97,8 @@ TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info) TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info) { - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, generic_space(), 6); int bit0 = (ctrl_5 >> 0) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03; @@ -180,7 +180,7 @@ WRITE8_MEMBER(hcastle_state::hcastle_pf1_control_w) { m_fg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); } - k007121_ctrl_w(m_k007121_1, offset, data); + k007121_ctrl_w(m_k007121_1, space, offset, data); } WRITE8_MEMBER(hcastle_state::hcastle_pf2_control_w) @@ -197,7 +197,7 @@ WRITE8_MEMBER(hcastle_state::hcastle_pf2_control_w) { m_bg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); } - k007121_ctrl_w(m_k007121_2, offset, data); + k007121_ctrl_w(m_k007121_2, space, offset, data); } /*****************************************************************************/ @@ -206,7 +206,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r { hcastle_state *state = machine.driver_data<hcastle_state>(); device_t *k007121 = bank ? state->m_k007121_2 : state->m_k007121_1; - int base_color = (k007121_ctrlram_r(k007121, 6) & 0x30) * 2; + address_space &space = machine.driver_data()->generic_space(); + int base_color = (k007121_ctrlram_r(k007121, space, 6) & 0x30) * 2; int bank_base = (bank == 0) ? 0x4000 * (state->m_gfx_bank & 1) : 0; k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[bank], machine.colortable, sbank, base_color, 0, bank_base, (UINT32)-1); @@ -217,15 +218,16 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r SCREEN_UPDATE_IND16( hcastle ) { hcastle_state *state = screen.machine().driver_data<hcastle_state>(); - - UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, 0); - UINT8 ctrl_1_1 = k007121_ctrlram_r(state->m_k007121_1, 1); - UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, 2); - UINT8 ctrl_1_3 = k007121_ctrlram_r(state->m_k007121_1, 3); - UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, 0); - UINT8 ctrl_2_1 = k007121_ctrlram_r(state->m_k007121_2, 1); - UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, 2); - UINT8 ctrl_2_3 = k007121_ctrlram_r(state->m_k007121_2, 3); + address_space &space = screen.machine().driver_data()->generic_space(); + + UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0); + UINT8 ctrl_1_1 = k007121_ctrlram_r(state->m_k007121_1, space, 1); + UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2); + UINT8 ctrl_1_3 = k007121_ctrlram_r(state->m_k007121_1, space, 3); + UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0); + UINT8 ctrl_2_1 = k007121_ctrlram_r(state->m_k007121_2, space, 1); + UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2); + UINT8 ctrl_2_3 = k007121_ctrlram_r(state->m_k007121_2, space, 3); set_pens(screen.machine()); diff --git a/src/mame/video/itech8.c b/src/mame/video/itech8.c index b5e15dbe626..4cffebbcbbf 100644 --- a/src/mame/video/itech8.c +++ b/src/mame/video/itech8.c @@ -188,7 +188,7 @@ void itech8_state::video_start() WRITE8_MEMBER(itech8_state::itech8_palette_w) { - tlc34076_w(machine().device("tlc34076"), offset/2, data); + tlc34076_w(machine().device("tlc34076"), space, offset/2, data); } diff --git a/src/mame/video/kan_pand.h b/src/mame/video/kan_pand.h index f633cb18da1..56e657cc728 100644 --- a/src/mame/video/kan_pand.h +++ b/src/mame/video/kan_pand.h @@ -62,11 +62,11 @@ void pandora_eof(device_t *device); void pandora_set_clear_bitmap(device_t *device, int clear); void pandora_set_bg_pen( device_t *device, int pen ); -WRITE8_DEVICE_HANDLER ( pandora_spriteram_w ); -READ8_DEVICE_HANDLER( pandora_spriteram_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( pandora_spriteram_w ); +DECLARE_READ8_DEVICE_HANDLER( pandora_spriteram_r ); -WRITE16_DEVICE_HANDLER( pandora_spriteram_LSB_w ); -READ16_DEVICE_HANDLER( pandora_spriteram_LSB_r ); +DECLARE_WRITE16_DEVICE_HANDLER( pandora_spriteram_LSB_w ); +DECLARE_READ16_DEVICE_HANDLER( pandora_spriteram_LSB_r ); #endif /* __KAN_PAND_H__ */ diff --git a/src/mame/video/konicdev.c b/src/mame/video/konicdev.c index 667741c712d..281d94a770d 100644 --- a/src/mame/video/konicdev.c +++ b/src/mame/video/konicdev.c @@ -2455,26 +2455,26 @@ WRITE8_DEVICE_HANDLER( k052109_w ) READ16_DEVICE_HANDLER( k052109_word_r ) { - return k052109_r(device, offset + 0x2000) | (k052109_r(device, offset) << 8); + return k052109_r(device, space, offset + 0x2000) | (k052109_r(device, space, offset) << 8); } WRITE16_DEVICE_HANDLER( k052109_word_w ) { if (ACCESSING_BITS_8_15) - k052109_w(device, offset, (data >> 8) & 0xff); + k052109_w(device, space, offset, (data >> 8) & 0xff); if (ACCESSING_BITS_0_7) - k052109_w(device, offset + 0x2000, data & 0xff); + k052109_w(device, space, offset + 0x2000, data & 0xff); } READ16_DEVICE_HANDLER( k052109_lsb_r ) { - return k052109_r(device, offset); + return k052109_r(device, space, offset); } WRITE16_DEVICE_HANDLER( k052109_lsb_w ) { if(ACCESSING_BITS_0_7) - k052109_w(device, offset, data & 0xff); + k052109_w(device, space, offset, data & 0xff); } void k052109_set_rmrd_line( device_t *device, int state ) @@ -2978,15 +2978,15 @@ WRITE8_DEVICE_HANDLER( k051960_w ) READ16_DEVICE_HANDLER( k051960_word_r ) { - return k051960_r(device, offset * 2 + 1) | (k051960_r(device, offset * 2) << 8); + return k051960_r(device, space, offset * 2 + 1) | (k051960_r(device, space, offset * 2) << 8); } WRITE16_DEVICE_HANDLER( k051960_word_w ) { if (ACCESSING_BITS_8_15) - k051960_w(device, offset * 2, (data >> 8) & 0xff); + k051960_w(device, space, offset * 2, (data >> 8) & 0xff); if (ACCESSING_BITS_0_7) - k051960_w(device, offset * 2 + 1, data & 0xff); + k051960_w(device, space, offset * 2 + 1, data & 0xff); } @@ -3075,15 +3075,15 @@ void k051960_set_sprite_offsets( device_t *device, int dx, int dy ) READ16_DEVICE_HANDLER( k051937_word_r ) { - return k051937_r(device, offset * 2 + 1) | (k051937_r(device, offset * 2) << 8); + return k051937_r(device, space, offset * 2 + 1) | (k051937_r(device, space, offset * 2) << 8); } WRITE16_DEVICE_HANDLER( k051937_word_w ) { if (ACCESSING_BITS_8_15) - k051937_w(device, offset * 2,(data >> 8) & 0xff); + k051937_w(device, space, offset * 2,(data >> 8) & 0xff); if (ACCESSING_BITS_0_7) - k051937_w(device, offset * 2 + 1,data & 0xff); + k051937_w(device, space, offset * 2 + 1,data & 0xff); } /* @@ -3624,26 +3624,26 @@ WRITE8_DEVICE_HANDLER( k053244_w ) READ16_DEVICE_HANDLER( k053244_lsb_r ) { - return k053244_r(device, offset); + return k053244_r(device, space, offset); } WRITE16_DEVICE_HANDLER( k053244_lsb_w ) { if (ACCESSING_BITS_0_7) - k053244_w(device, offset, data & 0xff); + k053244_w(device, space, offset, data & 0xff); } READ16_DEVICE_HANDLER( k053244_word_r ) { - return (k053244_r(device, offset * 2) << 8) | k053244_r(device, offset * 2 + 1); + return (k053244_r(device, space, offset * 2) << 8) | k053244_r(device, space, offset * 2 + 1); } WRITE16_DEVICE_HANDLER( k053244_word_w ) { if (ACCESSING_BITS_8_15) - k053244_w(device, offset * 2, (data >> 8) & 0xff); + k053244_w(device, space, offset * 2, (data >> 8) & 0xff); if (ACCESSING_BITS_0_7) - k053244_w(device, offset * 2 + 1, data & 0xff); + k053244_w(device, space, offset * 2 + 1, data & 0xff); } void k053244_bankselect( device_t *device, int bank ) @@ -4574,28 +4574,28 @@ WRITE8_DEVICE_HANDLER( k053246_w ) READ16_DEVICE_HANDLER( k053246_word_r ) { offset <<= 1; - return k053246_r(device, offset + 1) | (k053246_r(device, offset) << 8); + return k053246_r(device, space, offset + 1) | (k053246_r(device, space, offset) << 8); } WRITE16_DEVICE_HANDLER( k053246_word_w ) { if (ACCESSING_BITS_8_15) - k053246_w(device, offset << 1,(data >> 8) & 0xff); + k053246_w(device, space, offset << 1,(data >> 8) & 0xff); if (ACCESSING_BITS_0_7) - k053246_w(device, (offset << 1) + 1,data & 0xff); + k053246_w(device, space, (offset << 1) + 1,data & 0xff); } READ32_DEVICE_HANDLER( k053246_long_r ) { offset <<= 1; - return (k053246_word_r(device, offset + 1, 0xffff) | k053246_word_r(device, offset, 0xffff) << 16); + return (k053246_word_r(device, space, offset + 1, 0xffff) | k053246_word_r(device, space, offset, 0xffff) << 16); } WRITE32_DEVICE_HANDLER( k053246_long_w ) { offset <<= 1; - k053246_word_w(device, offset, data >> 16, mem_mask >> 16); - k053246_word_w(device, offset + 1, data, mem_mask); + k053246_word_w(device, space, offset, data >> 16, mem_mask >> 16); + k053246_word_w(device, space, offset + 1, data, mem_mask); } void k053246_set_objcha_line( device_t *device, int state ) @@ -6026,13 +6026,13 @@ WRITE8_DEVICE_HANDLER( k053251_w ) WRITE16_DEVICE_HANDLER( k053251_lsb_w ) { if (ACCESSING_BITS_0_7) - k053251_w(device, offset, data & 0xff); + k053251_w(device, space, offset, data & 0xff); } WRITE16_DEVICE_HANDLER( k053251_msb_w ) { if (ACCESSING_BITS_8_15) - k053251_w(device, offset, (data >> 8) & 0xff); + k053251_w(device, space, offset, (data >> 8) & 0xff); } int k053251_get_priority( device_t *device, int ci ) @@ -6216,13 +6216,13 @@ READ8_DEVICE_HANDLER( k054000_r ) READ16_DEVICE_HANDLER( k054000_lsb_r ) { - return k054000_r(device, offset); + return k054000_r(device, space, offset); } WRITE16_DEVICE_HANDLER( k054000_lsb_w ) { if (ACCESSING_BITS_0_7) - k054000_w(device, offset, data & 0xff); + k054000_w(device, space, offset, data & 0xff); } /***************************************************************************** @@ -6995,7 +6995,7 @@ READ16_DEVICE_HANDLER( k056832_old_rom_word_r ) READ32_DEVICE_HANDLER( k056832_rom_long_r ) { offset <<= 1; - return (k056832_rom_word_r(device, offset + 1, 0xffff) | (k056832_rom_word_r(device, offset, 0xffff) << 16)); + return (k056832_rom_word_r(device, space, offset + 1, 0xffff) | (k056832_rom_word_r(device, space, offset, 0xffff) << 16)); } /* only one page is mapped to videoram at a time through a window */ @@ -7352,8 +7352,8 @@ WRITE32_DEVICE_HANDLER( k056832_long_w ) // if (ACCESSING_xxx) trick. in particular, 8-bit writes // are used to the tilemap bank register. offset <<= 1; - k056832_word_w(device, offset, data >> 16, mem_mask >> 16); - k056832_word_w(device, offset + 1, data, mem_mask); + k056832_word_w(device, space, offset, data >> 16, mem_mask >> 16); + k056832_word_w(device, space, offset + 1, data, mem_mask); } WRITE16_DEVICE_HANDLER( k056832_b_word_w ) @@ -7366,11 +7366,11 @@ WRITE8_DEVICE_HANDLER( k056832_w ) { if (offset & 1) { - k056832_word_w(device, (offset >> 1), data, 0x00ff); + k056832_word_w(device, space, (offset >> 1), data, 0x00ff); } else { - k056832_word_w(device, (offset >> 1), data << 8, 0xff00); + k056832_word_w(device, space, (offset >> 1), data << 8, 0xff00); } } @@ -7378,11 +7378,11 @@ WRITE8_DEVICE_HANDLER( k056832_b_w ) { if (offset & 1) { - k056832_b_word_w(device, (offset >> 1), data, 0x00ff); + k056832_b_word_w(device, space, (offset >> 1), data, 0x00ff); } else { - k056832_b_word_w(device, (offset >> 1), data<<8, 0xff00); + k056832_b_word_w(device, space, (offset >> 1), data<<8, 0xff00); } } @@ -7390,11 +7390,11 @@ WRITE32_DEVICE_HANDLER( k056832_b_long_w ) { if (ACCESSING_BITS_16_31) { - k056832_b_word_w(device, offset << 1, data >> 16, mem_mask >> 16); + k056832_b_word_w(device, space, offset << 1, data >> 16, mem_mask >> 16); } if (ACCESSING_BITS_0_15) { - k056832_b_word_w(device, (offset << 1) + 1, data, mem_mask); + k056832_b_word_w(device, space, (offset << 1) + 1, data, mem_mask); } } @@ -8661,8 +8661,8 @@ WRITE16_DEVICE_HANDLER( k054338_word_w ) WRITE32_DEVICE_HANDLER( k054338_long_w ) { offset <<= 1; - k054338_word_w(device, offset, data >> 16, mem_mask >> 16); - k054338_word_w(device, offset + 1, data, mem_mask); + k054338_word_w(device, space, offset, data >> 16, mem_mask >> 16); + k054338_word_w(device, space, offset + 1, data, mem_mask); } // returns a 16-bit '338 register @@ -10897,19 +10897,19 @@ READ16_DEVICE_HANDLER( k055555_word_r ) READ32_DEVICE_HANDLER( k056832_long_r ) { offset <<= 1; - return (k056832_word_r(device, offset + 1, 0xffff) | k056832_word_r(device, offset, 0xffff) << 16); + return (k056832_word_r(device, space, offset + 1, 0xffff) | k056832_word_r(device, space, offset, 0xffff) << 16); } READ32_DEVICE_HANDLER( k053247_reg_long_r ) { offset <<= 1; - return (k053247_reg_word_r(device, offset + 1, 0xffff) | k053247_reg_word_r(device, offset, 0xffff) << 16); + return (k053247_reg_word_r(device, space, offset + 1, 0xffff) | k053247_reg_word_r(device, space, offset, 0xffff) << 16); } READ32_DEVICE_HANDLER( k055555_long_r ) { offset <<= 1; - return (k055555_word_r(device, offset + 1, 0xffff) | k055555_word_r(device, offset, 0xffff) << 16); + return (k055555_word_r(device, space, offset + 1, 0xffff) | k055555_word_r(device, space, offset, 0xffff) << 16); } READ16_DEVICE_HANDLER( k053244_reg_word_r ) diff --git a/src/mame/video/konicdev.h b/src/mame/video/konicdev.h index aa2671d1f42..c7a11f6bdd2 100644 --- a/src/mame/video/konicdev.h +++ b/src/mame/video/konicdev.h @@ -713,8 +713,8 @@ void konami_sortlayers5(int *layer, int *pri); ***************************************************************************/ /** Konami 007121 **/ -READ8_DEVICE_HANDLER( k007121_ctrlram_r ); -WRITE8_DEVICE_HANDLER( k007121_ctrl_w ); +DECLARE_READ8_DEVICE_HANDLER( k007121_ctrlram_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k007121_ctrl_w ); /* shall we move source in the interface? */ /* also notice that now we directly pass *gfx[chip] instead of **gfx !! */ @@ -723,11 +723,11 @@ void k007121_sprites_draw( device_t *device, bitmap_ind16 &bitmap, const rectang /** Konami 007342 **/ -READ8_DEVICE_HANDLER( k007342_r ); -WRITE8_DEVICE_HANDLER( k007342_w ); -READ8_DEVICE_HANDLER( k007342_scroll_r ); -WRITE8_DEVICE_HANDLER( k007342_scroll_w ); -WRITE8_DEVICE_HANDLER( k007342_vreg_w ); +DECLARE_READ8_DEVICE_HANDLER( k007342_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k007342_w ); +DECLARE_READ8_DEVICE_HANDLER( k007342_scroll_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k007342_scroll_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k007342_vreg_w ); void k007342_tilemap_update(device_t *device); void k007342_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, int flags, UINT32 priority); @@ -737,8 +737,8 @@ int k007342_is_int_enabled(device_t *device); /** Konami 007420 **/ #define K007420_SPRITERAM_SIZE 0x200 -READ8_DEVICE_HANDLER( k007420_r ); -WRITE8_DEVICE_HANDLER( k007420_w ); +DECLARE_READ8_DEVICE_HANDLER( k007420_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k007420_w ); void k007420_sprites_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx); @@ -772,12 +772,12 @@ The callback must put: chip so it must not be set by the callback. */ -READ8_DEVICE_HANDLER( k052109_r ); -WRITE8_DEVICE_HANDLER( k052109_w ); -READ16_DEVICE_HANDLER( k052109_word_r ); -WRITE16_DEVICE_HANDLER( k052109_word_w ); -READ16_DEVICE_HANDLER( k052109_lsb_r ); -WRITE16_DEVICE_HANDLER( k052109_lsb_w ); +DECLARE_READ8_DEVICE_HANDLER( k052109_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k052109_w ); +DECLARE_READ16_DEVICE_HANDLER( k052109_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k052109_word_w ); +DECLARE_READ16_DEVICE_HANDLER( k052109_lsb_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k052109_lsb_w ); void k052109_set_rmrd_line(device_t *device, int state); int k052109_get_rmrd_line(device_t *device); @@ -803,15 +803,15 @@ The callback must put: the game has special treatment (Aliens) */ -READ8_DEVICE_HANDLER( k051960_r ); -WRITE8_DEVICE_HANDLER( k051960_w ); -READ16_DEVICE_HANDLER( k051960_word_r ); -WRITE16_DEVICE_HANDLER( k051960_word_w ); +DECLARE_READ8_DEVICE_HANDLER( k051960_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051960_w ); +DECLARE_READ16_DEVICE_HANDLER( k051960_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k051960_word_w ); -READ8_DEVICE_HANDLER( k051937_r ); -WRITE8_DEVICE_HANDLER( k051937_w ); -READ16_DEVICE_HANDLER( k051937_word_r ); -WRITE16_DEVICE_HANDLER( k051937_word_w ); +DECLARE_READ8_DEVICE_HANDLER( k051937_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051937_w ); +DECLARE_READ16_DEVICE_HANDLER( k051937_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k051937_word_w ); void k051960_sprites_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int min_priority, int max_priority); int k051960_is_irq_enabled(device_t *device); @@ -826,16 +826,16 @@ WRITE8_HANDLER( k052109_051960_w ); /** Konami 053244 / 053245 **/ -READ16_DEVICE_HANDLER( k053245_word_r ); -WRITE16_DEVICE_HANDLER( k053245_word_w ); -READ8_DEVICE_HANDLER( k053245_r ); -WRITE8_DEVICE_HANDLER( k053245_w ); -READ8_DEVICE_HANDLER( k053244_r ); -WRITE8_DEVICE_HANDLER( k053244_w ); -READ16_DEVICE_HANDLER( k053244_lsb_r ); -WRITE16_DEVICE_HANDLER( k053244_lsb_w ); -READ16_DEVICE_HANDLER( k053244_word_r ); -WRITE16_DEVICE_HANDLER( k053244_word_w ); +DECLARE_READ16_DEVICE_HANDLER( k053245_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k053245_word_w ); +DECLARE_READ8_DEVICE_HANDLER( k053245_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k053245_w ); +DECLARE_READ8_DEVICE_HANDLER( k053244_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k053244_w ); +DECLARE_READ16_DEVICE_HANDLER( k053244_lsb_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k053244_lsb_w ); +DECLARE_READ16_DEVICE_HANDLER( k053244_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k053244_word_w ); void k053244_bankselect(device_t *device, int bank); /* used by TMNT2, Asterix and Premier Soccer for ROM testing */ void k053245_sprites_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect); void k053245_sprites_draw_lethal(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect); /* for lethal enforcers */ @@ -850,8 +850,8 @@ void k053245_set_sprite_offs(device_t *device, int offsx, int offsy); #define K055673_LAYOUT_LE2 2 #define K055673_LAYOUT_GX6 3 -READ16_DEVICE_HANDLER( k055673_rom_word_r ); -READ16_DEVICE_HANDLER( k055673_GX6bpp_rom_word_r ); +DECLARE_READ16_DEVICE_HANDLER( k055673_rom_word_r ); +DECLARE_READ16_DEVICE_HANDLER( k055673_GX6bpp_rom_word_r ); /* Callback procedures for non-standard shadows: @@ -863,14 +863,14 @@ Callback procedures for non-standard shadows: #define K053247_CUSTOMSHADOW 0x20000000 #define K053247_SHDSHIFT 20 -READ8_DEVICE_HANDLER( k053247_r ); -WRITE8_DEVICE_HANDLER( k053247_w ); -READ16_DEVICE_HANDLER( k053247_word_r ); -WRITE16_DEVICE_HANDLER( k053247_word_w ); -READ32_DEVICE_HANDLER( k053247_long_r ); -WRITE32_DEVICE_HANDLER( k053247_long_w ); -WRITE16_DEVICE_HANDLER( k053247_reg_word_w ); // "OBJSET2" registers -WRITE32_DEVICE_HANDLER( k053247_reg_long_w ); +DECLARE_READ8_DEVICE_HANDLER( k053247_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k053247_w ); +DECLARE_READ16_DEVICE_HANDLER( k053247_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k053247_word_w ); +DECLARE_READ32_DEVICE_HANDLER( k053247_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k053247_long_w ); +DECLARE_WRITE16_DEVICE_HANDLER( k053247_reg_word_w ); // "OBJSET2" registers +DECLARE_WRITE32_DEVICE_HANDLER( k053247_reg_long_w ); void k053247_sprites_draw(device_t *device, bitmap_ind16 &bitmap,const rectangle &cliprect); void k053247_sprites_draw(device_t *device, bitmap_rgb32 &bitmap,const rectangle &cliprect); @@ -883,12 +883,12 @@ void k053247_get_ram(device_t *device, UINT16 **ram); int k053247_get_dx(device_t *device); int k053247_get_dy(device_t *device); -READ8_DEVICE_HANDLER( k053246_r ); -WRITE8_DEVICE_HANDLER( k053246_w ); -READ16_DEVICE_HANDLER( k053246_word_r ); -WRITE16_DEVICE_HANDLER( k053246_word_w ); -READ32_DEVICE_HANDLER( k053246_long_r ); -WRITE32_DEVICE_HANDLER( k053246_long_w ); +DECLARE_READ8_DEVICE_HANDLER( k053246_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k053246_w ); +DECLARE_READ16_DEVICE_HANDLER( k053246_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k053246_word_w ); +DECLARE_READ32_DEVICE_HANDLER( k053246_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k053246_long_w ); void k053246_set_objcha_line(device_t *device, int state); int k053246_is_irq_enabled(device_t *device); @@ -907,19 +907,19 @@ The callback must put: structure (e.g. TILE_FLIPX) */ -READ8_DEVICE_HANDLER( k051316_r ); -WRITE8_DEVICE_HANDLER( k051316_w ); -READ8_DEVICE_HANDLER( k051316_rom_r ); -WRITE8_DEVICE_HANDLER( k051316_ctrl_w ); +DECLARE_READ8_DEVICE_HANDLER( k051316_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051316_w ); +DECLARE_READ8_DEVICE_HANDLER( k051316_rom_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051316_ctrl_w ); void k051316_zoom_draw(device_t *device, bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,UINT32 priority); void k051316_wraparound_enable(device_t *device, int status); /** Konami 053936 **/ -WRITE16_DEVICE_HANDLER( k053936_ctrl_w ); -READ16_DEVICE_HANDLER( k053936_ctrl_r ); // FIXME: this is probably unused... to be checked! -WRITE16_DEVICE_HANDLER( k053936_linectrl_w ); -READ16_DEVICE_HANDLER( k053936_linectrl_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k053936_ctrl_w ); +DECLARE_READ16_DEVICE_HANDLER( k053936_ctrl_r ); // FIXME: this is probably unused... to be checked! +DECLARE_WRITE16_DEVICE_HANDLER( k053936_linectrl_w ); +DECLARE_READ16_DEVICE_HANDLER( k053936_linectrl_r ); void k053936_zoom_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tmap, int flags, UINT32 priority, int glfgreat_hack); void k053936_wraparound_enable(device_t *device, int status); // shall we merge this into the configuration intf? void k053936_set_offset(device_t *device, int xoffs, int yoffs); // shall we merge this into the configuration intf? @@ -931,9 +931,9 @@ void k053936_set_offset(device_t *device, int xoffs, int yoffs); // shall we mer when some palette index changes. If ALL_TILEMAPS is too expensive, use k053251_set_tilemaps() to indicate which tilemap is associated with each index. */ -WRITE8_DEVICE_HANDLER( k053251_w ); -WRITE16_DEVICE_HANDLER( k053251_lsb_w ); -WRITE16_DEVICE_HANDLER( k053251_msb_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k053251_w ); +DECLARE_WRITE16_DEVICE_HANDLER( k053251_lsb_w ); +DECLARE_WRITE16_DEVICE_HANDLER( k053251_msb_w ); int k053251_get_priority(device_t *device, int ci); int k053251_get_palette_index(device_t *device, int ci); int k053251_get_tmap_dirty(device_t *device, int tmap_num); @@ -949,44 +949,44 @@ enum }; /** Konami 054000 **/ -WRITE8_DEVICE_HANDLER( k054000_w ); -READ8_DEVICE_HANDLER( k054000_r ); -WRITE16_DEVICE_HANDLER( k054000_lsb_w ); -READ16_DEVICE_HANDLER( k054000_lsb_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k054000_w ); +DECLARE_READ8_DEVICE_HANDLER( k054000_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k054000_lsb_w ); +DECLARE_READ16_DEVICE_HANDLER( k054000_lsb_r ); /** Konami 051733 **/ -WRITE8_DEVICE_HANDLER( k051733_w ); -READ8_DEVICE_HANDLER( k051733_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k051733_w ); +DECLARE_READ8_DEVICE_HANDLER( k051733_r ); /** Konami 056832 **/ void k056832_SetExtLinescroll(device_t *device); /* Lethal Enforcers */ -READ16_DEVICE_HANDLER( k056832_ram_word_r ); -WRITE16_DEVICE_HANDLER( k056832_ram_word_w ); -READ16_DEVICE_HANDLER( k056832_ram_half_word_r ); -WRITE16_DEVICE_HANDLER( k056832_ram_half_word_w ); -READ16_DEVICE_HANDLER( k056832_5bpp_rom_word_r ); -READ32_DEVICE_HANDLER( k056832_5bpp_rom_long_r ); -READ32_DEVICE_HANDLER( k056832_6bpp_rom_long_r ); -READ16_DEVICE_HANDLER( k056832_rom_word_r ); -READ16_DEVICE_HANDLER( k056832_mw_rom_word_r ); -READ16_DEVICE_HANDLER( k056832_bishi_rom_word_r ); -READ16_DEVICE_HANDLER( k056832_old_rom_word_r ); -READ16_DEVICE_HANDLER( k056832_rom_word_8000_r ); -WRITE16_DEVICE_HANDLER( k056832_word_w ); // "VRAM" registers -WRITE16_DEVICE_HANDLER( k056832_b_word_w ); -READ8_DEVICE_HANDLER( k056832_ram_code_lo_r ); -READ8_DEVICE_HANDLER( k056832_ram_code_hi_r ); -READ8_DEVICE_HANDLER( k056832_ram_attr_lo_r ); -READ8_DEVICE_HANDLER( k056832_ram_attr_hi_r ); -WRITE8_DEVICE_HANDLER( k056832_ram_code_lo_w ); -WRITE8_DEVICE_HANDLER( k056832_ram_code_hi_w ); -WRITE8_DEVICE_HANDLER( k056832_ram_attr_lo_w ); -WRITE8_DEVICE_HANDLER( k056832_ram_attr_hi_w ); -WRITE8_DEVICE_HANDLER( k056832_w ); -WRITE8_DEVICE_HANDLER( k056832_b_w ); +DECLARE_READ16_DEVICE_HANDLER( k056832_ram_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k056832_ram_word_w ); +DECLARE_READ16_DEVICE_HANDLER( k056832_ram_half_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k056832_ram_half_word_w ); +DECLARE_READ16_DEVICE_HANDLER( k056832_5bpp_rom_word_r ); +DECLARE_READ32_DEVICE_HANDLER( k056832_5bpp_rom_long_r ); +DECLARE_READ32_DEVICE_HANDLER( k056832_6bpp_rom_long_r ); +DECLARE_READ16_DEVICE_HANDLER( k056832_rom_word_r ); +DECLARE_READ16_DEVICE_HANDLER( k056832_mw_rom_word_r ); +DECLARE_READ16_DEVICE_HANDLER( k056832_bishi_rom_word_r ); +DECLARE_READ16_DEVICE_HANDLER( k056832_old_rom_word_r ); +DECLARE_READ16_DEVICE_HANDLER( k056832_rom_word_8000_r ); +DECLARE_WRITE16_DEVICE_HANDLER( k056832_word_w ); // "VRAM" registers +DECLARE_WRITE16_DEVICE_HANDLER( k056832_b_word_w ); +DECLARE_READ8_DEVICE_HANDLER( k056832_ram_code_lo_r ); +DECLARE_READ8_DEVICE_HANDLER( k056832_ram_code_hi_r ); +DECLARE_READ8_DEVICE_HANDLER( k056832_ram_attr_lo_r ); +DECLARE_READ8_DEVICE_HANDLER( k056832_ram_attr_hi_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_code_lo_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_code_hi_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_attr_lo_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_attr_hi_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k056832_w ); +DECLARE_WRITE8_DEVICE_HANDLER( k056832_b_w ); void k056832_mark_plane_dirty(device_t *device, int num); void k056832_mark_all_tmaps_dirty(device_t *device); void k056832_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); @@ -1004,13 +1004,13 @@ int k056832_get_current_rambank(device_t *device); int k056832_get_lookup(device_t *device, int bits); /* Asterix */ void k056832_set_tile_bank(device_t *device, int bank); /* Asterix */ -READ32_DEVICE_HANDLER( k056832_ram_long_r ); -READ32_DEVICE_HANDLER( k056832_rom_long_r ); -WRITE32_DEVICE_HANDLER( k056832_ram_long_w ); -READ32_DEVICE_HANDLER( k056832_unpaged_ram_long_r ); -WRITE32_DEVICE_HANDLER( k056832_unpaged_ram_long_w ); -WRITE32_DEVICE_HANDLER( k056832_long_w ); -WRITE32_DEVICE_HANDLER( k056832_b_long_w ); +DECLARE_READ32_DEVICE_HANDLER( k056832_ram_long_r ); +DECLARE_READ32_DEVICE_HANDLER( k056832_rom_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k056832_ram_long_w ); +DECLARE_READ32_DEVICE_HANDLER( k056832_unpaged_ram_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k056832_unpaged_ram_long_w ); +DECLARE_WRITE32_DEVICE_HANDLER( k056832_long_w ); +DECLARE_WRITE32_DEVICE_HANDLER( k056832_b_long_w ); /* bit depths for the 56832 */ #define K056832_BPP_4 0 @@ -1023,8 +1023,8 @@ WRITE32_DEVICE_HANDLER( k056832_b_long_w ); /** Konami 055555 **/ void k055555_write_reg(device_t *device, UINT8 regnum, UINT8 regdat); -WRITE16_DEVICE_HANDLER( k055555_word_w ); -WRITE32_DEVICE_HANDLER( k055555_long_w ); +DECLARE_WRITE16_DEVICE_HANDLER( k055555_word_w ); +DECLARE_WRITE32_DEVICE_HANDLER( k055555_long_w ); int k055555_read_register(device_t *device, int regnum); int k055555_get_palette_index(device_t *device, int idx); @@ -1098,8 +1098,8 @@ int k055555_get_palette_index(device_t *device, int idx); /** Konami 054338 **/ /* mixer/alpha blender */ -WRITE16_DEVICE_HANDLER( k054338_word_w ); // "CLCT" registers -WRITE32_DEVICE_HANDLER( k054338_long_w ); +DECLARE_WRITE16_DEVICE_HANDLER( k054338_word_w ); // "CLCT" registers +DECLARE_WRITE32_DEVICE_HANDLER( k054338_long_w ); int k054338_register_r(device_t *device, int reg); void k054338_update_all_shadows(device_t *device, int rushingheroes_hack); // called at the beginning of SCREEN_UPDATE() void k054338_fill_solid_bg(device_t *device, bitmap_ind16 &bitmap); // solid backcolor fill @@ -1126,8 +1126,8 @@ void k054338_invert_alpha(device_t *device, int invert); // 0=0x00(invis) /** Konami 001006 **/ UINT32 k001006_get_palette(device_t *device, int index); -READ32_DEVICE_HANDLER( k001006_r ); -WRITE32_DEVICE_HANDLER( k001006_w ); +DECLARE_READ32_DEVICE_HANDLER( k001006_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k001006_w ); /** Konami 001005 **/ @@ -1135,46 +1135,46 @@ void k001005_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &clipr void k001005_swap_buffers(device_t *device); void k001005_preprocess_texture_data(UINT8 *rom, int length, int gticlub); -READ32_DEVICE_HANDLER( k001005_r ); -WRITE32_DEVICE_HANDLER( k001005_w ); +DECLARE_READ32_DEVICE_HANDLER( k001005_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k001005_w ); /** Konami 001604 **/ void k001604_draw_back_layer( device_t *device, bitmap_rgb32 &bitmap, const rectangle &cliprect ); void k001604_draw_front_layer( device_t *device, bitmap_rgb32 &bitmap, const rectangle &cliprect ); -WRITE32_DEVICE_HANDLER( k001604_tile_w ); -READ32_DEVICE_HANDLER( k001604_tile_r ); -WRITE32_DEVICE_HANDLER( k001604_char_w ); -READ32_DEVICE_HANDLER( k001604_char_r ); -WRITE32_DEVICE_HANDLER( k001604_reg_w ); -READ32_DEVICE_HANDLER( k001604_reg_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k001604_tile_w ); +DECLARE_READ32_DEVICE_HANDLER( k001604_tile_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k001604_char_w ); +DECLARE_READ32_DEVICE_HANDLER( k001604_char_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k001604_reg_w ); +DECLARE_READ32_DEVICE_HANDLER( k001604_reg_r ); /** Konami 037122 **/ void k037122_tile_draw( device_t *device, bitmap_rgb32 &bitmap, const rectangle &cliprect ); -READ32_DEVICE_HANDLER( k037122_sram_r ); -WRITE32_DEVICE_HANDLER( k037122_sram_w ); -READ32_DEVICE_HANDLER( k037122_char_r ); -WRITE32_DEVICE_HANDLER( k037122_char_w ); -READ32_DEVICE_HANDLER( k037122_reg_r ); -WRITE32_DEVICE_HANDLER( k037122_reg_w ); +DECLARE_READ32_DEVICE_HANDLER( k037122_sram_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k037122_sram_w ); +DECLARE_READ32_DEVICE_HANDLER( k037122_char_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k037122_char_w ); +DECLARE_READ32_DEVICE_HANDLER( k037122_reg_r ); +DECLARE_WRITE32_DEVICE_HANDLER( k037122_reg_w ); #define K056832_DRAW_FLAG_MIRROR 0x00800000 // debug handlers -READ16_DEVICE_HANDLER( k056832_word_r ); // VACSET -READ16_DEVICE_HANDLER( k056832_b_word_r ); // VSCCS (board dependent) -READ16_DEVICE_HANDLER( k053246_reg_word_r ); // OBJSET1 -READ16_DEVICE_HANDLER( k053247_reg_word_r ); // OBJSET2 -READ16_DEVICE_HANDLER( k053251_lsb_r ); // PCU1 -READ16_DEVICE_HANDLER( k053251_msb_r ); // PCU1 -READ16_DEVICE_HANDLER( k055555_word_r ); // PCU2 -READ16_DEVICE_HANDLER( k054338_word_r ); // CLTC - -READ32_DEVICE_HANDLER( k056832_long_r ); // VACSET -READ32_DEVICE_HANDLER( k053247_reg_long_r ); // OBJSET2 -READ32_DEVICE_HANDLER( k055555_long_r ); // PCU2 - -READ16_DEVICE_HANDLER( k053244_reg_word_r ); // OBJSET0 +DECLARE_READ16_DEVICE_HANDLER( k056832_word_r ); // VACSET +DECLARE_READ16_DEVICE_HANDLER( k056832_b_word_r ); // VSCCS (board dependent) +DECLARE_READ16_DEVICE_HANDLER( k053246_reg_word_r ); // OBJSET1 +DECLARE_READ16_DEVICE_HANDLER( k053247_reg_word_r ); // OBJSET2 +DECLARE_READ16_DEVICE_HANDLER( k053251_lsb_r ); // PCU1 +DECLARE_READ16_DEVICE_HANDLER( k053251_msb_r ); // PCU1 +DECLARE_READ16_DEVICE_HANDLER( k055555_word_r ); // PCU2 +DECLARE_READ16_DEVICE_HANDLER( k054338_word_r ); // CLTC + +DECLARE_READ32_DEVICE_HANDLER( k056832_long_r ); // VACSET +DECLARE_READ32_DEVICE_HANDLER( k053247_reg_long_r ); // OBJSET2 +DECLARE_READ32_DEVICE_HANDLER( k055555_long_r ); // PCU2 + +DECLARE_READ16_DEVICE_HANDLER( k053244_reg_word_r ); // OBJSET0 #endif diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c index ccbba100293..1b1c3857f5b 100644 --- a/src/mame/video/labyrunr.c +++ b/src/mame/video/labyrunr.c @@ -66,10 +66,10 @@ static void set_pens( running_machine &machine ) TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0) { - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, generic_space(), 6); int attr = m_videoram1[tile_index]; int code = m_videoram1[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; @@ -95,10 +95,10 @@ TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0) TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1) { - UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); - UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); - UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); - UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6); + UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3); + UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4); + UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5); + UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, generic_space(), 6); int attr = m_videoram2[tile_index]; int code = m_videoram2[tile_index + 0x400]; int bit0 = (ctrl_5 >> 0) & 0x03; @@ -179,7 +179,8 @@ WRITE8_MEMBER(labyrunr_state::labyrunr_vram2_w) SCREEN_UPDATE_IND16( labyrunr ) { labyrunr_state *state = screen.machine().driver_data<labyrunr_state>(); - UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, 0); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, space, 0); rectangle finalclip0, finalclip1; set_pens(screen.machine()); @@ -187,7 +188,7 @@ SCREEN_UPDATE_IND16( labyrunr ) screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(get_black_pen(screen.machine()), cliprect); - if (~k007121_ctrlram_r(state->m_k007121, 3) & 0x20) + if (~k007121_ctrlram_r(state->m_k007121, space, 3) & 0x20) { int i; @@ -203,14 +204,14 @@ SCREEN_UPDATE_IND16( labyrunr ) for(i = 0; i < 32; i++) { /* enable colscroll */ - if((k007121_ctrlram_r(state->m_k007121, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's - state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, 2) + state->m_scrollram[i]); + if((k007121_ctrlram_r(state->m_k007121, space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's + state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2) + state->m_scrollram[i]); else - state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, 2)); + state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2)); } state->m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0); - k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram,(k007121_ctrlram_r(state->m_k007121, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(state->m_k007121, 3) & 0x40) >> 5); + k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram,(k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5); /* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */ state->m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0); } @@ -223,7 +224,7 @@ SCREEN_UPDATE_IND16( labyrunr ) finalclip0.min_y = finalclip1.min_y = cliprect.min_y; finalclip0.max_y = finalclip1.max_y = cliprect.max_y; - if(k007121_ctrlram_r(state->m_k007121, 1) & 1) + if(k007121_ctrlram_r(state->m_k007121, space, 1) & 1) { finalclip0.min_x = cliprect.max_x - ctrl_0 + 8; finalclip0.max_x = cliprect.max_x; @@ -280,7 +281,7 @@ SCREEN_UPDATE_IND16( labyrunr ) if(use_clip3[1]) state->m_layer1->draw(bitmap, finalclip3, 0, 1); - k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, (k007121_ctrlram_r(state->m_k007121, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(state->m_k007121, 3) & 0x40) >> 5); + k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, (k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5); } return 0; } diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c index ea4f752bb1a..1972b73a2da 100644 --- a/src/mame/video/naughtyb.c +++ b/src/mame/video/naughtyb.c @@ -113,7 +113,7 @@ void naughtyb_state::video_start() WRITE8_MEMBER(naughtyb_state::naughtyb_videoreg_w) { // bits 4+5 control the sound circuit - pleiads_sound_control_c_w(machine().device("cust"),offset,data); + pleiads_sound_control_c_w(machine().device("cust"),space,offset,data); m_cocktail = ( ( ioport("DSW0")->read() & 0x80 ) && // cabinet == cocktail @@ -125,7 +125,7 @@ WRITE8_MEMBER(naughtyb_state::naughtyb_videoreg_w) WRITE8_MEMBER(naughtyb_state::popflame_videoreg_w) { // bits 4+5 control the sound circuit - pleiads_sound_control_c_w(machine().device("cust"),offset,data); + pleiads_sound_control_c_w(machine().device("cust"),space,offset,data); m_cocktail = ( ( ioport("DSW0")->read() & 0x80 ) && // cabinet == cocktail diff --git a/src/mame/video/phoenix.c b/src/mame/video/phoenix.c index 5420043ba6f..ceb03d8d893 100644 --- a/src/mame/video/phoenix.c +++ b/src/mame/video/phoenix.c @@ -294,7 +294,7 @@ WRITE8_MEMBER(phoenix_state::pleiads_videoreg_w) m_pleiads_protection_question = data & 0xfc; /* send two bits to sound control C (not sure if they are there) */ - pleiads_sound_control_c_w(machine().device("cust"), offset, data); + pleiads_sound_control_c_w(machine().device("cust"), space, offset, data); } diff --git a/src/mame/video/pktgaldx.c b/src/mame/video/pktgaldx.c index ad2a80ff1c8..3ed5d1f8c64 100644 --- a/src/mame/video/pktgaldx.c +++ b/src/mame/video/pktgaldx.c @@ -8,7 +8,8 @@ SCREEN_UPDATE_IND16( pktgaldx ) { pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); diff --git a/src/mame/video/rohga.c b/src/mame/video/rohga.c index 5b070d03489..63e75ac7651 100644 --- a/src/mame/video/rohga.c +++ b/src/mame/video/rohga.c @@ -64,8 +64,9 @@ UINT16 rohga_col_callback(UINT16 x) SCREEN_UPDATE_IND16( rohga ) { rohga_state *state = screen.machine().driver_data<rohga_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); /* Update playfields */ state->flip_screen_set(BIT(flip, 7)); @@ -167,8 +168,9 @@ static void mixwizdfirelayer(running_machine &machine, bitmap_rgb32 &bitmap, con SCREEN_UPDATE_RGB32( wizdfire ) { rohga_state *state = screen.machine().driver_data<rohga_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); - UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); + UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff); /* draw sprite gfx to temp bitmaps */ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true); @@ -203,7 +205,8 @@ SCREEN_UPDATE_RGB32( wizdfire ) SCREEN_UPDATE_RGB32( nitrobal ) { rohga_state *state = screen.machine().driver_data<rohga_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); /* draw sprite gfx to temp bitmaps */ screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true); diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h index fcb3a47bb65..ecd2f9fe670 100644 --- a/src/mame/video/seta001.h +++ b/src/mame/video/seta001.h @@ -57,25 +57,25 @@ private: }; -WRITE8_DEVICE_HANDLER( spritebgflag_w8 ); +DECLARE_WRITE8_DEVICE_HANDLER( spritebgflag_w8 ); -READ16_DEVICE_HANDLER( spritectrl_r16 ); -WRITE16_DEVICE_HANDLER( spritectrl_w16 ); -READ8_DEVICE_HANDLER( spritectrl_r8 ); -WRITE8_DEVICE_HANDLER( spritectrl_w8 ); +DECLARE_READ16_DEVICE_HANDLER( spritectrl_r16 ); +DECLARE_WRITE16_DEVICE_HANDLER( spritectrl_w16 ); +DECLARE_READ8_DEVICE_HANDLER( spritectrl_r8 ); +DECLARE_WRITE8_DEVICE_HANDLER( spritectrl_w8 ); -READ16_DEVICE_HANDLER( spriteylow_r16 ); -WRITE16_DEVICE_HANDLER( spriteylow_w16 ); -READ8_DEVICE_HANDLER( spriteylow_r8 ); -WRITE8_DEVICE_HANDLER( spriteylow_w8 ); +DECLARE_READ16_DEVICE_HANDLER( spriteylow_r16 ); +DECLARE_WRITE16_DEVICE_HANDLER( spriteylow_w16 ); +DECLARE_READ8_DEVICE_HANDLER( spriteylow_r8 ); +DECLARE_WRITE8_DEVICE_HANDLER( spriteylow_w8 ); -READ8_DEVICE_HANDLER( spritecodelow_r8 ); -WRITE8_DEVICE_HANDLER( spritecodelow_w8 ); -READ8_DEVICE_HANDLER( spritecodehigh_r8 ); -WRITE8_DEVICE_HANDLER( spritecodehigh_w8 ); -READ16_DEVICE_HANDLER( spritecode_r16 ); -WRITE16_DEVICE_HANDLER( spritecode_w16 ); +DECLARE_READ8_DEVICE_HANDLER( spritecodelow_r8 ); +DECLARE_WRITE8_DEVICE_HANDLER( spritecodelow_w8 ); +DECLARE_READ8_DEVICE_HANDLER( spritecodehigh_r8 ); +DECLARE_WRITE8_DEVICE_HANDLER( spritecodehigh_w8 ); +DECLARE_READ16_DEVICE_HANDLER( spritecode_r16 ); +DECLARE_WRITE16_DEVICE_HANDLER( spritecode_w16 ); extern const device_type SETA001_SPRITE; diff --git a/src/mame/video/simpsons.c b/src/mame/video/simpsons.c index b99ba02d8e9..e5818fdc73d 100644 --- a/src/mame/video/simpsons.c +++ b/src/mame/video/simpsons.c @@ -48,12 +48,12 @@ void simpsons_sprite_callback( running_machine &machine, int *code, int *color, READ8_MEMBER(simpsons_state::simpsons_k052109_r) { - return k052109_r(m_k052109, offset + 0x2000); + return k052109_r(m_k052109, space, offset + 0x2000); } WRITE8_MEMBER(simpsons_state::simpsons_k052109_w) { - k052109_w(m_k052109, offset + 0x2000, data); + k052109_w(m_k052109, space, offset + 0x2000, data); } READ8_MEMBER(simpsons_state::simpsons_k053247_r) diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c index caed892a563..9844c7d3733 100644 --- a/src/mame/video/skydiver.c +++ b/src/mame/video/skydiver.c @@ -144,13 +144,13 @@ WRITE8_MEMBER(skydiver_state::skydiver_2000_201F_w) output_set_value("lampr", bit); break; case (0x0a): - discrete_sound_w(discrete, SKYDIVER_OCT1_EN, bit); + discrete_sound_w(discrete, space, SKYDIVER_OCT1_EN, bit); break; case (0x0c): - discrete_sound_w(discrete, SKYDIVER_OCT2_EN, bit); + discrete_sound_w(discrete, space, SKYDIVER_OCT2_EN, bit); break; case (0x0e): - discrete_sound_w(discrete, SKYDIVER_NOISE_RST, bit); + discrete_sound_w(discrete, space, SKYDIVER_NOISE_RST, bit); break; } } diff --git a/src/mame/video/slapshot.c b/src/mame/video/slapshot.c index e87e3342222..a13269b99af 100644 --- a/src/mame/video/slapshot.c +++ b/src/mame/video/slapshot.c @@ -460,6 +460,7 @@ a bg layer given priority over some sprites. SCREEN_UPDATE_IND16( slapshot ) { slapshot_state *state = screen.machine().driver_data<slapshot_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); UINT8 layer[5]; UINT8 tilepri[5]; UINT8 spritepri[4]; @@ -509,18 +510,18 @@ SCREEN_UPDATE_IND16( slapshot ) layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ layer[4] = 4; /* text layer always over bg layers */ - tilepri[0] = tc0360pri_r(state->m_tc0360pri, 4) & 0x0f; /* bg0 */ - tilepri[1] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; /* bg1 */ - tilepri[2] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; /* bg2 */ - tilepri[3] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; /* bg3 */ + tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg0 */ + tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg1 */ + tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg2 */ + tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg3 */ /* we actually assume text layer is on top of everything anyway, but FWIW... */ - tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; /* fg (text layer) */ + tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; /* fg (text layer) */ - spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f; - spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4; - spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; - spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; + spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f; + spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4; + spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; + spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c index 20f9611c712..fe9d98a8999 100644 --- a/src/mame/video/sprint4.c +++ b/src/mame/video/sprint4.c @@ -139,10 +139,11 @@ SCREEN_VBLANK( sprint4 ) /* update sound status */ - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15); - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15); - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15); - discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15); + address_space &space = screen.machine().driver_data()->generic_space(); + discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15); + discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15); + discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15); + discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15); } } diff --git a/src/mame/video/subs.c b/src/mame/video/subs.c index e1271f3e428..37b37f657cf 100644 --- a/src/mame/video/subs.c +++ b/src/mame/video/subs.c @@ -114,8 +114,9 @@ SCREEN_UPDATE_IND16( subs_left ) } /* Update sound */ - discrete_sound_w(discrete, SUBS_LAUNCH_DATA, spriteram[5] & 0x0f); // Launch data - discrete_sound_w(discrete, SUBS_CRASH_DATA, spriteram[5] >> 4); // Crash/explode data + address_space &space = screen.machine().driver_data()->generic_space(); + discrete_sound_w(discrete, space, SUBS_LAUNCH_DATA, spriteram[5] & 0x0f); // Launch data + discrete_sound_w(discrete, space, SUBS_CRASH_DATA, spriteram[5] >> 4); // Crash/explode data return 0; } diff --git a/src/mame/video/supbtime.c b/src/mame/video/supbtime.c index 7ca2d330970..ce425717ca3 100644 --- a/src/mame/video/supbtime.c +++ b/src/mame/video/supbtime.c @@ -24,7 +24,8 @@ End sequence uses rowscroll '98 c0' on pf1 (jmp to 1d61a on supbtimj) SCREEN_UPDATE_IND16(supbtime) { supbtime_state *state = screen.machine().driver_data<supbtime_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c index c42aae5a6ff..a053ae0fca5 100644 --- a/src/mame/video/taito_b.c +++ b/src/mame/video/taito_b.c @@ -264,8 +264,9 @@ static void draw_framebuffer( running_machine &machine, bitmap_ind16 &bitmap, co taitob_state *state = machine.driver_data<taitob_state>(); rectangle myclip = cliprect; int x, y; - UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0); - UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, 0); + address_space &space = machine.driver_data()->generic_space(); + UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0); + UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, space, 0); g_profiler.start(PROFILER_USER1); @@ -367,7 +368,8 @@ g_profiler.stop(); SCREEN_UPDATE_IND16( taitob ) { taitob_state *state = screen.machine().driver_data<taitob_state>(); - UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0); if ((video_control & 0x20) == 0) { @@ -403,8 +405,9 @@ SCREEN_UPDATE_IND16( taitob ) SCREEN_UPDATE_RGB32( realpunc ) { taitob_state *state = screen.machine().driver_data<taitob_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette); - UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0); + UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0); int x, y; /* Video blanked? */ @@ -434,8 +437,8 @@ SCREEN_UPDATE_RGB32( realpunc ) { device_t *hd63484 = screen.machine().device("hd63484"); - int base = (hd63484_regs_r(hd63484, 0xcc/2, 0xffff) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff); - int stride = hd63484_regs_r(hd63484, 0xca/2, 0xffff); + int base = (hd63484_regs_r(hd63484, space, 0xcc/2, 0xffff) << 16) + hd63484_regs_r(hd63484, space, 0xce/2, 0xffff); + int stride = hd63484_regs_r(hd63484, space, 0xca/2, 0xffff); // scrollx = taitob_scroll[0]; // scrolly = taitob_scroll[1]; @@ -446,7 +449,7 @@ SCREEN_UPDATE_RGB32( realpunc ) for (x = 0; x <= cliprect.max_x; x++) { int r, g, b; - UINT16 srcpix = hd63484_ram_r(hd63484, addr++, 0xffff); + UINT16 srcpix = hd63484_ram_r(hd63484, space, addr++, 0xffff); r = (BIT(srcpix, 1)) | ((srcpix >> 11) & 0x1e); g = (BIT(srcpix, 2)) | ((srcpix >> 7) & 0x1e); @@ -498,8 +501,9 @@ SCREEN_VBLANK( taitob ) if (vblank_on) { taitob_state *state = screen.machine().driver_data<taitob_state>(); - UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0); - UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, 0); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0); + UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, space, 0); if (~video_control & 0x01) state->m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area()); @@ -507,7 +511,7 @@ SCREEN_VBLANK( taitob ) if (~video_control & 0x80) { framebuffer_page ^= 1; - tc0180vcu_set_fb_page(state->m_tc0180vcu, 0, framebuffer_page); + tc0180vcu_set_fb_page(state->m_tc0180vcu, space, 0, framebuffer_page); } draw_sprites(screen.machine(), *state->m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area()); diff --git a/src/mame/video/taito_f2.c b/src/mame/video/taito_f2.c index 75f4e41f02e..cbb3e71b7cc 100644 --- a/src/mame/video/taito_f2.c +++ b/src/mame/video/taito_f2.c @@ -1039,6 +1039,7 @@ SCREEN_UPDATE_IND16( taitof2 ) SCREEN_UPDATE_IND16( taitof2_pri ) { taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); int layer[3]; taitof2_handle_sprite_buffering(screen.machine()); @@ -1048,16 +1049,16 @@ SCREEN_UPDATE_IND16( taitof2_pri ) layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn); layer[1] = layer[0] ^ 1; layer[2] = 2; - state->m_tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; - state->m_tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; - state->m_tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; + state->m_tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; + state->m_tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; + state->m_tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; - state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f; - state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4; - state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; - state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; + state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f; + state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4; + state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; + state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; - state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, 0) & 0xc0; + state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0; screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ @@ -1086,12 +1087,13 @@ static void draw_roz_layer( running_machine &machine, bitmap_ind16 &bitmap, cons SCREEN_UPDATE_IND16( taitof2_pri_roz ) { taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); int tilepri[3]; int rozpri; int layer[3]; int drawn; int i,j; - int roz_base_color = (tc0360pri_r(state->m_tc0360pri, 1) & 0x3f) << 2; + int roz_base_color = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0x3f) << 2; taitof2_handle_sprite_buffering(screen.machine()); @@ -1103,23 +1105,23 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz ) tc0100scn_tilemap_update(state->m_tc0100scn); - rozpri = (tc0360pri_r(state->m_tc0360pri, 1) & 0xc0) >> 6; - rozpri = (tc0360pri_r(state->m_tc0360pri, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f; + rozpri = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0xc0) >> 6; + rozpri = (tc0360pri_r(state->m_tc0360pri, space, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f; layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn); layer[1] = layer[0] ^ 1; layer[2] = 2; - tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; - tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; - tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; + tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; + tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; + tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; - state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f; - state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4; - state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; - state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; + state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f; + state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4; + state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; + state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; - state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, 0) & 0xc0; + state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0; screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ @@ -1155,6 +1157,7 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz ) SCREEN_UPDATE_IND16( taitof2_thundfox ) { taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); int tilepri[2][3]; int spritepri[4]; int layer[2][3]; @@ -1168,21 +1171,21 @@ SCREEN_UPDATE_IND16( taitof2_thundfox ) layer[0][0] = tc0100scn_bottomlayer(state->m_tc0100scn_1); layer[0][1] = layer[0][0] ^ 1; layer[0][2] = 2; - tilepri[0][layer[0][0]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; - tilepri[0][layer[0][1]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; - tilepri[0][layer[0][2]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; + tilepri[0][layer[0][0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; + tilepri[0][layer[0][1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; + tilepri[0][layer[0][2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; layer[1][0] = tc0100scn_bottomlayer(state->m_tc0100scn_2); layer[1][1] = layer[1][0] ^ 1; layer[1][2] = 2; - tilepri[1][layer[1][0]] = tc0360pri_r(state->m_tc0360pri, 9) & 0x0f; - tilepri[1][layer[1][1]] = tc0360pri_r(state->m_tc0360pri, 9) >> 4; - tilepri[1][layer[1][2]] = tc0360pri_r(state->m_tc0360pri, 8) >> 4; + tilepri[1][layer[1][0]] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f; + tilepri[1][layer[1][1]] = tc0360pri_r(state->m_tc0360pri, space, 9) >> 4; + tilepri[1][layer[1][2]] = tc0360pri_r(state->m_tc0360pri, space, 8) >> 4; - spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f; - spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4; - spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; - spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; + spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f; + spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4; + spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; + spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ @@ -1292,6 +1295,7 @@ and it changes these (and the sprite pri settings) a lot. SCREEN_UPDATE_IND16( taitof2_metalb ) { taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); UINT8 layer[5], invlayer[4]; UINT16 priority; @@ -1312,18 +1316,18 @@ SCREEN_UPDATE_IND16( taitof2_metalb ) invlayer[layer[2]] = 2; invlayer[layer[3]] = 3; - state->m_tilepri[invlayer[0]] = tc0360pri_r(state->m_tc0360pri, 4) & 0x0f; /* bg0 */ - state->m_tilepri[invlayer[1]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; /* bg1 */ - state->m_tilepri[invlayer[2]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; /* bg2 */ - state->m_tilepri[invlayer[3]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; /* bg3 */ - state->m_tilepri[4] = tc0360pri_r(state->m_tc0360pri, 9) & 0x0f; /* fg (text layer) */ + state->m_tilepri[invlayer[0]] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg0 */ + state->m_tilepri[invlayer[1]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg1 */ + state->m_tilepri[invlayer[2]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg2 */ + state->m_tilepri[invlayer[3]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg3 */ + state->m_tilepri[4] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f; /* fg (text layer) */ - state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f; - state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4; - state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; - state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; + state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f; + state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4; + state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; + state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; - state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, 0) & 0xc0; + state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0; screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); @@ -1343,6 +1347,7 @@ SCREEN_UPDATE_IND16( taitof2_metalb ) SCREEN_UPDATE_IND16( taitof2_deadconx ) { taitof2_state *state = screen.machine().driver_data<taitof2_state>(); + address_space &space = screen.machine().driver_data()->generic_space(); UINT8 layer[5]; UINT8 tilepri[5]; UINT8 spritepri[4]; @@ -1360,18 +1365,18 @@ SCREEN_UPDATE_IND16( taitof2_deadconx ) layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ layer[4] = 4; /* text layer always over bg layers */ - tilepri[0] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; /* bg0 */ - tilepri[1] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; /* bg1 */ - tilepri[2] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; /* bg2 */ - tilepri[3] = tc0360pri_r(state->m_tc0360pri, 4) & 0x0f; /* bg3 */ + tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg0 */ + tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg1 */ + tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg2 */ + tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg3 */ /* we actually assume text layer is on top of everything anyway, but FWIW... */ - tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; /* fg (text layer) */ + tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; /* fg (text layer) */ - spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f; - spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4; - spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; - spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; + spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f; + spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4; + spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; + spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; screen.machine().priority_bitmap.fill(0, cliprect); bitmap.fill(0, cliprect); diff --git a/src/mame/video/taito_h.c b/src/mame/video/taito_h.c index b9cef286dda..5473cad3212 100644 --- a/src/mame/video/taito_h.c +++ b/src/mame/video/taito_h.c @@ -76,6 +76,7 @@ static void syvalion_draw_sprites( running_machine &machine,bitmap_ind16 &bitmap is always 64 pixels. */ taitoh_state *state = machine.driver_data<taitoh_state>(); + address_space &space = machine.driver_data()->generic_space(); static const int size[] = { 1, 2, 4, 4 }; int x0, y0, x, y, dx, ex, zx; int ysize; @@ -86,11 +87,11 @@ static void syvalion_draw_sprites( running_machine &machine,bitmap_ind16 &bitmap for (offs = 0x03f8 / 2; offs >= 0; offs -= 0x008 / 2) { - x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff; - y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff; - zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8; - tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2; - ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10]; + x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff; + y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff; + zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8; + tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2; + ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10]; if (tile_offs) { @@ -134,10 +135,10 @@ static void syvalion_draw_sprites( running_machine &machine,bitmap_ind16 &bitmap { int tile, color, flipx, flipy; - tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff; - color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f; - flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040; - flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080; + tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff; + color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f; + flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040; + flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080; if (tc0080vco_flipscreen_r(state->m_tc0080vco)) { @@ -169,6 +170,7 @@ static void recordbr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma is always 64 pixels. */ taitoh_state *state = machine.driver_data<taitoh_state>(); + address_space &space = machine.driver_data()->generic_space(); static const int size[] = { 1, 2, 4, 4 }; int x0, y0, x, y, dx, dy, ex, ey, zx, zy; int ysize; @@ -182,12 +184,12 @@ static void recordbr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma if (offs < 0x01b0 && priority == 0) continue; if (offs >= 0x01b0 && priority == 1) continue; - x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff; - y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff; - zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8; - zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x007f); - tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2; - ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10]; + x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff; + y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff; + zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8; + zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x007f); + tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2; + ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10]; if (tile_offs) { @@ -246,10 +248,10 @@ static void recordbr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma { int tile, color, flipx, flipy; - tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff; - color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f; - flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040; - flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080; + tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff; + color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f; + flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040; + flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080; if (tc0080vco_flipscreen_r(state->m_tc0080vco)) { @@ -281,6 +283,7 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap is always 64 pixels. */ taitoh_state *state = machine.driver_data<taitoh_state>(); + address_space &space = machine.driver_data()->generic_space(); static const int size[] = { 1, 2, 4, 4 }; int x0, y0, x, y, dx, ex, zx; int ysize; @@ -292,12 +295,12 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap for (offs = 0x03f8 / 2; offs >= 0; offs -= 0x008 / 2) { - x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff; - y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff; - zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8; - tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2; - pribit = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x1000) >> 12; - ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10]; + x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff; + y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff; + zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8; + tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2; + pribit = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x1000) >> 12; + ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10]; if (tile_offs) { @@ -317,7 +320,7 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap zx = (dx + ex) << 12; } - if (tc0080vco_scrram_r(state->m_tc0080vco, 0x0002, 0xffff) & 0x8000) + if (tc0080vco_scrram_r(state->m_tc0080vco, space, 0x0002, 0xffff) & 0x8000) pribit = 1; if (x0 >= 0x200) x0 -= 0x400; @@ -347,10 +350,10 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap { int tile, color, flipx, flipy; - tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff; - color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f; - flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040; - flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080; + tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff; + color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f; + flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040; + flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080; if (tc0080vco_flipscreen_r(state->m_tc0080vco)) diff --git a/src/mame/video/taito_o.c b/src/mame/video/taito_o.c index d20946f3879..6ccc626faa5 100644 --- a/src/mame/video/taito_o.c +++ b/src/mame/video/taito_o.c @@ -31,6 +31,7 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap is always 64 pixels. */ taitoo_state *state = machine.driver_data<taitoo_state>(); + address_space &space = machine.driver_data()->generic_space(); static const int size[] = { 1, 2, 4, 4 }; int x0, y0, x, y, dx, dy, ex, ey, zx, zy; int ysize; @@ -44,12 +45,12 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap if (offs < 0x01b0 && priority == 0) continue; if (offs >= 0x01b0 && priority == 1) continue; - x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff; - y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff; - zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8; - zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x007f); - tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2; - ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10]; + x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff; + y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff; + zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8; + zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x007f); + tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2; + ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10]; if (tile_offs) { @@ -108,10 +109,10 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap { int tile, color, flipx, flipy; - tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff; - color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f; - flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040; - flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080; + tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff; + color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f; + flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040; + flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080; if (tc0080vco_flipscreen_r(state->m_tc0080vco)) { diff --git a/src/mame/video/taitoair.c b/src/mame/video/taitoair.c index 16c21d3f3a1..a9f1671da0f 100644 --- a/src/mame/video/taitoair.c +++ b/src/mame/video/taitoair.c @@ -75,6 +75,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const is always 64 pixels. */ taitoair_state *state = machine.driver_data<taitoair_state>(); + address_space &space = machine.driver_data()->generic_space(); static const int size[] = { 1, 2, 4, 4 }; int x0, y0, x, y, dx, dy, ex, ey, zx, zy; int ysize; @@ -89,12 +90,12 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const if (offs < 0x01b0 && priority == 0) continue; if (offs >= 0x01b0 && priority == 1) continue; - x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff; - y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff; - zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8; - zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x007f); - tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2; - ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10]; + x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff; + y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff; + zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8; + zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x007f); + tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2; + ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10]; if (tile_offs) { @@ -153,10 +154,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const { int tile, color, flipx, flipy; - tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff; - color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f; - flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040; - flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080; + tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff; + color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f; + flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040; + flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080; if (tc0080vco_flipscreen_r(state->m_tc0080vco)) { diff --git a/src/mame/video/taitoic.c b/src/mame/video/taitoic.c index 01b837de4e5..8d8daca6f6e 100644 --- a/src/mame/video/taitoic.c +++ b/src/mame/video/taitoic.c @@ -1550,7 +1550,7 @@ WRITE16_DEVICE_HANDLER( tc0080vco_word_w ) else if (offset < 0x20800 / 2) /* sprite ram */ {} else if (offset < 0x20fff / 2) - tc0080vco_scrollram_w(device, offset - (0x20800 / 2), tc0080vco->ram[offset], mem_mask); + tc0080vco_scrollram_w(device, space, offset - (0x20800 / 2), tc0080vco->ram[offset], mem_mask); } void tc0080vco_tilemap_update( device_t *device ) @@ -2344,43 +2344,43 @@ WRITE16_DEVICE_HANDLER( tc0100scn_ctrl_word_w ) READ32_DEVICE_HANDLER( tc0100scn_ctrl_long_r ) { - return (tc0100scn_ctrl_word_r(device, offset * 2, 0xffff) << 16) | tc0100scn_ctrl_word_r(device, offset * 2 + 1, 0xffff); + return (tc0100scn_ctrl_word_r(device, space, offset * 2, 0xffff) << 16) | tc0100scn_ctrl_word_r(device, space, offset * 2 + 1, 0xffff); } WRITE32_DEVICE_HANDLER( tc0100scn_ctrl_long_w ) { if (ACCESSING_BITS_16_31) - tc0100scn_ctrl_word_w(device, offset * 2, data >> 16, mem_mask >> 16); + tc0100scn_ctrl_word_w(device, space, offset * 2, data >> 16, mem_mask >> 16); if (ACCESSING_BITS_0_15) - tc0100scn_ctrl_word_w(device, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff); + tc0100scn_ctrl_word_w(device, space, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff); } READ32_DEVICE_HANDLER( tc0100scn_long_r ) { - return (tc0100scn_word_r(device, offset * 2, 0xffff) << 16) | tc0100scn_word_r(device, offset * 2 + 1, 0xffff); + return (tc0100scn_word_r(device, space, offset * 2, 0xffff) << 16) | tc0100scn_word_r(device, space, offset * 2 + 1, 0xffff); } WRITE32_DEVICE_HANDLER( tc0100scn_long_w ) { if (ACCESSING_BITS_16_31) { - int oldword = tc0100scn_word_r(device, offset * 2, 0xffff); + int oldword = tc0100scn_word_r(device, space, offset * 2, 0xffff); int newword = data >> 16; if (!ACCESSING_BITS_16_23) newword |= (oldword & 0x00ff); if (!ACCESSING_BITS_24_31) newword |= (oldword & 0xff00); - tc0100scn_word_w(device, offset * 2, newword, 0xffff); + tc0100scn_word_w(device, space, offset * 2, newword, 0xffff); } if (ACCESSING_BITS_0_15) { - int oldword = tc0100scn_word_r(device, (offset * 2) + 1, 0xffff); + int oldword = tc0100scn_word_r(device, space, (offset * 2) + 1, 0xffff); int newword = data& 0xffff; if (!ACCESSING_BITS_0_7) newword |= (oldword & 0x00ff); if (!ACCESSING_BITS_8_15) newword |= (oldword & 0xff00); - tc0100scn_word_w(device, (offset * 2) + 1, newword, 0xffff); + tc0100scn_word_w(device, space, (offset * 2) + 1, newword, 0xffff); } } @@ -2699,17 +2699,17 @@ WRITE16_DEVICE_HANDLER( tc0280grd_ctrl_word_w ) READ16_DEVICE_HANDLER( tc0430grw_word_r ) { - return tc0280grd_word_r(device, offset, mem_mask); + return tc0280grd_word_r(device, space, offset, mem_mask); } WRITE16_DEVICE_HANDLER( tc0430grw_word_w ) { - tc0280grd_word_w(device, offset, data, mem_mask); + tc0280grd_word_w(device, space, offset, data, mem_mask); } WRITE16_DEVICE_HANDLER( tc0430grw_ctrl_word_w ) { - tc0280grd_ctrl_word_w(device, offset, data, mem_mask); + tc0280grd_ctrl_word_w(device, space, offset, data, mem_mask); } void tc0280grd_tilemap_update( device_t *device, int base_color ) @@ -3276,7 +3276,7 @@ WRITE16_DEVICE_HANDLER( tc0480scp_ctrl_word_w ) READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r ) { - return (tc0480scp_ctrl_word_r(device, offset * 2, 0xffff) << 16) | tc0480scp_ctrl_word_r(device, offset * 2 + 1, 0xffff); + return (tc0480scp_ctrl_word_r(device, space, offset * 2, 0xffff) << 16) | tc0480scp_ctrl_word_r(device, space, offset * 2 + 1, 0xffff); } /* TODO: byte access ? */ @@ -3284,37 +3284,37 @@ READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r ) WRITE32_DEVICE_HANDLER( tc0480scp_ctrl_long_w ) { if (ACCESSING_BITS_16_31) - tc0480scp_ctrl_word_w(device, offset * 2, data >> 16, mem_mask >> 16); + tc0480scp_ctrl_word_w(device, space, offset * 2, data >> 16, mem_mask >> 16); if (ACCESSING_BITS_0_15) - tc0480scp_ctrl_word_w(device, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff); + tc0480scp_ctrl_word_w(device, space, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff); } READ32_DEVICE_HANDLER( tc0480scp_long_r ) { - return (tc0480scp_word_r(device, offset * 2, 0xffff) << 16) | tc0480scp_word_r(device, offset * 2 + 1, 0xffff); + return (tc0480scp_word_r(device, space, offset * 2, 0xffff) << 16) | tc0480scp_word_r(device, space, offset * 2 + 1, 0xffff); } WRITE32_DEVICE_HANDLER( tc0480scp_long_w ) { if (ACCESSING_BITS_16_31) { - int oldword = tc0480scp_word_r(device, offset * 2, 0xffff); + int oldword = tc0480scp_word_r(device, space, offset * 2, 0xffff); int newword = data >> 16; if (!ACCESSING_BITS_16_23) newword |= (oldword & 0x00ff); if (!ACCESSING_BITS_24_31) newword |= (oldword & 0xff00); - tc0480scp_word_w(device, offset * 2, newword, 0xffff); + tc0480scp_word_w(device, space, offset * 2, newword, 0xffff); } if (ACCESSING_BITS_0_15) { - int oldword = tc0480scp_word_r(device, (offset * 2) + 1, 0xffff); + int oldword = tc0480scp_word_r(device, space, (offset * 2) + 1, 0xffff); int newword = data & 0xffff; if (!ACCESSING_BITS_0_7) newword |= (oldword & 0x00ff); if (!ACCESSING_BITS_8_15) newword |= (oldword & 0xff00); - tc0480scp_word_w(device, (offset * 2) + 1, newword, 0xffff); + tc0480scp_word_w(device, space, (offset * 2) + 1, newword, 0xffff); } } diff --git a/src/mame/video/taitoic.h b/src/mame/video/taitoic.h index dfa5377fa96..7950d17e12a 100644 --- a/src/mame/video/taitoic.h +++ b/src/mame/video/taitoic.h @@ -372,11 +372,11 @@ extern const device_type TC0180VCU; ***************************************************************************/ /** PC080SN **/ -READ16_DEVICE_HANDLER( pc080sn_word_r ); -WRITE16_DEVICE_HANDLER( pc080sn_word_w ); -WRITE16_DEVICE_HANDLER( pc080sn_xscroll_word_w ); -WRITE16_DEVICE_HANDLER( pc080sn_yscroll_word_w ); -WRITE16_DEVICE_HANDLER( pc080sn_ctrl_word_w ); +DECLARE_READ16_DEVICE_HANDLER( pc080sn_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_word_w ); +DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_xscroll_word_w ); +DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_yscroll_word_w ); +DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_ctrl_word_w ); void pc080sn_set_scroll(device_t *device, int tilemap_num, int scrollx, int scrolly); void pc080sn_set_trans_pen(device_t *device, int tilemap_num, int pen); @@ -389,8 +389,8 @@ void pc080sn_tilemap_draw_special(device_t *device, bitmap_ind16 &bitmap, const /** PC090OJ **/ -READ16_DEVICE_HANDLER( pc090oj_word_r ); -WRITE16_DEVICE_HANDLER( pc090oj_word_w ); +DECLARE_READ16_DEVICE_HANDLER( pc090oj_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( pc090oj_word_w ); void pc090oj_set_sprite_ctrl(device_t *device, UINT16 sprctrl); void pc090oj_eof_callback(device_t *device); @@ -398,16 +398,16 @@ void pc090oj_draw_sprites(device_t *device, bitmap_ind16 &bitmap, const rectangl /** TC0080VCO **/ -READ16_DEVICE_HANDLER( tc0080vco_word_r ); -WRITE16_DEVICE_HANDLER( tc0080vco_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0080vco_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0080vco_word_w ); void tc0080vco_tilemap_update(device_t *device); void tc0080vco_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); -READ16_DEVICE_HANDLER( tc0080vco_cram_0_r ); -READ16_DEVICE_HANDLER( tc0080vco_cram_1_r ); -READ16_DEVICE_HANDLER( tc0080vco_sprram_r ); -READ16_DEVICE_HANDLER( tc0080vco_scrram_r ); +DECLARE_READ16_DEVICE_HANDLER( tc0080vco_cram_0_r ); +DECLARE_READ16_DEVICE_HANDLER( tc0080vco_cram_1_r ); +DECLARE_READ16_DEVICE_HANDLER( tc0080vco_sprram_r ); +DECLARE_READ16_DEVICE_HANDLER( tc0080vco_scrram_r ); READ_LINE_DEVICE_HANDLER( tc0080vco_flipscreen_r ); @@ -426,18 +426,18 @@ void tc0100scn_set_colbank(device_t *device, int colbank); void tc0100scn_set_bg_tilemask(device_t *device, int mask); /* Function to for Mjnquest to select gfx bank */ -WRITE16_DEVICE_HANDLER( tc0100scn_gfxbank_w ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0100scn_gfxbank_w ); -READ16_DEVICE_HANDLER( tc0100scn_word_r ); -WRITE16_DEVICE_HANDLER( tc0100scn_word_w ); -READ16_DEVICE_HANDLER( tc0100scn_ctrl_word_r ); -WRITE16_DEVICE_HANDLER( tc0100scn_ctrl_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0100scn_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0100scn_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0100scn_ctrl_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0100scn_ctrl_word_w ); /* Functions for use with 68020 (Under Fire) */ -READ32_DEVICE_HANDLER( tc0100scn_long_r ); -WRITE32_DEVICE_HANDLER( tc0100scn_long_w ); -READ32_DEVICE_HANDLER( tc0100scn_ctrl_long_r ); -WRITE32_DEVICE_HANDLER( tc0100scn_ctrl_long_w ); +DECLARE_READ32_DEVICE_HANDLER( tc0100scn_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( tc0100scn_long_w ); +DECLARE_READ32_DEVICE_HANDLER( tc0100scn_ctrl_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( tc0100scn_ctrl_long_w ); void tc0100scn_tilemap_update(device_t *device); int tc0100scn_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); @@ -448,22 +448,22 @@ int tc0100scn_bottomlayer(device_t *device); /** TC0280GRD & TC0430GRW **/ -READ16_DEVICE_HANDLER( tc0280grd_word_r ); -WRITE16_DEVICE_HANDLER( tc0280grd_word_w ); -WRITE16_DEVICE_HANDLER( tc0280grd_ctrl_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0280grd_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0280grd_word_w ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0280grd_ctrl_word_w ); void tc0280grd_tilemap_update(device_t *device, int base_color); void tc0280grd_zoom_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); -READ16_DEVICE_HANDLER( tc0430grw_word_r ); -WRITE16_DEVICE_HANDLER( tc0430grw_word_w ); -WRITE16_DEVICE_HANDLER( tc0430grw_ctrl_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0430grw_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0430grw_word_w ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0430grw_ctrl_word_w ); void tc0430grw_tilemap_update(device_t *device, int base_color); void tc0430grw_zoom_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); /** TC0360PRI **/ -WRITE8_DEVICE_HANDLER( tc0360pri_w ); -READ8_DEVICE_HANDLER( tc0360pri_r ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0360pri_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0360pri_r ); /** TC0480SCP **/ @@ -471,16 +471,16 @@ READ8_DEVICE_HANDLER( tc0360pri_r ); then tweak them once you have the 4 bg layer positions correct. Col_base may be needed when tilemaps use a palette area from sprites. */ -READ16_DEVICE_HANDLER( tc0480scp_word_r ); -WRITE16_DEVICE_HANDLER( tc0480scp_word_w ); -READ16_DEVICE_HANDLER( tc0480scp_ctrl_word_r ); -WRITE16_DEVICE_HANDLER( tc0480scp_ctrl_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0480scp_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0480scp_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0480scp_ctrl_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0480scp_ctrl_word_w ); /* Functions for use with 68020 (Super-Z system) */ -READ32_DEVICE_HANDLER( tc0480scp_long_r ); -WRITE32_DEVICE_HANDLER( tc0480scp_long_w ); -READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r ); -WRITE32_DEVICE_HANDLER( tc0480scp_ctrl_long_w ); +DECLARE_READ32_DEVICE_HANDLER( tc0480scp_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( tc0480scp_long_w ); +DECLARE_READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r ); +DECLARE_WRITE32_DEVICE_HANDLER( tc0480scp_ctrl_long_w ); void tc0480scp_tilemap_update(device_t *device); void tc0480scp_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); @@ -491,31 +491,31 @@ void tc0480scp_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectan int tc0480scp_get_bg_priority(device_t *device); /* Undrfire needs to read this for a sprite/tile priority hack */ -READ8_DEVICE_HANDLER( tc0480scp_pri_reg_r ); +DECLARE_READ8_DEVICE_HANDLER( tc0480scp_pri_reg_r ); /** TC0150ROD **/ -READ16_DEVICE_HANDLER( tc0150rod_word_r ); -WRITE16_DEVICE_HANDLER( tc0150rod_word_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0150rod_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0150rod_word_w ); void tc0150rod_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs, int palette_offs, int type, int road_trans, UINT32 low_priority, UINT32 high_priority); /** TC0110PCR **/ -READ16_DEVICE_HANDLER( tc0110pcr_word_r ); -WRITE16_DEVICE_HANDLER( tc0110pcr_word_w ); /* color index goes up in step of 2 */ -WRITE16_DEVICE_HANDLER( tc0110pcr_step1_word_w ); /* color index goes up in step of 1 */ -WRITE16_DEVICE_HANDLER( tc0110pcr_step1_rbswap_word_w ); /* swaps red and blue components */ -WRITE16_DEVICE_HANDLER( tc0110pcr_step1_4bpg_word_w ); /* only 4 bits per color gun */ +DECLARE_READ16_DEVICE_HANDLER( tc0110pcr_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_word_w ); /* color index goes up in step of 2 */ +DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_step1_word_w ); /* color index goes up in step of 1 */ +DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_step1_rbswap_word_w ); /* swaps red and blue components */ +DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_step1_4bpg_word_w ); /* only 4 bits per color gun */ /** TC0180VCU **/ -READ8_DEVICE_HANDLER( tc0180vcu_get_fb_page ); -WRITE8_DEVICE_HANDLER( tc0180vcu_set_fb_page ); -READ8_DEVICE_HANDLER( tc0180vcu_get_videoctrl ); -READ16_DEVICE_HANDLER( tc0180vcu_ctrl_r ); -WRITE16_DEVICE_HANDLER( tc0180vcu_ctrl_w ); -READ16_DEVICE_HANDLER( tc0180vcu_scroll_r ); -WRITE16_DEVICE_HANDLER( tc0180vcu_scroll_w ); -READ16_DEVICE_HANDLER( tc0180vcu_word_r ); -WRITE16_DEVICE_HANDLER( tc0180vcu_word_w ); +DECLARE_READ8_DEVICE_HANDLER( tc0180vcu_get_fb_page ); +DECLARE_WRITE8_DEVICE_HANDLER( tc0180vcu_set_fb_page ); +DECLARE_READ8_DEVICE_HANDLER( tc0180vcu_get_videoctrl ); +DECLARE_READ16_DEVICE_HANDLER( tc0180vcu_ctrl_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0180vcu_ctrl_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0180vcu_scroll_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0180vcu_scroll_w ); +DECLARE_READ16_DEVICE_HANDLER( tc0180vcu_word_r ); +DECLARE_WRITE16_DEVICE_HANDLER( tc0180vcu_word_w ); void tc0180vcu_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, int plane); diff --git a/src/mame/video/tia.c b/src/mame/video/tia.c index 41903427c72..662ac698adf 100644 --- a/src/mame/video/tia.c +++ b/src/mame/video/tia.c @@ -1804,7 +1804,7 @@ WRITE8_MEMBER( tia_video_device::write ) case 0x18: /* AUDF1 */ case 0x19: /* AUDV0 */ case 0x1A: /* AUDV1 */ - tia_sound_w(machine().device("tia"), offset, data); + tia_sound_w(machine().device("tia"), space, offset, data); break; case 0x1B: diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c index 5e92058af4b..3226f3bd17b 100644 --- a/src/mame/video/triplhnt.c +++ b/src/mame/video/triplhnt.c @@ -114,7 +114,8 @@ SCREEN_UPDATE_IND16( triplhnt ) draw_sprites(screen.machine(), bitmap, cliprect); - discrete_sound_w(discrete, TRIPLHNT_BEAR_ROAR_DATA, state->m_playfield_ram[0xfa] & 15); - discrete_sound_w(discrete, TRIPLHNT_SHOT_DATA, state->m_playfield_ram[0xfc] & 15); + address_space &space = screen.machine().driver_data()->generic_space(); + discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, state->m_playfield_ram[0xfa] & 15); + discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, state->m_playfield_ram[0xfc] & 15); return 0; } diff --git a/src/mame/video/tumblep.c b/src/mame/video/tumblep.c index f77de781803..681aaa57fb0 100644 --- a/src/mame/video/tumblep.c +++ b/src/mame/video/tumblep.c @@ -22,7 +22,8 @@ to switch between 8*8 tiles and 16*16 tiles. SCREEN_UPDATE_IND16( tumblep ) { tumblep_state *state = screen.machine().driver_data<tumblep_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); state->flip_screen_set(BIT(flip, 7)); deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll); diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c index bd520a0e5cb..19deb389d1b 100644 --- a/src/mame/video/ultratnk.c +++ b/src/mame/video/ultratnk.c @@ -142,8 +142,9 @@ SCREEN_VBLANK( ultratnk ) /* update sound status */ - discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15); - discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15); + address_space &space = screen.machine().driver_data()->generic_space(); + discrete_sound_w(discrete, space, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15); + discrete_sound_w(discrete, space, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15); } } diff --git a/src/mame/video/undrfire.c b/src/mame/video/undrfire.c index 70c8eb840f0..12de8b3ef2d 100644 --- a/src/mame/video/undrfire.c +++ b/src/mame/video/undrfire.c @@ -350,6 +350,7 @@ SCREEN_UPDATE_IND16( undrfire ) { device_t *tc0100scn = screen.machine().device("tc0100scn"); device_t *tc0480scp = screen.machine().device("tc0480scp"); + address_space &space = screen.machine().driver_data()->generic_space(); UINT8 layer[5]; UINT8 pivlayer[3]; UINT16 priority; @@ -445,7 +446,7 @@ SCREEN_UPDATE_IND16( undrfire ) #endif /* Sprites have variable priority (we kludge this on road levels) */ { - if ((tc0480scp_pri_reg_r(tc0480scp, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */ + if ((tc0480scp_pri_reg_r(tc0480scp, space, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */ { static const int primasks[4] = {0xfff0, 0xff00, 0x0, 0x0}; draw_sprites(screen.machine(), bitmap, cliprect, primasks, 44, -574); @@ -493,6 +494,7 @@ SCREEN_UPDATE_IND16( cbombers ) { device_t *tc0100scn = screen.machine().device("tc0100scn"); device_t *tc0480scp = screen.machine().device("tc0480scp"); + address_space &space = screen.machine().driver_data()->generic_space(); UINT8 layer[5]; UINT8 pivlayer[3]; UINT16 priority; @@ -588,7 +590,7 @@ SCREEN_UPDATE_IND16( cbombers ) #endif /* Sprites have variable priority (we kludge this on road levels) */ { - if ((tc0480scp_pri_reg_r(tc0480scp, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */ + if ((tc0480scp_pri_reg_r(tc0480scp, space, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */ { static const int primasks[4] = {0xfff0, 0xff00, 0x0, 0x0}; draw_sprites_cbombers(screen.machine(), bitmap, cliprect, primasks, 80, -208); diff --git a/src/mame/video/vaportra.c b/src/mame/video/vaportra.c index 810d79a0442..2a4493e1499 100644 --- a/src/mame/video/vaportra.c +++ b/src/mame/video/vaportra.c @@ -53,7 +53,8 @@ WRITE16_MEMBER(vaportra_state::vaportra_palette_24bit_b_w) SCREEN_UPDATE_IND16( vaportra ) { vaportra_state *state = screen.machine().driver_data<vaportra_state>(); - UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff); + address_space &space = screen.machine().driver_data()->generic_space(); + UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff); int pri = state->m_priority[0] & 0x03; state->flip_screen_set(!BIT(flip, 7)); diff --git a/src/mame/video/vectrex.c b/src/mame/video/vectrex.c index 96b0a8c6d35..88853eb58f9 100644 --- a/src/mame/video/vectrex.c +++ b/src/mame/video/vectrex.c @@ -42,10 +42,10 @@ enum { *********************************************************************/ -static WRITE8_DEVICE_HANDLER (v_via_pa_w); -static WRITE8_DEVICE_HANDLER(v_via_pb_w); -static WRITE8_DEVICE_HANDLER (v_via_ca2_w); -static WRITE8_DEVICE_HANDLER (v_via_cb2_w); +static DECLARE_WRITE8_DEVICE_HANDLER (v_via_pa_w); +static DECLARE_WRITE8_DEVICE_HANDLER(v_via_pb_w); +static DECLARE_WRITE8_DEVICE_HANDLER (v_via_ca2_w); +static DECLARE_WRITE8_DEVICE_HANDLER (v_via_cb2_w); /********************************************************************* @@ -399,9 +399,9 @@ static WRITE8_DEVICE_HANDLER(v_via_pb_w) device_t *ay8912 = device->machine().device("ay8912"); if (data & 0x08) /* BC1 (do we select a reg or write it ?) */ - ay8910_address_w(ay8912, 0, state->m_via_out[PORTA]); + ay8910_address_w(ay8912, space, 0, state->m_via_out[PORTA]); else - ay8910_data_w(ay8912, 0, state->m_via_out[PORTA]); + ay8910_data_w(ay8912, space, 0, state->m_via_out[PORTA]); } if (!(data & 0x1) && (state->m_via_out[PORTB] & 0x1)) diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c index 81633249b1f..bac7d67c705 100644 --- a/src/mame/video/xmen.c +++ b/src/mame/video/xmen.c @@ -158,6 +158,7 @@ SCREEN_VBLANK( xmen6p ) cliprect.set(0, 64 * 8 - 1, 2 * 8, 30 * 8 - 1); + address_space &space = screen.machine().driver_data()->generic_space(); if (screen.machine().primary_screen->frame_number() & 0x01) { @@ -171,7 +172,7 @@ SCREEN_VBLANK( xmen6p ) for (offset = 0; offset < (0xc000 / 2); offset++) { // K052109_lsb_w - k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff); + k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff); } @@ -190,7 +191,7 @@ SCREEN_VBLANK( xmen6p ) for (offset = 0; offset < (0xc000 / 2); offset++) { // K052109_lsb_w - k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff); + k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff); } diff --git a/src/mess/audio/dave.c b/src/mess/audio/dave.c index 630a3bca24f..c2ed1729c1a 100644 --- a/src/mess/audio/dave.c +++ b/src/mess/audio/dave.c @@ -183,10 +183,11 @@ static DEVICE_RESET( dave_sound ) for (i = 0; i < 32; i++) dave->Regs[i] = 0; - dave_reg_w(device, 0x10, 0); - dave_reg_w(device, 0x11, 0); - dave_reg_w(device, 0x12, 0); - dave_reg_w(device, 0x13, 0); + address_space &space = device->machine().driver_data()->generic_space(); + dave_reg_w(device, space, 0x10, 0); + dave_reg_w(device, space, 0x11, 0); + dave_reg_w(device, space, 0x12, 0); + dave_reg_w(device, space, 0x13, 0); } @@ -615,7 +616,7 @@ WRITE8_DEVICE_HANDLER ( dave_reg_w ) logerror("dave w: %04x %02x\n",offset,data); - dave_sound_w(device, offset, data); + dave_sound_w(device, space, offset, data, mem_mask); dave->Regs[offset & 0x01f] = data; diff --git a/src/mess/audio/dave.h b/src/mess/audio/dave.h index eee0adb731f..a3cef8548cc 100644 --- a/src/mess/audio/dave.h +++ b/src/mess/audio/dave.h @@ -73,7 +73,7 @@ struct dave_interface ***************************************************************************/ void dave_set_reg(device_t *device, offs_t offset, UINT8 data); -READ8_DEVICE_HANDLER ( dave_reg_r ); -WRITE8_DEVICE_HANDLER ( dave_reg_w ); +DECLARE_READ8_DEVICE_HANDLER ( dave_reg_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( dave_reg_w ); #endif /* __DAVE_H__ */ diff --git a/src/mess/audio/gb.h b/src/mess/audio/gb.h index c162126b47c..6b0bdefd877 100644 --- a/src/mess/audio/gb.h +++ b/src/mess/audio/gb.h @@ -22,7 +22,7 @@ private: extern const device_type GAMEBOY; -READ8_DEVICE_HANDLER( gb_sound_r ); -WRITE8_DEVICE_HANDLER( gb_sound_w ); -READ8_DEVICE_HANDLER( gb_wave_r ); -WRITE8_DEVICE_HANDLER( gb_wave_w ); +DECLARE_READ8_DEVICE_HANDLER( gb_sound_r ); +DECLARE_WRITE8_DEVICE_HANDLER( gb_sound_w ); +DECLARE_READ8_DEVICE_HANDLER( gb_wave_r ); +DECLARE_WRITE8_DEVICE_HANDLER( gb_wave_w ); diff --git a/src/mess/audio/mea8000.c b/src/mess/audio/mea8000.c index 5281137b433..859818a3d87 100644 --- a/src/mess/audio/mea8000.c +++ b/src/mess/audio/mea8000.c @@ -102,6 +102,7 @@ struct mea8000_t emu_timer *timer; + devcb_resolved_write8 req_out; }; @@ -206,8 +207,8 @@ static void mea8000_update_req( device_t *device ) buffer contains a complete frame and the CPU nees to wait for the next frame end to compose a new frame. */ - if (mea8000->iface->req_out_func) - mea8000->iface->req_out_func( device, 0, mea8000_accept_byte( mea8000 ) ); + if (!mea8000->req_out.isnull()) + mea8000->req_out( 0, mea8000_accept_byte( mea8000 ) ); } @@ -668,6 +669,7 @@ static DEVICE_START( mea8000 ) mea8000_t* mea8000 = get_safe_token( device ); int i; mea8000->iface = (const mea8000_interface*)device->static_config(); + mea8000->req_out.resolve(mea8000->iface->req_out_func, *device); mea8000_init_tables(device->machine()); diff --git a/src/mess/audio/mea8000.h b/src/mess/audio/mea8000.h index 0910ae59872..e565f33ed8d 100644 --- a/src/mess/audio/mea8000.h +++ b/src/mess/audio/mea8000.h @@ -40,7 +40,7 @@ struct mea8000_interface const char * channel; /* 1-bit 'ready' output, not negated */ - write8_device_func req_out_func; + devcb_write8 req_out_func; }; @@ -49,7 +49,7 @@ struct mea8000_interface MCFG_DEVICE_CONFIG(_intrf) /* interface to CPU via address/data bus*/ -extern READ8_DEVICE_HANDLER ( mea8000_r ); -extern WRITE8_DEVICE_HANDLER ( mea8000_w ); +extern DECLARE_READ8_DEVICE_HANDLER ( mea8000_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER ( mea8000_w ); #endif diff --git a/src/mess/audio/t6721.h b/src/mess/audio/t6721.h index d10de292616..d24db20487f 100644 --- a/src/mess/audio/t6721.h +++ b/src/mess/audio/t6721.h @@ -39,8 +39,8 @@ extern const device_type T6721; /*----------- defined in audio/t6721.c -----------*/ -WRITE8_DEVICE_HANDLER(t6721_speech_w); -READ8_DEVICE_HANDLER(t6721_speech_r); +DECLARE_WRITE8_DEVICE_HANDLER(t6721_speech_w); +DECLARE_READ8_DEVICE_HANDLER(t6721_speech_r); #endif /* __TED7360_H__ */ diff --git a/src/mess/audio/upd1771.h b/src/mess/audio/upd1771.h index 83104fa5d05..abe1854312b 100644 --- a/src/mess/audio/upd1771.h +++ b/src/mess/audio/upd1771.h @@ -54,7 +54,7 @@ extern const device_type UPD1771C; PROTOTYPES ***************************************************************************/ -WRITE8_DEVICE_HANDLER( upd1771_w ); +DECLARE_WRITE8_DEVICE_HANDLER( upd1771_w ); WRITE_LINE_DEVICE_HANDLER( upd1771_pcm_w ); #endif /* __UPD1771_H__ */ diff --git a/src/mess/drivers/abc1600.c b/src/mess/drivers/abc1600.c index 904c11329e1..bb87142fc62 100644 --- a/src/mess/drivers/abc1600.c +++ b/src/mess/drivers/abc1600.c @@ -182,8 +182,8 @@ UINT8 abc1600_state::read_ram(offs_t offset) else if (offset < 0x180000) { // video RAM - address_space *program = m_maincpu->space(AS_PROGRAM); - data = video_ram_r(*program, offset); + address_space &program = *m_maincpu->space(AS_PROGRAM); + data = video_ram_r(program, offset); } else { @@ -209,8 +209,8 @@ void abc1600_state::write_ram(offs_t offset, UINT8 data) else if (offset < 0x180000) { // video RAM - address_space *program = m_maincpu->space(AS_PROGRAM); - video_ram_w(*program, offset, data); + address_space &program = *m_maincpu->space(AS_PROGRAM); + video_ram_w(program, offset, data); } else { @@ -242,7 +242,7 @@ UINT8 abc1600_state::read_io(offs_t offset) UINT8 abc1600_state::read_internal_io(offs_t offset) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); UINT8 data = 0; if (X11) @@ -250,7 +250,7 @@ UINT8 abc1600_state::read_internal_io(offs_t offset) switch (A10_A9_A8) { case IORD0: - data = iord0_r(*program, offset); + data = iord0_r(program, offset); break; default: @@ -262,18 +262,18 @@ UINT8 abc1600_state::read_internal_io(offs_t offset) switch (A10_A9_A8) { case FLP: - data = wd17xx_r(m_fdc, A2_A1); + data = wd17xx_r(m_fdc, program, A2_A1); break; case CRT: if (A0) - data = m_crtc->register_r(*program, offset); + data = m_crtc->register_r(program, offset); else - data = m_crtc->status_r(*program, offset); + data = m_crtc->status_r(program, offset); break; case DRT: - data = z80dart_ba_cd_r(m_dart, A2_A1 ^ 0x03); + data = z80dart_ba_cd_r(m_dart, program, A2_A1 ^ 0x03); break; case DMA0: @@ -289,11 +289,11 @@ UINT8 abc1600_state::read_internal_io(offs_t offset) break; case SCC: - data = m_scc->reg_r(*program, A1_A2); + data = m_scc->reg_r(program, A1_A2); break; case CIO: - data = m_cio->read(*program, A2_A1); + data = m_cio->read(program, A2_A1); break; } } @@ -467,31 +467,31 @@ void abc1600_state::write_io(offs_t offset, UINT8 data) void abc1600_state::write_internal_io(offs_t offset, UINT8 data) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); if (X11) { switch (A10_A9_A8) { case IOWR0: - iowr0_w(*program, offset, data); + iowr0_w(program, offset, data); break; case IOWR1: - iowr1_w(*program, offset, data); + iowr1_w(program, offset, data); break; case IOWR2: - iowr2_w(*program, offset, data); + iowr2_w(program, offset, data); break; case FW: if (!A7) { if (A0) - fw1_w(*program, offset, data); + fw1_w(program, offset, data); else - fw0_w(*program, offset, data); + fw0_w(program, offset, data); } else { @@ -500,11 +500,11 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data) break; case DMAMAP: - dmamap_w(*program, offset, data); + dmamap_w(program, offset, data); break; case SPEC_CONTR_REG: - spec_contr_reg_w(*program, offset, data); + spec_contr_reg_w(program, offset, data); break; default: @@ -516,18 +516,18 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data) switch (A10_A9_A8) { case FLP: - wd17xx_w(m_fdc, A2_A1, data); + wd17xx_w(m_fdc, program, A2_A1, data); break; case CRT: if (A0) - m_crtc->register_w(*program, offset, data); + m_crtc->register_w(program, offset, data); else - m_crtc->address_w(*program, offset, data); + m_crtc->address_w(program, offset, data); break; case DRT: - z80dart_ba_cd_w(m_dart, A2_A1 ^ 0x03, data); + z80dart_ba_cd_w(m_dart, program, A2_A1 ^ 0x03, data); break; case DMA0: @@ -543,11 +543,11 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data) break; case SCC: - m_scc->reg_w(*program, A1_A2, data); + m_scc->reg_w(program, A1_A2, data); break; case CIO: - m_cio->write(*program, A2_A1, data); + m_cio->write(program, A2_A1, data); break; } } @@ -770,23 +770,23 @@ void abc1600_state::write_user_memory(offs_t offset, UINT8 data) UINT8 abc1600_state::read_supervisor_memory(offs_t offset) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); UINT8 data = 0; if (!A2 && !A1) { // _EP - data = page_r(*program, offset); + data = page_r(program, offset); } else if (!A2 && A1 && A0) { // _ES - data = segment_r(*program, offset); + data = segment_r(program, offset); } else if (A2 && A1 && A0) { // _CAUSE - data = cause_r(*program, offset); + data = cause_r(program, offset); } return data; @@ -799,22 +799,22 @@ UINT8 abc1600_state::read_supervisor_memory(offs_t offset) void abc1600_state::write_supervisor_memory(offs_t offset, UINT8 data) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); if (!A2 && !A1) { // _WEP - page_w(*program, offset, data); + page_w(program, offset, data); } else if (!A2 && A1 && A0) { // _WES - segment_w(*program, offset, data); + segment_w(program, offset, data); } else if (A2 && !A1 && A0) { // W(C) - task_w(*program, offset, data); + task_w(program, offset, data); } } @@ -1879,17 +1879,17 @@ void abc1600_state::machine_start() void abc1600_state::machine_reset() { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); // clear special control register for (int i = 0; i < 8; i++) { - spec_contr_reg_w(*program, 0, i); + spec_contr_reg_w(program, 0, i); } // clear floppy registers - fw0_w(*program, 0, 0); - fw1_w(*program, 0, 0); + fw0_w(program, 0, 0); + fw1_w(program, 0, 0); // clear task register m_task = 0; diff --git a/src/mess/drivers/abc80x.c b/src/mess/drivers/abc80x.c index 11733198aa1..e822539ab12 100644 --- a/src/mess/drivers/abc80x.c +++ b/src/mess/drivers/abc80x.c @@ -161,7 +161,7 @@ READ8_MEMBER( abc800_state::pling_r ) { m_pling = !m_pling; - discrete_sound_w(m_discrete, NODE_01, m_pling); + discrete_sound_w(m_discrete, space, NODE_01, m_pling); return 0xff; } @@ -175,7 +175,7 @@ READ8_MEMBER( abc802_state::pling_r ) { m_pling = !m_pling; - discrete_sound_w(m_discrete, NODE_01, m_pling); + discrete_sound_w(m_discrete, space, NODE_01, m_pling); return 0xff; } diff --git a/src/mess/drivers/ace.c b/src/mess/drivers/ace.c index 8d514cc5bb4..13a8c67d940 100644 --- a/src/mess/drivers/ace.c +++ b/src/mess/drivers/ace.c @@ -507,7 +507,7 @@ static WRITE8_DEVICE_HANDLER( ald_w ) if (!BIT(data, 6)) { - sp0256_ALD_w(device, 0, data & 0x3f); + sp0256_ALD_w(device, space, 0, data & 0x3f); } } diff --git a/src/mess/drivers/ami1200.c b/src/mess/drivers/ami1200.c index de3c1524707..97720df08b6 100644 --- a/src/mess/drivers/ami1200.c +++ b/src/mess/drivers/ami1200.c @@ -90,7 +90,7 @@ static WRITE8_DEVICE_HANDLER( ami1200_cia_0_porta_w ) /* bit 2 = Power Led on Amiga */ set_led_status(device->machine(), 0, !BIT(data, 1)); - handle_cd32_joystick_cia(state, data, mos6526_r(device, 2)); + handle_cd32_joystick_cia(state, data, mos6526_r(device, space, 2)); } /************************************* diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c index 7ef4a3a8f48..eca358cdbce 100644 --- a/src/mess/drivers/amiga.c +++ b/src/mess/drivers/amiga.c @@ -48,9 +48,9 @@ public: DECLARE_MACHINE_RESET(cdtv); }; -static READ8_DEVICE_HANDLER( amiga_cia_0_portA_r ); -static READ8_DEVICE_HANDLER( amiga_cia_0_cdtv_portA_r ); -static WRITE8_DEVICE_HANDLER( amiga_cia_0_portA_w ); +static DECLARE_READ8_DEVICE_HANDLER( amiga_cia_0_portA_r ); +static DECLARE_READ8_DEVICE_HANDLER( amiga_cia_0_cdtv_portA_r ); +static DECLARE_WRITE8_DEVICE_HANDLER( amiga_cia_0_portA_w ); /*************************************************************************** Battery Backed-Up Clock (MSM6264) diff --git a/src/mess/drivers/apf.c b/src/mess/drivers/apf.c index 235bdf60e8f..a0a31350a0f 100644 --- a/src/mess/drivers/apf.c +++ b/src/mess/drivers/apf.c @@ -388,42 +388,42 @@ WRITE8_MEMBER( apf_state::serial_w) WRITE8_MEMBER( apf_state::apf_wd179x_command_w) { - wd17xx_command_w(m_fdc, offset,~data); + wd17xx_command_w(m_fdc, space, offset,~data); } WRITE8_MEMBER( apf_state::apf_wd179x_track_w) { - wd17xx_track_w(m_fdc, offset,~data); + wd17xx_track_w(m_fdc, space, offset,~data); } WRITE8_MEMBER( apf_state::apf_wd179x_sector_w) { - wd17xx_sector_w(m_fdc, offset,~data); + wd17xx_sector_w(m_fdc, space, offset,~data); } WRITE8_MEMBER( apf_state::apf_wd179x_data_w) { - wd17xx_data_w(m_fdc, offset,~data); + wd17xx_data_w(m_fdc, space, offset,~data); } READ8_MEMBER( apf_state::apf_wd179x_status_r) { - return ~wd17xx_status_r(m_fdc, offset); + return ~wd17xx_status_r(m_fdc, space, offset); } READ8_MEMBER( apf_state::apf_wd179x_track_r) { - return ~wd17xx_track_r(m_fdc, offset); + return ~wd17xx_track_r(m_fdc, space, offset); } READ8_MEMBER( apf_state::apf_wd179x_sector_r) { - return ~wd17xx_sector_r(m_fdc, offset); + return ~wd17xx_sector_r(m_fdc, space, offset); } READ8_MEMBER( apf_state::apf_wd179x_data_r) { - return wd17xx_data_r(m_fdc, offset); // should this be inverted like the rest? + return wd17xx_data_r(m_fdc, space, offset); // should this be inverted like the rest? } static ADDRESS_MAP_START( apf_imagination_map, AS_PROGRAM, 8, apf_state ) diff --git a/src/mess/drivers/apollo.c b/src/mess/drivers/apollo.c index c43d38e52ee..8c34df4d8c6 100644 --- a/src/mess/drivers/apollo.c +++ b/src/mess/drivers/apollo.c @@ -1170,9 +1170,9 @@ static READ8_DEVICE_HANDLER( apollo_kbd_is_german ) { } static APOLLO_KBD_INTERFACE( apollo_kbd_config ) = { - apollo_kbd_putchar, - apollo_kbd_has_beeper, - apollo_kbd_is_german + DEVCB_HANDLER(apollo_kbd_putchar), + DEVCB_HANDLER(apollo_kbd_has_beeper), + DEVCB_HANDLER(apollo_kbd_is_german) }; static WRITE8_DEVICE_HANDLER( terminal_kbd_putchar ) { diff --git a/src/mess/drivers/apricot.c b/src/mess/drivers/apricot.c index 711cde54797..7b4b6e7dda8 100644 --- a/src/mess/drivers/apricot.c +++ b/src/mess/drivers/apricot.c @@ -120,20 +120,20 @@ static const struct pit8253_config apricot_pit8253_intf = } }; -static void apricot_sio_irq_w(device_t *device, int st) +static WRITE_LINE_DEVICE_HANDLER( apricot_sio_irq_w ) { - apricot_state *state = device->machine().driver_data<apricot_state>(); - pic8259_ir5_w(state->m_pic, st); + apricot_state *astate = device->machine().driver_data<apricot_state>(); + pic8259_ir5_w(astate->m_pic, state); } static const z80sio_interface apricot_z80sio_intf = { - apricot_sio_irq_w, - NULL, - NULL, - NULL, - NULL, - NULL + DEVCB_LINE(apricot_sio_irq_w), + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; diff --git a/src/mess/drivers/at.c b/src/mess/drivers/at.c index 6ad885f3492..910c20662ad 100644 --- a/src/mess/drivers/at.c +++ b/src/mess/drivers/at.c @@ -165,10 +165,10 @@ ADDRESS_MAP_END READ32_MEMBER( at_state::ct486_chipset_r ) { if (ACCESSING_BITS_0_7) - return pic8259_r(m_pic8259_master, 0); + return pic8259_r(m_pic8259_master, space, 0); if (ACCESSING_BITS_8_15) - return pic8259_r(m_pic8259_master, 1) << 8; + return pic8259_r(m_pic8259_master, space, 1) << 8; if (ACCESSING_BITS_24_31) return m_cs4031->data_r(space, 0, 0) << 24; @@ -179,10 +179,10 @@ READ32_MEMBER( at_state::ct486_chipset_r ) WRITE32_MEMBER( at_state::ct486_chipset_w ) { if (ACCESSING_BITS_0_7) - pic8259_w(m_pic8259_master, 0, data); + pic8259_w(m_pic8259_master, space, 0, data); if (ACCESSING_BITS_8_15) - pic8259_w(m_pic8259_master, 1, data >> 8); + pic8259_w(m_pic8259_master, space, 1, data >> 8); if (ACCESSING_BITS_16_23) m_cs4031->address_w(space, 0, data >> 16, 0); diff --git a/src/mess/drivers/bebox.c b/src/mess/drivers/bebox.c index bcef26276c5..c49b49b843e 100644 --- a/src/mess/drivers/bebox.c +++ b/src/mess/drivers/bebox.c @@ -37,8 +37,8 @@ #include "formats/pc_dsk.h" #include "machine/ram.h" -static READ8_HANDLER(at_dma8237_1_r) { return i8237_r(space->machine().device("dma8237_2"), offset / 2); } -static WRITE8_HANDLER(at_dma8237_1_w) { i8237_w(space->machine().device("dma8237_2"), offset / 2, data); } +static READ8_HANDLER(at_dma8237_1_r) { return i8237_r(space->machine().device("dma8237_2"), *space, offset / 2); } +static WRITE8_HANDLER(at_dma8237_1_w) { i8237_w(space->machine().device("dma8237_2"), *space, offset / 2, data); } static ADDRESS_MAP_START( bebox_mem, AS_PROGRAM, 64, bebox_state ) AM_RANGE(0x7FFFF0F0, 0x7FFFF0F7) AM_READWRITE_LEGACY(bebox_cpu0_imask_r, bebox_cpu0_imask_w ) diff --git a/src/mess/drivers/bigbord2.c b/src/mess/drivers/bigbord2.c index 746046a50fe..93254c450a0 100644 --- a/src/mess/drivers/bigbord2.c +++ b/src/mess/drivers/bigbord2.c @@ -385,19 +385,19 @@ INPUT_PORTS_END /* Z80 SIO */ -static void bigbord2_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( bigbord2_interrupt ) { device->machine().device(Z80_TAG)->execute().set_input_line(0, state); } const z80sio_interface sio_intf = { - bigbord2_interrupt, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - 0, /* transmit handler - which channel is this for? */ - 0 /* receive handler - which channel is this for? */ + DEVCB_LINE(bigbord2_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler - which channel is this for? */ + DEVCB_NULL /* receive handler - which channel is this for? */ }; diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c index 56d3e9d2a0b..966d771ba9f 100644 --- a/src/mess/drivers/bml3.c +++ b/src/mess/drivers/bml3.c @@ -330,7 +330,7 @@ static READ8_DEVICE_HANDLER( bml3_ym2203_r ) bml3_state *state = device->machine().driver_data<bml3_state>(); UINT8 dev_offs = ((state->m_psg_latch & 3) != 3); - return ym2203_r(device,dev_offs); + return ym2203_r(device,space, dev_offs); } static WRITE8_DEVICE_HANDLER( bml3_ym2203_w ) @@ -338,7 +338,7 @@ static WRITE8_DEVICE_HANDLER( bml3_ym2203_w ) bml3_state *state = device->machine().driver_data<bml3_state>(); UINT8 dev_offs = ((state->m_psg_latch & 3) != 3); - ym2203_w(device,dev_offs,data); + ym2203_w(device,space, dev_offs,data); } READ8_MEMBER( bml3_state::bml3_vram_attr_r) diff --git a/src/mess/drivers/c128.c b/src/mess/drivers/c128.c index 1f3ab967e3a..cdfae00fffb 100644 --- a/src/mess/drivers/c128.c +++ b/src/mess/drivers/c128.c @@ -968,7 +968,7 @@ static const mc6845_interface vdc_intf = READ8_MEMBER( c128_state::sid_potx_r ) { - UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0); + UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0); int sela = BIT(cia1_pa, 6); int selb = BIT(cia1_pa, 7); @@ -983,7 +983,7 @@ READ8_MEMBER( c128_state::sid_potx_r ) READ8_MEMBER( c128_state::sid_poty_r ) { - UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0); + UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0); int sela = BIT(cia1_pa, 6); int selb = BIT(cia1_pa, 7); diff --git a/src/mess/drivers/c64.c b/src/mess/drivers/c64.c index 32f91a30017..476dba7c07c 100644 --- a/src/mess/drivers/c64.c +++ b/src/mess/drivers/c64.c @@ -427,7 +427,7 @@ static MOS6567_INTERFACE( vic_intf ) READ8_MEMBER( c64_state::sid_potx_r ) { - UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0); + UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0); int sela = BIT(cia1_pa, 6); int selb = BIT(cia1_pa, 7); @@ -442,7 +442,7 @@ READ8_MEMBER( c64_state::sid_potx_r ) READ8_MEMBER( c64_state::sid_poty_r ) { - UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0); + UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0); int sela = BIT(cia1_pa, 6); int selb = BIT(cia1_pa, 7); @@ -490,7 +490,7 @@ READ8_MEMBER( c64_state::cia1_pa_r ) */ - UINT8 cia0portb = mos6526_pb_r(m_cia1, 0); + UINT8 cia0portb = mos6526_pb_r(m_cia1, space, 0); return cbm_common_cia0_port_a_r(m_cia1, cia0portb); } @@ -512,7 +512,7 @@ READ8_MEMBER( c64_state::cia1_pb_r ) */ - UINT8 cia0porta = mos6526_pa_r(m_cia1, 0); + UINT8 cia0porta = mos6526_pa_r(m_cia1, space, 0); return cbm_common_cia0_port_b_r(m_cia1, cia0porta); } diff --git a/src/mess/drivers/c65.c b/src/mess/drivers/c65.c index b646bdf594f..76aeba4af8b 100644 --- a/src/mess/drivers/c65.c +++ b/src/mess/drivers/c65.c @@ -193,14 +193,14 @@ READ8_MEMBER( c65_state::sid_potx_r ) { device_t *sid = machine().device("sid_r"); - return c64_paddle_read(sid, 0); + return c64_paddle_read(sid, space, 0); } READ8_MEMBER( c65_state::sid_poty_r ) { device_t *sid = machine().device("sid_r"); - return c64_paddle_read(sid, 1); + return c64_paddle_read(sid, space, 1); } static MOS6581_INTERFACE( sidr_intf ) diff --git a/src/mess/drivers/elwro800.c b/src/mess/drivers/elwro800.c index e635fe3319d..fcf9282babb 100644 --- a/src/mess/drivers/elwro800.c +++ b/src/mess/drivers/elwro800.c @@ -289,11 +289,11 @@ READ8_MEMBER(elwro800_state::elwro800jr_io_r) device_t *fdc = machine().device("upd765"); if (offset & 1) { - return upd765_data_r(fdc,0); + return upd765_data_r(fdc,space, 0); } else { - return upd765_status_r(fdc,0); + return upd765_status_r(fdc,space, 0); } } else if (!BIT(cs,4)) @@ -347,7 +347,7 @@ WRITE8_MEMBER(elwro800_state::elwro800jr_io_w) device_t *fdc = machine().device("upd765"); if (offset & 1) { - upd765_data_w(fdc, 0, data); + upd765_data_w(fdc, space, 0, data); } } else if (!BIT(cs,4)) diff --git a/src/mess/drivers/exelv.c b/src/mess/drivers/exelv.c index d5f37c313ea..867a1612d8f 100644 --- a/src/mess/drivers/exelv.c +++ b/src/mess/drivers/exelv.c @@ -381,7 +381,7 @@ WRITE8_MEMBER(exelv_state::tms7041_portd_w) { logerror("tms7041_portd_w: data = 0x%02x\n", data); - tms5220_data_w(m_tms5220c, 0, BITSWAP8(data,0,1,2,3,4,5,6,7)); + tms5220_data_w(m_tms5220c, space, 0, BITSWAP8(data,0,1,2,3,4,5,6,7)); m_tms7041_portd = data; } diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c index 5344c1a5bcf..97417e01124 100644 --- a/src/mess/drivers/fm7.c +++ b/src/mess/drivers/fm7.c @@ -416,13 +416,13 @@ READ8_MEMBER(fm7_state::fm7_fdc_r) switch(offset) { case 0: - return wd17xx_status_r(dev,offset); + return wd17xx_status_r(dev,space, offset); case 1: - return wd17xx_track_r(dev,offset); + return wd17xx_track_r(dev,space, offset); case 2: - return wd17xx_sector_r(dev,offset); + return wd17xx_sector_r(dev,space, offset); case 3: - return wd17xx_data_r(dev,offset); + return wd17xx_data_r(dev,space, offset); case 4: return m_fdc_side | 0xfe; case 5: @@ -448,16 +448,16 @@ WRITE8_MEMBER(fm7_state::fm7_fdc_w) switch(offset) { case 0: - wd17xx_command_w(dev,offset,data); + wd17xx_command_w(dev,space, offset,data); break; case 1: - wd17xx_track_w(dev,offset,data); + wd17xx_track_w(dev,space, offset,data); break; case 2: - wd17xx_sector_w(dev,offset,data); + wd17xx_sector_w(dev,space, offset,data); break; case 3: - wd17xx_data_w(dev,offset,data); + wd17xx_data_w(dev,space, offset,data); break; case 4: m_fdc_side = data & 0x01; @@ -824,7 +824,7 @@ READ8_MEMBER(fm7_state::fm77av_boot_mode_r) static void fm7_update_psg(running_machine &machine) { fm7_state *state = machine.driver_data<fm7_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); if(state->m_type == SYS_FM7) { @@ -835,15 +835,15 @@ static void fm7_update_psg(running_machine &machine) break; case 0x01: // Data read - state->m_psg_data = ay8910_r(space->machine().device("psg"),0); + state->m_psg_data = ay8910_r(space.machine().device("psg"),space, 0); break; case 0x02: // Data write - ay8910_data_w(space->machine().device("psg"),0,state->m_psg_data); + ay8910_data_w(space.machine().device("psg"),space, 0,state->m_psg_data); break; case 0x03: // Address latch - ay8910_address_w(space->machine().device("psg"),0,state->m_psg_data); + ay8910_address_w(space.machine().device("psg"),space, 0,state->m_psg_data); break; } } @@ -856,25 +856,25 @@ static void fm7_update_psg(running_machine &machine) break; case 0x01: // Data read - state->m_psg_data = ym2203_r(space->machine().device("ym"),1); + state->m_psg_data = ym2203_r(space.machine().device("ym"),space, 1); break; case 0x02: // Data write - ym2203_w(space->machine().device("ym"),1,state->m_psg_data); + ym2203_w(space.machine().device("ym"),space, 1,state->m_psg_data); logerror("YM: data write 0x%02x\n",state->m_psg_data); break; case 0x03: // Address latch - ym2203_w(space->machine().device("ym"),0,state->m_psg_data); + ym2203_w(space.machine().device("ym"),space, 0,state->m_psg_data); logerror("YM: address latch 0x%02x\n",state->m_psg_data); break; case 0x04: // Status register - state->m_psg_data = ym2203_r(space->machine().device("ym"),0); + state->m_psg_data = ym2203_r(space.machine().device("ym"),space, 0); break; case 0x09: // Joystick port read - state->m_psg_data = space->machine().root_device().ioport("joy1")->read(); + state->m_psg_data = space.machine().root_device().ioport("joy1")->read(); break; } } diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c index 9b09a80fc60..5a49987ea5b 100644 --- a/src/mess/drivers/fmtowns.c +++ b/src/mess/drivers/fmtowns.c @@ -393,25 +393,25 @@ WRITE8_MEMBER(towns_state::towns_sys6c_w) READ8_MEMBER(towns_state::towns_dma1_r) { // logerror("DMA#1: read register %i\n",offset); - return upd71071_r(m_dma_1,offset); + return upd71071_r(m_dma_1,space, offset); } WRITE8_MEMBER(towns_state::towns_dma1_w) { // logerror("DMA#1: wrote 0x%02x to register %i\n",data,offset); - upd71071_w(m_dma_1,offset,data); + upd71071_w(m_dma_1,space, offset,data); } READ8_MEMBER(towns_state::towns_dma2_r) { logerror("DMA#2: read register %i\n",offset); - return upd71071_r(m_dma_2,offset); + return upd71071_r(m_dma_2,space, offset); } WRITE8_MEMBER(towns_state::towns_dma2_w) { logerror("DMA#2: wrote 0x%02x to register %i\n",data,offset); - upd71071_w(m_dma_2,offset,data); + upd71071_w(m_dma_2,space, offset,data); } /* @@ -440,13 +440,13 @@ READ8_MEMBER(towns_state::towns_floppy_r) switch(offset) { case 0x00: - return wd17xx_status_r(fdc,offset/2); + return wd17xx_status_r(fdc,space, offset/2); case 0x02: - return wd17xx_track_r(fdc,offset/2); + return wd17xx_track_r(fdc,space, offset/2); case 0x04: - return wd17xx_sector_r(fdc,offset/2); + return wd17xx_sector_r(fdc,space, offset/2); case 0x06: - return wd17xx_data_r(fdc,offset/2); + return wd17xx_data_r(fdc,space, offset/2); case 0x08: // selected drive status? //logerror("FDC: read from offset 0x08\n"); ret = 0x80; // always set @@ -492,16 +492,16 @@ WRITE8_MEMBER(towns_state::towns_floppy_w) return; if(data == 0xfe) return; - wd17xx_command_w(fdc,offset/2,data); + wd17xx_command_w(fdc,space, offset/2,data); break; case 0x02: - wd17xx_track_w(fdc,offset/2,data); + wd17xx_track_w(fdc,space, offset/2,data); break; case 0x04: - wd17xx_sector_w(fdc,offset/2,data); + wd17xx_sector_w(fdc,space, offset/2,data); break; case 0x06: - wd17xx_data_w(fdc,offset/2,data); + wd17xx_data_w(fdc,space, offset/2,data); break; case 0x08: // bit 5 - CLKSEL @@ -550,14 +550,14 @@ static UINT16 towns_fdc_dma_r(running_machine &machine) { towns_state* state = machine.driver_data<towns_state>(); device_t* fdc = state->m_fdc; - return wd17xx_data_r(fdc,0); + return wd17xx_data_r(fdc,state->generic_space(), 0); } static void towns_fdc_dma_w(running_machine &machine, UINT16 data) { towns_state* state = machine.driver_data<towns_state>(); device_t* fdc = state->m_fdc; - wd17xx_data_w(fdc,0,data); + wd17xx_data_w(fdc,state->generic_space(), 0,data); } /* diff --git a/src/mess/drivers/gba.c b/src/mess/drivers/gba.c index 48420d4a171..e1eb3d56932 100644 --- a/src/mess/drivers/gba.c +++ b/src/mess/drivers/gba.c @@ -773,31 +773,31 @@ READ32_MEMBER(gba_state::gba_io_r) } break; case 0x0060/4: - retval = gb_sound_r(gb_device, 0) | gb_sound_r(gb_device, 1)<<16 | gb_sound_r(gb_device, 2)<<24; + retval = gb_sound_r(gb_device, space, 0) | gb_sound_r(gb_device, space, 1)<<16 | gb_sound_r(gb_device, space, 2)<<24; break; case 0x0064/4: - retval = gb_sound_r(gb_device, 3) | gb_sound_r(gb_device, 4)<<8; + retval = gb_sound_r(gb_device, space, 3) | gb_sound_r(gb_device, space, 4)<<8; break; case 0x0068/4: - retval = gb_sound_r(gb_device, 6) | gb_sound_r(gb_device, 7)<<8; + retval = gb_sound_r(gb_device, space, 6) | gb_sound_r(gb_device, space, 7)<<8; break; case 0x006c/4: - retval = gb_sound_r(gb_device, 8) | gb_sound_r(gb_device, 9)<<8; + retval = gb_sound_r(gb_device, space, 8) | gb_sound_r(gb_device, space, 9)<<8; break; case 0x0070/4: - retval = gb_sound_r(gb_device, 0xa) | gb_sound_r(gb_device, 0xb)<<16 | gb_sound_r(gb_device, 0xc)<<24; + retval = gb_sound_r(gb_device, space, 0xa) | gb_sound_r(gb_device, space, 0xb)<<16 | gb_sound_r(gb_device, space, 0xc)<<24; break; case 0x0074/4: - retval = gb_sound_r(gb_device, 0xd) | gb_sound_r(gb_device, 0xe)<<8; + retval = gb_sound_r(gb_device, space, 0xd) | gb_sound_r(gb_device, space, 0xe)<<8; break; case 0x0078/4: - retval = gb_sound_r(gb_device, 0x10) | gb_sound_r(gb_device, 0x11)<<8; + retval = gb_sound_r(gb_device, space, 0x10) | gb_sound_r(gb_device, space, 0x11)<<8; break; case 0x007c/4: - retval = gb_sound_r(gb_device, 0x12) | gb_sound_r(gb_device, 0x13)<<8; + retval = gb_sound_r(gb_device, space, 0x12) | gb_sound_r(gb_device, space, 0x13)<<8; break; case 0x0080/4: - retval = gb_sound_r(gb_device, 0x14) | gb_sound_r(gb_device, 0x15)<<8; + retval = gb_sound_r(gb_device, space, 0x14) | gb_sound_r(gb_device, space, 0x15)<<8; if( (mem_mask) & 0xffff0000 ) { verboselog(machine(), 2, "GBA IO Register Read: SOUNDCNT_H (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_SOUNDCNT_H ); @@ -805,7 +805,7 @@ READ32_MEMBER(gba_state::gba_io_r) } break; case 0x0084/4: - retval = gb_sound_r(gb_device, 0x16); + retval = gb_sound_r(gb_device, space, 0x16); break; case 0x0088/4: if( (mem_mask) & 0x0000ffff ) @@ -819,16 +819,16 @@ READ32_MEMBER(gba_state::gba_io_r) } break; case 0x0090/4: - retval = gb_wave_r(gb_device, 0) | gb_wave_r(gb_device, 1)<<8 | gb_wave_r(gb_device, 2)<<16 | gb_wave_r(gb_device, 3)<<24; + retval = gb_wave_r(gb_device, space, 0) | gb_wave_r(gb_device, space, 1)<<8 | gb_wave_r(gb_device, space, 2)<<16 | gb_wave_r(gb_device, space, 3)<<24; break; case 0x0094/4: - retval = gb_wave_r(gb_device, 4) | gb_wave_r(gb_device, 5)<<8 | gb_wave_r(gb_device, 6)<<16 | gb_wave_r(gb_device, 7)<<24; + retval = gb_wave_r(gb_device, space, 4) | gb_wave_r(gb_device, space, 5)<<8 | gb_wave_r(gb_device, space, 6)<<16 | gb_wave_r(gb_device, space, 7)<<24; break; case 0x0098/4: - retval = gb_wave_r(gb_device, 8) | gb_wave_r(gb_device, 9)<<8 | gb_wave_r(gb_device, 10)<<16 | gb_wave_r(gb_device, 11)<<24; + retval = gb_wave_r(gb_device, space, 8) | gb_wave_r(gb_device, space, 9)<<8 | gb_wave_r(gb_device, space, 10)<<16 | gb_wave_r(gb_device, space, 11)<<24; break; case 0x009c/4: - retval = gb_wave_r(gb_device, 12) | gb_wave_r(gb_device, 13)<<8 | gb_wave_r(gb_device, 14)<<16 | gb_wave_r(gb_device, 15)<<24; + retval = gb_wave_r(gb_device, space, 12) | gb_wave_r(gb_device, space, 13)<<8 | gb_wave_r(gb_device, space, 14)<<16 | gb_wave_r(gb_device, space, 15)<<24; break; case 0x00a0/4: case 0x00a4/4: @@ -1350,99 +1350,99 @@ WRITE32_MEMBER(gba_state::gba_io_w) case 0x0060/4: if( (mem_mask) & 0x000000ff ) // SOUNDCNTL { - gb_sound_w(gb_device, 0, data); + gb_sound_w(gb_device, space, 0, data); } if( (mem_mask) & 0x00ff0000 ) { - gb_sound_w(gb_device, 1, data>>16); // SOUND1CNT_H + gb_sound_w(gb_device, space, 1, data>>16); // SOUND1CNT_H } if( (mem_mask) & 0xff000000 ) { - gb_sound_w(gb_device, 2, data>>24); + gb_sound_w(gb_device, space, 2, data>>24); } break; case 0x0064/4: if( (mem_mask) & 0x000000ff ) // SOUNDCNTL { - gb_sound_w(gb_device, 3, data); + gb_sound_w(gb_device, space, 3, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 4, data>>8); // SOUND1CNT_H + gb_sound_w(gb_device, space, 4, data>>8); // SOUND1CNT_H } break; case 0x0068/4: if( (mem_mask) & 0x000000ff ) { - gb_sound_w(gb_device, 6, data); + gb_sound_w(gb_device, space, 6, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 7, data>>8); + gb_sound_w(gb_device, space, 7, data>>8); } break; case 0x006c/4: if( (mem_mask) & 0x000000ff ) { - gb_sound_w(gb_device, 8, data); + gb_sound_w(gb_device, space, 8, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 9, data>>8); + gb_sound_w(gb_device, space, 9, data>>8); } break; case 0x0070/4: //SND3CNTL and H if( (mem_mask) & 0x000000ff ) // SOUNDCNTL { - gb_sound_w(gb_device, 0xa, data); + gb_sound_w(gb_device, space, 0xa, data); } if( (mem_mask) & 0x00ff0000 ) { - gb_sound_w(gb_device, 0xb, data>>16); // SOUND1CNT_H + gb_sound_w(gb_device, space, 0xb, data>>16); // SOUND1CNT_H } if( (mem_mask) & 0xff000000 ) { - gb_sound_w(gb_device, 0xc, data>>24); + gb_sound_w(gb_device, space, 0xc, data>>24); } break; case 0x0074/4: if( (mem_mask) & 0x000000ff ) { - gb_sound_w(gb_device, 0xd, data); + gb_sound_w(gb_device, space, 0xd, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 0xe, data>>8); + gb_sound_w(gb_device, space, 0xe, data>>8); } break; case 0x0078/4: if( (mem_mask) & 0x000000ff ) { - gb_sound_w(gb_device, 0x10, data); + gb_sound_w(gb_device, space, 0x10, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 0x11, data>>8); + gb_sound_w(gb_device, space, 0x11, data>>8); } break; case 0x007c/4: if( (mem_mask) & 0x000000ff ) { - gb_sound_w(gb_device, 0x12, data); + gb_sound_w(gb_device, space, 0x12, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 0x13, data>>8); + gb_sound_w(gb_device, space, 0x13, data>>8); } break; case 0x0080/4: if( (mem_mask) & 0x000000ff ) { - gb_sound_w(gb_device, 0x14, data); + gb_sound_w(gb_device, space, 0x14, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_sound_w(gb_device, 0x15, data>>8); + gb_sound_w(gb_device, space, 0x15, data>>8); } if ((mem_mask) & 0xffff0000) @@ -1483,7 +1483,7 @@ WRITE32_MEMBER(gba_state::gba_io_w) dac_device *gb_b_l = machine().device<dac_device>("direct_b_left"); dac_device *gb_b_r = machine().device<dac_device>("direct_b_right"); - gb_sound_w(gb_device, 0x16, data); + gb_sound_w(gb_device, space, 0x16, data); if ((data & 0x80) && !(m_SOUNDCNT_X & 0x80)) { m_fifo_a_ptr = m_fifo_a_in = 17; @@ -1510,73 +1510,73 @@ WRITE32_MEMBER(gba_state::gba_io_w) case 0x0090/4: if( (mem_mask) & 0x000000ff ) { - gb_wave_w(gb_device, 0, data); + gb_wave_w(gb_device, space, 0, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_wave_w(gb_device, 1, data>>8); + gb_wave_w(gb_device, space, 1, data>>8); } if( (mem_mask) & 0x00ff0000 ) { - gb_wave_w(gb_device, 2, data>>16); + gb_wave_w(gb_device, space, 2, data>>16); } if( (mem_mask) & 0xff000000 ) { - gb_wave_w(gb_device, 3, data>>24); + gb_wave_w(gb_device, space, 3, data>>24); } break; case 0x0094/4: if( (mem_mask) & 0x000000ff ) { - gb_wave_w(gb_device, 4, data); + gb_wave_w(gb_device, space, 4, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_wave_w(gb_device, 5, data>>8); + gb_wave_w(gb_device, space, 5, data>>8); } if( (mem_mask) & 0x00ff0000 ) { - gb_wave_w(gb_device, 6, data>>16); + gb_wave_w(gb_device, space, 6, data>>16); } if( (mem_mask) & 0xff000000 ) { - gb_wave_w(gb_device, 7, data>>24); + gb_wave_w(gb_device, space, 7, data>>24); } break; case 0x0098/4: if( (mem_mask) & 0x000000ff ) { - gb_wave_w(gb_device, 8, data); + gb_wave_w(gb_device, space, 8, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_wave_w(gb_device, 9, data>>8); + gb_wave_w(gb_device, space, 9, data>>8); } if( (mem_mask) & 0x00ff0000 ) { - gb_wave_w(gb_device, 0xa, data>>16); + gb_wave_w(gb_device, space, 0xa, data>>16); } if( (mem_mask) & 0xff000000 ) { - gb_wave_w(gb_device, 0xb, data>>24); + gb_wave_w(gb_device, space, 0xb, data>>24); } break; case 0x009c/4: if( (mem_mask) & 0x000000ff ) { - gb_wave_w(gb_device, 0xc, data); + gb_wave_w(gb_device, space, 0xc, data); } if( (mem_mask) & 0x0000ff00 ) { - gb_wave_w(gb_device, 0xd, data>>8); + gb_wave_w(gb_device, space, 0xd, data>>8); } if( (mem_mask) & 0x00ff0000 ) { - gb_wave_w(gb_device, 0xe, data>>16); + gb_wave_w(gb_device, space, 0xe, data>>16); } if( (mem_mask) & 0xff000000 ) { - gb_wave_w(gb_device, 0xf, data>>24); + gb_wave_w(gb_device, space, 0xf, data>>24); } break; case 0x00a0/4: diff --git a/src/mess/drivers/homelab.c b/src/mess/drivers/homelab.c index 71b3605f226..08a336db52e 100644 --- a/src/mess/drivers/homelab.c +++ b/src/mess/drivers/homelab.c @@ -642,7 +642,7 @@ static GFXDECODE_START( homelab ) GFXDECODE_ENTRY( "chargen", 0x0000, homelab_charlayout, 0, 1 ) GFXDECODE_END -static const mea8000_interface brailab4_speech_intf = { "speech", NULL }; +static const mea8000_interface brailab4_speech_intf = { "speech", DEVCB_NULL }; static QUICKLOAD_LOAD(homelab) { diff --git a/src/mess/drivers/ip22.c b/src/mess/drivers/ip22.c index a4d6607be23..317c5952c58 100644 --- a/src/mess/drivers/ip22.c +++ b/src/mess/drivers/ip22.c @@ -246,11 +246,11 @@ READ32_MEMBER(ip22_state::hpc3_pbus6_r) switch( offset ) { case 0x004/4: - ret8 = pc_lpt_control_r(lpt, 0) ^ 0x0d; + ret8 = pc_lpt_control_r(lpt, space, 0) ^ 0x0d; //verboselog(( machine, 0, "Parallel Control Read: %02x\n", ret8 ); return ret8; case 0x008/4: - ret8 = pc_lpt_status_r(lpt, 0) ^ 0x80; + ret8 = pc_lpt_status_r(lpt, space, 0) ^ 0x80; //verboselog(( machine, 0, "Parallel Status Read: %02x\n", ret8 ); return ret8; case 0x030/4: @@ -290,19 +290,19 @@ READ32_MEMBER(ip22_state::hpc3_pbus6_r) // mame_printf_info("INT3: r @ %x mask %08x (PC=%x)\n", offset*4, mem_mask, activecpu_get_pc()); return m_int3_regs[offset-0x80/4]; case 0xb0/4: - ret8 = pit8253_r(machine().device("pit8254"), 0); + ret8 = pit8253_r(machine().device("pit8254"), space, 0); //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 0 Register Read: 0x%02x (%08x)\n", ret8, mem_mask ); return ret8; case 0xb4/4: - ret8 = pit8253_r(machine().device("pit8254"), 1); + ret8 = pit8253_r(machine().device("pit8254"), space, 1); //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 1 Register Read: 0x%02x (%08x)\n", ret8, mem_mask ); return ret8; case 0xb8/4: - ret8 = pit8253_r(machine().device("pit8254"), 2); + ret8 = pit8253_r(machine().device("pit8254"), space, 2); //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 2 Register Read: 0x%02x (%08x)\n", ret8, mem_mask ); return ret8; case 0xbc/4: - ret8 = pit8253_r(machine().device("pit8254"), 3); + ret8 = pit8253_r(machine().device("pit8254"), space, 3); //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Control Word Register Read: 0x%02x (%08x)\n", ret8, mem_mask ); return ret8; default: @@ -321,7 +321,7 @@ WRITE32_MEMBER(ip22_state::hpc3_pbus6_w) { case 0x004/4: //verboselog(( machine, 0, "Parallel Control Write: %08x\n", data ); - pc_lpt_control_w(lpt, 0, data ^ 0x0d); + pc_lpt_control_w(lpt, space, 0, data ^ 0x0d); //m_nIOC_ParCntl = data; break; case 0x030/4: @@ -395,19 +395,19 @@ WRITE32_MEMBER(ip22_state::hpc3_pbus6_w) break; case 0xb0/4: //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 0 Register Write: 0x%08x (%08x)\n", data, mem_mask ); - pit8253_w(machine().device("pit8254"), 0, data & 0x000000ff); + pit8253_w(machine().device("pit8254"), space, 0, data & 0x000000ff); return; case 0xb4/4: //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 1 Register Write: 0x%08x (%08x)\n", data, mem_mask ); - pit8253_w(machine().device("pit8254"), 1, data & 0x000000ff); + pit8253_w(machine().device("pit8254"), space, 1, data & 0x000000ff); return; case 0xb8/4: //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 2 Register Write: 0x%08x (%08x)\n", data, mem_mask ); - pit8253_w(machine().device("pit8254"), 2, data & 0x000000ff); + pit8253_w(machine().device("pit8254"), space, 2, data & 0x000000ff); return; case 0xbc/4: //verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Control Word Register Write: 0x%08x (%08x)\n", data, mem_mask ); - pit8253_w(machine().device("pit8254"), 3, data & 0x000000ff); + pit8253_w(machine().device("pit8254"), space, 3, data & 0x000000ff); return; default: //verboselog(( machine, 0, "Unknown HPC PBUS6 Write: 0x%08x: 0x%08x (%08x)\n", 0x1fbd9800 + ( offset << 2 ), data, mem_mask ); diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c index 54a5897758a..5dff929d1fa 100644 --- a/src/mess/drivers/m20.c +++ b/src/mess/drivers/m20.c @@ -231,12 +231,12 @@ WRITE16_MEMBER(m20_state::port21_w) READ16_MEMBER(m20_state::m20_i8259_r) { - return pic8259_r(m_i8259, offset)<<1; + return pic8259_r(m_i8259, space, offset)<<1; } WRITE16_MEMBER(m20_state::m20_i8259_w) { - pic8259_w(m_i8259, offset, (data>>1)); + pic8259_w(m_i8259, space, offset, (data>>1)); } WRITE_LINE_MEMBER( m20_state::pic_irq_line_w ) @@ -380,7 +380,7 @@ void m20_state::machine_reset() m_maincpu->set_irq_acknowledge_callback(m20_irq_callback); wd17xx_mr_w(m_wd177x, 0); - //wd17xx_mr_w(m_wd177x, 1); + //wd17xx_mr_w(m_wd177x, space, 1); memcpy(RAM, ROM, 8); // we need only the reset vector m_maincpu->reset(); // reset the CPU to ensure it picks up the new vector diff --git a/src/mess/drivers/mikromik.c b/src/mess/drivers/mikromik.c index 9509b5ebc14..7c5caadcbad 100644 --- a/src/mess/drivers/mikromik.c +++ b/src/mess/drivers/mikromik.c @@ -96,11 +96,11 @@ READ8_MEMBER( mm1_state::mmu_r ) break; case 2: - data = i8275_r(m_crtc, offset & 0x01); + data = i8275_r(m_crtc, space, offset & 0x01); break; case 3: - data = pit8253_r(m_pit, offset & 0x03); + data = pit8253_r(m_pit, space, offset & 0x03); break; case 4: @@ -110,11 +110,11 @@ READ8_MEMBER( mm1_state::mmu_r ) case 5: if (BIT(offset, 0)) { - data = upd765_data_r(m_fdc, 0); + data = upd765_data_r(m_fdc, space, 0); } else { - data = upd765_status_r(m_fdc, 0); + data = upd765_status_r(m_fdc, space, 0); } break; @@ -165,11 +165,11 @@ WRITE8_MEMBER( mm1_state::mmu_w ) break; case 2: - i8275_w(m_crtc, offset & 0x01, data); + i8275_w(m_crtc, space, offset & 0x01, data); break; case 3: - pit8253_w(m_pit, offset & 0x03, data); + pit8253_w(m_pit, space, offset & 0x03, data); break; case 4: @@ -179,7 +179,7 @@ WRITE8_MEMBER( mm1_state::mmu_w ) case 5: if (BIT(offset, 0)) { - upd765_data_w(m_fdc, 0, data); + upd765_data_w(m_fdc, space, 0, data); } break; diff --git a/src/mess/drivers/msx.c b/src/mess/drivers/msx.c index 17d1c3be9c5..e6e3a8e47bf 100644 --- a/src/mess/drivers/msx.c +++ b/src/mess/drivers/msx.c @@ -344,9 +344,9 @@ ADDRESS_MAP_END static WRITE8_DEVICE_HANDLER( msx_ay8910_w ) { if ( offset & 1 ) - ay8910_data_w( device, offset, data ); + ay8910_data_w( device, space, offset, data ); else - ay8910_address_w( device, offset, data ); + ay8910_address_w( device, space, offset, data ); } diff --git a/src/mess/drivers/multi8.c b/src/mess/drivers/multi8.c index 097c971769d..eaf3c9c2feb 100644 --- a/src/mess/drivers/multi8.c +++ b/src/mess/drivers/multi8.c @@ -326,8 +326,8 @@ WRITE8_MEMBER( multi8_state::pal_w ) } } -READ8_MEMBER(multi8_state::ay8912_0_r){ return ay8910_r(machine().device("aysnd"),0); } -READ8_MEMBER(multi8_state::ay8912_1_r){ return ay8910_r(machine().device("aysnd"),1); } +READ8_MEMBER(multi8_state::ay8912_0_r){ return ay8910_r(machine().device("aysnd"),space, 0); } +READ8_MEMBER(multi8_state::ay8912_1_r){ return ay8910_r(machine().device("aysnd"),space, 1); } READ8_MEMBER( multi8_state::multi8_kanji_r ) { diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c index 73ba9293621..faa6d5f6d85 100644 --- a/src/mess/drivers/mz2000.c +++ b/src/mess/drivers/mz2000.c @@ -293,7 +293,7 @@ static READ8_DEVICE_HANDLER( mz2000_wd17xx_r ) mz2000_state *state = device->machine().driver_data<mz2000_state>(); if(state->m_has_fdc) - return wd17xx_r(device, offset) ^ 0xff; + return wd17xx_r(device, space, offset) ^ 0xff; return 0xff; } @@ -303,7 +303,7 @@ static WRITE8_DEVICE_HANDLER( mz2000_wd17xx_w ) mz2000_state *state = device->machine().driver_data<mz2000_state>(); if(state->m_has_fdc) - wd17xx_w(device, offset, data ^ 0xff); + wd17xx_w(device, space, offset, data ^ 0xff); } WRITE8_MEMBER(mz2000_state::mz2000_fdc_w) diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c index 1c41f894bb7..5a0fe177f24 100644 --- a/src/mess/drivers/mz2500.c +++ b/src/mess/drivers/mz2500.c @@ -1253,13 +1253,13 @@ WRITE8_MEMBER(mz2500_state::palette4096_io_w) static READ8_DEVICE_HANDLER( mz2500_wd17xx_r ) { mz2500_state *state = device->machine().driver_data<mz2500_state>(); - return wd17xx_r(device, offset) ^ state->m_fdc_reverse; + return wd17xx_r(device, space, offset) ^ state->m_fdc_reverse; } static WRITE8_DEVICE_HANDLER( mz2500_wd17xx_w ) { mz2500_state *state = device->machine().driver_data<mz2500_state>(); - wd17xx_w(device, offset, data ^ state->m_fdc_reverse); + wd17xx_w(device, space, offset, data ^ state->m_fdc_reverse); } READ8_MEMBER(mz2500_state::mz2500_bplane_latch_r) @@ -2084,12 +2084,12 @@ static RP5C15_INTERFACE( rtc_intf ) static const z80sio_interface mz2500_sio_intf = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; static MACHINE_CONFIG_START( mz2500, mz2500_state ) diff --git a/src/mess/drivers/mz6500.c b/src/mess/drivers/mz6500.c index 2dfaf90dbe2..96c763c7912 100644 --- a/src/mess/drivers/mz6500.c +++ b/src/mess/drivers/mz6500.c @@ -60,13 +60,13 @@ void mz6500_state::video_start() READ8_MEMBER( mz6500_state::fdc_r ) { - return (offset) ? upd765_data_r(m_fdc, 0) : upd765_status_r(m_fdc, 0); + return (offset) ? upd765_data_r(m_fdc, space, 0) : upd765_status_r(m_fdc, space, 0); } WRITE8_MEMBER( mz6500_state::fdc_w ) { if(offset) - upd765_data_w(m_fdc, 0, data); + upd765_data_w(m_fdc, space, 0, data); } READ8_MEMBER( mz6500_state::mz6500_vram_r ) diff --git a/src/mess/drivers/nanos.c b/src/mess/drivers/nanos.c index a283fff3bfe..e48e525e578 100644 --- a/src/mess/drivers/nanos.c +++ b/src/mess/drivers/nanos.c @@ -120,19 +120,19 @@ static Z80PIO_INTERFACE( pio2_intf ) /* Z80-SIO Interface */ -static void z80daisy_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( z80daisy_interrupt ) { device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, state); } static const z80sio_interface sio_intf = { - z80daisy_interrupt, /* interrupt handler */ - NULL, /* DTR changed handler */ - NULL, /* RTS changed handler */ - NULL, /* BREAK changed handler */ - NULL, /* transmit handler */ - NULL /* receive handler */ + DEVCB_LINE(z80daisy_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler */ + DEVCB_NULL /* receive handler */ }; /* Z80 Daisy Chain */ diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c index c3096cf6ea1..6540e052d79 100644 --- a/src/mess/drivers/nascom1.c +++ b/src/mess/drivers/nascom1.c @@ -257,9 +257,9 @@ static const ay31015_config nascom1_ay31015_config = AY_3_1015, ( XTAL_16MHz / 16 ) / 256, ( XTAL_16MHz / 16 ) / 256, - nascom1_hd6402_si, - nascom1_hd6402_so, - NULL + DEVCB_HANDLER(nascom1_hd6402_si), + DEVCB_HANDLER(nascom1_hd6402_so), + DEVCB_NULL }; diff --git a/src/mess/drivers/nes.c b/src/mess/drivers/nes.c index 97ec91845ed..634e42f15fb 100644 --- a/src/mess/drivers/nes.c +++ b/src/mess/drivers/nes.c @@ -23,17 +23,17 @@ static READ8_DEVICE_HANDLER( psg_4015_r ) { - return nes_psg_r(device, 0x15); + return nes_psg_r(device, space, 0x15); } static WRITE8_DEVICE_HANDLER( psg_4015_w ) { - nes_psg_w(device, 0x15, data); + nes_psg_w(device, space, 0x15, data); } static WRITE8_DEVICE_HANDLER( psg_4017_w ) { - nes_psg_w(device, 0x17, data); + nes_psg_w(device, space, 0x17, data); } WRITE8_MEMBER(nes_state::nes_vh_sprite_dma_w) diff --git a/src/mess/drivers/ng_aes.c b/src/mess/drivers/ng_aes.c index c0935068eca..0a845af96bc 100644 --- a/src/mess/drivers/ng_aes.c +++ b/src/mess/drivers/ng_aes.c @@ -330,7 +330,7 @@ WRITE16_MEMBER(ng_aes_state::io_control_w) case 0x00: select_controller(machine(), data & 0x00ff); break; // case 0x18: set_output_latch(machine(), data & 0x00ff); break; // case 0x20: set_output_data(machine(), data & 0x00ff); break; - case 0x28: upd4990a_control_16_w(m_upd4990a, 0, data, mem_mask); break; + case 0x28: upd4990a_control_16_w(m_upd4990a, space, 0, data, mem_mask); break; // case 0x30: break; // coin counters // case 0x31: break; // coin counters // case 0x32: break; // coin lockout @@ -379,7 +379,7 @@ static void calendar_clock(void) static CUSTOM_INPUT( get_calendar_status ) { neogeo_state *state = field.machine().driver_data<neogeo_state>(); - return (upd4990a_databit_r(state->m_upd4990a, 0) << 1) | upd4990a_testbit_r(state->m_upd4990a, 0); + return (upd4990a_databit_r(state->m_upd4990a, state->generic_space(), 0) << 1) | upd4990a_testbit_r(state->m_upd4990a, state->generic_space(), 0); } diff --git a/src/mess/drivers/ngp.c b/src/mess/drivers/ngp.c index ab50dcba6d3..3f7a90e01a5 100644 --- a/src/mess/drivers/ngp.c +++ b/src/mess/drivers/ngp.c @@ -229,7 +229,7 @@ WRITE8_MEMBER( ngp_state::ngp_io_w ) case 0x21: /* t6w28 "left" */ if ( m_io_reg[0x38] == 0x55 && m_io_reg[0x39] == 0xAA ) { - t6w28_w( m_t6w28, 0, data ); + t6w28_w( m_t6w28, space, 0, data ); } break; diff --git a/src/mess/drivers/osi.c b/src/mess/drivers/osi.c index 42ea961fbd7..ec6b27116de 100644 --- a/src/mess/drivers/osi.c +++ b/src/mess/drivers/osi.c @@ -270,7 +270,7 @@ WRITE8_MEMBER( sb2m600_state::keyboard_w ) m_keylatch = data; if (ioport("Sound")->read()) - discrete_sound_w(m_discrete, NODE_01, (data >> 2) & 0x0f); + discrete_sound_w(m_discrete, space, NODE_01, (data >> 2) & 0x0f); } WRITE8_MEMBER( uk101_state::keyboard_w ) @@ -298,7 +298,7 @@ WRITE8_MEMBER( sb2m600_state::ctrl_w ) m_32 = BIT(data, 0); m_coloren = BIT(data, 1); - discrete_sound_w(m_discrete, NODE_10, BIT(data, 4)); + discrete_sound_w(m_discrete, space, NODE_10, BIT(data, 4)); } WRITE8_MEMBER( c1p_state::osi630_ctrl_w ) diff --git a/src/mess/drivers/p8k.c b/src/mess/drivers/p8k.c index 0c9e54123de..0d86b5da22e 100644 --- a/src/mess/drivers/p8k.c +++ b/src/mess/drivers/p8k.c @@ -201,7 +201,7 @@ static GENERIC_TERMINAL_INTERFACE( terminal_intf ) ****************************************************************************/ -static void p8k_daisy_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( p8k_daisy_interrupt ) { device->machine().device("maincpu")->execute().set_input_line(0, state); } @@ -300,36 +300,36 @@ static Z80PIO_INTERFACE( p8k_pio_2_intf ) /* Z80 SIO 0 */ -static WRITE8_DEVICE_HANDLER( pk8_sio_0_serial_transmit ) +static WRITE16_DEVICE_HANDLER( pk8_sio_0_serial_transmit ) { // send character to terminal } static const z80sio_interface p8k_sio_0_intf = { - p8k_daisy_interrupt, /* interrupt handler */ - NULL, /* DTR changed handler */ - NULL, /* RTS changed handler */ - NULL, /* BREAK changed handler */ - pk8_sio_0_serial_transmit, /* transmit handler */ - NULL /* receive handler */ + DEVCB_LINE(p8k_daisy_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(pk8_sio_0_serial_transmit), /* transmit handler */ + DEVCB_NULL /* receive handler */ }; /* Z80 SIO 1 */ -static WRITE8_DEVICE_HANDLER( pk8_sio_1_serial_transmit ) +static WRITE16_DEVICE_HANDLER( pk8_sio_1_serial_transmit ) { // send character to terminal } static const z80sio_interface p8k_sio_1_intf = { - p8k_daisy_interrupt, /* interrupt handler */ - NULL, /* DTR changed handler */ - NULL, /* RTS changed handler */ - NULL, /* BREAK changed handler */ - pk8_sio_1_serial_transmit, /* transmit handler */ - NULL /* receive handler */ + DEVCB_LINE(p8k_daisy_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(pk8_sio_1_serial_transmit), /* transmit handler */ + DEVCB_NULL /* receive handler */ }; /* Z80 Daisy Chain */ @@ -568,7 +568,7 @@ ADDRESS_MAP_END ****************************************************************************/ -static void p8k_16_daisy_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( p8k_16_daisy_interrupt ) { // this must be studied a little bit more :-) } @@ -634,36 +634,36 @@ static const z80pio_interface p8k_16_pio_2_intf = /* Z80 SIO 0 */ -static WRITE8_DEVICE_HANDLER( pk8_16_sio_0_serial_transmit ) +static WRITE16_DEVICE_HANDLER( pk8_16_sio_0_serial_transmit ) { // send character to terminal } static const z80sio_interface p8k_16_sio_0_intf = { - p8k_16_daisy_interrupt, /* interrupt handler */ - NULL, /* DTR changed handler */ - NULL, /* RTS changed handler */ - NULL, /* BREAK changed handler */ - pk8_16_sio_0_serial_transmit, /* transmit handler */ - NULL /* receive handler */ + DEVCB_LINE(p8k_16_daisy_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(pk8_16_sio_0_serial_transmit), /* transmit handler */ + DEVCB_NULL /* receive handler */ }; /* Z80 SIO 1 */ -static WRITE8_DEVICE_HANDLER( pk8_16_sio_1_serial_transmit ) +static WRITE16_DEVICE_HANDLER( pk8_16_sio_1_serial_transmit ) { // send character to terminal } static const z80sio_interface p8k_16_sio_1_intf = { - p8k_16_daisy_interrupt, /* interrupt handler */ - NULL, /* DTR changed handler */ - NULL, /* RTS changed handler */ - NULL, /* BREAK changed handler */ - pk8_16_sio_1_serial_transmit, /* transmit handler */ - NULL /* receive handler */ + DEVCB_LINE(p8k_16_daisy_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(pk8_16_sio_1_serial_transmit), /* transmit handler */ + DEVCB_NULL /* receive handler */ }; /* Z80 Daisy Chain */ diff --git a/src/mess/drivers/palm.c b/src/mess/drivers/palm.c index 469f93ad388..3dbba60a9e2 100644 --- a/src/mess/drivers/palm.c +++ b/src/mess/drivers/palm.c @@ -171,32 +171,32 @@ static MC68328_INTERFACE(palm_dragonball_iface) { "maincpu", - NULL, // Port A Output - NULL, // Port B Output - NULL, // Port C Output - NULL, // Port D Output - NULL, // Port E Output - palm_port_f_out, // Port F Output - NULL, // Port G Output - NULL, // Port J Output - NULL, // Port K Output - NULL, // Port M Output - - NULL, // Port A Input - NULL, // Port B Input - palm_port_c_in, // Port C Input - NULL, // Port D Input - NULL, // Port E Input - palm_port_f_in, // Port F Input - NULL, // Port G Input - NULL, // Port J Input - NULL, // Port K Input - NULL, // Port M Input - - palm_dac_transition, - - palm_spim_out, - palm_spim_in, + DEVCB_NULL, // Port A Output + DEVCB_NULL, // Port B Output + DEVCB_NULL, // Port C Output + DEVCB_NULL, // Port D Output + DEVCB_NULL, // Port E Output + DEVCB_HANDLER(palm_port_f_out),// Port F Output + DEVCB_NULL, // Port G Output + DEVCB_NULL, // Port J Output + DEVCB_NULL, // Port K Output + DEVCB_NULL, // Port M Output + + DEVCB_NULL, // Port A Input + DEVCB_NULL, // Port B Input + DEVCB_HANDLER(palm_port_c_in),// Port C Input + DEVCB_NULL, // Port D Input + DEVCB_NULL, // Port E Input + DEVCB_HANDLER(palm_port_f_in),// Port F Input + DEVCB_NULL, // Port G Input + DEVCB_NULL, // Port J Input + DEVCB_NULL, // Port K Input + DEVCB_NULL, // Port M Input + + DEVCB_HANDLER(palm_dac_transition), + + DEVCB_HANDLER(palm_spim_out), + DEVCB_HANDLER(palm_spim_in), palm_spim_exchange }; diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c index 6a205d4d737..bd968ec9d2f 100644 --- a/src/mess/drivers/pasopia7.c +++ b/src/mess/drivers/pasopia7.c @@ -549,8 +549,8 @@ READ8_MEMBER( pasopia7_state::pasopia7_fdc_r ) { switch(offset) { - case 4: return upd765_status_r(m_fdc, 0); - case 5: return upd765_data_r(m_fdc, 0); + case 4: return upd765_status_r(m_fdc, space, 0); + case 5: return upd765_data_r(m_fdc, space, 0); //case 6: bit 7 interrupt bit } @@ -563,7 +563,7 @@ WRITE8_MEMBER( pasopia7_state::pasopia7_fdc_w ) { case 0: upd765_tc_w(m_fdc, 0); break; case 2: upd765_tc_w(m_fdc, 1); break; - case 5: upd765_data_w(m_fdc, 0, data); break; + case 5: upd765_data_w(m_fdc, space, 0, data); break; case 6: upd765_reset_w(m_fdc, data & 0x80); floppy_mon_w(floppy_get_device(machine(), 0), (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); diff --git a/src/mess/drivers/pc1512.c b/src/mess/drivers/pc1512.c index fc489455c22..dcc927fe5fb 100644 --- a/src/mess/drivers/pc1512.c +++ b/src/mess/drivers/pc1512.c @@ -474,11 +474,11 @@ READ8_MEMBER( pc1512_state::fdc_r ) switch (offset) { case 4: - data = upd765_status_r(m_fdc, 0); + data = upd765_status_r(m_fdc, space, 0); break; case 5: - data = upd765_data_r(m_fdc, 0); + data = upd765_data_r(m_fdc, space, 0); break; } @@ -529,7 +529,7 @@ WRITE8_MEMBER( pc1512_state::fdc_w ) break; case 5: - upd765_data_w(m_fdc, 0, data); + upd765_data_w(m_fdc, space, 0, data); break; } } @@ -551,8 +551,8 @@ READ8_MEMBER( pc1640_state::io_r ) bool decoded = false; if ( addr <= 0x00f) { data = m_dmac->read(space, offset & 0x0f); decoded = true; } - else if (addr >= 0x020 && addr <= 0x021) { data = pic8259_r(m_pic, offset & 0x01); decoded = true; } - else if (addr >= 0x040 && addr <= 0x043) { data = pit8253_r(m_pit, offset & 0x03); decoded = true; } + else if (addr >= 0x020 && addr <= 0x021) { data = pic8259_r(m_pic, space, offset & 0x01); decoded = true; } + else if (addr >= 0x040 && addr <= 0x043) { data = pit8253_r(m_pit, space, offset & 0x03); decoded = true; } else if (addr >= 0x060 && addr <= 0x06f) { data = system_r(space, offset & 0x0f); decoded = true; } else if (addr >= 0x070 && addr <= 0x073) { data = m_rtc->read(space, offset & 0x01); decoded = true; } else if (addr >= 0x078 && addr <= 0x07f) { data = mouse_r(space, offset & 0x07); decoded = true; } @@ -910,7 +910,7 @@ READ8_MEMBER( pc1512_state::ior1_r ) READ8_MEMBER( pc1512_state::ior2_r ) { if (m_nden) - return upd765_dack_r(m_fdc, 0); + return upd765_dack_r(m_fdc, space, 0); else return m_bus->dack_r(2); } @@ -934,7 +934,7 @@ WRITE8_MEMBER( pc1512_state::iow1_w ) WRITE8_MEMBER( pc1512_state::iow2_w ) { if (m_nden) - upd765_dack_w(m_fdc, 0, data); + upd765_dack_w(m_fdc, space, 0, data); else m_bus->dack_w(2, data); } diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index e29e295ff8c..66f174370f1 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -1688,23 +1688,23 @@ WRITE8_MEMBER(pc8801_state::pc8801_rtc_w) READ8_MEMBER(pc8801_state::pc8801_sound_board_r) { if(m_has_opna) - return ym2608_r(machine().device("opna"), offset); + return ym2608_r(machine().device("opna"), space, offset); - return (offset & 2) ? 0xff : ym2203_r(machine().device("opn"), offset); + return (offset & 2) ? 0xff : ym2203_r(machine().device("opn"), space, offset); } WRITE8_MEMBER(pc8801_state::pc8801_sound_board_w) { if(m_has_opna) - ym2608_w(machine().device("opna"), offset,data); + ym2608_w(machine().device("opna"), space, offset,data); else if((offset & 2) == 0) - ym2203_w(machine().device("opn"), offset,data); + ym2203_w(machine().device("opn"), space, offset,data); } READ8_MEMBER(pc8801_state::pc8801_opna_r) { if(m_has_opna && (offset & 2) == 0) - return ym2608_r(machine().device("opna"), (offset & 1) | ((offset & 4) >> 1)); + return ym2608_r(machine().device("opna"), space, (offset & 1) | ((offset & 4) >> 1)); return 0xff; } @@ -1712,7 +1712,7 @@ READ8_MEMBER(pc8801_state::pc8801_opna_r) WRITE8_MEMBER(pc8801_state::pc8801_opna_w) { if(m_has_opna && (offset & 2) == 0) - ym2608_w(machine().device("opna"), (offset & 1) | ((offset & 4) >> 1),data); + ym2608_w(machine().device("opna"), space, (offset & 1) | ((offset & 4) >> 1),data); else if(m_has_opna && offset == 2) { m_sound_irq_mask = ((data & 0x80) == 0); diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c index 621a9ed4746..a5cedb3e992 100644 --- a/src/mess/drivers/pc88va.c +++ b/src/mess/drivers/pc88va.c @@ -970,8 +970,8 @@ READ8_MEMBER(pc88va_state::pc88va_fdc_r) /* ---x ---- RDY: (0) Busy (1) Ready */ case 0x06: // FDC control port 2 return 0; - case 0x08: return upd765_status_r(machine().device("upd765"), 0); - case 0x0a: return upd765_data_r(machine().device("upd765"), 0); + case 0x08: return upd765_status_r(machine().device("upd765"), space, 0); + case 0x0a: return upd765_data_r(machine().device("upd765"), space, 0); } return 0xff; @@ -1013,7 +1013,7 @@ WRITE8_MEMBER(pc88va_state::pc88va_fdc_w) printf("%02x\n",data); break; // FDC control port 2 case 0x08: break; // UPD765 status - case 0x0a: upd765_data_w(machine().device("upd765"), 0,data); break; + case 0x0a: upd765_data_w(machine().device("upd765"), space, 0,data); break; } } diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index 4d0c6a4ed59..b980971437e 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -611,11 +611,11 @@ READ8_MEMBER(pc9801_state::pc9801_00_r) if(offset & 0x14) printf("Read to undefined port [%02x]\n",offset+0x00); else - return pic8259_r(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), (offset & 2) >> 1); + return pic8259_r(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), space, (offset & 2) >> 1); } else // odd { - return i8237_r(machine().device("dma8237"), (offset & 0x1e) >> 1); + return i8237_r(machine().device("dma8237"), space, (offset & 0x1e) >> 1); } return 0xff; @@ -628,11 +628,11 @@ WRITE8_MEMBER(pc9801_state::pc9801_00_w) if(offset & 0x14) printf("Write to undefined port [%02x] <- %02x\n",offset+0x00,data); else - pic8259_w(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), (offset & 2) >> 1, data); + pic8259_w(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), space, (offset & 2) >> 1, data); } else // odd { - i8237_w(machine().device("dma8237"), (offset & 0x1e) >> 1, data); + i8237_w(machine().device("dma8237"), space, (offset & 0x1e) >> 1, data); } } @@ -875,7 +875,7 @@ READ8_MEMBER(pc9801_state::pc9801_70_r) if(offset & 0x08) printf("Read to undefined port [%02x]\n",offset+0x70); else - return pit8253_r(machine().device("pit8253"), (offset & 6) >> 1); + return pit8253_r(machine().device("pit8253"), space, (offset & 6) >> 1); } return 0xff; @@ -892,7 +892,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_70_w) else // odd { if(offset < 0x08) - pit8253_w(machine().device("pit8253"), (offset & 6) >> 1, data); + pit8253_w(machine().device("pit8253"), space, (offset & 6) >> 1, data); else printf("Write to undefined port [%02x] <- %02x\n",offset+0x70,data); } @@ -1038,8 +1038,8 @@ READ8_MEMBER(pc9801_state::pc9801_fdc_2hd_r) { switch(offset & 6) { - case 0: return upd765_status_r(machine().device("upd765_2hd"),0); - case 2: return upd765_data_r(machine().device("upd765_2hd"),0); + case 0: return upd765_status_r(machine().device("upd765_2hd"),space, 0); + case 2: return upd765_data_r(machine().device("upd765_2hd"),space, 0); case 4: return 0x5f; //unknown port meaning } } @@ -1065,7 +1065,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_fdc_2hd_w) switch(offset & 6) { case 0: printf("Write to undefined port [%02x] <- %02x\n",offset+0x90,data); return; - case 2: upd765_data_w(machine().device("upd765_2hd"),0,data); return; + case 2: upd765_data_w(machine().device("upd765_2hd"),space, 0,data); return; case 4: printf("%02x ctrl\n",data); if(((m_fdc_2hd_ctrl & 0x80) == 0) && (data & 0x80)) @@ -1099,8 +1099,8 @@ READ8_MEMBER(pc9801_state::pc9801_fdc_2dd_r) { switch(offset & 6) { - case 0: return upd765_status_r(machine().device("upd765_2dd"),0); - case 2: return upd765_data_r(machine().device("upd765_2dd"),0); + case 0: return upd765_status_r(machine().device("upd765_2dd"),space, 0); + case 2: return upd765_data_r(machine().device("upd765_2dd"),space, 0); case 4: return 0x40; //unknown port meaning, might be 0x70 } } @@ -1121,7 +1121,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_fdc_2dd_w) switch(offset & 6) { case 0: printf("Write to undefined port [%02x] <- %02x\n",offset+0xc8,data); return; - case 2: upd765_data_w(machine().device("upd765_2dd"),0,data); return; + case 2: upd765_data_w(machine().device("upd765_2dd"),space, 0,data); return; case 4: printf("%02x ctrl\n",data); if(((m_fdc_2dd_ctrl & 0x80) == 0) && (data & 0x80)) @@ -1182,7 +1182,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_gvram_w) READ8_MEMBER(pc9801_state::pc9801_opn_r) { if((offset & 1) == 0) - return ym2203_r(machine().device("opn"),offset >> 1); + return ym2203_r(machine().device("opn"),space, offset >> 1); else // odd { printf("Read to undefined port [%02x]\n",offset+0x188); @@ -1193,7 +1193,7 @@ READ8_MEMBER(pc9801_state::pc9801_opn_r) WRITE8_MEMBER(pc9801_state::pc9801_opn_w) { if((offset & 1) == 0) - ym2203_w(machine().device("opn"),offset >> 1,data); + ym2203_w(machine().device("opn"),space, offset >> 1,data); else // odd { printf("Write to undefined port [%02x] %02x\n",offset+0x188,data); @@ -1411,8 +1411,8 @@ READ8_MEMBER(pc9801_state::pc9801rs_2hd_r) { switch(offset & 6) { - case 0: return upd765_status_r(machine().device("upd765_2hd"),0); - case 2: return upd765_data_r(machine().device("upd765_2hd"),0); + case 0: return upd765_status_r(machine().device("upd765_2hd"),space, 0); + case 2: return upd765_data_r(machine().device("upd765_2hd"),space, 0); case 4: return 0x40; //2hd flag } } @@ -1428,7 +1428,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_2hd_w) { switch(offset & 6) { - case 2: upd765_data_w(machine().device("upd765_2hd"),0,data); return; + case 2: upd765_data_w(machine().device("upd765_2hd"),space, 0,data); return; case 4: printf("%02x FDC ctrl\n",data); return; } } @@ -1446,8 +1446,8 @@ READ8_MEMBER(pc9801_state::pc9801rs_2dd_r) { switch(offset & 6) { - case 0: return upd765_status_r(machine().device("upd765_2hd"),0); - case 2: return upd765_data_r(machine().device("upd765_2hd"),0); + case 0: return upd765_status_r(machine().device("upd765_2hd"),space, 0); + case 2: return upd765_data_r(machine().device("upd765_2hd"),space, 0); case 4: return 0x70; //2dd flag } } @@ -1467,7 +1467,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_2dd_w) { switch(offset & 6) { - case 2: upd765_data_w(machine().device("upd765_2hd"),0,data); return; + case 2: upd765_data_w(machine().device("upd765_2hd"),space, 0,data); return; case 4: printf("%02x FDC ctrl\n",data); return; } } @@ -2377,17 +2377,17 @@ static READ8_DEVICE_HANDLER( ppi_fdd_porta_r ) static READ8_DEVICE_HANDLER( ppi_fdd_portb_r ) { - return 0xff; //upd765_status_r(device->machine().device("upd765_2dd"),0); + return 0xff; //upd765_status_r(device->machine().device("upd765_2dd"),space, 0); } static READ8_DEVICE_HANDLER( ppi_fdd_portc_r ) { - return 0xff; //upd765_data_r(device->machine().device("upd765_2dd"),0); + return 0xff; //upd765_data_r(device->machine().device("upd765_2dd"),space, 0); } static WRITE8_DEVICE_HANDLER( ppi_fdd_portc_w ) { - //upd765_data_w(device->machine().device("upd765_2dd"),0,data); + //upd765_data_w(device->machine().device("upd765_2dd"),space, 0,data); } static I8255A_INTERFACE( ppi_fdd_intf ) diff --git a/src/mess/drivers/pcm.c b/src/mess/drivers/pcm.c index bf969becbda..26752375c09 100644 --- a/src/mess/drivers/pcm.c +++ b/src/mess/drivers/pcm.c @@ -269,12 +269,12 @@ static Z80PIO_INTERFACE( pio_s_intf ) static const z80sio_interface sio_intf = { - 0, //DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), // interrupt callback - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - 0, /* transmit handler */ - 0 /* receive handler */ + DEVCB_NULL, //DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), // interrupt callback + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler */ + DEVCB_NULL /* receive handler */ }; diff --git a/src/mess/drivers/pcw.c b/src/mess/drivers/pcw.c index 3bc98acfd95..8fb83df40f4 100644 --- a/src/mess/drivers/pcw.c +++ b/src/mess/drivers/pcw.c @@ -641,10 +641,10 @@ READ8_MEMBER(pcw_state::pcw_fdc_r) /* from Jacob Nevins docs. FDC I/O is not fully decoded */ if (offset & 1) { - return upd765_data_r(fdc, 0); + return upd765_data_r(fdc, space, 0); } - return upd765_status_r(fdc, 0); + return upd765_status_r(fdc, space, 0); } WRITE8_MEMBER(pcw_state::pcw_fdc_w) @@ -653,7 +653,7 @@ WRITE8_MEMBER(pcw_state::pcw_fdc_w) /* from Jacob Nevins docs. FDC I/O is not fully decoded */ if (offset & 1) { - upd765_data_w(fdc, 0,data); + upd765_data_w(fdc, space, 0,data); } } diff --git a/src/mess/drivers/pes.c b/src/mess/drivers/pes.c index dc386c4e15e..49a651826be 100644 --- a/src/mess/drivers/pes.c +++ b/src/mess/drivers/pes.c @@ -139,7 +139,7 @@ WRITE8_MEMBER( pes_state::port1_w ) #ifdef DEBUG_PORTS logerror("port1 write: tms5220 data written: %02X\n", data); #endif - tms5220_data_w(state->m_speech, 0, data); + tms5220_data_w(state->m_speech, space, 0, data); } @@ -147,7 +147,7 @@ READ8_MEMBER( pes_state::port1_r ) { UINT8 data = 0xFF; pes_state *state = machine().driver_data<pes_state>(); - data = tms5220_status_r(state->m_speech, 0); + data = tms5220_status_r(state->m_speech, space, 0); #ifdef DEBUG_PORTS logerror("port1 read: tms5220 data read: 0x%02X\n", data); #endif diff --git a/src/mess/drivers/plus4.c b/src/mess/drivers/plus4.c index 8de3c5eba31..7ea561e7ad7 100644 --- a/src/mess/drivers/plus4.c +++ b/src/mess/drivers/plus4.c @@ -157,7 +157,7 @@ UINT8 plus4_state::read_memory(address_space &space, offs_t offset, int ba, int if (!scs && m_t6721) { - data = t6721_speech_r(m_t6721, offset & 0x03); + data = t6721_speech_r(m_t6721, space, offset & 0x03); } else if (!user) { @@ -286,7 +286,7 @@ WRITE8_MEMBER( plus4_state::write ) if (!scs && m_t6721) { - t6721_speech_w(m_t6721, offset & 0x03, data); + t6721_speech_w(m_t6721, space, offset & 0x03, data); } else if (!user && m_spi_user) { diff --git a/src/mess/drivers/ptcsol.c b/src/mess/drivers/ptcsol.c index 3373cec5c27..543c7ee5628 100644 --- a/src/mess/drivers/ptcsol.c +++ b/src/mess/drivers/ptcsol.c @@ -522,9 +522,9 @@ static const ay31015_config sol20_ay31015_config = AY_3_1015, 4800.0, 4800.0, - NULL, - NULL, - NULL + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; diff --git a/src/mess/drivers/ql.c b/src/mess/drivers/ql.c index 96488294d6e..94ec839cb1d 100644 --- a/src/mess/drivers/ql.c +++ b/src/mess/drivers/ql.c @@ -268,10 +268,10 @@ READ8_MEMBER( ql_state::disk_io_r ) switch (offset) { - case 0x0000 : result=wd17xx_r(m_fdc, offset); break; - case 0x0001 : result=wd17xx_r(m_fdc, offset); break; - case 0x0002 : result=wd17xx_r(m_fdc, offset); break; - case 0x0003 : result=wd17xx_r(m_fdc, offset); break; + case 0x0000 : result=wd17xx_r(m_fdc, space, offset); break; + case 0x0001 : result=wd17xx_r(m_fdc, space, offset); break; + case 0x0002 : result=wd17xx_r(m_fdc, space, offset); break; + case 0x0003 : result=wd17xx_r(m_fdc, space, offset); break; default : logerror("%s DiskIO undefined read : from %08X\n",machine().describe_context(),m_disk_io_base+offset); break; } @@ -285,10 +285,10 @@ WRITE8_MEMBER( ql_state::disk_io_w ) switch (offset) { - case 0x0000 : wd17xx_w(m_fdc, offset, data); break; - case 0x0001 : wd17xx_w(m_fdc, offset, data); break; - case 0x0002 : wd17xx_w(m_fdc, offset, data); break; - case 0x0003 : wd17xx_w(m_fdc, offset, data); break; + case 0x0000 : wd17xx_w(m_fdc, space, offset, data); break; + case 0x0001 : wd17xx_w(m_fdc, space, offset, data); break; + case 0x0002 : wd17xx_w(m_fdc, space, offset, data); break; + case 0x0003 : wd17xx_w(m_fdc, space, offset, data); break; case 0x0004 : if(m_disk_type==DISK_TYPE_SANDY) sandy_set_control(data);break; case 0x0008 : if(m_disk_type==DISK_TYPE_SANDY) diff --git a/src/mess/drivers/rt1715.c b/src/mess/drivers/rt1715.c index d0fbec1c818..cb68e5e5bcf 100644 --- a/src/mess/drivers/rt1715.c +++ b/src/mess/drivers/rt1715.c @@ -274,12 +274,12 @@ static const z80ctc_interface rt1715_ctc_intf = static const z80sio_interface rt1715_sio_intf = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; static const z80pio_interface rt1715_pio_data_intf = diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c index 23e45ee8740..ae045d3f227 100644 --- a/src/mess/drivers/smc777.c +++ b/src/mess/drivers/smc777.c @@ -366,13 +366,13 @@ READ8_MEMBER(smc777_state::smc777_fdc1_r) switch(offset) { case 0x00: - return wd17xx_status_r(dev,offset) ^ 0xff; + return wd17xx_status_r(dev,space, offset) ^ 0xff; case 0x01: - return wd17xx_track_r(dev,offset) ^ 0xff; + return wd17xx_track_r(dev,space, offset) ^ 0xff; case 0x02: - return wd17xx_sector_r(dev,offset) ^ 0xff; + return wd17xx_sector_r(dev,space, offset) ^ 0xff; case 0x03: - return wd17xx_data_r(dev,offset) ^ 0xff; + return wd17xx_data_r(dev,space, offset) ^ 0xff; case 0x04: //irq / drq status //popmessage("%02x %02x\n",m_fdc_irq_flag,m_fdc_drq_flag); @@ -391,16 +391,16 @@ WRITE8_MEMBER(smc777_state::smc777_fdc1_w) switch(offset) { case 0x00: - wd17xx_command_w(dev,offset,data ^ 0xff); + wd17xx_command_w(dev,space, offset,data ^ 0xff); break; case 0x01: - wd17xx_track_w(dev,offset,data ^ 0xff); + wd17xx_track_w(dev,space, offset,data ^ 0xff); break; case 0x02: - wd17xx_sector_w(dev,offset,data ^ 0xff); + wd17xx_sector_w(dev,space, offset,data ^ 0xff); break; case 0x03: - wd17xx_data_w(dev,offset,data ^ 0xff); + wd17xx_data_w(dev,space, offset,data ^ 0xff); break; case 0x04: // ---- xxxx select floppy drive (yes, 15 of them, A to P) diff --git a/src/mess/drivers/snes.c b/src/mess/drivers/snes.c index 9be30c7b245..813ead36b3a 100644 --- a/src/mess/drivers/snes.c +++ b/src/mess/drivers/snes.c @@ -47,12 +47,12 @@ static READ8_DEVICE_HANDLER( spc_ram_100_r ) { - return spc_ram_r(device, offset + 0x100); + return spc_ram_r(device, space, offset + 0x100); } static WRITE8_DEVICE_HANDLER( spc_ram_100_w ) { - spc_ram_w(device, offset + 0x100, data); + spc_ram_w(device, space, offset + 0x100, data); } /************************************* diff --git a/src/mess/drivers/sorcerer.c b/src/mess/drivers/sorcerer.c index 050e860c607..0cbb90faba9 100644 --- a/src/mess/drivers/sorcerer.c +++ b/src/mess/drivers/sorcerer.c @@ -390,9 +390,9 @@ static const ay31015_config sorcerer_ay31015_config = AY_3_1015, 4800.0, 4800.0, - NULL, - NULL, - NULL + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; diff --git a/src/mess/drivers/specpls3.c b/src/mess/drivers/specpls3.c index 835fbea0dd4..4c49bfce559 100644 --- a/src/mess/drivers/specpls3.c +++ b/src/mess/drivers/specpls3.c @@ -185,7 +185,7 @@ static WRITE8_HANDLER(spectrum_plus3_port_3ffd_w) { spectrum_state *state = space->machine().driver_data<spectrum_state>(); if (state->m_floppy==1) - upd765_data_w(space->machine().device("upd765"), 0,data); + upd765_data_w(space->machine().device("upd765"), *space, 0,data); } static READ8_HANDLER(spectrum_plus3_port_3ffd_r) @@ -194,7 +194,7 @@ static READ8_HANDLER(spectrum_plus3_port_3ffd_r) if (state->m_floppy==0) return 0xff; else - return upd765_data_r(space->machine().device("upd765"), 0); + return upd765_data_r(space->machine().device("upd765"), *space, 0); } @@ -204,7 +204,7 @@ static READ8_HANDLER(spectrum_plus3_port_2ffd_r) if (state->m_floppy==0) return 0xff; else - return upd765_status_r(space->machine().device("upd765"), 0); + return upd765_status_r(space->machine().device("upd765"), *space, 0); } diff --git a/src/mess/drivers/ssystem3.c b/src/mess/drivers/ssystem3.c index 428af2a58a8..a1e99fdfd08 100644 --- a/src/mess/drivers/ssystem3.c +++ b/src/mess/drivers/ssystem3.c @@ -202,16 +202,15 @@ static READ8_DEVICE_HANDLER(ssystem3_via_read_b) static WRITE8_DEVICE_HANDLER(ssystem3_via_write_b) { via6522_device *via_0 = device->machine().device<via6522_device>("via6522_0"); - address_space* space = device->machine().device("maincpu")->memory().space(AS_PROGRAM); UINT8 d; ssystem3_playfield_write(device->machine(), data&1, data&8); ssystem3_lcd_write(device->machine(), data&4, data&2); - d=ssystem3_via_read_b(via_0, 0)&~0x40; + d=ssystem3_via_read_b(via_0, space, 0, mem_mask)&~0x40; if (data&0x80) d|=0x40; // d&=~0x8f; - via_0->write_portb(*space,0, d ); + via_0->write_portb(space,0, d ); } static const via6522_interface ssystem3_via_config= diff --git a/src/mess/drivers/svision.c b/src/mess/drivers/svision.c index ad0410d51a7..caf34954e53 100644 --- a/src/mess/drivers/svision.c +++ b/src/mess/drivers/svision.c @@ -150,10 +150,10 @@ WRITE8_MEMBER(svision_state::svision_w) svision_soundport_w(m_sound, 1, offset & 3, data); break; case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: - svision_sounddma_w(m_sound, offset - 0x18, data); + svision_sounddma_w(m_sound, space, offset - 0x18, data); break; case 0x28: case 0x29: case 0x2a: - svision_noise_w(m_sound, offset - 0x28, data); + svision_noise_w(m_sound, space, offset - 0x28, data); break; default: logerror("%.6f svision write %04x %02x\n", machine().time().as_double(), offset, data); diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c index 11f71b0b424..0816c447415 100644 --- a/src/mess/drivers/trs80.c +++ b/src/mess/drivers/trs80.c @@ -557,9 +557,9 @@ static const ay31015_config trs80_ay31015_config = AY_3_1015, 0.0, 0.0, - NULL, - NULL, - NULL + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; static const floppy_interface trs80_floppy_interface = diff --git a/src/mess/drivers/trs80m2.c b/src/mess/drivers/trs80m2.c index b0e7c52fd48..fa1a930e8ff 100644 --- a/src/mess/drivers/trs80m2.c +++ b/src/mess/drivers/trs80m2.c @@ -334,12 +334,12 @@ WRITE8_MEMBER( trs80m2_state::nmi_w ) READ8_MEMBER( trs80m2_state::fdc_r ) { - return wd17xx_r(m_fdc, offset) ^ 0xff; + return wd17xx_r(m_fdc, space, offset) ^ 0xff; } WRITE8_MEMBER( trs80m2_state::fdc_w ) { - wd17xx_w(m_fdc, offset, data ^ 0xff); + wd17xx_w(m_fdc, space, offset, data ^ 0xff); } WRITE8_MEMBER( trs80m16_state::tcl_w ) diff --git a/src/mess/drivers/vic10.c b/src/mess/drivers/vic10.c index 815829dfa38..df5b55adeff 100644 --- a/src/mess/drivers/vic10.c +++ b/src/mess/drivers/vic10.c @@ -68,7 +68,7 @@ READ8_MEMBER( vic10_state::read ) } else if (offset >= 0xdc00 && offset < 0xe000) { - data = mos6526_r(m_cia, offset & 0x0f); + data = mos6526_r(m_cia, space, offset & 0x0f); } else if (offset >= 0xe000) { @@ -111,7 +111,7 @@ WRITE8_MEMBER( vic10_state::write ) } else if (offset >= 0xdc00 && offset < 0xe000) { - mos6526_w(m_cia, offset & 0x0f, data); + mos6526_w(m_cia, space, offset & 0x0f, data); } m_exp->cd_w(space, offset, data, lorom, uprom, exram); @@ -251,10 +251,10 @@ static MOS6566_INTERFACE( vic_intf ) // sid6581_interface sid_intf //------------------------------------------------- -UINT8 vic10_state::paddle_read(int which) +UINT8 vic10_state::paddle_read(address_space &space, int which) { int pot1 = 0xff, pot2 = 0xff, pot3 = 0xff, pot4 = 0xff, temp; - UINT8 cia0porta = mos6526_pa_r(m_cia, 0); + UINT8 cia0porta = mos6526_pa_r(m_cia, space, 0); int controller1 = ioport("CTRLSEL")->read() & 0x07; int controller2 = ioport("CTRLSEL")->read() & 0x70; // Notice that only a single input is defined for Mouse & Lightpen in both ports @@ -366,12 +366,12 @@ UINT8 vic10_state::paddle_read(int which) READ8_MEMBER( vic10_state::sid_potx_r ) { - return paddle_read(0); + return paddle_read(space, 0); } READ8_MEMBER( vic10_state::sid_poty_r ) { - return paddle_read(1); + return paddle_read(space, 1); } static MOS6581_INTERFACE( sid_intf ) @@ -409,7 +409,7 @@ READ8_MEMBER( vic10_state::cia_pa_r ) */ - UINT8 cia0portb = mos6526_pb_r(m_cia, 0); + UINT8 cia0portb = mos6526_pb_r(m_cia, space, 0); return cbm_common_cia0_port_a_r(m_cia, cia0portb); } @@ -431,7 +431,7 @@ READ8_MEMBER( vic10_state::cia_pb_r ) */ - UINT8 cia0porta = mos6526_pa_r(m_cia, 0); + UINT8 cia0porta = mos6526_pa_r(m_cia, space, 0); return cbm_common_cia0_port_b_r(m_cia, cia0porta); } diff --git a/src/mess/drivers/vidbrain.c b/src/mess/drivers/vidbrain.c index f695d54e526..bad5ffe29d3 100644 --- a/src/mess/drivers/vidbrain.c +++ b/src/mess/drivers/vidbrain.c @@ -141,7 +141,7 @@ WRITE8_MEMBER( vidbrain_state::sound_w ) if (!m_sound_clk && sound_clk) { - //discrete_sound_w(m_discrete, NODE_01, m_keylatch & 0x03); + //discrete_sound_w(m_discrete, space, NODE_01, m_keylatch & 0x03); UINT8 dac_data = 0; diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c index 14a6c97200e..b0317e12c80 100644 --- a/src/mess/drivers/vip.c +++ b/src/mess/drivers/vip.c @@ -482,7 +482,7 @@ static COSMAC_SC_WRITE( vip_sc_w ) WRITE_LINE_MEMBER( vip_state::q_w ) { // sound output - discrete_sound_w(m_beeper, NODE_01, state); + discrete_sound_w(m_beeper, machine().driver_data()->generic_space(), NODE_01, state); // Q led set_led_status(machine(), LED_Q, state); @@ -671,7 +671,7 @@ void vip_state::machine_start() set_led_status(machine(), LED_POWER, 1); // reset sound - discrete_sound_w(m_beeper, NODE_01, 0); + discrete_sound_w(m_beeper, machine().driver_data()->generic_space(), NODE_01, 0); // state saving save_item(NAME(m_8000)); diff --git a/src/mess/drivers/vixen.c b/src/mess/drivers/vixen.c index e2363ade506..c7639726a18 100644 --- a/src/mess/drivers/vixen.c +++ b/src/mess/drivers/vixen.c @@ -557,7 +557,7 @@ WRITE8_MEMBER( vixen_state::i8155_pc_w ) m_256 = BIT(data, 4); // beep enable - discrete_sound_w(m_discrete, NODE_01, BIT(data, 5)); + discrete_sound_w(m_discrete, space, NODE_01, BIT(data, 5)); } static I8155_INTERFACE( i8155_intf ) diff --git a/src/mess/drivers/vt100.c b/src/mess/drivers/vt100.c index 712dcd9555b..c232b72458d 100644 --- a/src/mess/drivers/vt100.c +++ b/src/mess/drivers/vt100.c @@ -95,7 +95,7 @@ ADDRESS_MAP_END READ8_MEMBER( vt100_state::vt100_flags_r ) { UINT8 ret = 0; - ret |= vt_video_lba7_r(m_crtc, 0) << 6; + ret |= vt_video_lba7_r(m_crtc, space, 0) << 6; ret |= m_keyboard_int << 7; return ret; } diff --git a/src/mess/drivers/wangpc.c b/src/mess/drivers/wangpc.c index 32a044cb718..4ce8502dafc 100644 --- a/src/mess/drivers/wangpc.c +++ b/src/mess/drivers/wangpc.c @@ -715,7 +715,7 @@ READ8_MEMBER( wangpc_state::ior2_r ) if (m_disable_dreq2) return m_bus->dack_r(space, 2); else - return upd765_dack_r(m_fdc, 0); + return upd765_dack_r(m_fdc, space, 0); } WRITE8_MEMBER( wangpc_state::iow2_w ) @@ -723,7 +723,7 @@ WRITE8_MEMBER( wangpc_state::iow2_w ) if (m_disable_dreq2) m_bus->dack_w(space, 2, data); else - upd765_dack_w(m_fdc, 0, data); + upd765_dack_w(m_fdc, space, 0, data); } WRITE_LINE_MEMBER( wangpc_state::dack0_w ) diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c index 68484ee1615..7d30350b316 100644 --- a/src/mess/drivers/x1.c +++ b/src/mess/drivers/x1.c @@ -999,13 +999,13 @@ READ8_MEMBER( x1_state::x1_fdc_r ) switch(offset+0xff8) { case 0x0ff8: - return wd17xx_status_r(m_fdc,offset); + return wd17xx_status_r(m_fdc,space, offset); case 0x0ff9: - return wd17xx_track_r(m_fdc,offset); + return wd17xx_track_r(m_fdc,space, offset); case 0x0ffa: - return wd17xx_sector_r(m_fdc,offset); + return wd17xx_sector_r(m_fdc,space, offset); case 0x0ffb: - return wd17xx_data_r(m_fdc,offset); + return wd17xx_data_r(m_fdc,space, offset); case 0x0ffc: printf("FDC: read FM type\n"); return 0xff; @@ -1028,16 +1028,16 @@ WRITE8_MEMBER( x1_state::x1_fdc_w ) switch(offset+0xff8) { case 0x0ff8: - wd17xx_command_w(m_fdc,offset,data); + wd17xx_command_w(m_fdc,space, offset,data); break; case 0x0ff9: - wd17xx_track_w(m_fdc,offset,data); + wd17xx_track_w(m_fdc,space, offset,data); break; case 0x0ffa: - wd17xx_sector_w(m_fdc,offset,data); + wd17xx_sector_w(m_fdc,space, offset,data); break; case 0x0ffb: - wd17xx_data_w(m_fdc,offset,data); + wd17xx_data_w(m_fdc,space, offset,data); break; case 0x0ffc: wd17xx_set_drive(m_fdc,data & 3); @@ -1618,7 +1618,7 @@ READ8_MEMBER( x1_state::x1_io_r ) else if(offset >= 0x1400 && offset <= 0x17ff) { return x1_pcg_r(space, offset-0x1400); } else if(offset >= 0x1900 && offset <= 0x19ff) { return x1_sub_io_r(space, 0); } else if(offset >= 0x1a00 && offset <= 0x1aff) { return machine().device<i8255_device>("ppi8255_0")->read(space, (offset-0x1a00) & 3); } - else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), 0); } + else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), space, 0); } // else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), 0); } // else if(offset >= 0x1f90 && offset <= 0x1f91) { return z80sio_c_r(machine().device("sio"), (offset-0x1f90) & 1); } // else if(offset >= 0x1f92 && offset <= 0x1f93) { return z80sio_d_r(machine().device("sio"), (offset-0x1f92) & 1); } @@ -1654,8 +1654,8 @@ WRITE8_MEMBER( x1_state::x1_io_w ) else if(offset == 0x1800 || offset == 0x1801) { x1_6845_w(space, offset-0x1800, data); } else if(offset >= 0x1900 && offset <= 0x19ff) { x1_sub_io_w(space, 0,data); } else if(offset >= 0x1a00 && offset <= 0x1aff) { machine().device<i8255_device>("ppi8255_0")->write(space, (offset-0x1a00) & 3,data); } - else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), 0,data); } - else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), 0,data); } + else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), space, 0,data); } + else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), space, 0,data); } else if(offset >= 0x1d00 && offset <= 0x1dff) { x1_rom_bank_1_w(space,0,data); } else if(offset >= 0x1e00 && offset <= 0x1eff) { x1_rom_bank_0_w(space,0,data); } // else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), 0,data); } @@ -1684,8 +1684,8 @@ READ8_MEMBER( x1_state::x1turbo_io_r ) m_io_bank_mode = 0; //any read disables the extended mode. // a * at the end states devices used on plain X1 too - if(offset == 0x0700) { return (ym2151_r(machine().device("ym"), offset-0x0700) & 0x7f) | (ioport("SOUND_SW")->read() & 0x80); } - else if(offset == 0x0701) { return ym2151_r(machine().device("ym"), offset-0x0700); } + if(offset == 0x0700) { return (ym2151_r(machine().device("ym"), space, offset-0x0700) & 0x7f) | (ioport("SOUND_SW")->read() & 0x80); } + else if(offset == 0x0701) { return ym2151_r(machine().device("ym"), space, offset-0x0700); } //0x704 is FM sound detection port on X1 turboZ else if(offset >= 0x0704 && offset <= 0x0707) { return m_ctc->read(space,offset-0x0704); } else if(offset == 0x0801) { printf("Color image board read\n"); return 0xff; } // * @@ -1702,9 +1702,9 @@ READ8_MEMBER( x1_state::x1turbo_io_r ) else if(offset >= 0x1400 && offset <= 0x17ff) { return x1_pcg_r(space, offset-0x1400); } else if(offset >= 0x1900 && offset <= 0x19ff) { return x1_sub_io_r(space, 0); } else if(offset >= 0x1a00 && offset <= 0x1aff) { return machine().device<i8255_device>("ppi8255_0")->read(space, (offset-0x1a00) & 3); } - else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), 0); } - else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), 0); } - else if(offset >= 0x1f90 && offset <= 0x1f93) { return z80dart_ba_cd_r(machine().device("sio"), (offset-0x1f90) & 3); } + else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), space, 0); } + else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), space, 0); } + else if(offset >= 0x1f90 && offset <= 0x1f93) { return z80dart_ba_cd_r(machine().device("sio"), space, (offset-0x1f90) & 3); } else if(offset >= 0x1f98 && offset <= 0x1f9f) { printf("Extended SIO/CTC read %04x\n",offset); return 0xff; } else if(offset >= 0x1fa0 && offset <= 0x1fa3) { return m_ctc->read(space,offset-0x1fa0); } else if(offset >= 0x1fa8 && offset <= 0x1fab) { return m_ctc->read(space,offset-0x1fa8); } @@ -1730,7 +1730,7 @@ WRITE8_MEMBER( x1_state::x1turbo_io_w ) { // a * at the end states devices used on plain X1 too if(m_io_bank_mode == 1) { x1_ex_gfxram_w(space, offset, data); } - else if(offset == 0x0700 || offset == 0x0701) { ym2151_w(machine().device("ym"), offset-0x0700,data); } + else if(offset == 0x0700 || offset == 0x0701) { ym2151_w(machine().device("ym"), space, offset-0x0700,data); } //0x704 is FM sound detection port on X1 turboZ else if(offset >= 0x0704 && offset <= 0x0707) { m_ctc->write(space,offset-0x0704,data); } else if(offset == 0x0800) { printf("Color image board write %02x\n",data); } // * @@ -1752,12 +1752,12 @@ WRITE8_MEMBER( x1_state::x1turbo_io_w ) else if(offset == 0x1800 || offset == 0x1801) { x1_6845_w(space, offset-0x1800, data); } else if(offset >= 0x1900 && offset <= 0x19ff) { x1_sub_io_w(space, 0,data); } else if(offset >= 0x1a00 && offset <= 0x1aff) { machine().device<i8255_device>("ppi8255_0")->write(space, (offset-0x1a00) & 3,data); } - else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), 0,data); } - else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), 0,data); } + else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), space, 0,data); } + else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), space, 0,data); } else if(offset >= 0x1d00 && offset <= 0x1dff) { x1_rom_bank_1_w(space,0,data); } else if(offset >= 0x1e00 && offset <= 0x1eff) { x1_rom_bank_0_w(space,0,data); } - else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), 0,data); } - else if(offset >= 0x1f90 && offset <= 0x1f93) { z80dart_ba_cd_w(machine().device("sio"), (offset-0x1f90) & 3,data); } + else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), space, 0,data); } + else if(offset >= 0x1f90 && offset <= 0x1f93) { z80dart_ba_cd_w(machine().device("sio"), space, (offset-0x1f90) & 3,data); } else if(offset >= 0x1f98 && offset <= 0x1f9f) { printf("Extended SIO/CTC write %04x %02x\n",offset,data); } else if(offset >= 0x1fa0 && offset <= 0x1fa3) { m_ctc->write(space,offset-0x1fa0,data); } else if(offset >= 0x1fa8 && offset <= 0x1fab) { m_ctc->write(space,offset-0x1fa8,data); } @@ -2295,12 +2295,12 @@ static Z80CTC_INTERFACE( ctc_intf ) #if 0 static const z80sio_interface sio_intf = { - 0, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - 0, /* transmit handler */ - 0 /* receive handler */ + DEVCB_NULL, /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler */ + DEVCB_NULL /* receive handler */ }; #endif diff --git a/src/mess/drivers/x1twin.c b/src/mess/drivers/x1twin.c index 1db950ac904..35e62a8bca9 100644 --- a/src/mess/drivers/x1twin.c +++ b/src/mess/drivers/x1twin.c @@ -429,12 +429,12 @@ static Z80CTC_INTERFACE( ctc_intf ) #if 0 static const z80sio_interface sio_intf = { - 0, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - 0, /* transmit handler */ - 0 /* receive handler */ + DEVCB_NULL, /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler */ + DEVCB_NULL /* receive handler */ }; #endif diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c index 968870fc7f7..2050166a61a 100644 --- a/src/mess/drivers/x68k.c +++ b/src/mess/drivers/x68k.c @@ -347,13 +347,13 @@ static TIMER_CALLBACK( x68k_led_callback ) static WRITE16_HANDLER( x68k_dmac_w ) { device_t* device = space->machine().device("hd63450"); - hd63450_w(device, offset, data, mem_mask); + hd63450_w(device, *space, offset, data, mem_mask); } static READ16_HANDLER( x68k_dmac_r ) { device_t* device = space->machine().device("hd63450"); - return hd63450_r(device, offset, mem_mask); + return hd63450_r(device, *space, offset, mem_mask); } static void x68k_keyboard_ctrl_w(x68k_state *state, int data) @@ -974,7 +974,7 @@ static WRITE16_HANDLER( x68k_fdc_w ) { case 0x00: case 0x01: - upd765_data_w(fdc, 0,data); + upd765_data_w(fdc, *space, 0,data); break; case 0x02: // drive option signal control x = data & 0x0f; @@ -1054,9 +1054,9 @@ static READ16_HANDLER( x68k_fdc_r ) switch(offset) { case 0x00: - return upd765_status_r(fdc, 0); + return upd765_status_r(fdc, *space, 0); case 0x01: - return upd765_data_r(fdc, 0); + return upd765_data_r(fdc, *space, 0); case 0x02: ret = 0x00; for(x=0;x<4;x++) @@ -1103,7 +1103,7 @@ static int x68k_fdc_read_byte(running_machine &machine,int addr) device_t *fdc = machine.device("upd72065"); if(state->m_fdc.drq_state != 0) - data = upd765_dack_r(fdc, 0); + data = upd765_dack_r(fdc, state->generic_space(), 0); // logerror("FDC: DACK reading\n"); return data; } @@ -1111,7 +1111,7 @@ static int x68k_fdc_read_byte(running_machine &machine,int addr) static void x68k_fdc_write_byte(running_machine &machine,int addr, int data) { device_t *fdc = machine.device("upd72065"); - upd765_dack_w(fdc, 0, data); + upd765_dack_w(fdc, machine.driver_data()->generic_space(), 0, data); } static WRITE_LINE_DEVICE_HANDLER ( fdc_drq ) @@ -1126,7 +1126,7 @@ static WRITE16_HANDLER( x68k_fm_w ) { case 0x00: case 0x01: - ym2151_w(space->machine().device("ym2151"), offset, data); + ym2151_w(space->machine().device("ym2151"), *space, offset, data); break; } } @@ -1134,7 +1134,7 @@ static WRITE16_HANDLER( x68k_fm_w ) static READ16_HANDLER( x68k_fm_r ) { if(offset == 0x01) - return ym2151_r(space->machine().device("ym2151"), 1); + return ym2151_r(space->machine().device("ym2151"), *space, 1); return 0xffff; } @@ -1873,10 +1873,10 @@ static WRITE8_DEVICE_HANDLER( x68030_adpcm_w ) switch(offset) { case 0x00: - okim6258_ctrl_w(device,0,data); + okim6258_ctrl_w(device,space,0,data); break; case 0x01: - okim6258_data_w(device,0,data); + okim6258_data_w(device,space,0,data); break; } } diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c index 9b35a873e0f..7b6fd1ce28b 100644 --- a/src/mess/drivers/z100.c +++ b/src/mess/drivers/z100.c @@ -355,10 +355,10 @@ READ8_MEMBER( z100_state::z207_fdc_r ) switch(offset) { - case 0: res = wd17xx_status_r(m_fdc,offset); break; - case 1: res = wd17xx_track_r(m_fdc,offset); break; - case 2: res = wd17xx_sector_r(m_fdc,offset); break; - case 3: res = wd17xx_data_r(m_fdc,offset); break; + case 0: res = wd17xx_status_r(m_fdc,space, offset); break; + case 1: res = wd17xx_track_r(m_fdc,space, offset); break; + case 2: res = wd17xx_sector_r(m_fdc,space, offset); break; + case 3: res = wd17xx_data_r(m_fdc,space, offset); break; } return res; @@ -368,10 +368,10 @@ WRITE8_MEMBER( z100_state::z207_fdc_w ) { switch(offset) { - case 0: wd17xx_command_w(m_fdc,offset,data); break; - case 1: wd17xx_track_w(m_fdc,offset,data); break; - case 2: wd17xx_sector_w(m_fdc,offset,data); break; - case 3: wd17xx_data_w(m_fdc,offset,data); break; + case 0: wd17xx_command_w(m_fdc,space, offset,data); break; + case 1: wd17xx_track_w(m_fdc,space, offset,data); break; + case 2: wd17xx_sector_w(m_fdc,space, offset,data); break; + case 3: wd17xx_data_w(m_fdc,space, offset,data); break; case 4: // disk control wd17xx_set_drive(m_fdc,data & 3); m_z207_cur_drive = data & 3; diff --git a/src/mess/drivers/z80ne.c b/src/mess/drivers/z80ne.c index 09f96fc09c2..0f39ff42346 100644 --- a/src/mess/drivers/z80ne.c +++ b/src/mess/drivers/z80ne.c @@ -410,9 +410,9 @@ static const ay31015_config z80ne_ay31015_config = AY_3_1015, 4800.0, 4800.0, - NULL, - NULL, - NULL + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; static const cassette_interface z80ne_cassettea_config = @@ -436,7 +436,7 @@ static const cassette_interface z80ne_cassetteb_config = static const kr2376_interface lx388_kr2376_interface = { 50000, - NULL + DEVCB_NULL }; static const floppy_interface z80netf_floppy_interface = diff --git a/src/mess/formats/m65_snqk.c b/src/mess/formats/m65_snqk.c index 2a2b6bfed86..8c2dcac0cd4 100644 --- a/src/mess/formats/m65_snqk.c +++ b/src/mess/formats/m65_snqk.c @@ -298,15 +298,15 @@ static void microtan_snapshot_copy(running_machine &machine, UINT8 *snapshot_buf /* first set of AY8910 registers */ for (i = 0; i < 16; i++ ) { - ay8910_address_w(ay8910, 0, i); - ay8910_data_w(ay8910, 0, snapshot_buff[base++]); + ay8910_address_w(ay8910, state->generic_space(), 0, i); + ay8910_data_w(ay8910, state->generic_space(), 0, snapshot_buff[base++]); } /* second set of AY8910 registers */ for (i = 0; i < 16; i++ ) { - ay8910_address_w(ay8910, 0, i); - ay8910_data_w(ay8910, 0, snapshot_buff[base++]); + ay8910_address_w(ay8910, state->generic_space(), 0, i); + ay8910_data_w(ay8910, state->generic_space(), 0, snapshot_buff[base++]); } for (i = 0; i < 32*16; i++) diff --git a/src/mess/formats/spec_snqk.c b/src/mess/formats/spec_snqk.c index 39d28e0ff19..a80f10eb866 100644 --- a/src/mess/formats/spec_snqk.c +++ b/src/mess/formats/spec_snqk.c @@ -2357,10 +2357,10 @@ void spectrum_setup_z80(running_machine &machine, UINT8 *snapdata, UINT32 snapsi /* Only set up sound registers for 128K machine or TS2068! */ for (i = 0; i < 16; i++) { - ay8910_address_w(ay8912, 0, i); - ay8910_data_w(ay8912, 0, snapdata[39 + i]); + ay8910_address_w(ay8912, state->generic_space(), 0, i); + ay8910_data_w(ay8912, state->generic_space(), 0, snapdata[39 + i]); } - ay8910_address_w(ay8912, 0, snapdata[38]); + ay8910_address_w(ay8912, state->generic_space(), 0, snapdata[38]); } pSource = snapdata + header_size; diff --git a/src/mess/includes/amstrad.h b/src/mess/includes/amstrad.h index b4ad39a488a..04fae18e18b 100644 --- a/src/mess/includes/amstrad.h +++ b/src/mess/includes/amstrad.h @@ -174,10 +174,10 @@ public: -READ8_DEVICE_HANDLER( amstrad_ppi_porta_r ); -READ8_DEVICE_HANDLER( amstrad_ppi_portb_r ); -WRITE8_DEVICE_HANDLER( amstrad_ppi_porta_w ); -WRITE8_DEVICE_HANDLER( amstrad_ppi_portc_w ); +DECLARE_READ8_DEVICE_HANDLER( amstrad_ppi_porta_r ); +DECLARE_READ8_DEVICE_HANDLER( amstrad_ppi_portb_r ); +DECLARE_WRITE8_DEVICE_HANDLER( amstrad_ppi_porta_w ); +DECLARE_WRITE8_DEVICE_HANDLER( amstrad_ppi_portc_w ); WRITE_LINE_DEVICE_HANDLER( aleste_interrupt ); diff --git a/src/mess/includes/apollo.h b/src/mess/includes/apollo.h index d66569af92a..8f1d7250da8 100644 --- a/src/mess/includes/apollo.h +++ b/src/mess/includes/apollo.h @@ -241,18 +241,18 @@ void apollo_csr_set_status_register(UINT16 mask, UINT16 data); /*----------- machine/apollo_pic.c -----------*/ -WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) ; -READ8_DEVICE_HANDLER( apollo_pic8259_master_r ); +DECLARE_WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) ; +DECLARE_READ8_DEVICE_HANDLER( apollo_pic8259_master_r ); -WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w ); -READ8_DEVICE_HANDLER( apollo_pic8259_slave_r ); +DECLARE_WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w ); +DECLARE_READ8_DEVICE_HANDLER( apollo_pic8259_slave_r ); IRQ_CALLBACK(apollo_pic_acknowledge); /*----------- machine/apollo_ptm.c -----------*/ -WRITE8_DEVICE_HANDLER( apollo_ptm_w ); -READ8_DEVICE_HANDLER( apollo_ptm_r ); +DECLARE_WRITE8_DEVICE_HANDLER( apollo_ptm_w ); +DECLARE_READ8_DEVICE_HANDLER( apollo_ptm_r ); /*----------- machine/apollo_rtc.c -----------*/ @@ -261,13 +261,13 @@ READ8_DEVICE_HANDLER( apollo_ptm_r ); void apollo_sio_rx_data( device_t* device, int ch, UINT8 data ); -READ8_DEVICE_HANDLER(apollo_sio_r); -WRITE8_DEVICE_HANDLER(apollo_sio_w); +DECLARE_READ8_DEVICE_HANDLER(apollo_sio_r); +DECLARE_WRITE8_DEVICE_HANDLER(apollo_sio_w); /*----------- machine/apollo_sio2.c -----------*/ -READ8_DEVICE_HANDLER(apollo_sio2_r); -WRITE8_DEVICE_HANDLER(apollo_sio2_w); +DECLARE_READ8_DEVICE_HANDLER(apollo_sio2_r); +DECLARE_WRITE8_DEVICE_HANDLER(apollo_sio2_w); /*----------- machine/apollo_fdc.c -----------*/ @@ -360,10 +360,10 @@ extern const device_type APOLLO_MONO15I; MACHINE_CONFIG_EXTERN( apollo_mono15i ); -READ16_DEVICE_HANDLER( apollo_mcr_r ) ; -WRITE16_DEVICE_HANDLER(apollo_mcr_w ); +DECLARE_READ16_DEVICE_HANDLER( apollo_mcr_r ) ; +DECLARE_WRITE16_DEVICE_HANDLER(apollo_mcr_w ); -READ16_DEVICE_HANDLER( apollo_mgm_r ); -WRITE16_DEVICE_HANDLER( apollo_mgm_w ); +DECLARE_READ16_DEVICE_HANDLER( apollo_mgm_r ); +DECLARE_WRITE16_DEVICE_HANDLER( apollo_mgm_w ); #endif /* APOLLO_H_ */ diff --git a/src/mess/includes/c16.h b/src/mess/includes/c16.h index 66979761f74..64def9248b0 100644 --- a/src/mess/includes/c16.h +++ b/src/mess/includes/c16.h @@ -52,8 +52,8 @@ public: /*----------- defined in machine/c16.c -----------*/ -extern READ8_DEVICE_HANDLER(c16_m7501_port_read); -extern WRITE8_DEVICE_HANDLER(c16_m7501_port_write); +extern DECLARE_READ8_DEVICE_HANDLER(c16_m7501_port_read); +extern DECLARE_WRITE8_DEVICE_HANDLER(c16_m7501_port_write); extern WRITE8_HANDLER(c16_6551_port_w); extern READ8_HANDLER(c16_6551_port_r); diff --git a/src/mess/includes/c64.h b/src/mess/includes/c64.h index c02b68854eb..de3b08e01b4 100644 --- a/src/mess/includes/c64.h +++ b/src/mess/includes/c64.h @@ -182,7 +182,7 @@ public: }; -int c64_paddle_read (device_t *device, int which); +int c64_paddle_read (device_t *device, address_space &space, int which); #endif diff --git a/src/mess/includes/c64_legacy.h b/src/mess/includes/c64_legacy.h index ca370b2d440..9646bfa1e13 100644 --- a/src/mess/includes/c64_legacy.h +++ b/src/mess/includes/c64_legacy.h @@ -97,8 +97,8 @@ public: /* private area */ -extern READ8_DEVICE_HANDLER(c64_m6510_port_read); -extern WRITE8_DEVICE_HANDLER(c64_m6510_port_write); +extern DECLARE_READ8_DEVICE_HANDLER(c64_m6510_port_read); +extern DECLARE_WRITE8_DEVICE_HANDLER(c64_m6510_port_write); READ8_HANDLER ( c64_colorram_read ); WRITE8_HANDLER ( c64_colorram_write ); @@ -116,7 +116,7 @@ WRITE8_HANDLER(c64_ioarea_w); WRITE8_HANDLER ( c64_write_io ); READ8_HANDLER ( c64_read_io ); -int c64_paddle_read (device_t *device, int which); +int c64_paddle_read (device_t *device, address_space &space, int which); extern const mos6526_interface c64_ntsc_cia0, c64_pal_cia0; extern const mos6526_interface c64_ntsc_cia1, c64_pal_cia1; diff --git a/src/mess/includes/cbmb.h b/src/mess/includes/cbmb.h index 7af1a34c90c..3d776cb7301 100644 --- a/src/mess/includes/cbmb.h +++ b/src/mess/includes/cbmb.h @@ -72,17 +72,17 @@ public: extern const mos6526_interface cbmb_cia; -READ8_DEVICE_HANDLER( cbmb_tpi0_port_a_r ); -WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_a_w ); -READ8_DEVICE_HANDLER( cbmb_tpi0_port_b_r ); -WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_b_w ); - -WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_a ); -WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_b ); -WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_c ); -READ8_DEVICE_HANDLER( cbmb_keyboard_line_a ); -READ8_DEVICE_HANDLER( cbmb_keyboard_line_b ); -READ8_DEVICE_HANDLER( cbmb_keyboard_line_c ); +DECLARE_READ8_DEVICE_HANDLER( cbmb_tpi0_port_a_r ); +DECLARE_WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_a_w ); +DECLARE_READ8_DEVICE_HANDLER( cbmb_tpi0_port_b_r ); +DECLARE_WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_b_w ); + +DECLARE_WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_a ); +DECLARE_WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_b ); +DECLARE_WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_c ); +DECLARE_READ8_DEVICE_HANDLER( cbmb_keyboard_line_a ); +DECLARE_READ8_DEVICE_HANDLER( cbmb_keyboard_line_b ); +DECLARE_READ8_DEVICE_HANDLER( cbmb_keyboard_line_c ); WRITE_LINE_DEVICE_HANDLER( cbmb_irq ); int cbmb_dma_read(running_machine &machine, int offset); diff --git a/src/mess/includes/cgenie.h b/src/mess/includes/cgenie.h index 294560a8a09..bc14556398e 100644 --- a/src/mess/includes/cgenie.h +++ b/src/mess/includes/cgenie.h @@ -75,8 +75,8 @@ public: /*----------- defined in machine/cgenie.c -----------*/ -READ8_DEVICE_HANDLER( cgenie_sh_control_port_r ); -WRITE8_DEVICE_HANDLER( cgenie_sh_control_port_w ); +DECLARE_READ8_DEVICE_HANDLER( cgenie_sh_control_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( cgenie_sh_control_port_w ); extern const wd17xx_interface cgenie_wd17xx_interface; diff --git a/src/mess/includes/kaypro.h b/src/mess/includes/kaypro.h index 1bc6aac752c..71f33745bed 100644 --- a/src/mess/includes/kaypro.h +++ b/src/mess/includes/kaypro.h @@ -96,8 +96,8 @@ extern const z80pio_interface kaypro4_pio_s_intf; extern const z80sio_interface kaypro_sio_intf; extern const wd17xx_interface kaypro_wd1793_interface; -READ8_DEVICE_HANDLER( kaypro_sio_r ); -WRITE8_DEVICE_HANDLER( kaypro_sio_w ); +DECLARE_READ8_DEVICE_HANDLER( kaypro_sio_r ); +DECLARE_WRITE8_DEVICE_HANDLER( kaypro_sio_w ); diff --git a/src/mess/includes/mc68328.h b/src/mess/includes/mc68328.h index 2e3aaadaec8..b5a1596cb08 100644 --- a/src/mess/includes/mc68328.h +++ b/src/mess/includes/mc68328.h @@ -98,32 +98,32 @@ struct mc68328_interface { const char *m68k_cpu_tag; - write8_device_func out_port_a_func; /* 8-bit output */ - write8_device_func out_port_b_func; /* 8-bit output */ - write8_device_func out_port_c_func; /* 8-bit output */ - write8_device_func out_port_d_func; /* 8-bit output */ - write8_device_func out_port_e_func; /* 8-bit output */ - write8_device_func out_port_f_func; /* 8-bit output */ - write8_device_func out_port_g_func; /* 8-bit output */ - write8_device_func out_port_j_func; /* 8-bit output */ - write8_device_func out_port_k_func; /* 8-bit output */ - write8_device_func out_port_m_func; /* 8-bit output */ - - read8_device_func in_port_a_func; /* 8-bit input */ - read8_device_func in_port_b_func; /* 8-bit input */ - read8_device_func in_port_c_func; /* 8-bit input */ - read8_device_func in_port_d_func; /* 8-bit input */ - read8_device_func in_port_e_func; /* 8-bit input */ - read8_device_func in_port_f_func; /* 8-bit input */ - read8_device_func in_port_g_func; /* 8-bit input */ - read8_device_func in_port_j_func; /* 8-bit input */ - read8_device_func in_port_k_func; /* 8-bit input */ - read8_device_func in_port_m_func; /* 8-bit input */ - - write8_device_func out_pwm_func; /* 1-bit output */ - - write16_device_func out_spim_func; /* 16-bit output */ - read16_device_func in_spim_func; /* 16-bit input */ + devcb_write8 out_port_a_func; /* 8-bit output */ + devcb_write8 out_port_b_func; /* 8-bit output */ + devcb_write8 out_port_c_func; /* 8-bit output */ + devcb_write8 out_port_d_func; /* 8-bit output */ + devcb_write8 out_port_e_func; /* 8-bit output */ + devcb_write8 out_port_f_func; /* 8-bit output */ + devcb_write8 out_port_g_func; /* 8-bit output */ + devcb_write8 out_port_j_func; /* 8-bit output */ + devcb_write8 out_port_k_func; /* 8-bit output */ + devcb_write8 out_port_m_func; /* 8-bit output */ + + devcb_read8 in_port_a_func; /* 8-bit input */ + devcb_read8 in_port_b_func; /* 8-bit input */ + devcb_read8 in_port_c_func; /* 8-bit input */ + devcb_read8 in_port_d_func; /* 8-bit input */ + devcb_read8 in_port_e_func; /* 8-bit input */ + devcb_read8 in_port_f_func; /* 8-bit input */ + devcb_read8 in_port_g_func; /* 8-bit input */ + devcb_read8 in_port_j_func; /* 8-bit input */ + devcb_read8 in_port_k_func; /* 8-bit input */ + devcb_read8 in_port_m_func; /* 8-bit input */ + + devcb_write8 out_pwm_func; /* 1-bit output */ + + devcb_write16 out_spim_func; /* 16-bit output */ + devcb_read16 in_spim_func; /* 16-bit input */ void (*spim_xch_trigger)( device_t *device ); /* SPIM exchange trigger */ }; #define MC68328_INTERFACE(name) const mc68328_interface (name)= @@ -144,8 +144,8 @@ struct mc68328_interface READ/WRITE HANDLERS ***************************************************************************/ -WRITE16_DEVICE_HANDLER( mc68328_w ); -READ16_DEVICE_HANDLER( mc68328_r ); +DECLARE_WRITE16_DEVICE_HANDLER( mc68328_w ); +DECLARE_READ16_DEVICE_HANDLER( mc68328_r ); /*************************************************************************** diff --git a/src/mess/includes/msx.h b/src/mess/includes/msx.h index 12e5917f048..f2ea63182eb 100644 --- a/src/mess/includes/msx.h +++ b/src/mess/includes/msx.h @@ -145,9 +145,9 @@ DEVICE_IMAGE_UNLOAD( msx_cart ); void msx_vdp_interrupt(device_t *, v99x8_device &device, int i); /* I/O functions */ -READ8_DEVICE_HANDLER( msx_printer_status_r ); -WRITE8_DEVICE_HANDLER( msx_printer_strobe_w ); -WRITE8_DEVICE_HANDLER( msx_printer_data_w ); +DECLARE_READ8_DEVICE_HANDLER( msx_printer_status_r ); +DECLARE_WRITE8_DEVICE_HANDLER( msx_printer_strobe_w ); +DECLARE_WRITE8_DEVICE_HANDLER( msx_printer_data_w ); #endif /* __MSX_H__ */ diff --git a/src/mess/includes/mtx.h b/src/mess/includes/mtx.h index 109461063d8..62354fb7ef3 100644 --- a/src/mess/includes/mtx.h +++ b/src/mess/includes/mtx.h @@ -68,14 +68,14 @@ SNAPSHOT_LOAD( mtx ); /* Sound */ -READ8_DEVICE_HANDLER( mtx_sound_strobe_r ); +DECLARE_READ8_DEVICE_HANDLER( mtx_sound_strobe_r ); /* Cassette */ -WRITE8_DEVICE_HANDLER( mtx_cst_w ); +DECLARE_WRITE8_DEVICE_HANDLER( mtx_cst_w ); /* Printer */ -READ8_DEVICE_HANDLER( mtx_strobe_r ); -READ8_DEVICE_HANDLER( mtx_prt_r ); +DECLARE_READ8_DEVICE_HANDLER( mtx_strobe_r ); +DECLARE_READ8_DEVICE_HANDLER( mtx_prt_r ); /* Keyboard */ diff --git a/src/mess/includes/nascom1.h b/src/mess/includes/nascom1.h index 33582481413..4c16edb3e75 100644 --- a/src/mess/includes/nascom1.h +++ b/src/mess/includes/nascom1.h @@ -61,8 +61,8 @@ SNAPSHOT_LOAD( nascom1 ); -READ8_DEVICE_HANDLER( nascom1_hd6402_si ); -WRITE8_DEVICE_HANDLER( nascom1_hd6402_so ); +DECLARE_READ8_DEVICE_HANDLER( nascom1_hd6402_si ); +DECLARE_WRITE8_DEVICE_HANDLER( nascom1_hd6402_so ); diff --git a/src/mess/includes/pc.h b/src/mess/includes/pc.h index bbf5a457684..ad9b8a4232f 100644 --- a/src/mess/includes/pc.h +++ b/src/mess/includes/pc.h @@ -113,10 +113,10 @@ void mess_init_pc_common( running_machine &machine, UINT32 flags, void (*set_key -READ8_DEVICE_HANDLER( mc1502_wd17xx_drq_r ); -READ8_DEVICE_HANDLER( mc1502_wd17xx_aux_r ); -READ8_DEVICE_HANDLER( mc1502_wd17xx_motor_r ); -WRITE8_DEVICE_HANDLER( mc1502_wd17xx_aux_w ); +DECLARE_READ8_DEVICE_HANDLER( mc1502_wd17xx_drq_r ); +DECLARE_READ8_DEVICE_HANDLER( mc1502_wd17xx_aux_r ); +DECLARE_READ8_DEVICE_HANDLER( mc1502_wd17xx_motor_r ); +DECLARE_WRITE8_DEVICE_HANDLER( mc1502_wd17xx_aux_w ); diff --git a/src/mess/includes/pokemini.h b/src/mess/includes/pokemini.h index 1e1b90ffc2a..958b70f4410 100644 --- a/src/mess/includes/pokemini.h +++ b/src/mess/includes/pokemini.h @@ -69,8 +69,8 @@ public: /*----------- defined in machine/pokemini.c -----------*/ -WRITE8_DEVICE_HANDLER( pokemini_hwreg_w ); -READ8_DEVICE_HANDLER( pokemini_hwreg_r ); +DECLARE_WRITE8_DEVICE_HANDLER( pokemini_hwreg_w ); +DECLARE_READ8_DEVICE_HANDLER( pokemini_hwreg_r ); DEVICE_IMAGE_LOAD( pokemini_cart ); diff --git a/src/mess/includes/svision.h b/src/mess/includes/svision.h index 7c685dd8c94..d30c399d603 100644 --- a/src/mess/includes/svision.h +++ b/src/mess/includes/svision.h @@ -91,8 +91,8 @@ extern const device_type SVISION; int *svision_dma_finished(device_t *device); void svision_sound_decrement(device_t *device); void svision_soundport_w(device_t *device, int which, int offset, int data); -WRITE8_DEVICE_HANDLER( svision_sounddma_w ); -WRITE8_DEVICE_HANDLER( svision_noise_w ); +DECLARE_WRITE8_DEVICE_HANDLER( svision_sounddma_w ); +DECLARE_WRITE8_DEVICE_HANDLER( svision_noise_w ); #endif /* SVISION_H_ */ diff --git a/src/mess/includes/vic10.h b/src/mess/includes/vic10.h index a0715ee11a3..8c952d9e35a 100644 --- a/src/mess/includes/vic10.h +++ b/src/mess/includes/vic10.h @@ -50,7 +50,7 @@ public: virtual void machine_reset(); void check_interrupts(); - UINT8 paddle_read(int which); + UINT8 paddle_read(address_space &space, int which); DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); diff --git a/src/mess/includes/wswan.h b/src/mess/includes/wswan.h index f134e1a8018..9dce3291da7 100644 --- a/src/mess/includes/wswan.h +++ b/src/mess/includes/wswan.h @@ -200,6 +200,6 @@ private: extern const device_type WSWAN; -WRITE8_DEVICE_HANDLER( wswan_sound_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( wswan_sound_port_w ); #endif /* WSWAN_H_ */ diff --git a/src/mess/includes/z80ne.h b/src/mess/includes/z80ne.h index 59e31b98b4d..c9b059a8364 100644 --- a/src/mess/includes/z80ne.h +++ b/src/mess/includes/z80ne.h @@ -109,11 +109,11 @@ public: /*----------- defined in machine/z80ne.c -----------*/ -READ8_DEVICE_HANDLER(lx388_mc6847_videoram_r); -READ8_DEVICE_HANDLER(lx390_fdc_r); -WRITE8_DEVICE_HANDLER(lx390_fdc_w); -READ8_DEVICE_HANDLER(lx390_reset_bank); -WRITE8_DEVICE_HANDLER(lx390_motor_w); +DECLARE_READ8_DEVICE_HANDLER(lx388_mc6847_videoram_r); +DECLARE_READ8_DEVICE_HANDLER(lx390_fdc_r); +DECLARE_WRITE8_DEVICE_HANDLER(lx390_fdc_w); +DECLARE_READ8_DEVICE_HANDLER(lx390_reset_bank); +DECLARE_WRITE8_DEVICE_HANDLER(lx390_motor_w); diff --git a/src/mess/machine/3c505.h b/src/mess/machine/3c505.h index 3d764181149..0d3171bee37 100644 --- a/src/mess/machine/3c505.h +++ b/src/mess/machine/3c505.h @@ -28,8 +28,8 @@ FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( threecom3c505_r ); -WRITE8_DEVICE_HANDLER( threecom3c505_w ); +DECLARE_READ8_DEVICE_HANDLER( threecom3c505_r ); +DECLARE_WRITE8_DEVICE_HANDLER( threecom3c505_w ); int threecom3c505_receive(device_t *device, const UINT8 *data, int length); diff --git a/src/mess/machine/990_tap.h b/src/mess/machine/990_tap.h index d2e5b0ef2f6..68c99a54b41 100644 --- a/src/mess/machine/990_tap.h +++ b/src/mess/machine/990_tap.h @@ -1,8 +1,8 @@ /* 990_tap.h: include file for 990_tap.c */ -extern READ16_DEVICE_HANDLER(ti990_tpc_r); -extern WRITE16_DEVICE_HANDLER(ti990_tpc_w); +extern DECLARE_READ16_DEVICE_HANDLER(ti990_tpc_r); +extern DECLARE_WRITE16_DEVICE_HANDLER(ti990_tpc_w); /*************************************************************************** TYPE DEFINITIONS diff --git a/src/mess/machine/a2diskii.c b/src/mess/machine/a2diskii.c index a9ed3e0259a..eab937f882c 100644 --- a/src/mess/machine/a2diskii.c +++ b/src/mess/machine/a2diskii.c @@ -138,7 +138,7 @@ void a2bus_floppy_device::device_reset() UINT8 a2bus_floppy_device::read_c0nx(address_space &space, UINT8 offset) { - return applefdc_r(m_fdc, offset); + return applefdc_r(m_fdc, space, offset); } @@ -148,7 +148,7 @@ UINT8 a2bus_floppy_device::read_c0nx(address_space &space, UINT8 offset) void a2bus_floppy_device::write_c0nx(address_space &space, UINT8 offset, UINT8 data) { - applefdc_w(m_fdc, offset, data); + applefdc_w(m_fdc, space, offset, data); } /*------------------------------------------------- diff --git a/src/mess/machine/a2echoii.c b/src/mess/machine/a2echoii.c index 4d271fdfee8..669074c4c4b 100644 --- a/src/mess/machine/a2echoii.c +++ b/src/mess/machine/a2echoii.c @@ -81,7 +81,7 @@ UINT8 a2bus_echoii_device::read_c0nx(address_space &space, UINT8 offset) switch (offset) { case 0: - return 0x1f | tms5220_status_r(m_tms, 0); + return 0x1f | tms5220_status_r(m_tms, space, 0); break; } @@ -93,7 +93,7 @@ void a2bus_echoii_device::write_c0nx(address_space &space, UINT8 offset, UINT8 d switch (offset) { case 0: - tms5220_data_w(m_tms, offset, data); + tms5220_data_w(m_tms, space, offset, data); break; } } diff --git a/src/mess/machine/a2mockingboard.c b/src/mess/machine/a2mockingboard.c index 51f72502b29..cb1c8b10aeb 100644 --- a/src/mess/machine/a2mockingboard.c +++ b/src/mess/machine/a2mockingboard.c @@ -300,10 +300,10 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b ) { if (!(data & 4)) { - ay8910_reset_w(m_ay1, 0, 0); + ay8910_reset_w(m_ay1, space, 0, 0); if (m_isPhasor && m_PhasorNative) { - ay8910_reset_w(m_ay2, 0, 0); + ay8910_reset_w(m_ay2, space, 0, 0); } } else @@ -316,15 +316,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b ) break; case 1: // BDIR=0, BC1=1 (read PSG) - m_porta1 = ay8910_r(m_ay1, 0); + m_porta1 = ay8910_r(m_ay1, space, 0); break; case 2: // BDIR=1, BC1=0 (write PSG) - ay8910_data_w(m_ay1, 0, m_porta1); + ay8910_data_w(m_ay1, space, 0, m_porta1); break; case 3: // BDIR=1, BC1=1 (latch) - ay8910_address_w(m_ay1, 0, m_porta1); + ay8910_address_w(m_ay1, space, 0, m_porta1); break; } } @@ -350,33 +350,33 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b ) case 1: // BDIR=0, BC1=1 (read PSG) if (chipSel & 1) { - m_porta1 = ay8910_r(m_ay1, 0); + m_porta1 = ay8910_r(m_ay1, space, 0); } if (chipSel & 2) { - m_porta1 = ay8910_r(m_ay2, 0); + m_porta1 = ay8910_r(m_ay2, space, 0); } break; case 2: // BDIR=1, BC1=0 (write PSG) if (chipSel & 1) { - ay8910_data_w(m_ay1, 0, m_porta1); + ay8910_data_w(m_ay1, space, 0, m_porta1); } if (chipSel & 2) { - ay8910_data_w(m_ay2, 0, m_porta1); + ay8910_data_w(m_ay2, space, 0, m_porta1); } break; case 3: // BDIR=1, BC1=1 (latch) if (chipSel & 1) { - ay8910_address_w(m_ay1, 0, m_porta1); + ay8910_address_w(m_ay1, space, 0, m_porta1); } if (chipSel & 2) { - ay8910_address_w(m_ay2, 0, m_porta1); + ay8910_address_w(m_ay2, space, 0, m_porta1); } break; } @@ -405,12 +405,12 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b ) { if (m_isPhasor && m_PhasorNative) { - ay8910_reset_w(m_ay3, 0, 0); - ay8910_reset_w(m_ay4, 0, 0); + ay8910_reset_w(m_ay3, space, 0, 0); + ay8910_reset_w(m_ay4, space, 0, 0); } else { - ay8910_reset_w(m_ay2, 0, 0); + ay8910_reset_w(m_ay2, space, 0, 0); } } else @@ -423,15 +423,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b ) break; case 1: // BDIR=0, BC1=1 (read PSG) - m_porta2 = ay8910_r(m_ay2, 0); + m_porta2 = ay8910_r(m_ay2, space, 0); break; case 2: // BDIR=1, BC1=0 (write PSG) - ay8910_data_w(m_ay2, 0, m_porta2); + ay8910_data_w(m_ay2, space, 0, m_porta2); break; case 3: // BDIR=1, BC1=1 (latch) - ay8910_address_w(m_ay2, 0, m_porta2); + ay8910_address_w(m_ay2, space, 0, m_porta2); break; } } @@ -457,33 +457,33 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b ) case 1: // BDIR=0, BC1=1 (read PSG) if (chipSel & 1) { - m_porta2 = ay8910_r(m_ay3, 0); + m_porta2 = ay8910_r(m_ay3, space, 0); } if (chipSel & 2) { - m_porta2 = ay8910_r(m_ay4, 0); + m_porta2 = ay8910_r(m_ay4, space, 0); } break; case 2: // BDIR=1, BC1=0 (write PSG) if (chipSel & 1) { - ay8910_data_w(m_ay3, 0, m_porta2); + ay8910_data_w(m_ay3, space, 0, m_porta2); } if (chipSel & 2) { - ay8910_data_w(m_ay4, 0, m_porta2); + ay8910_data_w(m_ay4, space, 0, m_porta2); } break; case 3: // BDIR=1, BC1=1 (latch) if (chipSel & 1) { - ay8910_address_w(m_ay3, 0, m_porta2); + ay8910_address_w(m_ay3, space, 0, m_porta2); } if (chipSel & 2) { - ay8910_address_w(m_ay4, 0, m_porta2); + ay8910_address_w(m_ay4, space, 0, m_porta2); } break; } diff --git a/src/mess/machine/a7800.c b/src/mess/machine/a7800.c index 7add428bcfb..0263a1bdf5f 100644 --- a/src/mess/machine/a7800.c +++ b/src/mess/machine/a7800.c @@ -525,6 +525,6 @@ WRITE8_MEMBER(a7800_state::a7800_TIA_w) } break; } - tia_sound_w(machine().device("tia"), offset, data); + tia_sound_w(machine().device("tia"), space, offset, data); m_ROM[offset] = data; } diff --git a/src/mess/machine/abc77.c b/src/mess/machine/abc77.c index 6712b6e87fb..f1a6171fd72 100644 --- a/src/mess/machine/abc77.c +++ b/src/mess/machine/abc77.c @@ -589,7 +589,7 @@ WRITE8_MEMBER( abc77_device::p2_w ) } // beep - discrete_sound_w(m_discrete, NODE_01, BIT(data, 4)); + discrete_sound_w(m_discrete, space, NODE_01, BIT(data, 4)); // transmit data serial_output(BIT(data, 5)); diff --git a/src/mess/machine/aim65.c b/src/mess/machine/aim65.c index 7f9566a9cb5..823d0c9bf41 100644 --- a/src/mess/machine/aim65.c +++ b/src/mess/machine/aim65.c @@ -47,7 +47,7 @@ static void dl1416_update(device_t *device, int index) dl1416_ce_w(device, state->m_pia_a & (0x04 << index)); dl1416_wr_w(device, BIT(state->m_pia_a, 7)); dl1416_cu_w(device, BIT(state->m_pia_b, 7)); - dl1416_data_w(device, state->m_pia_a & 0x03, state->m_pia_b & 0x7f); + dl1416_data_w(device, state->generic_space(), state->m_pia_a & 0x03, state->m_pia_b & 0x7f); } static void aim65_pia(running_machine &machine) diff --git a/src/mess/machine/amigacd.c b/src/mess/machine/amigacd.c index 901123c27a8..cfdb28bbca6 100644 --- a/src/mess/machine/amigacd.c +++ b/src/mess/machine/amigacd.c @@ -216,7 +216,7 @@ static READ16_HANDLER( amiga_dmac_r ) { device_t *tpi = space->machine().device("tpi6525"); LOG(( "DMAC: PC=%08x - TPI6525 Read(%d)\n", space->device().safe_pc(), (offset - 0x58) )); - return tpi6525_r(tpi, offset - 0x58); + return tpi6525_r(tpi, *space, offset - 0x58); } break; @@ -343,7 +343,7 @@ static WRITE16_HANDLER( amiga_dmac_w ) { device_t *tpi = space->machine().device("tpi6525"); LOG(( "DMAC: PC=%08x - TPI6525 Write(%d) - data = %04x\n", space->device().safe_pc(), (offset - 0x58), data )); - tpi6525_w(tpi, offset - 0x58, data); + tpi6525_w(tpi, *space, offset - 0x58, data); } break; diff --git a/src/mess/machine/amigacd.h b/src/mess/machine/amigacd.h index d2ed908a0fc..a4223f70bd5 100644 --- a/src/mess/machine/amigacd.h +++ b/src/mess/machine/amigacd.h @@ -6,8 +6,8 @@ MACHINE_START( amigacd ); MACHINE_RESET( amigacd ); /* 6525tpi */ -READ8_DEVICE_HANDLER( amigacd_tpi6525_portc_r ); -WRITE8_DEVICE_HANDLER( amigacd_tpi6525_portb_w ); +DECLARE_READ8_DEVICE_HANDLER( amigacd_tpi6525_portc_r ); +DECLARE_WRITE8_DEVICE_HANDLER( amigacd_tpi6525_portb_w ); WRITE_LINE_DEVICE_HANDLER( amigacd_tpi6525_irq ); diff --git a/src/mess/machine/amstr_pc.c b/src/mess/machine/amstr_pc.c index 07bbe617099..38aefd9b2cc 100644 --- a/src/mess/machine/amstr_pc.c +++ b/src/mess/machine/amstr_pc.c @@ -201,7 +201,7 @@ READ8_HANDLER( pc1640_port60_r ) READ8_HANDLER( pc200_port378_r ) { device_t *lpt = space->machine().device("lpt_1"); - UINT8 data = pc_lpt_r(lpt, offset); + UINT8 data = pc_lpt_r(lpt, *space, offset); if (offset == 1) data = (data & ~7) | (space->machine().root_device().ioport("DSW0")->read() & 7); @@ -214,7 +214,7 @@ READ8_HANDLER( pc200_port378_r ) READ8_HANDLER( pc200_port278_r ) { device_t *lpt = space->machine().device("lpt_2"); - UINT8 data = pc_lpt_r(lpt, offset); + UINT8 data = pc_lpt_r(lpt, *space, offset); if (offset == 1) data = (data & ~7) | (space->machine().root_device().ioport("DSW0")->read() & 7); @@ -228,7 +228,7 @@ READ8_HANDLER( pc200_port278_r ) READ8_HANDLER( pc1640_port378_r ) { device_t *lpt = space->machine().device("lpt_1"); - UINT8 data = pc_lpt_r(lpt, offset); + UINT8 data = pc_lpt_r(lpt, *space, offset); if (offset == 1) data=(data & ~7) | (space->machine().root_device().ioport("DSW0")->read() & 7); diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c index 501c04271e0..c32af3c9cad 100644 --- a/src/mess/machine/amstrad.c +++ b/src/mess/machine/amstrad.c @@ -518,9 +518,9 @@ static void amstrad_plus_dma_parse(running_machine &machine, int channel) case 0x0000: // Load PSG register { device_t *ay8910 = state->m_ay; - ay8910_address_w(ay8910, 0, (command & 0x0f00) >> 8); - ay8910_data_w(ay8910, 0, command & 0x00ff); - ay8910_address_w(ay8910, 0, state->m_prev_reg); + ay8910_address_w(ay8910, state->generic_space(), 0, (command & 0x0f00) >> 8); + ay8910_data_w(ay8910, state->generic_space(), 0, command & 0x00ff); + ay8910_address_w(ay8910, state->generic_space(), 0, state->m_prev_reg); } logerror("DMA %i: LOAD %i, %i\n",channel,(command & 0x0f00) >> 8, command & 0x00ff); break; @@ -1960,10 +1960,10 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which switch (b8b0) { case 0x02: - data = upd765_status_r(fdc, 0); + data = upd765_status_r(fdc, space, 0); break; case 0x03: - data = upd765_data_r(fdc, 0); + data = upd765_data_r(fdc, space, 0); break; default: break; @@ -2138,7 +2138,7 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which break; case 0x03: /* Write Data register of FDC */ - upd765_data_w(fdc, 0,data); + upd765_data_w(fdc, space, 0,data); break; default: @@ -2175,7 +2175,7 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which static void amstrad_handle_snapshot(running_machine &machine, unsigned char *pSnapshot) { amstrad_state *state = machine.driver_data<amstrad_state>(); - address_space* space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = *state->m_maincpu->space(AS_PROGRAM); mc6845_device *mc6845 = state->m_crtc; device_t *ay8910 = state->m_ay; int RegData; @@ -2265,30 +2265,30 @@ static void amstrad_handle_snapshot(running_machine &machine, unsigned char *pSn /* init CRTC */ for (i=0; i<18; i++) { - mc6845->address_w( *space, 0, i ); - mc6845->register_w( *space, 0, pSnapshot[0x043+i] & 0xff ); + mc6845->address_w( space, 0, i ); + mc6845->register_w( space, 0, pSnapshot[0x043+i] & 0xff ); } - mc6845->address_w( *space, 0, i ); + mc6845->address_w( space, 0, i ); /* upper rom selection */ state->m_gate_array.upper_bank = pSnapshot[0x055]; /* PPI */ - state->m_ppi->write(*space, 3, pSnapshot[0x059] & 0x0ff); + state->m_ppi->write(space, 3, pSnapshot[0x059] & 0x0ff); - state->m_ppi->write(*space, 0, pSnapshot[0x056] & 0x0ff); - state->m_ppi->write(*space, 1, pSnapshot[0x057] & 0x0ff); - state->m_ppi->write(*space, 2, pSnapshot[0x058] & 0x0ff); + state->m_ppi->write(space, 0, pSnapshot[0x056] & 0x0ff); + state->m_ppi->write(space, 1, pSnapshot[0x057] & 0x0ff); + state->m_ppi->write(space, 2, pSnapshot[0x058] & 0x0ff); /* PSG */ for (i=0; i<16; i++) { - ay8910_address_w(ay8910, 0, i); - ay8910_data_w(ay8910, 0, pSnapshot[0x05b + i] & 0x0ff); + ay8910_address_w(ay8910, space, 0, i); + ay8910_data_w(ay8910, space, 0, pSnapshot[0x05b + i] & 0x0ff); } - ay8910_address_w(ay8910, 0, pSnapshot[0x05a]); + ay8910_address_w(ay8910, space, 0, pSnapshot[0x05a]); { int MemSize; @@ -2458,7 +2458,7 @@ BDIR BC1 | static void update_psg(running_machine &machine) { amstrad_state *state = machine.driver_data<amstrad_state>(); - address_space *space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = *state->m_maincpu->space(AS_PROGRAM); device_t *ay8910 = state->m_ay; mc146818_device *rtc = state->m_rtc; @@ -2467,13 +2467,13 @@ static void update_psg(running_machine &machine) switch(state->m_aleste_rtc_function) { case 0x02: // AS - rtc->write(*space, 0,state->m_ppi_port_outputs[amstrad_ppi_PortA]); + rtc->write(space, 0,state->m_ppi_port_outputs[amstrad_ppi_PortA]); break; case 0x04: // DS write - rtc->write(*space, 1,state->m_ppi_port_outputs[amstrad_ppi_PortA]); + rtc->write(space, 1,state->m_ppi_port_outputs[amstrad_ppi_PortA]); break; case 0x05: // DS read - state->m_ppi_port_inputs[amstrad_ppi_PortA] = rtc->read(*space, 1); + state->m_ppi_port_inputs[amstrad_ppi_PortA] = rtc->read(space, 1); break; } return; @@ -2485,17 +2485,17 @@ static void update_psg(running_machine &machine) } break; case 1: {/* b6 = 1 ? : Read from selected PSG register and make the register data available to PPI Port A */ - state->m_ppi_port_inputs[amstrad_ppi_PortA] = ay8910_r(ay8910, 0); + state->m_ppi_port_inputs[amstrad_ppi_PortA] = ay8910_r(ay8910, space, 0); } break; case 2: {/* b7 = 1 ? : Write to selected PSG register and write data to PPI Port A */ - ay8910_data_w(ay8910, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]); + ay8910_data_w(ay8910, space, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]); } break; case 3: {/* b6 and b7 = 1 ? : The register will now be selected and the user can read from or write to it. The register will remain selected until another is chosen.*/ - ay8910_address_w(ay8910, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]); + ay8910_address_w(ay8910, space, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]); state->m_prev_reg = state->m_ppi_port_outputs[amstrad_ppi_PortA]; } break; @@ -2832,7 +2832,7 @@ static const UINT8 amstrad_cycle_table_ex[256]= static void amstrad_common_init(running_machine &machine) { amstrad_state *state = machine.driver_data<amstrad_state>(); - address_space *space = state->m_maincpu->space(AS_PROGRAM); + address_space &space = *state->m_maincpu->space(AS_PROGRAM); device_t* romexp; rom_image_device* romimage; char str[20]; @@ -2846,29 +2846,29 @@ static void amstrad_common_init(running_machine &machine) state->m_GateArray_RamConfiguration = 0; state->m_gate_array.hsync_counter = 2; - space->install_read_bank(0x0000, 0x1fff, "bank1"); - space->install_read_bank(0x2000, 0x3fff, "bank2"); + space.install_read_bank(0x0000, 0x1fff, "bank1"); + space.install_read_bank(0x2000, 0x3fff, "bank2"); - space->install_read_bank(0x4000, 0x5fff, "bank3"); - space->install_read_bank(0x6000, 0x7fff, "bank4"); + space.install_read_bank(0x4000, 0x5fff, "bank3"); + space.install_read_bank(0x6000, 0x7fff, "bank4"); - space->install_read_bank(0x8000, 0x9fff, "bank5"); - space->install_read_bank(0xa000, 0xbfff, "bank6"); + space.install_read_bank(0x8000, 0x9fff, "bank5"); + space.install_read_bank(0xa000, 0xbfff, "bank6"); - space->install_read_bank(0xc000, 0xdfff, "bank7"); - space->install_read_bank(0xe000, 0xffff, "bank8"); + space.install_read_bank(0xc000, 0xdfff, "bank7"); + space.install_read_bank(0xe000, 0xffff, "bank8"); - space->install_write_bank(0x0000, 0x1fff, "bank9"); - space->install_write_bank(0x2000, 0x3fff, "bank10"); + space.install_write_bank(0x0000, 0x1fff, "bank9"); + space.install_write_bank(0x2000, 0x3fff, "bank10"); - space->install_write_bank(0x4000, 0x5fff, "bank11"); - space->install_write_bank(0x6000, 0x7fff, "bank12"); + space.install_write_bank(0x4000, 0x5fff, "bank11"); + space.install_write_bank(0x6000, 0x7fff, "bank12"); - space->install_write_bank(0x8000, 0x9fff, "bank13"); - space->install_write_bank(0xa000, 0xbfff, "bank14"); + space.install_write_bank(0x8000, 0x9fff, "bank13"); + space.install_write_bank(0xa000, 0xbfff, "bank14"); - space->install_write_bank(0xc000, 0xdfff, "bank15"); - space->install_write_bank(0xe000, 0xffff, "bank16"); + space.install_write_bank(0xc000, 0xdfff, "bank15"); + space.install_write_bank(0xe000, 0xffff, "bank16"); /* Set up ROMs, if we have an expansion device connected */ romexp = get_expansion_device(machine,"rom"); @@ -2977,7 +2977,7 @@ MACHINE_START_MEMBER(amstrad_state,plus) MACHINE_RESET_MEMBER(amstrad_state,plus) { - address_space *space = m_maincpu->space(AS_PROGRAM); + address_space &space = *m_maincpu->space(AS_PROGRAM); int i; UINT8 *rom = memregion("maincpu")->base(); @@ -3010,10 +3010,10 @@ MACHINE_RESET_MEMBER(amstrad_state,plus) AmstradCPC_GA_SetRamConfiguration(machine()); amstrad_GateArray_write(machine(), 0x081); // Epyx World of Sports requires upper ROM to be enabled by default - space->install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this)); - space->install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this)); - space->install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this)); - space->install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this)); + space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this)); + space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this)); + space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this)); + space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this)); // multiface_init(); machine().scheduler().timer_set( attotime::zero, FUNC(cb_set_resolution)); @@ -3027,7 +3027,7 @@ MACHINE_START_MEMBER(amstrad_state,gx4000) MACHINE_RESET_MEMBER(amstrad_state,gx4000) { - address_space *space = m_maincpu->space(AS_PROGRAM); + address_space &space = *m_maincpu->space(AS_PROGRAM); int i; UINT8 *rom = memregion("maincpu")->base(); @@ -3060,10 +3060,10 @@ MACHINE_RESET_MEMBER(amstrad_state,gx4000) AmstradCPC_GA_SetRamConfiguration(machine()); amstrad_GateArray_write(machine(), 0x081); // Epyx World of Sports requires upper ROM to be enabled by default // multiface_init(); - space->install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this)); - space->install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this)); - space->install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this)); - space->install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this)); + space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this)); + space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this)); + space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this)); + space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this)); machine().scheduler().timer_set( attotime::zero, FUNC(cb_set_resolution)); } diff --git a/src/mess/machine/apollo.c b/src/mess/machine/apollo.c index a2a4993f7ab..8f37bd314e6 100644 --- a/src/mess/machine/apollo.c +++ b/src/mess/machine/apollo.c @@ -369,11 +369,11 @@ static void apollo_dma_ctape_drq(device_t *device, int state) { WRITE8_MEMBER(apollo_state::apollo_dma_1_w){ SLOG1(("apollo_dma_1_w: writing DMA Controller 1 at offset %02x = %02x", offset, data)); - i8237_w(get_device_dma8237_1(&space.device()), offset, data); + i8237_w(get_device_dma8237_1(&space.device()), space, offset, data); } READ8_MEMBER(apollo_state::apollo_dma_1_r){ - UINT8 data = i8237_r(get_device_dma8237_1(&space.device()), offset); + UINT8 data = i8237_r(get_device_dma8237_1(&space.device()), space, offset); SLOG1(("apollo_dma_1_r: reading DMA Controller 1 at offset %02x = %02x", offset, data)); return data; } @@ -384,11 +384,11 @@ READ8_MEMBER(apollo_state::apollo_dma_1_r){ WRITE8_MEMBER(apollo_state::apollo_dma_2_w){ SLOG1(("apollo_dma_2_w: writing DMA Controller 2 at offset %02x = %02x", offset/2, data)); - i8237_w(get_device_dma8237_2(&space.device()), offset / 2, data); + i8237_w(get_device_dma8237_2(&space.device()), space, offset / 2, data); } READ8_MEMBER(apollo_state::apollo_dma_2_r){ - UINT8 data = i8237_r(get_device_dma8237_2(&space.device()), offset / 2); + UINT8 data = i8237_r(get_device_dma8237_2(&space.device()), space, offset / 2); SLOG1(("apollo_dma_2_r: reading DMA Controller 2 at offset %02x = %02x", offset/2, data)); return data; } @@ -526,7 +526,7 @@ static WRITE8_DEVICE_HANDLER( apollo_dma8237_ctape_dack_w ) { } static READ8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_r ) { - UINT8 data = pc_fdc_dack_r(device->machine()); + UINT8 data = pc_fdc_dack_r(device->machine(), space); // DLOG2(("dma fdc dack read %02x",data)); // hack for DN3000: select appropriate DMA channel No. @@ -537,7 +537,7 @@ static READ8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_r ) { static WRITE8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_w ) { // DLOG2(("dma fdc dack write %02x", data)); - pc_fdc_dack_w(device->machine(), data); + pc_fdc_dack_w(device->machine(), space, data); // hack for DN3000: select appropriate DMA channel No. // Note: too late for this byte, but next bytes will be ok @@ -623,11 +623,11 @@ INLINE device_t *get_pic8259_slave(device_t *device) { WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) { DLOG1(("writing %s at offset %X = %02x", device->tag(), offset, data)); - pic8259_w(device, offset, data); + pic8259_w(device, space, offset, data); } READ8_DEVICE_HANDLER( apollo_pic8259_master_r ) { - UINT8 data = pic8259_r(device, offset); + UINT8 data = pic8259_r(device, space, offset); DLOG1(("reading %s at offset %X = %02x", device->tag(), offset, data)); return data; } @@ -638,11 +638,11 @@ READ8_DEVICE_HANDLER( apollo_pic8259_master_r ) { WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w ) { DLOG1(("writing %s at offset %X = %02x", device->tag(), offset, data)); - pic8259_w(device, offset, data); + pic8259_w(device, space, offset, data); } READ8_DEVICE_HANDLER( apollo_pic8259_slave_r ) { - UINT8 data = pic8259_r(device, offset); + UINT8 data = pic8259_r(device, space, offset); DLOG1(("reading %s at offset %X = %02x", device->tag(), offset, data)); return data; } @@ -1026,7 +1026,7 @@ READ8_DEVICE_HANDLER(apollo_sio_r) { "1X/16X Test", "RHRB", "IVR", "Input Ports", "Start Counter", "Stop Counter" }; - int data = duart68681_r(device, offset / 2); + int data = duart68681_r(device, space, offset / 2); if (sio_irq_line) { apollo_pic_set_irq_line(device, APOLLO_IRQ_SIO1, 0); @@ -1089,7 +1089,7 @@ WRITE8_DEVICE_HANDLER(apollo_sio_w) } break; } - duart68681_w(device, offset / 2, data); + duart68681_w(device, space, offset / 2, data); } /*------------------------------------------------- @@ -1106,7 +1106,7 @@ static TIMER_CALLBACK(kbd_timer_callback) #define SRA 0x01 #define SRB 0x09 - if (!(duart68681_r(device, SRB) & 0x02)) + if (!(duart68681_r(device, space, SRB) & 0x02)) { // Channel B FIFO not yet full (STATUS_FIFO_FULL) if (read(STDIN_FILENO, &data, 1) == 1) @@ -1116,7 +1116,7 @@ static TIMER_CALLBACK(kbd_timer_callback) // stop sleeping to reduce CPU usage sio_sleep(0); } - else if (input_from_stdin && (duart68681_r(device, SRB) & 0x0c) == 0x0c) + else if (input_from_stdin && (duart68681_r(device, space, SRB) & 0x0c) == 0x0c) { // we reduce the CPU usage, if SRB is being polled for input // but only as long as the transmitter is empty and ready @@ -1221,7 +1221,7 @@ READ8_DEVICE_HANDLER(apollo_sio2_r) apollo_pic_set_irq_line(device, APOLLO_IRQ_SIO2, 0); - int data = duart68681_r(device, offset / 2); + int data = duart68681_r(device, space, offset / 2); DLOG2(("reading 2681 reg %x (%s) returned %02x", offset, duart68681_reg_read_names[offset/2], data )); @@ -1247,7 +1247,7 @@ WRITE8_DEVICE_HANDLER(apollo_sio2_w) break; } - duart68681_w(device, offset / 2, data); + duart68681_w(device, space, offset / 2, data); } /*------------------------------------------------- diff --git a/src/mess/machine/apollo_kbd.c b/src/mess/machine/apollo_kbd.c index 39c6d92840d..75bdbb06dee 100644 --- a/src/mess/machine/apollo_kbd.c +++ b/src/mess/machine/apollo_kbd.c @@ -98,6 +98,10 @@ void apollo_kbd_device::device_start() m_device = this; LOG1(("start apollo_kbd")); + m_putchar.resolve(apollo_kbd_putchar_cb, *this); + m_has_beeper.resolve(apollo_kbd_has_beeper_cb, *this); + m_is_german.resolve(apollo_kbd_is_german_cb, *this); + m_beeper.start(this); m_mouse.start(this); m_tx_fifo.start(this); @@ -200,8 +204,8 @@ void apollo_kbd_device::beeper::on() int apollo_kbd_device::beeper::keyboard_has_beeper() { - return m_device->apollo_kbd_has_beeper ? - (m_device->apollo_kbd_has_beeper)(m_device, 0) : 0; + return !m_device->m_has_beeper.isnull() ? + m_device->m_has_beeper(0) : 0; } void apollo_kbd_device::beeper::beeper_callback() @@ -395,8 +399,8 @@ void apollo_kbd_device::tx_fifo::flush() { m_tx_pending = 1; - if (m_device->apollo_kbd_putchar) - (m_device->apollo_kbd_putchar)(m_device, 0, getchar()); + if (!m_device->m_putchar.isnull()) + m_device->m_putchar(0, getchar()); // 11 = one start, 8 data, one parity (even), one stop bit m_timer->adjust(attotime::from_hz(m_baud_rate / 11), 0); } @@ -525,8 +529,8 @@ void apollo_kbd_device::keyboard_tty::putchar(UINT8 data) int apollo_kbd_device::keyboard_is_german() { - return apollo_kbd_is_german ? - (*apollo_kbd_is_german)(this, 0) : 0; + return !m_is_german.isnull() ? + m_is_german(0) : 0; } /*------------------------------------------------- diff --git a/src/mess/machine/apollo_kbd.h b/src/mess/machine/apollo_kbd.h index eb8fff90752..7edb0c26235 100644 --- a/src/mess/machine/apollo_kbd.h +++ b/src/mess/machine/apollo_kbd.h @@ -51,9 +51,9 @@ void apollo_kbd_getchar(device_t *device, UINT8 data); struct apollo_kbd_interface { - write8_device_func apollo_kbd_putchar; - read8_device_func apollo_kbd_has_beeper; - read8_device_func apollo_kbd_is_german; + devcb_write8 apollo_kbd_putchar_cb; + devcb_read8 apollo_kbd_has_beeper_cb; + devcb_read8 apollo_kbd_is_german_cb; }; #define APOLLO_KBD_INTERFACE(name) const struct apollo_kbd_interface (name) @@ -192,6 +192,10 @@ private: int m_keytime[0x80]; // time until next key press (1 ms) UINT8 m_keyon[0x80]; // is 1 if key is pressed + devcb_resolved_write8 m_putchar; + devcb_resolved_read8 m_has_beeper; + devcb_resolved_read8 m_is_german; + static UINT16 m_code_table[]; }; diff --git a/src/mess/machine/apple1.c b/src/mess/machine/apple1.c index 34cb7c0db06..a444a672423 100644 --- a/src/mess/machine/apple1.c +++ b/src/mess/machine/apple1.c @@ -54,9 +54,9 @@ static TIMER_CALLBACK(apple1_kbd_poll); static TIMER_CALLBACK(apple1_kbd_strobe_end); -static READ8_DEVICE_HANDLER( apple1_pia0_kbdin ); -static WRITE8_DEVICE_HANDLER( apple1_pia0_dspout ); -static WRITE8_DEVICE_HANDLER( apple1_pia0_dsp_write_signal ); +static DECLARE_READ8_DEVICE_HANDLER( apple1_pia0_kbdin ); +static DECLARE_WRITE8_DEVICE_HANDLER( apple1_pia0_dspout ); +static DECLARE_WRITE8_DEVICE_HANDLER( apple1_pia0_dsp_write_signal ); static TIMER_CALLBACK(apple1_dsp_ready_start); static TIMER_CALLBACK(apple1_dsp_ready_end); diff --git a/src/mess/machine/apple2gs.c b/src/mess/machine/apple2gs.c index 166543cd2d8..87e2edff1c9 100644 --- a/src/mess/machine/apple2gs.c +++ b/src/mess/machine/apple2gs.c @@ -1052,7 +1052,7 @@ READ8_MEMBER( apple2gs_state::apple2gs_c0xx_r ) case 0xe8: case 0xe9: case 0xea: case 0xeb: case 0xec: case 0xed: case 0xee: case 0xef: if ((m_sltromsel & (1 << 6)) == 0) { - result = applefdc_r(m_fdc, offset); + result = applefdc_r(m_fdc, space, offset); } else { @@ -1208,7 +1208,7 @@ WRITE8_MEMBER( apple2gs_state::apple2gs_c0xx_w ) case 0xe8: case 0xe9: case 0xea: case 0xeb: case 0xec: case 0xed: case 0xee: case 0xef: if ((m_sltromsel & (1 << 6)) == 0) { - applefdc_w(m_fdc, offset, data); + applefdc_w(m_fdc, space, offset, data); } else { diff --git a/src/mess/machine/apple3.c b/src/mess/machine/apple3.c index 1c34a3341e1..0f249e1b5f1 100644 --- a/src/mess/machine/apple3.c +++ b/src/mess/machine/apple3.c @@ -171,7 +171,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r) case 0xE4: case 0xE5: case 0xE6: case 0xE7: case 0xE8: case 0xE9: case 0xEA: case 0xEB: case 0xEC: case 0xED: case 0xEE: case 0xEF: - result = applefdc_r(fdc, offset); + result = applefdc_r(fdc, space, offset); break; case 0xF0: @@ -234,7 +234,7 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w) case 0xE4: case 0xE5: case 0xE6: case 0xE7: case 0xE8: case 0xE9: case 0xEA: case 0xEB: case 0xEC: case 0xED: case 0xEE: case 0xEF: - applefdc_w(fdc, offset, data); + applefdc_w(fdc, space, offset, data); break; case 0xF0: diff --git a/src/mess/machine/applefdc.h b/src/mess/machine/applefdc.h index 904d2d54485..d3e2b34dc44 100644 --- a/src/mess/machine/applefdc.h +++ b/src/mess/machine/applefdc.h @@ -102,8 +102,8 @@ struct applefdc_interface PROTOTYPES ***************************************************************************/ /* read/write handlers */ -READ8_DEVICE_HANDLER(applefdc_r); -WRITE8_DEVICE_HANDLER(applefdc_w); +DECLARE_READ8_DEVICE_HANDLER(applefdc_r); +DECLARE_WRITE8_DEVICE_HANDLER(applefdc_w); /* accessor */ UINT8 applefdc_get_lines(device_t *device); diff --git a/src/mess/machine/ataridev.h b/src/mess/machine/ataridev.h index 56d173c2323..214966c4150 100644 --- a/src/mess/machine/ataridev.h +++ b/src/mess/machine/ataridev.h @@ -67,8 +67,8 @@ extern const device_type ATARI_FDC; /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( atari_serin_r ); -WRITE8_DEVICE_HANDLER( atari_serout_w ); +DECLARE_READ8_DEVICE_HANDLER( atari_serin_r ); +DECLARE_WRITE8_DEVICE_HANDLER( atari_serout_w ); WRITE_LINE_DEVICE_HANDLER( atarifdc_pia_cb2_w ); #endif /* _ATARIDEV_H */ diff --git a/src/mess/machine/ay31015.c b/src/mess/machine/ay31015.c index 7a2867895d7..323525edf88 100644 --- a/src/mess/machine/ay31015.c +++ b/src/mess/machine/ay31015.c @@ -112,6 +112,10 @@ struct ay31015_t UINT16 tx_pulses; // total pulses left double tx_clock; emu_timer *tx_timer; + + devcb_resolved_read8 read_si; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */ + devcb_resolved_write8 write_so; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */ + devcb_resolved_write8 status_changed; /* This will be called whenever one of the status pins may have changed. Optional */ }; @@ -148,8 +152,8 @@ INLINE UINT8 ay31015_get_si( device_t *device ) { ay31015_t *ay31015 = get_safe_token( device ); - if ( ay31015->config->read_si ) - ay31015->pins[AY31015_SI] = (ay31015->config->read_si)( device, 0 ) ? 1 : 0; + if ( !ay31015->read_si.isnull() ) + ay31015->pins[AY31015_SI] = ay31015->read_si( 0 ) ? 1 : 0; return ay31015->pins[AY31015_SI]; } @@ -161,8 +165,8 @@ INLINE void ay31015_set_so( device_t *device, int data ) ay31015->pins[AY31015_SO] = data ? 1 : 0; - if ( ay31015->config->write_so ) - (ay31015->config->write_so)( device, 0, ay31015->pins[AY31015_SO] ); + if ( !ay31015->write_so.isnull() ) + ay31015->write_so( 0, ay31015->pins[AY31015_SO] ); } @@ -197,9 +201,9 @@ static void ay31015_update_status_pins( device_t *device ) } status_pins_changed += ay31015_update_status_pin( ay31015, STATUS_EOC, AY31015_EOC ); - if ( status_pins_changed && ay31015->config->status_changed ) + if ( status_pins_changed && !ay31015->status_changed.isnull() ) { - (ay31015->config->status_changed)( device, 0, status_pins_changed ); + ay31015->status_changed( 0, status_pins_changed ); } } @@ -693,6 +697,10 @@ static DEVICE_START(ay31015) ay31015->config = (const ay31015_config*)device->static_config(); + ay31015->read_si.resolve(ay31015->config->read_si_cb, *device); + ay31015->write_so.resolve(ay31015->config->write_so_cb, *device); + ay31015->status_changed.resolve(ay31015->config->status_changed_cb, *device); + ay31015->tx_clock = ay31015->config->transmitter_clock; ay31015->rx_clock = ay31015->config->receiver_clock; diff --git a/src/mess/machine/ay31015.h b/src/mess/machine/ay31015.h index d36d13597ff..3f0c0affdf4 100644 --- a/src/mess/machine/ay31015.h +++ b/src/mess/machine/ay31015.h @@ -54,9 +54,9 @@ struct ay31015_config ay31015_type_t type; /* Type of chip */ double transmitter_clock; /* TCP - pin 40 */ double receiver_clock; /* RCP - pin 17 */ - read8_device_func read_si; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */ - write8_device_func write_so; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */ - write8_device_func status_changed; /* This will be called whenever one of the status pins may have changed. Optional */ + devcb_read8 read_si_cb; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */ + devcb_write8 write_so_cb; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */ + devcb_write8 status_changed_cb; /* This will be called whenever one of the status pins may have changed. Optional */ }; diff --git a/src/mess/machine/bbc.c b/src/mess/machine/bbc.c index be1cd726f84..8dccb8725fc 100644 --- a/src/mess/machine/bbc.c +++ b/src/mess/machine/bbc.c @@ -573,7 +573,7 @@ long myo; return acia->data_read(space,0); } if ((myo>=0x10) && (myo<=0x17)) return 0xfe; /* Serial System Chip */ - if ((myo>=0x18) && (myo<=0x1f)) return uPD7002_r(machine().device("upd7002"), myo-0x18); /* A to D converter */ + if ((myo>=0x18) && (myo<=0x1f)) return uPD7002_r(machine().device("upd7002"), space, myo-0x18); /* A to D converter */ if ((myo>=0x20) && (myo<=0x23)) return 0xfe; /* VideoULA */ if ((myo>=0x24) && (myo<=0x27)) return bbcm_wd1770l_read(space, myo-0x24); /* 1770 */ if ((myo>=0x28) && (myo<=0x2f)) return bbcm_wd1770_read(space, myo-0x28); /* disc control latch */ @@ -583,7 +583,7 @@ long myo; if ((myo>=0x40) && (myo<=0x5f)) return via_0->read(space,myo-0x40); if ((myo>=0x60) && (myo<=0x7f)) return via_1->read(space,myo-0x60); if ((myo>=0x80) && (myo<=0x9f)) return 0xfe; - if ((myo>=0xa0) && (myo<=0xbf)) return mc6854_r(adlc, myo & 0x03); + if ((myo>=0xa0) && (myo<=0xbf)) return mc6854_r(adlc, space, myo & 0x03); if ((myo>=0xc0) && (myo<=0xdf)) return 0xfe; if ((myo>=0xe0) && (myo<=0xff)) return 0xfe; } @@ -613,7 +613,7 @@ long myo; acia->data_write(space, 0, data); } if ((myo>=0x10) && (myo<=0x17)) bbc_SerialULA_w(space, myo-0x10,data); /* Serial System Chip */ - if ((myo>=0x18) && (myo<=0x1f)) uPD7002_w(machine().device("upd7002"),myo-0x18,data); /* A to D converter */ + if ((myo>=0x18) && (myo<=0x1f)) uPD7002_w(machine().device("upd7002"),space,myo-0x18,data); /* A to D converter */ if ((myo>=0x20) && (myo<=0x23)) bbc_videoULA_w(space, myo-0x20,data); /* VideoULA */ if ((myo>=0x24) && (myo<=0x27)) bbcm_wd1770l_write(space, myo-0x24,data); /* 1770 */ if ((myo>=0x28) && (myo<=0x2f)) bbcm_wd1770_write(space, myo-0x28,data); /* disc control latch */ @@ -623,7 +623,7 @@ long myo; if ((myo>=0x40) && (myo<=0x5f)) via_0->write(space,myo-0x40, data); if ((myo>=0x60) && (myo<=0x7f)) via_1->write(space,myo-0x60, data); //if ((myo>=0x80) && (myo<=0x9f)) - if ((myo>=0xa0) && (myo<=0xbf)) mc6854_w(adlc, myo & 0x03, data); + if ((myo>=0xa0) && (myo<=0xbf)) mc6854_w(adlc, space, myo & 0x03, data); //if ((myo>=0xc0) && (myo<=0xdf)) //if ((myo>=0xe0) && (myo<=0xff)) } @@ -814,9 +814,9 @@ INTERRUPT_GEN( bbcm_keyscan ) -static int bbc_keyboard(address_space *space, int data) +static int bbc_keyboard(address_space &space, int data) { - bbc_state *state = space->machine().driver_data<bbc_state>(); + bbc_state *state = space.machine().driver_data<bbc_state>(); int bit; int row; int res; @@ -824,7 +824,7 @@ static int bbc_keyboard(address_space *space, int data) "COL0", "COL1", "COL2", "COL3", "COL4", "COL5", "COL6", "COL7", "COL8", "COL9" }; - via6522_device *via_0 = space->machine().device<via6522_device>("via6522_0"); + via6522_device *via_0 = space.machine().device<via6522_device>("via6522_0"); state->m_column = data & 0x0f; row = (data>>4) & 0x07; @@ -833,7 +833,7 @@ static int bbc_keyboard(address_space *space, int data) if (state->m_column < 10) { - res = space->machine().root_device().ioport(colnames[state->m_column])->read(); + res = space.machine().root_device().ioport(colnames[state->m_column])->read(); } else { @@ -874,11 +874,11 @@ static void bbcb_IC32_initialise(bbc_state *state) /* This the BBC Masters Real Time Clock and NVRam IC */ -static void MC146818_set(address_space *space) +static void MC146818_set(address_space &space) { - bbc_state *state = space->machine().driver_data<bbc_state>(); + bbc_state *state = space.machine().driver_data<bbc_state>(); logerror ("146181 WR=%d DS=%d AS=%d CE=%d \n",state->m_MC146818_WR,state->m_MC146818_DS,state->m_MC146818_AS,state->m_MC146818_CE); - mc146818_device *rtc = space->machine().device<mc146818_device>("rtc"); + mc146818_device *rtc = space.machine().device<mc146818_device>("rtc"); // if chip enabled if (state->m_MC146818_CE) @@ -888,12 +888,12 @@ static void MC146818_set(address_space *space) { if (state->m_MC146818_WR) { - state->m_via_system_porta=rtc->read(*space, 1); + state->m_via_system_porta=rtc->read(space, 1); //logerror("read 146818 data %d \n",state->m_via_system_porta); } else { - rtc->write(*space, 1, state->m_via_system_porta); + rtc->write(space, 1, state->m_via_system_porta); //logerror("write 146818 data %d \n",state->m_via_system_porta); } } @@ -901,7 +901,7 @@ static void MC146818_set(address_space *space) // if address select is set then set the address in the 146818 if (state->m_MC146818_AS) { - rtc->write(*space, 0, state->m_via_system_porta); + rtc->write(space, 0, state->m_via_system_porta); //logerror("write 146818 address %d \n",state->m_via_system_porta); } } @@ -911,14 +911,13 @@ static void MC146818_set(address_space *space) static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_porta ) { bbc_state *state = device->machine().driver_data<bbc_state>(); - address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM); //logerror("SYSTEM write porta %d\n",data); state->m_via_system_porta = data; if (state->m_b0_sound == 0) { //logerror("Doing an unsafe write to the sound chip %d \n",data); - state->m_sn->write(*device->machine().device<legacy_cpu_device>("maincpu")->space(), 0,state->m_via_system_porta); + state->m_sn->write(space, 0,state->m_via_system_porta); } if (state->m_b3_keyboard == 0) { @@ -932,7 +931,6 @@ static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_porta ) static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_portb ) { bbc_state *state = device->machine().driver_data<bbc_state>(); - address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM); int bit, value; bit = data & 0x07; value = (data >> 3) & 0x01; @@ -1030,7 +1028,7 @@ static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_portb ) if (state->m_b0_sound == 1) { state->m_b0_sound = 0; - state->m_sn->write(*device->machine().device<legacy_cpu_device>("maincpu")->space(), 0, state->m_via_system_porta); + state->m_sn->write(space, 0, state->m_via_system_porta); } break; case 1: @@ -1176,7 +1174,7 @@ static READ8_DEVICE_HANDLER( bbcb_via_system_read_ca1 ) /* joystick EOC */ static READ8_DEVICE_HANDLER( bbcb_via_system_read_cb1 ) { - return uPD7002_EOC_r(device->machine().device("upd7002"),0); + return uPD7002_EOC_r(device->machine().device("upd7002"),space,0); } @@ -1453,11 +1451,11 @@ READ8_MEMBER(bbc_state::bbc_i8271_read) case 2: case 3: /* 8271 registers */ - ret=i8271_r(i8271, offset); + ret=i8271_r(i8271, space, offset); logerror(" %d\n",ret); break; case 4: - ret=i8271_data_r(i8271, offset); + ret=i8271_data_r(i8271, space, offset); logerror(" %d\n",ret); break; default: @@ -1480,10 +1478,10 @@ WRITE8_MEMBER(bbc_state::bbc_i8271_write) case 2: case 3: /* 8271 registers */ - i8271_w(i8271, offset, data); + i8271_w(i8271, space, offset, data); return; case 4: - i8271_data_w(i8271, offset, data); + i8271_data_w(i8271, space, offset, data); return; default: break; @@ -1617,16 +1615,16 @@ READ8_MEMBER(bbc_state::bbc_wd1770_read) switch (offset) { case 4: - retval=wd17xx_status_r(fdc, 0); + retval=wd17xx_status_r(fdc, space, 0); break; case 5: - retval=wd17xx_track_r(fdc, 0); + retval=wd17xx_track_r(fdc, space, 0); break; case 6: - retval=wd17xx_sector_r(fdc, 0); + retval=wd17xx_sector_r(fdc, space, 0); break; case 7: - retval=wd17xx_data_r(fdc, 0); + retval=wd17xx_data_r(fdc, space, 0); break; default: break; @@ -1646,16 +1644,16 @@ WRITE8_MEMBER(bbc_state::bbc_wd1770_write) bbc_wd177x_status_w(space, 0, data); break; case 4: - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 5: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 6: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 7: - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; default: break; @@ -1730,13 +1728,13 @@ READ8_MEMBER(bbc_state::bbc_opus_read) switch (offset) { case 0xf8: - return wd17xx_status_r(fdc, 0); + return wd17xx_status_r(fdc, space, 0); case 0xf9: - return wd17xx_track_r(fdc, 0); + return wd17xx_track_r(fdc, space, 0); case 0xfa: - return wd17xx_sector_r(fdc, 0); + return wd17xx_sector_r(fdc, space, 0); case 0xfb: - return wd17xx_data_r(fdc, 0); + return wd17xx_data_r(fdc, space, 0); } } @@ -1760,16 +1758,16 @@ WRITE8_MEMBER(bbc_state::bbc_opus_write) switch (offset) { case 0xf8: - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 0xf9: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 0xfa: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 0xfb: - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; case 0xfc: bbc_opus_status_w(space, 0,data); @@ -1802,16 +1800,16 @@ READ8_MEMBER(bbc_state::bbcm_wd1770_read) switch (offset) { case 0: - retval=wd17xx_status_r(fdc, 0); + retval=wd17xx_status_r(fdc, space, 0); break; case 1: - retval=wd17xx_track_r(fdc, 0); + retval=wd17xx_track_r(fdc, space, 0); break; case 2: - retval=wd17xx_sector_r(fdc, 0); + retval=wd17xx_sector_r(fdc, space, 0); break; case 3: - retval=wd17xx_data_r(fdc, 0); + retval=wd17xx_data_r(fdc, space, 0); break; default: break; @@ -1827,16 +1825,16 @@ WRITE8_MEMBER(bbc_state::bbcm_wd1770_write) switch (offset) { case 0: - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 1: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 2: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 3: - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; default: break; diff --git a/src/mess/machine/bebox.c b/src/mess/machine/bebox.c index 2e9cbb23ef9..817fcf39e0d 100644 --- a/src/mess/machine/bebox.c +++ b/src/mess/machine/bebox.c @@ -696,12 +696,12 @@ static WRITE8_HANDLER( bebox_dma_write_byte ) static READ8_DEVICE_HANDLER( bebox_dma8237_fdc_dack_r ) { - return pc_fdc_dack_r(device->machine()); + return pc_fdc_dack_r(device->machine(),space); } static WRITE8_DEVICE_HANDLER( bebox_dma8237_fdc_dack_w ) { - pc_fdc_dack_w( device->machine(), data ); + pc_fdc_dack_w( device->machine(), space, data ); } diff --git a/src/mess/machine/beta.c b/src/mess/machine/beta.c index 5731c7d84ef..1207732f86f 100644 --- a/src/mess/machine/beta.c +++ b/src/mess/machine/beta.c @@ -99,7 +99,7 @@ READ8_DEVICE_HANDLER(betadisk_status_r) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - return wd17xx_status_r(beta->wd179x, offset); + return wd17xx_status_r(beta->wd179x, space, offset); } else { return 0xff; } @@ -110,7 +110,7 @@ READ8_DEVICE_HANDLER(betadisk_track_r) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - return wd17xx_track_r(beta->wd179x, offset); + return wd17xx_track_r(beta->wd179x, space, offset); } else { return 0xff; } @@ -121,7 +121,7 @@ READ8_DEVICE_HANDLER(betadisk_sector_r) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - return wd17xx_sector_r(beta->wd179x, offset); + return wd17xx_sector_r(beta->wd179x, space, offset); } else { return 0xff; } @@ -133,7 +133,7 @@ READ8_DEVICE_HANDLER(betadisk_data_r) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - return wd17xx_data_r(beta->wd179x, offset); + return wd17xx_data_r(beta->wd179x, space, offset); } else { return 0xff; } @@ -171,7 +171,7 @@ WRITE8_DEVICE_HANDLER(betadisk_command_w) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - wd17xx_command_w(beta->wd179x, offset, data); + wd17xx_command_w(beta->wd179x, space, offset, data); } } @@ -180,7 +180,7 @@ WRITE8_DEVICE_HANDLER(betadisk_track_w) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - wd17xx_track_w(beta->wd179x, offset, data); + wd17xx_track_w(beta->wd179x, space, offset, data); } } @@ -189,7 +189,7 @@ WRITE8_DEVICE_HANDLER(betadisk_sector_w) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - wd17xx_sector_w(beta->wd179x, offset, data); + wd17xx_sector_w(beta->wd179x, space, offset, data); } } @@ -198,7 +198,7 @@ WRITE8_DEVICE_HANDLER(betadisk_data_w) beta_disk_state *beta = get_safe_token(device); if (beta->betadisk_active==1) { - wd17xx_data_w(beta->wd179x, offset, data); + wd17xx_data_w(beta->wd179x, space, offset, data); } } diff --git a/src/mess/machine/beta.h b/src/mess/machine/beta.h index d8e390adccc..fec406675a9 100644 --- a/src/mess/machine/beta.h +++ b/src/mess/machine/beta.h @@ -47,15 +47,15 @@ extern const device_type BETA_DISK; #define MCFG_BETA_DISK_REMOVE(_tag) \ MCFG_DEVICE_REMOVE(_tag) -READ8_DEVICE_HANDLER(betadisk_status_r); -READ8_DEVICE_HANDLER(betadisk_track_r); -READ8_DEVICE_HANDLER(betadisk_sector_r); -READ8_DEVICE_HANDLER(betadisk_data_r); -READ8_DEVICE_HANDLER(betadisk_state_r); - -WRITE8_DEVICE_HANDLER(betadisk_param_w); -WRITE8_DEVICE_HANDLER(betadisk_command_w); -WRITE8_DEVICE_HANDLER(betadisk_track_w); -WRITE8_DEVICE_HANDLER(betadisk_sector_w); -WRITE8_DEVICE_HANDLER(betadisk_data_w); +DECLARE_READ8_DEVICE_HANDLER(betadisk_status_r); +DECLARE_READ8_DEVICE_HANDLER(betadisk_track_r); +DECLARE_READ8_DEVICE_HANDLER(betadisk_sector_r); +DECLARE_READ8_DEVICE_HANDLER(betadisk_data_r); +DECLARE_READ8_DEVICE_HANDLER(betadisk_state_r); + +DECLARE_WRITE8_DEVICE_HANDLER(betadisk_param_w); +DECLARE_WRITE8_DEVICE_HANDLER(betadisk_command_w); +DECLARE_WRITE8_DEVICE_HANDLER(betadisk_track_w); +DECLARE_WRITE8_DEVICE_HANDLER(betadisk_sector_w); +DECLARE_WRITE8_DEVICE_HANDLER(betadisk_data_w); #endif /* __BETA_H__ */ diff --git a/src/mess/machine/c128.c b/src/mess/machine/c128.c index 809efae4107..3132ee108e0 100644 --- a/src/mess/machine/c128.c +++ b/src/mess/machine/c128.c @@ -126,7 +126,7 @@ void c128_state::nmi() READ8_MEMBER( c128_state::cia1_pa_r ) { - UINT8 cia0portb = mos6526_pb_r(m_cia1, 0); + UINT8 cia0portb = mos6526_pb_r(m_cia1, space, 0); return cbm_common_cia0_port_a_r(m_cia1, cia0portb); } @@ -134,7 +134,7 @@ READ8_MEMBER( c128_state::cia1_pa_r ) READ8_MEMBER( c128_state::cia1_pb_r ) { UINT8 value = 0xff; - UINT8 cia0porta = mos6526_pa_r(m_cia1, 0); + UINT8 cia0porta = mos6526_pa_r(m_cia1, space, 0); //vic2e_device_interface *intf = dynamic_cast<vic2e_device_interface*>(&m_vic); value &= cbm_common_cia0_port_b_r(m_cia1, cia0porta); @@ -370,10 +370,10 @@ WRITE8_MEMBER( c128_state::write_d000 ) m_colorram[(offset & 0x3ff)|((c64_port6510&3)<<10)] = data | 0xf0; // maybe all 8 bit connected! break; case 0xc: - mos6526_w(m_cia1, offset, data); + mos6526_w(m_cia1, space, offset, data); break; case 0xd: - mos6526_w(m_cia2, offset, data); + mos6526_w(m_cia2, space, offset, data); break; case 0xf: dma8726_port_w(space, offset&0xff,data); @@ -405,17 +405,17 @@ READ8_MEMBER( c128_state::read_io ) else if (offset == 0xc00) { cia_set_port_mask_value(m_cia1, 0, ioport("CTRLSEL")->read() & 0x80 ? c64_keyline[8] : c64_keyline[9] ); - return mos6526_r(m_cia1, offset); + return mos6526_r(m_cia1, space, offset); } else if (offset == 0xc01) { cia_set_port_mask_value(m_cia1, 1, ioport("CTRLSEL")->read() & 0x80 ? c64_keyline[9] : c64_keyline[8] ); - return mos6526_r(m_cia1, offset); + return mos6526_r(m_cia1, space, offset); } else if (offset < 0xd00) - return mos6526_r(m_cia1, offset); + return mos6526_r(m_cia1, space, offset); else if (offset < 0xe00) - return mos6526_r(m_cia2, offset); + return mos6526_r(m_cia2, space, offset); else if ((offset >= 0xf00) & (offset <= 0xfff)) return dma8726_port_r(space, offset&0xff); DBG_LOG(machine(), 1, "io read", ("%.3x\n", offset)); diff --git a/src/mess/machine/c1551.c b/src/mess/machine/c1551.c index 5560de15b3c..c63a3399a5d 100644 --- a/src/mess/machine/c1551.c +++ b/src/mess/machine/c1551.c @@ -579,7 +579,7 @@ UINT8 c1551_device::plus4_cd_r(address_space &space, offs_t offset, UINT8 data, if (tpi1_selected(offset)) { - data = tpi6525_r(m_tpi1, offset & 0x07); + data = tpi6525_r(m_tpi1, space, offset & 0x07); } return data; @@ -594,7 +594,7 @@ void c1551_device::plus4_cd_w(address_space &space, offs_t offset, UINT8 data, i { if (tpi1_selected(offset)) { - tpi6525_w(m_tpi1, offset & 0x07, data); + tpi6525_w(m_tpi1, space, offset & 0x07, data); } m_exp->cd_w(space, offset, data, ba, cs0, c1l, c2l, cs1, c1h, c2h); diff --git a/src/mess/machine/c64.c b/src/mess/machine/c64.c index 08c066abe56..c47cdafc0e6 100644 --- a/src/mess/machine/c64.c +++ b/src/mess/machine/c64.c @@ -80,14 +80,14 @@ static void c64_nmi( running_machine &machine ) static READ8_DEVICE_HANDLER( c64_cia0_port_a_r ) { - UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), 0); + UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), space, 0); return cbm_common_cia0_port_a_r(device, cia0portb); } static READ8_DEVICE_HANDLER( c64_cia0_port_b_r ) { - UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), 0); + UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), space, 0); return cbm_common_cia0_port_b_r(device, cia0porta); } @@ -256,17 +256,17 @@ WRITE8_HANDLER( c64_write_io ) state->m_io_mirror[offset] = data; if (offset < 0x400) - vic2_port_w(vic2, offset & 0x3ff, data); + vic2_port_w(vic2, *space, offset & 0x3ff, data); else if (offset < 0x800) sid->write(*space, offset & 0x3ff, data); else if (offset < 0xc00) state->m_colorram[offset & 0x3ff] = data | 0xf0; else if (offset < 0xd00) - mos6526_w(cia_0, offset, data); + mos6526_w(cia_0, *space, offset, data); else if (offset < 0xe00) { if (state->m_cia1_on) - mos6526_w(cia_1, offset, data); + mos6526_w(cia_1, *space, offset, data); else DBG_LOG(space->machine(), 1, "io write", ("%.3x %.2x\n", offset, data)); } @@ -294,7 +294,7 @@ READ8_HANDLER( c64_read_io ) device_t *vic2 = space->machine().device("vic2"); if (offset < 0x400) - return vic2_port_r(vic2, offset & 0x3ff); + return vic2_port_r(vic2, *space, offset & 0x3ff); else if (offset < 0x800) return sid->read(*space, offset & 0x3ff); @@ -309,11 +309,11 @@ READ8_HANDLER( c64_read_io ) else cia_set_port_mask_value(cia_0, 0, state->ioport("CTRLSEL")->read() & 0x80 ? c64_keyline[8] : c64_keyline[9] ); - return mos6526_r(cia_0, offset); + return mos6526_r(cia_0, *space, offset); } else if (state->m_cia1_on && (offset < 0xe00)) - return mos6526_r(cia_1, offset); + return mos6526_r(cia_1, *space, offset); DBG_LOG(space->machine(), 1, "io read", ("%.3x\n", offset)); @@ -611,11 +611,11 @@ READ8_DEVICE_HANDLER(c64_m6510_port_read) } -int c64_paddle_read( device_t *device, int which ) +int c64_paddle_read( device_t *device, address_space &space, int which ) { running_machine &machine = device->machine(); int pot1 = 0xff, pot2 = 0xff, pot3 = 0xff, pot4 = 0xff, temp; - UINT8 cia0porta = mos6526_pa_r(machine.device("cia_0"), 0); + UINT8 cia0porta = mos6526_pa_r(machine.device("cia_0"), space, 0); int controller1 = machine.root_device().ioport("CTRLSEL")->read() & 0x07; int controller2 = machine.root_device().ioport("CTRLSEL")->read() & 0x70; /* Notice that only a single input is defined for Mouse & Lightpen in both ports */ diff --git a/src/mess/machine/c64_currah_speech.c b/src/mess/machine/c64_currah_speech.c index fb22143ffda..69f02ba7b73 100644 --- a/src/mess/machine/c64_currah_speech.c +++ b/src/mess/machine/c64_currah_speech.c @@ -264,6 +264,6 @@ void c64_currah_speech_cartridge_device::c64_cd_w(address_space &space, offs_t o set_osc1(voice, intonation); - sp0256_ALD_w(m_nsp, 0, data & 0x3f); + sp0256_ALD_w(m_nsp, space, 0, data & 0x3f); } } diff --git a/src/mess/machine/c64_ieee488.c b/src/mess/machine/c64_ieee488.c index d5fef41b183..4184c88bb62 100644 --- a/src/mess/machine/c64_ieee488.c +++ b/src/mess/machine/c64_ieee488.c @@ -290,7 +290,7 @@ UINT8 c64_ieee488_device::c64_cd_r(address_space &space, offs_t offset, UINT8 da } else if (!io2) { - data |= tpi6525_r(m_tpi, offset & 0x07); + data |= tpi6525_r(m_tpi, space, offset & 0x07); } return data; @@ -305,7 +305,7 @@ void c64_ieee488_device::c64_cd_w(address_space &space, offs_t offset, UINT8 dat { if (!io2) { - tpi6525_w(m_tpi, offset & 0x07, data); + tpi6525_w(m_tpi, space, offset & 0x07, data); } m_exp->cd_w(space, offset, data, ba, roml, romh, io1, io2); diff --git a/src/mess/machine/c64_sfx_sound_expander.c b/src/mess/machine/c64_sfx_sound_expander.c index 2b9b79e65f7..f282b224e59 100644 --- a/src/mess/machine/c64_sfx_sound_expander.c +++ b/src/mess/machine/c64_sfx_sound_expander.c @@ -257,7 +257,7 @@ UINT8 c64_sfx_sound_expander_cartridge_device::c64_cd_r(address_space &space, of } else if (BIT(offset, 5)) { - data = ym3526_r(m_opl, BIT(offset, 4)); + data = ym3526_r(m_opl, space, BIT(offset, 4)); } } @@ -273,7 +273,7 @@ void c64_sfx_sound_expander_cartridge_device::c64_cd_w(address_space &space, off { if (!io2 && BIT(offset, 5)) { - ym3526_w(m_opl, BIT(offset, 4), data); + ym3526_w(m_opl, space, BIT(offset, 4), data); } m_exp->cd_w(space, offset, data, ba, roml, romh, io1, io2); diff --git a/src/mess/machine/c65.c b/src/mess/machine/c65.c index 387bd72b95a..8e8a76f9eac 100644 --- a/src/mess/machine/c65.c +++ b/src/mess/machine/c65.c @@ -72,7 +72,7 @@ static void c65_nmi( running_machine &machine ) static READ8_DEVICE_HANDLER( c65_cia0_port_a_r ) { - UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), 0); + UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), space, 0); return cbm_common_cia0_port_a_r(device, cia0portb); } @@ -81,7 +81,7 @@ static READ8_DEVICE_HANDLER( c65_cia0_port_b_r ) { c65_state *state = device->machine().driver_data<c65_state>(); UINT8 value = 0xff; - UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), 0); + UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), space, 0); value &= cbm_common_cia0_port_b_r(device, cia0porta); @@ -654,7 +654,7 @@ static WRITE8_HANDLER( c65_write_io ) { case 0x000: if (offset < 0x80) - vic3_port_w(vic3, offset & 0x7f, data); + vic3_port_w(vic3, *space, offset & 0x7f, data); else if (offset < 0xa0) c65_fdc_w(space->machine(), offset&0x1f,data); else @@ -666,7 +666,7 @@ static WRITE8_HANDLER( c65_write_io ) case 0x100: case 0x200: case 0x300: - vic3_palette_w(vic3, offset - 0x100, data); + vic3_palette_w(vic3, *space, offset - 0x100, data); break; case 0x400: if (offset<0x420) /* maybe 0x20 */ @@ -696,10 +696,10 @@ static WRITE8_HANDLER( c65_write_io_dc00 ) switch (offset & 0xf00) { case 0x000: - mos6526_w(cia_0, offset, data); + mos6526_w(cia_0, *space, offset, data); break; case 0x100: - mos6526_w(cia_1, offset, data); + mos6526_w(cia_1, *space, offset, data); break; case 0x200: case 0x300: @@ -718,7 +718,7 @@ static READ8_HANDLER( c65_read_io ) { case 0x000: if (offset < 0x80) - return vic3_port_r(vic3, offset & 0x7f); + return vic3_port_r(vic3, *space, offset & 0x7f); if (offset < 0xa0) return c65_fdc_r(space->machine(), offset&0x1f); else @@ -759,9 +759,9 @@ static READ8_HANDLER( c65_read_io_dc00 ) switch (offset & 0x300) { case 0x000: - return mos6526_r(cia_0, offset); + return mos6526_r(cia_0, *space, offset); case 0x100: - return mos6526_r(cia_1, offset); + return mos6526_r(cia_1, *space, offset); case 0x200: case 0x300: DBG_LOG(space->machine(), 1, "io read", ("%.3x\n", offset+0xc00)); diff --git a/src/mess/machine/cgenie.c b/src/mess/machine/cgenie.c index 5ffa4d308de..fa651d64d23 100644 --- a/src/mess/machine/cgenie.c +++ b/src/mess/machine/cgenie.c @@ -19,8 +19,8 @@ #include "machine/ram.h" #define AYWriteReg(chip,port,value) \ - ay8910_address_w(ay8910, 0,port); \ - ay8910_data_w(ay8910, 0,value) + ay8910_address_w(ay8910, *space, 0,port); \ + ay8910_data_w(ay8910, *space, 0,value) #define TAPE_HEADER "Colour Genie - Virtual Tape File" @@ -336,7 +336,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w ) /* If the floppy isn't emulated, return 0 */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return 0; - return wd17xx_status_r(fdc, offset); + return wd17xx_status_r(fdc, *space, offset); } READ8_HANDLER( cgenie_track_r ) @@ -345,7 +345,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w ) /* If the floppy isn't emulated, return 0xff */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return 0xff; - return wd17xx_track_r(fdc, offset); + return wd17xx_track_r(fdc, *space, offset); } READ8_HANDLER( cgenie_sector_r ) @@ -354,7 +354,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w ) /* If the floppy isn't emulated, return 0xff */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return 0xff; - return wd17xx_sector_r(fdc, offset); + return wd17xx_sector_r(fdc, *space, offset); } READ8_HANDLER(cgenie_data_r ) @@ -363,7 +363,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w ) /* If the floppy isn't emulated, return 0xff */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return 0xff; - return wd17xx_data_r(fdc, offset); + return wd17xx_data_r(fdc, *space, offset); } WRITE8_HANDLER( cgenie_command_w ) @@ -372,7 +372,7 @@ WRITE8_HANDLER( cgenie_command_w ) /* If the floppy isn't emulated, return immediately */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return; - wd17xx_command_w(fdc, offset, data); + wd17xx_command_w(fdc, *space, offset, data); } WRITE8_HANDLER( cgenie_track_w ) @@ -381,7 +381,7 @@ WRITE8_HANDLER( cgenie_track_w ) /* If the floppy isn't emulated, ignore the write */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return; - wd17xx_track_w(fdc, offset, data); + wd17xx_track_w(fdc, *space, offset, data); } WRITE8_HANDLER( cgenie_sector_w ) @@ -390,7 +390,7 @@ WRITE8_HANDLER( cgenie_sector_w ) /* If the floppy isn't emulated, ignore the write */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return; - wd17xx_sector_w(fdc, offset, data); + wd17xx_sector_w(fdc, *space, offset, data); } WRITE8_HANDLER( cgenie_data_w ) @@ -399,7 +399,7 @@ WRITE8_HANDLER( cgenie_data_w ) /* If the floppy isn't emulated, ignore the write */ if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 ) return; - wd17xx_data_w(fdc, offset, data); + wd17xx_data_w(fdc, *space, offset, data); } READ8_HANDLER( cgenie_irq_status_r ) @@ -614,5 +614,5 @@ WRITE8_DEVICE_HANDLER( cgenie_sh_control_port_w ) { cgenie_state *state = device->machine().driver_data<cgenie_state>(); state->m_control_port = data; - ay8910_address_w(device, offset, data); + ay8910_address_w(device, space, offset, data); } diff --git a/src/mess/machine/coco_fdc.c b/src/mess/machine/coco_fdc.c index 12cd073d604..27689ecf63a 100644 --- a/src/mess/machine/coco_fdc.c +++ b/src/mess/machine/coco_fdc.c @@ -346,16 +346,16 @@ READ8_MEMBER(coco_fdc_device::read) switch(offset & 0xEF) { case 8: - result = wd17xx_status_r(m_wd17xx, 0); + result = wd17xx_status_r(m_wd17xx, space, 0); break; case 9: - result = wd17xx_track_r(m_wd17xx, 0); + result = wd17xx_track_r(m_wd17xx, space, 0); break; case 10: - result = wd17xx_sector_r(m_wd17xx, 0); + result = wd17xx_sector_r(m_wd17xx, space, 0); break; case 11: - result = wd17xx_data_r(m_wd17xx, 0); + result = wd17xx_data_r(m_wd17xx, space, 0); break; } @@ -369,17 +369,17 @@ READ8_MEMBER(coco_fdc_device::read) case 0x38: /* FF78 */ if (real_time_clock() == RTC_CLOUD9) - ds1315_r_0(m_ds1315, offset); + ds1315_r_0(m_ds1315, space, offset); break; case 0x39: /* FF79 */ if (real_time_clock() == RTC_CLOUD9) - ds1315_r_1(m_ds1315, offset); + ds1315_r_1(m_ds1315, space, offset); break; case 0x3C: /* FF7C */ if (real_time_clock() == RTC_CLOUD9) - result = ds1315_r_data(m_ds1315, offset); + result = ds1315_r_data(m_ds1315, space, offset); break; } return result; @@ -400,16 +400,16 @@ WRITE8_MEMBER(coco_fdc_device::write) dskreg_w(data); break; case 8: - wd17xx_command_w(m_wd17xx, 0, data); + wd17xx_command_w(m_wd17xx, space, 0, data); break; case 9: - wd17xx_track_w(m_wd17xx, 0, data); + wd17xx_track_w(m_wd17xx, space, 0, data); break; case 10: - wd17xx_sector_w(m_wd17xx, 0, data); + wd17xx_sector_w(m_wd17xx, space, 0, data); break; case 11: - wd17xx_data_w(m_wd17xx, 0, data); + wd17xx_data_w(m_wd17xx, space, 0, data); break; }; @@ -560,16 +560,16 @@ READ8_MEMBER(dragon_fdc_device::read) switch(offset & 0xEF) { case 0: - result = wd17xx_status_r(m_wd17xx, 0); + result = wd17xx_status_r(m_wd17xx, space, 0); break; case 1: - result = wd17xx_track_r(m_wd17xx, 0); + result = wd17xx_track_r(m_wd17xx, space, 0); break; case 2: - result = wd17xx_sector_r(m_wd17xx, 0); + result = wd17xx_sector_r(m_wd17xx, space, 0); break; case 3: - result = wd17xx_data_r(m_wd17xx, 0); + result = wd17xx_data_r(m_wd17xx, space, 0); break; } return result; @@ -586,7 +586,7 @@ WRITE8_MEMBER(dragon_fdc_device::write) switch(offset & 0xEF) { case 0: - wd17xx_command_w(m_wd17xx, 0, data); + wd17xx_command_w(m_wd17xx, space, 0, data); /* disk head is encoded in the command byte */ /* Only for type 3 & 4 commands */ @@ -594,13 +594,13 @@ WRITE8_MEMBER(dragon_fdc_device::write) wd17xx_set_side(m_wd17xx, (data & 0x02) ? 1 : 0); break; case 1: - wd17xx_track_w(m_wd17xx, 0, data); + wd17xx_track_w(m_wd17xx, space, 0, data); break; case 2: - wd17xx_sector_w(m_wd17xx, 0, data); + wd17xx_sector_w(m_wd17xx, space, 0, data); break; case 3: - wd17xx_data_w(m_wd17xx, 0, data); + wd17xx_data_w(m_wd17xx, space, 0, data); break; case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: diff --git a/src/mess/machine/compis.c b/src/mess/machine/compis.c index da2a5614648..697fa583b6b 100644 --- a/src/mess/machine/compis.c +++ b/src/mess/machine/compis.c @@ -214,7 +214,7 @@ READ16_MEMBER( compis_state::compis_fdc_dack_r ) /* DMA acknowledge if iSBX-218A has DMA enabled */ if (ioport("DSW1")->read()) { - data = upd765_dack_r(m_fdc, 0); + data = upd765_dack_r(m_fdc, space, 0); } return data; @@ -225,7 +225,7 @@ WRITE8_MEMBER( compis_state::compis_fdc_w ) switch(offset) { case 2: - upd765_data_w(m_fdc, 0, data); + upd765_data_w(m_fdc, space, 0, data); break; default: printf("FDC Unknown Port Write %04X = %04X\n", offset, data); @@ -240,10 +240,10 @@ READ8_MEMBER( compis_state::compis_fdc_r ) switch(offset) { case 0: - data = upd765_status_r(m_fdc, 0); + data = upd765_status_r(m_fdc, space, 0); break; case 2: - data = upd765_data_r(m_fdc, 0); + data = upd765_data_r(m_fdc, space, 0); break; default: printf("FDC Unknown Port Read %04X\n", offset); @@ -347,12 +347,12 @@ const struct pit8253_config compis_pit8254_config = READ16_MEMBER( compis_state::compis_osp_pit_r ) { - return pit8253_r(m_8254, offset); + return pit8253_r(m_8254, space, offset); } WRITE16_MEMBER( compis_state::compis_osp_pit_w ) { - pit8253_w(m_8254, offset, data); + pit8253_w(m_8254, space, offset, data); } diff --git a/src/mess/machine/comx_fd.c b/src/mess/machine/comx_fd.c index ed803070c49..5ff3d318d75 100644 --- a/src/mess/machine/comx_fd.c +++ b/src/mess/machine/comx_fd.c @@ -275,7 +275,7 @@ UINT8 comx_fd_device::comx_io_r(offs_t offset) } else { - data = wd17xx_r(m_fdc, m_addr); + data = wd17xx_r(m_fdc, machine().driver_data()->generic_space(), m_addr); } } @@ -326,7 +326,7 @@ void comx_fd_device::comx_io_w(offs_t offset, UINT8 data) else { // write data to WD1770 - wd17xx_w(m_fdc, m_addr, data); + wd17xx_w(m_fdc, machine().driver_data()->generic_space(), m_addr, data); } } } diff --git a/src/mess/machine/concept.c b/src/mess/machine/concept.c index 89c491fb4ae..21fa573bb55 100644 --- a/src/mess/machine/concept.c +++ b/src/mess/machine/concept.c @@ -39,11 +39,11 @@ enum /*static int ready;*/ /* ready line from monochip, role unknown */ /* Via */ -static READ8_DEVICE_HANDLER(via_in_a); -static WRITE8_DEVICE_HANDLER(via_out_a); -static READ8_DEVICE_HANDLER(via_in_b); -static WRITE8_DEVICE_HANDLER(via_out_b); -static WRITE8_DEVICE_HANDLER(via_out_cb2); +static DECLARE_READ8_DEVICE_HANDLER(via_in_a); +static DECLARE_WRITE8_DEVICE_HANDLER(via_out_a); +static DECLARE_READ8_DEVICE_HANDLER(via_in_b); +static DECLARE_WRITE8_DEVICE_HANDLER(via_out_b); +static DECLARE_WRITE8_DEVICE_HANDLER(via_out_cb2); static void via_irq_func(device_t *device, int state); @@ -312,7 +312,7 @@ READ16_MEMBER(concept_state::concept_io_r) /* calendar R/W */ VLOG(("concept_io_r: Calendar read at address 0x03%4.4x\n", offset << 1)); if (!m_clock_enable) - return mm58274c_r(machine().device("mm58274c"), m_clock_address); + return mm58274c_r(machine().device("mm58274c"), space, m_clock_address); break; case 7: @@ -454,7 +454,7 @@ WRITE16_MEMBER(concept_state::concept_io_w) /* calendar R/W */ LOG(("concept_io_w: Calendar written to at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data)); if (!m_clock_enable) - mm58274c_w(machine().device("mm58274c"), m_clock_address, data & 0xf); + mm58274c_w(machine().device("mm58274c"), space, m_clock_address, data & 0xf); break; case 7: @@ -599,19 +599,19 @@ static READ8_HANDLER(concept_fdc_reg_r) case 8: /* FDC STATUS REG */ - return wd17xx_status_r(fdc, offset); + return wd17xx_status_r(fdc, *space, offset); case 9: /* FDC TRACK REG */ - return wd17xx_track_r(fdc, offset); + return wd17xx_track_r(fdc, *space, offset); case 10: /* FDC SECTOR REG */ - return wd17xx_sector_r(fdc, offset); + return wd17xx_sector_r(fdc, *space, offset); case 11: /* FDC DATA REG */ - return wd17xx_data_r(fdc, offset); + return wd17xx_data_r(fdc, *space, offset); } return 0; @@ -640,22 +640,22 @@ static WRITE8_HANDLER(concept_fdc_reg_w) case 8: /* FDC COMMAMD REG */ - wd17xx_command_w(fdc, offset, data); + wd17xx_command_w(fdc, *space, offset, data); break; case 9: /* FDC TRACK REG */ - wd17xx_track_w(fdc, offset, data); + wd17xx_track_w(fdc, *space, offset, data); break; case 10: /* FDC SECTOR REG */ - wd17xx_sector_w(fdc, offset, data); + wd17xx_sector_w(fdc, *space, offset, data); break; case 11: /* FDC DATA REG */ - wd17xx_data_w(fdc, offset, data); + wd17xx_data_w(fdc, *space, offset, data); break; } } diff --git a/src/mess/machine/cpc_ssa1.c b/src/mess/machine/cpc_ssa1.c index f15225c2c76..d8f3e5d71db 100644 --- a/src/mess/machine/cpc_ssa1.c +++ b/src/mess/machine/cpc_ssa1.c @@ -45,7 +45,7 @@ READ8_MEMBER(cpc_ssa1_device::ssa1_r) WRITE8_MEMBER(cpc_ssa1_device::ssa1_w) { - sp0256_ALD_w(m_sp0256_device,0,data); + sp0256_ALD_w(m_sp0256_device,space, 0,data); } READ8_MEMBER(cpc_dkspeech_device::dkspeech_r) @@ -62,7 +62,7 @@ READ8_MEMBER(cpc_dkspeech_device::dkspeech_r) WRITE8_MEMBER(cpc_dkspeech_device::dkspeech_w) { - sp0256_ALD_w(m_sp0256_device,0,data & 0x3f); + sp0256_ALD_w(m_sp0256_device,space, 0,data & 0x3f); } WRITE_LINE_MEMBER(cpc_ssa1_device::lrq_cb) diff --git a/src/mess/machine/dai.c b/src/mess/machine/dai.c index 9667ab58bf6..7a069090de6 100644 --- a/src/mess/machine/dai.c +++ b/src/mess/machine/dai.c @@ -225,12 +225,12 @@ WRITE8_MEMBER(dai_state::dai_io_discrete_devices_w) READ8_MEMBER(dai_state::dai_pit_r) { - return pit8253_r(m_pit, (offset>>1) & 3); + return pit8253_r(m_pit, space, (offset>>1) & 3); } WRITE8_MEMBER(dai_state::dai_pit_w) { - pit8253_w(m_pit, (offset>>1) & 3, data); + pit8253_w(m_pit, space, (offset>>1) & 3, data); } /*************************************************************************** diff --git a/src/mess/machine/dgn_beta.c b/src/mess/machine/dgn_beta.c index 52b6ea96502..4ab54b510bc 100644 --- a/src/mess/machine/dgn_beta.c +++ b/src/mess/machine/dgn_beta.c @@ -113,23 +113,23 @@ static void execute_beta_key_dump(running_machine &machine, int ref, int params, /* Debugging variables */ -static READ8_DEVICE_HANDLER(d_pia0_pa_r); -static WRITE8_DEVICE_HANDLER(d_pia0_pa_w); -static READ8_DEVICE_HANDLER(d_pia0_pb_r); -static WRITE8_DEVICE_HANDLER(d_pia0_pb_w); -static WRITE8_DEVICE_HANDLER(d_pia0_cb2_w); +static DECLARE_READ8_DEVICE_HANDLER(d_pia0_pa_r); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia0_pa_w); +static DECLARE_READ8_DEVICE_HANDLER(d_pia0_pb_r); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia0_pb_w); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia0_cb2_w); static WRITE_LINE_DEVICE_HANDLER(d_pia0_irq_a); static WRITE_LINE_DEVICE_HANDLER(d_pia0_irq_b); -static READ8_DEVICE_HANDLER(d_pia1_pa_r); -static WRITE8_DEVICE_HANDLER(d_pia1_pa_w); -static READ8_DEVICE_HANDLER(d_pia1_pb_r); -static WRITE8_DEVICE_HANDLER(d_pia1_pb_w); +static DECLARE_READ8_DEVICE_HANDLER(d_pia1_pa_r); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia1_pa_w); +static DECLARE_READ8_DEVICE_HANDLER(d_pia1_pb_r); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia1_pb_w); static WRITE_LINE_DEVICE_HANDLER(d_pia1_irq_a); static WRITE_LINE_DEVICE_HANDLER(d_pia1_irq_b); -static READ8_DEVICE_HANDLER(d_pia2_pa_r); -static WRITE8_DEVICE_HANDLER(d_pia2_pa_w); -static READ8_DEVICE_HANDLER(d_pia2_pb_r); -static WRITE8_DEVICE_HANDLER(d_pia2_pb_w); +static DECLARE_READ8_DEVICE_HANDLER(d_pia2_pa_r); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia2_pa_w); +static DECLARE_READ8_DEVICE_HANDLER(d_pia2_pb_r); +static DECLARE_WRITE8_DEVICE_HANDLER(d_pia2_pb_w); static WRITE_LINE_DEVICE_HANDLER(d_pia2_irq_a); static WRITE_LINE_DEVICE_HANDLER(d_pia2_irq_b); @@ -939,17 +939,17 @@ READ8_HANDLER(dgnbeta_wd2797_r) switch(offset & 0x03) { case 0: - result = wd17xx_status_r(fdc, 0); + result = wd17xx_status_r(fdc, *space, 0); LOG_DISK(("Disk status=%2.2X\n",result)); break; case 1: - result = wd17xx_track_r(fdc, 0); + result = wd17xx_track_r(fdc, *space, 0); break; case 2: - result = wd17xx_sector_r(fdc, 0); + result = wd17xx_sector_r(fdc, *space, 0); break; case 3: - result = wd17xx_data_r(fdc, 0); + result = wd17xx_data_r(fdc, *space, 0); break; default: break; @@ -972,16 +972,16 @@ WRITE8_HANDLER(dgnbeta_wd2797_w) /* But only for Type 3/4 commands */ if(data & 0x80) wd17xx_set_side(fdc,(data & 0x02) ? 1 : 0); - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, *space, 0, data); break; case 1: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, *space, 0, data); break; case 2: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, *space, 0, data); break; case 3: - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, *space, 0, data); break; }; } diff --git a/src/mess/machine/dgnalpha.c b/src/mess/machine/dgnalpha.c index d37a6246aa7..2021a1b8cf4 100644 --- a/src/mess/machine/dgnalpha.c +++ b/src/mess/machine/dgnalpha.c @@ -144,19 +144,19 @@ READ8_MEMBER( dragon_alpha_state::ff20_read ) break; case 12: - result = wd17xx_data_r(m_fdc, 0); + result = wd17xx_data_r(m_fdc, space, 0); break; case 13: - result = wd17xx_sector_r(m_fdc, 0); + result = wd17xx_sector_r(m_fdc, space, 0); break; case 14: - result = wd17xx_track_r(m_fdc, 0); + result = wd17xx_track_r(m_fdc, space, 0); break; case 15: - result = wd17xx_status_r(m_fdc, 0); + result = wd17xx_status_r(m_fdc, space, 0); break; } return result; @@ -185,16 +185,16 @@ WRITE8_MEMBER( dragon_alpha_state::ff20_write ) break; case 12: - wd17xx_data_w(m_fdc, 0, data); + wd17xx_data_w(m_fdc, space, 0, data); break; case 13: - wd17xx_sector_w(m_fdc, 0, data); + wd17xx_sector_w(m_fdc, space, 0, data); break; case 14: - wd17xx_track_w(m_fdc, 0, data); + wd17xx_track_w(m_fdc, space, 0, data); break; case 15: - wd17xx_command_w(m_fdc, 0, data); + wd17xx_command_w(m_fdc, space, 0, data); /* disk head is encoded in the command byte */ wd17xx_set_side(m_fdc,(data & 0x02) ? 1 : 0); @@ -236,13 +236,13 @@ WRITE8_MEMBER( dragon_alpha_state::pia2_pa_w ) case 0x00: /* Inactive, do nothing */ break; case 0x01: /* Write to selected port */ - ay8910_data_w(m_ay8912, 0, m_pia_2->b_output()); + ay8910_data_w(m_ay8912, space, 0, m_pia_2->b_output()); break; case 0x02: /* Read from selected port */ - m_pia_2->portb_w(ay8910_r(m_ay8912, 0)); + m_pia_2->portb_w(ay8910_r(m_ay8912, space, 0)); break; case 0x03: /* Select port to write to */ - ay8910_address_w(m_ay8912, 0, m_pia_2->b_output()); + ay8910_address_w(m_ay8912, space, 0, m_pia_2->b_output()); break; } } diff --git a/src/mess/machine/ds1315.h b/src/mess/machine/ds1315.h index 969f109eaa0..b516d74e2b9 100644 --- a/src/mess/machine/ds1315.h +++ b/src/mess/machine/ds1315.h @@ -52,9 +52,9 @@ extern const device_type DS1315; FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( ds1315_r_0 ); -READ8_DEVICE_HANDLER( ds1315_r_1 ); -READ8_DEVICE_HANDLER( ds1315_r_data ); -WRITE8_DEVICE_HANDLER( ds1315_w_data ); +DECLARE_READ8_DEVICE_HANDLER( ds1315_r_0 ); +DECLARE_READ8_DEVICE_HANDLER( ds1315_r_1 ); +DECLARE_READ8_DEVICE_HANDLER( ds1315_r_data ); +DECLARE_WRITE8_DEVICE_HANDLER( ds1315_w_data ); #endif /* __DS1315_H__ */ diff --git a/src/mess/machine/e05a03.h b/src/mess/machine/e05a03.h index 2011145d06a..2e23a7551af 100644 --- a/src/mess/machine/e05a03.h +++ b/src/mess/machine/e05a03.h @@ -28,8 +28,8 @@ struct e05a03_interface /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ -WRITE8_DEVICE_HANDLER( e05a03_w ); -READ8_DEVICE_HANDLER( e05a03_r ); +DECLARE_WRITE8_DEVICE_HANDLER( e05a03_w ); +DECLARE_READ8_DEVICE_HANDLER( e05a03_r ); WRITE_LINE_DEVICE_HANDLER( e05a03_home_w ); /* home position signal */ WRITE_LINE_DEVICE_HANDLER( e05a03_fire_w ); /* printhead solenoids trigger */ diff --git a/src/mess/machine/gb.c b/src/mess/machine/gb.c index e0b71814624..9d23997a3e0 100644 --- a/src/mess/machine/gb.c +++ b/src/mess/machine/gb.c @@ -238,7 +238,7 @@ static void gb_init(running_machine &machine) break; } - gb_sound_w(space->machine().device("custom"), 0x16, 0x00 ); /* Initialize sound hardware */ + gb_sound_w(space->machine().device("custom"), *space, 0x16, 0x00 ); /* Initialize sound hardware */ state->m_divcount = 0; state->m_triggering_irq = 0; @@ -340,9 +340,9 @@ MACHINE_RESET_MEMBER(gb_state,gbpocket) gb_init_regs(machine()); /* Initialize the Sound registers */ - gb_sound_w(machine().device("custom"), 0x16,0x80); - gb_sound_w(machine().device("custom"), 0x15,0xF3); - gb_sound_w(machine().device("custom"), 0x14,0x77); + gb_sound_w(machine().device("custom"), generic_space(), 0x16,0x80); + gb_sound_w(machine().device("custom"), generic_space(), 0x15,0xF3); + gb_sound_w(machine().device("custom"), generic_space(), 0x14,0x77); /* Enable BIOS rom if we have one */ gb_rom16_0000( machine(), m_ROMMap[m_ROMBank00] ? m_ROMMap[m_ROMBank00] : m_gb_dummy_rom_bank ); @@ -2100,25 +2100,25 @@ static const UINT8 megaduck_sound_offsets[16] = { 0, 2, 1, 3, 4, 6, 5, 7, 8, 9, WRITE8_MEMBER(gb_state::megaduck_sound_w1) { - gb_sound_w(machine().device("custom"), megaduck_sound_offsets[offset], data ); + gb_sound_w(machine().device("custom"), space, megaduck_sound_offsets[offset], data ); } READ8_MEMBER(gb_state::megaduck_sound_r1) { - return gb_sound_r( machine().device("custom"), megaduck_sound_offsets[offset] ); + return gb_sound_r( machine().device("custom"), space, megaduck_sound_offsets[offset] ); } WRITE8_MEMBER(gb_state::megaduck_sound_w2) { switch(offset) { - case 0x00: gb_sound_w(machine().device("custom"), 0x10, data ); break; - case 0x01: gb_sound_w(machine().device("custom"), 0x12, data ); break; - case 0x02: gb_sound_w(machine().device("custom"), 0x11, data ); break; - case 0x03: gb_sound_w(machine().device("custom"), 0x13, data ); break; - case 0x04: gb_sound_w(machine().device("custom"), 0x14, data ); break; - case 0x05: gb_sound_w(machine().device("custom"), 0x16, data ); break; - case 0x06: gb_sound_w(machine().device("custom"), 0x15, data ); break; + case 0x00: gb_sound_w(machine().device("custom"), space, 0x10, data ); break; + case 0x01: gb_sound_w(machine().device("custom"), space, 0x12, data ); break; + case 0x02: gb_sound_w(machine().device("custom"), space, 0x11, data ); break; + case 0x03: gb_sound_w(machine().device("custom"), space, 0x13, data ); break; + case 0x04: gb_sound_w(machine().device("custom"), space, 0x14, data ); break; + case 0x05: gb_sound_w(machine().device("custom"), space, 0x16, data ); break; + case 0x06: gb_sound_w(machine().device("custom"), space, 0x15, data ); break; case 0x07: case 0x08: case 0x09: @@ -2134,7 +2134,7 @@ WRITE8_MEMBER(gb_state::megaduck_sound_w2) READ8_MEMBER(gb_state::megaduck_sound_r2) { - return gb_sound_r(machine().device("custom"), 0x10 + megaduck_sound_offsets[offset]); + return gb_sound_r(machine().device("custom"), space, 0x10 + megaduck_sound_offsets[offset]); } WRITE8_MEMBER(gb_state::megaduck_rom_bank_select_type1) diff --git a/src/mess/machine/hd63450.h b/src/mess/machine/hd63450.h index 7ac030bdfec..98aeea113e1 100644 --- a/src/mess/machine/hd63450.h +++ b/src/mess/machine/hd63450.h @@ -47,5 +47,5 @@ extern const device_type HD63450; MCFG_DEVICE_ADD(_tag, HD63450, 0) \ MCFG_DEVICE_CONFIG(_config) -READ16_DEVICE_HANDLER( hd63450_r ); -WRITE16_DEVICE_HANDLER( hd63450_w ); +DECLARE_READ16_DEVICE_HANDLER( hd63450_r ); +DECLARE_WRITE16_DEVICE_HANDLER( hd63450_w ); diff --git a/src/mess/machine/hec2hrp.c b/src/mess/machine/hec2hrp.c index 8ab62375fe0..979259380de 100644 --- a/src/mess/machine/hec2hrp.c +++ b/src/mess/machine/hec2hrp.c @@ -131,16 +131,16 @@ device_t *fdc = machine().device("wd179x"); { /* minidisc floppy disc interface */ case 0x04: - data = wd17xx_status_r(fdc, 0); + data = wd17xx_status_r(fdc, space, 0); break; case 0x05: - data = wd17xx_track_r(fdc, 0); + data = wd17xx_track_r(fdc, space, 0); break; case 0x06: - data = wd17xx_sector_r(fdc, 0); + data = wd17xx_sector_r(fdc, space, 0); break; case 0x07: - data = wd17xx_data_r(fdc, 0); + data = wd17xx_data_r(fdc, space, 0); break; default: break; @@ -155,17 +155,17 @@ switch (offset) { /* minidisc floppy disc interface */ case 0x04: - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 0x05: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 0x06: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 0x07: /*write into command register*/ - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; case 0x08: /*General purpose port (0x08) for the minidisk I/O */ @@ -429,7 +429,7 @@ WRITE8_MEMBER(hec2hrp_state::hector_color_b_w) if (data & 0x40) m_hector_color[2] |= 8; else m_hector_color[2] &= 7; /* Play bit*/ - discrete_sound_w(discrete, NODE_01, (data & 0x80) ? 0:1 ); + discrete_sound_w(discrete, space, NODE_01, (data & 0x80) ? 0:1 ); } diff --git a/src/mess/machine/hecdisk2.c b/src/mess/machine/hecdisk2.c index 4981194f63e..bf6a97b32d5 100644 --- a/src/mess/machine/hecdisk2.c +++ b/src/mess/machine/hecdisk2.c @@ -248,7 +248,7 @@ READ8_HANDLER( hector_disc2_io61_port_r) hec2hrp_state *state = space->machine().driver_data<hec2hrp_state>(); UINT8 data; device_t *fdc = space->machine().device("upd765"); - data = upd765_data_r(fdc,0); //Get the result + data = upd765_data_r(fdc,*space, 0); //Get the result // if ST0 == 0x28 (drive A:) or 0x29 (drive B:) => add 0x40 // and correct the ST1 and ST2 (patch) @@ -309,7 +309,7 @@ WRITE8_HANDLER( hector_disc2_io61_port_w) #endif device_t *fdc = space->machine().device("upd765"); - upd765_data_w(fdc,0, data); + upd765_data_w(fdc,*space, 0, data); } // AM_RANGE(0x070,0x07f) AM_DEVREADWRITE("upd765",upd765_dack_r,upd765_dack_w) @@ -317,11 +317,11 @@ READ8_HANDLER( hector_disc2_io70_port_r) // Gestion du DMA { UINT8 data; device_t *fdc = space->machine().device("upd765"); - data = upd765_dack_r(fdc,0); + data = upd765_dack_r(fdc,*space, 0); return data; } WRITE8_HANDLER( hector_disc2_io70_port_w) { device_t *fdc = space->machine().device("upd765"); - upd765_dack_w(fdc,0, data); + upd765_dack_w(fdc,*space, 0, data); } diff --git a/src/mess/machine/i8271.c b/src/mess/machine/i8271.c index dcce3878156..cdaa3e72b8b 100644 --- a/src/mess/machine/i8271.c +++ b/src/mess/machine/i8271.c @@ -1496,13 +1496,13 @@ READ8_DEVICE_HANDLER(i8271_r) /* to be completed! */ READ8_DEVICE_HANDLER(i8271_dack_r) { - return i8271_data_r(device, offset); + return i8271_data_r(device, space, offset); } /* to be completed! */ WRITE8_DEVICE_HANDLER(i8271_dack_w) { - i8271_data_w(device, offset, data); + i8271_data_w(device, space, offset, data); } READ8_DEVICE_HANDLER(i8271_data_r) diff --git a/src/mess/machine/i8271.h b/src/mess/machine/i8271.h index 6e942c5989b..51c7a39b9ea 100644 --- a/src/mess/machine/i8271.h +++ b/src/mess/machine/i8271.h @@ -46,14 +46,14 @@ struct i8271_interface /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER (i8271_r); -WRITE8_DEVICE_HANDLER(i8271_w); +DECLARE_READ8_DEVICE_HANDLER (i8271_r); +DECLARE_WRITE8_DEVICE_HANDLER(i8271_w); -READ8_DEVICE_HANDLER (i8271_dack_r); -WRITE8_DEVICE_HANDLER(i8271_dack_w); +DECLARE_READ8_DEVICE_HANDLER (i8271_dack_r); +DECLARE_WRITE8_DEVICE_HANDLER(i8271_dack_w); -READ8_DEVICE_HANDLER (i8271_data_r); -WRITE8_DEVICE_HANDLER(i8271_data_w); +DECLARE_READ8_DEVICE_HANDLER (i8271_data_r); +DECLARE_WRITE8_DEVICE_HANDLER(i8271_data_w); /*************************************************************************** diff --git a/src/mess/machine/iq151_disc2.c b/src/mess/machine/iq151_disc2.c index ebc3f6a364f..5ff4df25017 100644 --- a/src/mess/machine/iq151_disc2.c +++ b/src/mess/machine/iq151_disc2.c @@ -130,9 +130,9 @@ void iq151_disc2_device::read(offs_t offset, UINT8 &data) void iq151_disc2_device::io_read(offs_t offset, UINT8 &data) { if (offset == 0xaa) - data = upd765_status_r(m_fdc, 0); + data = upd765_status_r(m_fdc, machine().driver_data()->generic_space(), 0); else if (offset == 0xab) - data = upd765_data_r(m_fdc, 0); + data = upd765_data_r(m_fdc, machine().driver_data()->generic_space(), 0); } //------------------------------------------------- @@ -142,7 +142,7 @@ void iq151_disc2_device::io_read(offs_t offset, UINT8 &data) void iq151_disc2_device::io_write(offs_t offset, UINT8 data) { if (offset == 0xab) - upd765_data_w(m_fdc, 0, data); + upd765_data_w(m_fdc, machine().driver_data()->generic_space(), 0, data); else if (offset == 0xac) m_rom_enabled = (data == 0x01); } diff --git a/src/mess/machine/isa_adlib.c b/src/mess/machine/isa_adlib.c index 8bd280c5b3a..f9561253f5c 100644 --- a/src/mess/machine/isa_adlib.c +++ b/src/mess/machine/isa_adlib.c @@ -28,7 +28,7 @@ static READ8_DEVICE_HANDLER( ym3812_16_r ) UINT8 retVal = 0xff; switch(offset) { - case 0 : retVal = ym3812_status_port_r( device, offset ); break; + case 0 : retVal = ym3812_status_port_r( device, space, offset ); break; } return retVal; } @@ -37,8 +37,8 @@ static WRITE8_DEVICE_HANDLER( ym3812_16_w ) { switch(offset) { - case 0 : ym3812_control_port_w( device, offset, data ); break; - case 1 : ym3812_write_port_w( device, offset, data ); break; + case 0 : ym3812_control_port_w( device, space, offset, data ); break; + case 1 : ym3812_write_port_w( device, space, offset, data ); break; } } diff --git a/src/mess/machine/isa_fdc.c b/src/mess/machine/isa_fdc.c index 980539a78ca..32348cfee51 100644 --- a/src/mess/machine/isa_fdc.c +++ b/src/mess/machine/isa_fdc.c @@ -11,8 +11,8 @@ #include "formats/pc_dsk.h" #include "machine/idectrl.h" -static READ8_DEVICE_HANDLER ( pc_fdc_r ); -static WRITE8_DEVICE_HANDLER ( pc_fdc_w ); +static DECLARE_READ8_DEVICE_HANDLER ( pc_fdc_r ); +static DECLARE_WRITE8_DEVICE_HANDLER ( pc_fdc_w ); /* if not 1, DACK and TC inputs to FDC are disabled, and DRQ and IRQ are held * at high impedance i.e they are not affective */ @@ -353,15 +353,15 @@ static READ8_DEVICE_HANDLER ( pc_fdc_r ) case 3: /* tape drive select? */ break; case 4: - data = upd765_status_r(fdc->m_upd765, 0); + data = upd765_status_r(fdc->m_upd765, space, 0); break; case 5: - data = upd765_data_r(fdc->m_upd765, offset); + data = upd765_data_r(fdc->m_upd765, space, offset); break; case 6: /* FDC reserved */ hdd = device->machine().device(":board3:ide:ide"); if (hdd) - data = ide_controller16_r(hdd, 0x3f6/2, 0x00ff); + data = ide_controller16_r(hdd, space, 0x3f6/2, 0x00ff); break; case 7: device_t *dev = get_floppy_subdevice(device, fdc->digital_output_register & 0x03); @@ -392,22 +392,22 @@ static WRITE8_DEVICE_HANDLER ( pc_fdc_w ) case 1: /* n/a */ break; case 2: - pc_fdc_dor_w(device, 0, data); + pc_fdc_dor_w(device, space, 0, data, mem_mask); break; case 3: /* tape drive select? */ break; case 4: - pc_fdc_data_rate_w(device, 0, data); + pc_fdc_data_rate_w(device, space, 0, data, mem_mask); break; case 5: - upd765_data_w(fdc->m_upd765, 0, data); + upd765_data_w(fdc->m_upd765, space, 0, data); break; case 6: /* FDC reserved */ hdd = device->machine().device(":board3:ide:ide"); if (hdd) - ide_controller16_w(hdd, 0x3f6/2, data, 0x00ff); + ide_controller16_w(hdd, space, 0x3f6/2, data, 0x00ff); break; case 7: /* Configuration Control Register @@ -419,7 +419,7 @@ static WRITE8_DEVICE_HANDLER ( pc_fdc_w ) * 1 0 250 kbps * 1 1 1000 kbps */ - pc_fdc_data_rate_w(device, 0, data & 3); + pc_fdc_data_rate_w(device, space, 0, data & 3, mem_mask); break; } } @@ -432,7 +432,7 @@ UINT8 isa8_fdc_device::dack_r(int line) /* if dma is not enabled, dacks are not acknowledged */ if ((digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0) { - data = upd765_dack_r(m_upd765, 0); + data = upd765_dack_r(m_upd765, machine().driver_data()->generic_space(), 0); } return data; @@ -444,7 +444,7 @@ void isa8_fdc_device::dack_w(int line,UINT8 data) if ((digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0) { /* dma acknowledge - and send byte to fdc */ - upd765_dack_w(m_upd765, 0,data); + upd765_dack_w(m_upd765, machine().driver_data()->generic_space(), 0,data); } } void isa8_fdc_device::eop_w(int state) diff --git a/src/mess/machine/isa_gblaster.c b/src/mess/machine/isa_gblaster.c index 60b75796ed0..82bd3a07894 100644 --- a/src/mess/machine/isa_gblaster.c +++ b/src/mess/machine/isa_gblaster.c @@ -34,8 +34,8 @@ static WRITE8_DEVICE_HANDLER( saa1099_16_w ) { switch(offset) { - case 0 : saa1099_control_w( device, offset, data ); break; - case 1 : saa1099_data_w( device, offset, data ); break; + case 0 : saa1099_control_w( device, space, offset, data ); break; + case 1 : saa1099_data_w( device, space, offset, data ); break; } } diff --git a/src/mess/machine/isa_hdc.c b/src/mess/machine/isa_hdc.c index 70076459c4a..17a72dd050b 100644 --- a/src/mess/machine/isa_hdc.c +++ b/src/mess/machine/isa_hdc.c @@ -110,8 +110,8 @@ static const char *const hdc_command_names[] = NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL /* 0xF8-0xFF */ }; -static READ8_DEVICE_HANDLER(pc_HDC_r); -static WRITE8_DEVICE_HANDLER(pc_HDC_w); +static DECLARE_READ8_DEVICE_HANDLER(pc_HDC_r); +static DECLARE_WRITE8_DEVICE_HANDLER(pc_HDC_w); static MACHINE_CONFIG_FRAGMENT( hdc_config ) MCFG_HARDDISK_ADD("primary") diff --git a/src/mess/machine/isa_ibm_mfc.c b/src/mess/machine/isa_ibm_mfc.c index fdc09313507..21e52185225 100644 --- a/src/mess/machine/isa_ibm_mfc.c +++ b/src/mess/machine/isa_ibm_mfc.c @@ -415,7 +415,7 @@ WRITE8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_w ) case 0x6: case 0x7: { - pit8253_w(m_d8253, offset & 3, data); + pit8253_w(m_d8253, space, offset & 3, data); break; } diff --git a/src/mess/machine/isa_ide.c b/src/mess/machine/isa_ide.c index b410a361644..bff4c672219 100644 --- a/src/mess/machine/isa_ide.c +++ b/src/mess/machine/isa_ide.c @@ -11,23 +11,23 @@ static READ16_DEVICE_HANDLER( ide16_r ) { - return ide_controller16_r(device, 0x1f0/2 + offset, mem_mask); + return ide_controller16_r(device, space, 0x1f0/2 + offset, mem_mask); } static WRITE16_DEVICE_HANDLER( ide16_w ) { - ide_controller16_w(device, 0x1f0/2 + offset, data, mem_mask); + ide_controller16_w(device, space, 0x1f0/2 + offset, data, mem_mask); } static READ16_DEVICE_HANDLER( ide16_alt_r ) { - return ide_controller16_r(device, 0x3f6/2 + offset, 0x00ff); + return ide_controller16_r(device, space, 0x3f6/2 + offset, 0x00ff); } static WRITE16_DEVICE_HANDLER( ide16_alt_w ) { - ide_controller16_w(device, 0x3f6/2 + offset, data, 0x00ff); + ide_controller16_w(device, space, 0x3f6/2 + offset, data, 0x00ff); } static void ide_interrupt(device_t *device, int state) diff --git a/src/mess/machine/isa_sblaster.c b/src/mess/machine/isa_sblaster.c index eedec5cb56b..808d845b7b0 100644 --- a/src/mess/machine/isa_sblaster.c +++ b/src/mess/machine/isa_sblaster.c @@ -129,7 +129,7 @@ static READ8_DEVICE_HANDLER( ym3812_16_r ) UINT8 retVal = 0xff; switch(offset) { - case 0 : retVal = ym3812_status_port_r( device, offset ); break; + case 0 : retVal = ym3812_status_port_r( device, space, offset ); break; } return retVal; } @@ -138,8 +138,8 @@ static WRITE8_DEVICE_HANDLER( ym3812_16_w ) { switch(offset) { - case 0 : ym3812_control_port_w( device, offset, data ); break; - case 1 : ym3812_write_port_w( device, offset, data ); break; + case 0 : ym3812_control_port_w( device, space, offset, data ); break; + case 1 : ym3812_write_port_w( device, space, offset, data ); break; } } @@ -152,8 +152,8 @@ static WRITE8_DEVICE_HANDLER( saa1099_16_w ) { switch(offset) { - case 0 : saa1099_control_w( device, offset, data ); break; - case 1 : saa1099_data_w( device, offset, data ); break; + case 0 : saa1099_control_w( device, space, offset, data ); break; + case 1 : saa1099_data_w( device, space, offset, data ); break; } } diff --git a/src/mess/machine/kaypro.c b/src/mess/machine/kaypro.c index 0158f40f120..a4345ec83cf 100644 --- a/src/mess/machine/kaypro.c +++ b/src/mess/machine/kaypro.c @@ -13,7 +13,7 @@ ************************************************************/ -static void kaypro_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( kaypro_interrupt ) { device->machine().device("maincpu")->execute().set_input_line(0, state); } @@ -227,12 +227,12 @@ WRITE8_MEMBER( kaypro_state::kaypro2x_system_port_w ) const z80sio_interface kaypro_sio_intf = { - kaypro_interrupt, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - 0, /* transmit handler - which channel is this for? */ - 0 /* receive handler - which channel is this for? */ + DEVCB_LINE(kaypro_interrupt), /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler - which channel is this for? */ + DEVCB_NULL /* receive handler - which channel is this for? */ }; READ8_DEVICE_HANDLER( kaypro_sio_r ) diff --git a/src/mess/machine/kr2376.c b/src/mess/machine/kr2376.c index 69a711dbbdb..7f8667ab61a 100644 --- a/src/mess/machine/kr2376.c +++ b/src/mess/machine/kr2376.c @@ -80,6 +80,7 @@ struct kr2376_t /* timers */ emu_timer *scan_timer; /* keyboard scan timer */ + devcb_resolved_write_line on_strobe_changed; }; INLINE kr2376_t *get_safe_token(device_t *device) @@ -133,8 +134,8 @@ static void change_output_lines(device_t *device) kr2376->pins[KR2376_PO] = kr2376->parity ^ kr2376->pins[KR2376_PII]; } kr2376->pins[KR2376_SO] = kr2376->strobe ^ kr2376->pins[KR2376_DSII]; - if (kr2376->intf->on_strobe_changed) - kr2376->intf->on_strobe_changed(device, 0, kr2376->strobe ^ kr2376->pins[KR2376_DSII]); + if (!kr2376->on_strobe_changed.isnull()) + kr2376->on_strobe_changed(kr2376->strobe ^ kr2376->pins[KR2376_DSII]); } } @@ -343,10 +344,12 @@ static DEVICE_START( kr2376 ) assert(device->tag() != NULL); kr2376->intf = (const kr2376_interface*)device->static_config(); - + assert(kr2376->intf != NULL); assert(kr2376->intf->clock > 0); + kr2376->on_strobe_changed.resolve(kr2376->intf->on_strobe_changed_cb, *device); + /* set initial values */ kr2376->ring11 = 0; kr2376->ring8 = 0; diff --git a/src/mess/machine/kr2376.h b/src/mess/machine/kr2376.h index c847343bdd1..065c65ccef5 100644 --- a/src/mess/machine/kr2376.h +++ b/src/mess/machine/kr2376.h @@ -85,15 +85,14 @@ struct kr2376_interface int clock; /* This will be called for every change of the strobe pin (pin 16). Optional */ -// kr2376_on_strobe_changed_func on_strobe_changed; - write8_device_func on_strobe_changed; + devcb_write_line on_strobe_changed_cb; }; #define KR2376_INTERFACE(name) const kr2376_interface (name)= /* keyboard matrix */ INPUT_PORTS_EXTERN( kr2376 ); /* keyboard data */ -READ8_DEVICE_HANDLER( kr2376_data_r ); +DECLARE_READ8_DEVICE_HANDLER( kr2376_data_r ); /* Set an input pin */ void kr2376_set_input_pin( device_t *device, kr2376_input_pin_t pin, int data ); diff --git a/src/mess/machine/lisa.c b/src/mess/machine/lisa.c index 793ff2281d2..f7f7982ca60 100644 --- a/src/mess/machine/lisa.c +++ b/src/mess/machine/lisa.c @@ -91,13 +91,13 @@ the drive type (TWIGGY or 3.5'')) */ a hard disk */ -static READ8_DEVICE_HANDLER(COPS_via_in_b); -static WRITE8_DEVICE_HANDLER(COPS_via_out_a); -static WRITE8_DEVICE_HANDLER(COPS_via_out_b); -static WRITE8_DEVICE_HANDLER(COPS_via_out_ca2); -static WRITE8_DEVICE_HANDLER(COPS_via_out_cb2); +static DECLARE_READ8_DEVICE_HANDLER(COPS_via_in_b); +static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_a); +static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_b); +static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_ca2); +static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_cb2); static void COPS_via_irq_func(device_t *device, int val); -static READ8_DEVICE_HANDLER(parallel_via_in_b); +static DECLARE_READ8_DEVICE_HANDLER(parallel_via_in_b); const via6522_interface lisa_via6522_0_intf = @@ -729,10 +729,9 @@ static WRITE8_DEVICE_HANDLER(COPS_via_out_b) { lisa_state *state = device->machine().driver_data<lisa_state>(); via6522_device *via_0 = device->machine().device<via6522_device>("via6522_0"); - address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM); /* pull-up */ - data |= (~ via_0->read(*space,VIA_DDRA)) & 0x01; + data |= (~ via_0->read(space,VIA_DDRA)) & 0x01; if (data & 0x01) { @@ -1073,7 +1072,7 @@ void lisa_state::machine_reset() { via6522_device *via_0 = machine().device<via6522_device>("via6522_0"); - COPS_via_out_ca2(via_0, 0, 0); /* VIA core forgets to do so */ + COPS_via_out_ca2(via_0, generic_space(), 0, 0); /* VIA core forgets to do so */ } /* initialize floppy */ @@ -1256,7 +1255,7 @@ READ8_MEMBER(lisa_state::lisa_fdc_io_r) switch ((offset & 0x0030) >> 4) { case 0: /* IWM */ - answer = applefdc_r(fdc, offset); + answer = applefdc_r(fdc, space, offset); break; case 1: /* TTL glue */ @@ -1283,7 +1282,7 @@ WRITE8_MEMBER(lisa_state::lisa_fdc_io_w) switch ((offset & 0x0030) >> 4) { case 0: /* IWM */ - applefdc_w(fdc, offset, data); + applefdc_w(fdc, space, offset, data); break; case 1: /* TTL glue */ diff --git a/src/mess/machine/lux10828.c b/src/mess/machine/lux10828.c index 72b2f1d8346..bd8d740f888 100644 --- a/src/mess/machine/lux10828.c +++ b/src/mess/machine/lux10828.c @@ -687,10 +687,10 @@ READ8_MEMBER( luxor_55_10828_device::fdc_r ) switch (offset & 0x03) { - case 0: data = wd17xx_status_r(m_fdc, 0); break; - case 1: data = wd17xx_track_r(m_fdc, 0); break; - case 2: data = wd17xx_sector_r(m_fdc, 0); break; - case 3: data = wd17xx_data_r(m_fdc, 0); break; + case 0: data = wd17xx_status_r(m_fdc, space, 0); break; + case 1: data = wd17xx_track_r(m_fdc, space, 0); break; + case 2: data = wd17xx_sector_r(m_fdc, space, 0); break; + case 3: data = wd17xx_data_r(m_fdc, space, 0); break; } return data; @@ -711,10 +711,10 @@ WRITE8_MEMBER( luxor_55_10828_device::fdc_w ) switch (offset & 0x03) { - case 0: wd17xx_command_w(m_fdc, 0, data); break; - case 1: wd17xx_track_w(m_fdc, 0, data); break; - case 2: wd17xx_sector_w(m_fdc, 0, data); break; - case 3: wd17xx_data_w(m_fdc, 0, data); break; + case 0: wd17xx_command_w(m_fdc, space, 0, data); break; + case 1: wd17xx_track_w(m_fdc, space, 0, data); break; + case 2: wd17xx_sector_w(m_fdc, space, 0, data); break; + case 3: wd17xx_data_w(m_fdc, space, 0, data); break; } } diff --git a/src/mess/machine/mac.c b/src/mess/machine/mac.c index 70d16fece52..9a90bd8d79f 100644 --- a/src/mess/machine/mac.c +++ b/src/mess/machine/mac.c @@ -132,17 +132,17 @@ static TIMER_CALLBACK(mac_6015_tick); static int scan_keyboard(running_machine &machine); static TIMER_CALLBACK(inquiry_timeout_func); static void keyboard_receive(running_machine &machine, int val); -static READ8_DEVICE_HANDLER(mac_via_in_a); -static READ8_DEVICE_HANDLER(mac_via_in_b); -static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2); -static WRITE8_DEVICE_HANDLER(mac_via_out_a); -static WRITE8_DEVICE_HANDLER(mac_via_out_b); -static WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2); -static WRITE8_DEVICE_HANDLER(mac_via_out_cb2); -static READ8_DEVICE_HANDLER(mac_via2_in_a); -static READ8_DEVICE_HANDLER(mac_via2_in_b); -static WRITE8_DEVICE_HANDLER(mac_via2_out_a); -static WRITE8_DEVICE_HANDLER(mac_via2_out_b); +static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_a); +static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_b); +static DECLARE_READ8_DEVICE_HANDLER(mac_adb_via_in_cb2); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_a); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_b); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_cb2); +static DECLARE_READ8_DEVICE_HANDLER(mac_via2_in_a); +static DECLARE_READ8_DEVICE_HANDLER(mac_via2_in_b); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via2_out_a); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via2_out_b); static void mac_via_irq(device_t *device, int state); static void mac_via2_irq(device_t *device, int state); static offs_t mac_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options); @@ -1155,7 +1155,7 @@ READ16_MEMBER ( mac_state::mac_iwm_r ) UINT16 result = 0; device_t *fdc = space.machine().device("fdc"); - result = applefdc_r(fdc, (offset >> 8)); + result = applefdc_r(fdc, space, (offset >> 8)); if (LOG_MAC_IWM) printf("mac_iwm_r: offset=0x%08x mem_mask %04x = %02x (PC %x)\n", offset, mem_mask, result, m_maincpu->pc()); @@ -1171,9 +1171,9 @@ WRITE16_MEMBER ( mac_state::mac_iwm_w ) printf("mac_iwm_w: offset=0x%08x data=0x%04x mask %04x (PC=%x)\n", offset, data, mem_mask, m_maincpu->pc()); if (ACCESSING_BITS_0_7) - applefdc_w(fdc, (offset >> 8), data & 0xff); + applefdc_w(fdc, space, (offset >> 8), data & 0xff); else - applefdc_w(fdc, (offset >> 8), data>>8); + applefdc_w(fdc, space, (offset >> 8), data>>8); } static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2) diff --git a/src/mess/machine/macpci.c b/src/mess/machine/macpci.c index aa360d09dca..f5d087decbc 100644 --- a/src/mess/machine/macpci.c +++ b/src/mess/machine/macpci.c @@ -26,12 +26,12 @@ static TIMER_CALLBACK(mac_6015_tick); /* VIA1 Handlers */ -static READ8_DEVICE_HANDLER(mac_via_in_a); -static READ8_DEVICE_HANDLER(mac_via_in_b); -static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2); -static WRITE8_DEVICE_HANDLER(mac_via_out_a); -static WRITE8_DEVICE_HANDLER(mac_via_out_b); -static WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2); +static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_a); +static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_b); +static DECLARE_READ8_DEVICE_HANDLER(mac_adb_via_in_cb2); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_a); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_b); +static DECLARE_WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2); static void mac_via_irq(device_t *device, int state); const via6522_interface pcimac_via6522_intf = diff --git a/src/mess/machine/mbc55x.c b/src/mess/machine/mbc55x.c index 869d46481c6..0918ad7e8b4 100644 --- a/src/mess/machine/mbc55x.c +++ b/src/mess/machine/mbc55x.c @@ -118,12 +118,12 @@ const struct pic8259_interface mbc55x_pic8259_config = READ8_MEMBER(mbc55x_state::mbcpic8259_r) { - return pic8259_r(m_pic, offset>>1); + return pic8259_r(m_pic, space, offset>>1); } WRITE8_MEMBER(mbc55x_state::mbcpic8259_w) { - pic8259_w(m_pic, offset>>1, data); + pic8259_w(m_pic, space, offset>>1, data); } static IRQ_CALLBACK(mbc55x_irq_callback) @@ -157,12 +157,12 @@ const struct pit8253_config mbc55x_pit8253_config = READ8_MEMBER(mbc55x_state::mbcpit8253_r) { - return pit8253_r(m_pit, offset>>1); + return pit8253_r(m_pit, space, offset>>1); } WRITE8_MEMBER(mbc55x_state::mbcpit8253_w) { - pit8253_w(m_pit, offset>>1, data); + pit8253_w(m_pit, space, offset>>1, data); } WRITE_LINE_MEMBER( mbc55x_state::pit8253_t2 ) @@ -187,12 +187,12 @@ WRITE8_MEMBER( mbc55x_state::vram_page_w ) READ8_MEMBER(mbc55x_state::mbc55x_disk_r) { - return wd17xx_r(m_fdc, offset>>1); + return wd17xx_r(m_fdc, space, offset>>1); } WRITE8_MEMBER(mbc55x_state::mbc55x_disk_w) { - wd17xx_w(m_fdc, offset>>1, data); + wd17xx_w(m_fdc, space, offset>>1, data); } WRITE_LINE_MEMBER( mbc55x_state::mbc55x_fdc_intrq_w ) diff --git a/src/mess/machine/mc68328.c b/src/mess/machine/mc68328.c index f4671589aa2..9ca94931ff6 100644 --- a/src/mess/machine/mc68328.c +++ b/src/mess/machine/mc68328.c @@ -317,9 +317,9 @@ static TIMER_CALLBACK( mc68328_pwm_transition ) mc68328->regs.pwmc ^= PWMC_PIN; - if( mc68328->iface->out_pwm_func ) + if( !mc68328->out_pwm.isnull() ) { - (mc68328->iface->out_pwm_func)( device, 0, (mc68328->regs.pwmc & PWMC_PIN) ? 1 : 0 ); + mc68328->out_pwm( 0, (mc68328->regs.pwmc & PWMC_PIN) ? 1 : 0 ); } } @@ -779,9 +779,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PADATA = %02x\n", data & 0x00ff); mc68328->regs.padata = data & 0x00ff; - if(mc68328->iface->out_port_a_func) + if(!mc68328->out_port_a.isnull()) { - (mc68328->iface->out_port_a_func)( device, 0, data & 0x00ff ); + mc68328->out_port_a( 0, data & 0x00ff ); } } else @@ -808,9 +808,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PBDATA = %02x\n", data & 0x00ff); mc68328->regs.pbdata = data & 0x00ff; - if(mc68328->iface->out_port_b_func) + if(!mc68328->out_port_b.isnull()) { - (mc68328->iface->out_port_b_func)( device, 0, data & 0x00ff ); + mc68328->out_port_b( 0, data & 0x00ff ); } } else @@ -837,9 +837,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PCDATA = %02x\n", data & 0x00ff); mc68328->regs.pcdata = data & 0x00ff; - if(mc68328->iface->out_port_c_func) + if(!mc68328->out_port_c.isnull()) { - (mc68328->iface->out_port_c_func)( device, 0, data & 0x00ff ); + mc68328->out_port_c( 0, data & 0x00ff ); } } else @@ -920,9 +920,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PEDATA = %02x\n", data & 0x00ff); mc68328->regs.pedata = data & 0x00ff; - if(mc68328->iface->out_port_e_func) + if(!mc68328->out_port_e.isnull()) { - (mc68328->iface->out_port_e_func)( device, 0, data & 0x00ff ); + mc68328->out_port_e( 0, data & 0x00ff ); } } else @@ -951,9 +951,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PFDATA = %02x\n", data & 0x00ff); mc68328->regs.pfdata = data & 0x00ff; - if(mc68328->iface->out_port_f_func) + if(!mc68328->out_port_f.isnull()) { - (mc68328->iface->out_port_f_func)( device, 0, data & 0x00ff ); + mc68328->out_port_f( 0, data & 0x00ff ); } } else @@ -981,9 +981,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PGDATA = %02x\n", data & 0x00ff); mc68328->regs.pgdata = data & 0x00ff; - if(mc68328->iface->out_port_g_func) + if(!mc68328->out_port_g.isnull()) { - (mc68328->iface->out_port_g_func)( device, 0, data & 0x00ff ); + mc68328->out_port_g( 0, data & 0x00ff ); } } else @@ -1011,9 +1011,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PJDATA = %02x\n", data & 0x00ff); mc68328->regs.pjdata = data & 0x00ff; - if(mc68328->iface->out_port_j_func) + if(!mc68328->out_port_j.isnull()) { - (mc68328->iface->out_port_j_func)( device, 0, data & 0x00ff ); + mc68328->out_port_j( 0, data & 0x00ff ); } } else @@ -1040,9 +1040,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PKDATA = %02x\n", data & 0x00ff); mc68328->regs.pkdata = data & 0x00ff; - if(mc68328->iface->out_port_k_func) + if(!mc68328->out_port_k.isnull()) { - (mc68328->iface->out_port_k_func)( device, 0, data & 0x00ff ); + mc68328->out_port_k( 0, data & 0x00ff ); } } else @@ -1070,9 +1070,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) { verboselog(device->machine(), 2, "mc68328_w: PMDATA = %02x\n", data & 0x00ff); mc68328->regs.pmdata = data & 0x00ff; - if(mc68328->iface->out_port_m_func) + if(!mc68328->out_port_m.isnull()) { - (mc68328->iface->out_port_m_func)( device, 0, data & 0x00ff ); + mc68328->out_port_m( 0, data & 0x00ff ); } } else @@ -1249,9 +1249,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w ) case 0x800: verboselog(device->machine(), 2, "mc68328_w: SPIMDATA = %04x\n", data); - if(mc68328->iface->out_spim_func) + if(!mc68328->out_spim.isnull()) { - (mc68328->iface->out_spim_func)( device, 0, data, 0xffff ); + mc68328->out_spim( 0, data, 0xffff ); } else { @@ -1854,9 +1854,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PADATA = %02x\n", mem_mask, mc68328->regs.padata); - if(mc68328->iface->in_port_a_func) + if(!mc68328->in_port_a.isnull()) { - return (mc68328->iface->in_port_a_func)( device, 0 ); + return mc68328->in_port_a( 0 ); } else { @@ -1886,9 +1886,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PBDATA = %02x\n", mem_mask, mc68328->regs.pbdata); - if(mc68328->iface->in_port_b_func) + if(!mc68328->in_port_b.isnull()) { - return (mc68328->iface->in_port_b_func)( device, 0 ); + return mc68328->in_port_b( 0 ); } else { @@ -1918,9 +1918,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PCDATA = %02x\n", mem_mask, mc68328->regs.pcdata); - if(mc68328->iface->in_port_c_func) + if(!mc68328->in_port_c.isnull()) { - return (mc68328->iface->in_port_c_func)( device, 0 ); + return mc68328->in_port_c( 0 ); } else { @@ -1950,9 +1950,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PDDATA = %02x\n", mem_mask, mc68328->regs.pddata); - if(mc68328->iface->in_port_d_func) + if(!mc68328->in_port_d.isnull()) { - return (mc68328->iface->in_port_d_func)( device, 0 ); + return mc68328->in_port_d( 0 ); } else { @@ -2007,9 +2007,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PEDATA = %02x\n", mem_mask, mc68328->regs.pedata); - if(mc68328->iface->in_port_e_func) + if(!mc68328->in_port_e.isnull()) { - return (mc68328->iface->in_port_e_func)( device, 0 ); + return mc68328->in_port_e( 0 ); } else { @@ -2040,9 +2040,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PFDATA = %02x\n", mem_mask, mc68328->regs.pfdata); - if(mc68328->iface->in_port_f_func) + if(!mc68328->in_port_f.isnull()) { - return (mc68328->iface->in_port_f_func)( device, 0 ); + return mc68328->in_port_f( 0 ); } else { @@ -2073,9 +2073,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PGDATA = %02x\n", mem_mask, mc68328->regs.pgdata); - if(mc68328->iface->in_port_g_func) + if(!mc68328->in_port_g.isnull()) { - return (mc68328->iface->in_port_g_func)( device, 0 ); + return mc68328->in_port_g( 0 ); } else { @@ -2106,9 +2106,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PJDATA = %02x\n", mem_mask, mc68328->regs.pjdata); - if(mc68328->iface->in_port_j_func) + if(!mc68328->in_port_j.isnull()) { - return (mc68328->iface->in_port_j_func)( device, 0 ); + return mc68328->in_port_j( 0 ); } else { @@ -2138,9 +2138,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PKDATA = %02x\n", mem_mask, mc68328->regs.pkdata); - if(mc68328->iface->in_port_k_func) + if(!mc68328->in_port_k.isnull()) { - return (mc68328->iface->in_port_k_func)( device, 0 ); + return mc68328->in_port_k( 0 ); } else { @@ -2171,9 +2171,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) if( mem_mask & 0x00ff ) { verboselog(device->machine(), 2, "mc68328_r (%04x): PMDATA = %02x\n", mem_mask, mc68328->regs.pmdata); - if(mc68328->iface->in_port_m_func) + if(!mc68328->in_port_m.isnull()) { - return (mc68328->iface->in_port_m_func)( device, 0 ); + return mc68328->in_port_m( 0 ); } else { @@ -2290,9 +2290,9 @@ READ16_DEVICE_HANDLER( mc68328_r ) case 0x800: verboselog(device->machine(), 2, "mc68328_r (%04x): SPIMDATA = %04x\n", mem_mask, mc68328->regs.spimdata); - if(mc68328->iface->in_spim_func) + if(!mc68328->in_spim.isnull()) { - return (mc68328->iface->in_spim_func)( device, 0, 0xffff ); + return mc68328->in_spim( 0, 0xffff ); } return mc68328->regs.spimdata; @@ -2800,6 +2800,33 @@ static DEVICE_START( mc68328 ) mc68328->iface = (const mc68328_interface*)device->static_config(); + mc68328->out_port_a.resolve(mc68328->iface->out_port_a_func, *device); + mc68328->out_port_b.resolve(mc68328->iface->out_port_b_func, *device); + mc68328->out_port_c.resolve(mc68328->iface->out_port_c_func, *device); + mc68328->out_port_d.resolve(mc68328->iface->out_port_d_func, *device); + mc68328->out_port_e.resolve(mc68328->iface->out_port_e_func, *device); + mc68328->out_port_f.resolve(mc68328->iface->out_port_f_func, *device); + mc68328->out_port_g.resolve(mc68328->iface->out_port_g_func, *device); + mc68328->out_port_j.resolve(mc68328->iface->out_port_j_func, *device); + mc68328->out_port_k.resolve(mc68328->iface->out_port_k_func, *device); + mc68328->out_port_m.resolve(mc68328->iface->out_port_m_func, *device); + + mc68328->in_port_a.resolve(mc68328->iface->in_port_a_func, *device); + mc68328->in_port_b.resolve(mc68328->iface->in_port_b_func, *device); + mc68328->in_port_c.resolve(mc68328->iface->in_port_c_func, *device); + mc68328->in_port_d.resolve(mc68328->iface->in_port_d_func, *device); + mc68328->in_port_e.resolve(mc68328->iface->in_port_e_func, *device); + mc68328->in_port_f.resolve(mc68328->iface->in_port_f_func, *device); + mc68328->in_port_g.resolve(mc68328->iface->in_port_g_func, *device); + mc68328->in_port_j.resolve(mc68328->iface->in_port_j_func, *device); + mc68328->in_port_k.resolve(mc68328->iface->in_port_k_func, *device); + mc68328->in_port_m.resolve(mc68328->iface->in_port_m_func, *device); + + mc68328->out_pwm.resolve(mc68328->iface->out_pwm_func, *device); + + mc68328->out_spim.resolve(mc68328->iface->out_spim_func, *device); + mc68328->in_spim.resolve(mc68328->iface->in_spim_func, *device); + mc68328->gptimer[0] = device->machine().scheduler().timer_alloc(FUNC(mc68328_timer1_hit)); mc68328->gptimer[1] = device->machine().scheduler().timer_alloc(FUNC(mc68328_timer2_hit)); mc68328->rtc = device->machine().scheduler().timer_alloc(FUNC(mc68328_rtc_tick)); diff --git a/src/mess/machine/mc68328.h b/src/mess/machine/mc68328.h index 0750b2c5475..57879909919 100644 --- a/src/mess/machine/mc68328.h +++ b/src/mess/machine/mc68328.h @@ -212,6 +212,33 @@ struct mc68328_t emu_timer *gptimer[2]; emu_timer *rtc; emu_timer *pwm; + + devcb_resolved_write8 out_port_a; /* 8-bit output */ + devcb_resolved_write8 out_port_b; /* 8-bit output */ + devcb_resolved_write8 out_port_c; /* 8-bit output */ + devcb_resolved_write8 out_port_d; /* 8-bit output */ + devcb_resolved_write8 out_port_e; /* 8-bit output */ + devcb_resolved_write8 out_port_f; /* 8-bit output */ + devcb_resolved_write8 out_port_g; /* 8-bit output */ + devcb_resolved_write8 out_port_j; /* 8-bit output */ + devcb_resolved_write8 out_port_k; /* 8-bit output */ + devcb_resolved_write8 out_port_m; /* 8-bit output */ + + devcb_resolved_read8 in_port_a; /* 8-bit input */ + devcb_resolved_read8 in_port_b; /* 8-bit input */ + devcb_resolved_read8 in_port_c; /* 8-bit input */ + devcb_resolved_read8 in_port_d; /* 8-bit input */ + devcb_resolved_read8 in_port_e; /* 8-bit input */ + devcb_resolved_read8 in_port_f; /* 8-bit input */ + devcb_resolved_read8 in_port_g; /* 8-bit input */ + devcb_resolved_read8 in_port_j; /* 8-bit input */ + devcb_resolved_read8 in_port_k; /* 8-bit input */ + devcb_resolved_read8 in_port_m; /* 8-bit input */ + + devcb_resolved_write8 out_pwm; /* 1-bit output */ + + devcb_resolved_write16 out_spim; /* 16-bit output */ + devcb_resolved_read16 in_spim; /* 16-bit input */ }; #define SCR_BETO 0x80 diff --git a/src/mess/machine/mc6843.h b/src/mess/machine/mc6843.h index f1e250b28e9..be9ab55a310 100644 --- a/src/mess/machine/mc6843.h +++ b/src/mess/machine/mc6843.h @@ -49,8 +49,8 @@ struct mc6843_interface /* ---------- functions ------------ */ -extern READ8_DEVICE_HANDLER ( mc6843_r ); -extern WRITE8_DEVICE_HANDLER ( mc6843_w ); +extern DECLARE_READ8_DEVICE_HANDLER ( mc6843_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER ( mc6843_w ); extern void mc6843_set_drive ( device_t *device, int drive ); extern void mc6843_set_side ( device_t *device, int side ); diff --git a/src/mess/machine/mc6846.c b/src/mess/machine/mc6846.c index 320b65e1084..7baf943fbdc 100644 --- a/src/mess/machine/mc6846.c +++ b/src/mess/machine/mc6846.c @@ -59,6 +59,20 @@ struct mc6846_t emu_timer *interval; /* interval programmable timer */ emu_timer *one_shot; /* 1-us x factor one-shot timer */ + /* CPU write to the outside through chip */ + devcb_resolved_write8 out_port; /* 8-bit output */ + devcb_resolved_write8 out_cp1; /* 1-bit output */ + devcb_resolved_write8 out_cp2; /* 1-bit output */ + + /* CPU read from the outside through chip */ + devcb_resolved_read8 in_port; /* 8-bit input */ + + /* asynchronous timer output to outside world */ + devcb_resolved_write8 out_cto; /* 1-bit output */ + + /* timer interrupt */ + devcb_resolved_write_line irq; + int old_cif; int old_cto; }; @@ -71,7 +85,7 @@ struct mc6846_t #define PORT \ ((mc6846->pdr & mc6846->ddr) | \ - ((mc6846->iface->in_port_func ? mc6846->iface->in_port_func( device, 0 ) : 0) & \ + ((!mc6846->in_port.isnull() ? mc6846->in_port( 0 ) : 0) & \ ~mc6846->ddr)) #define CTO \ @@ -124,14 +138,14 @@ INLINE void mc6846_update_irq( device_t *device ) if ( cif ) { mc6846->csr |= 0x80; - if ( mc6846->iface->irq_func ) - mc6846->iface->irq_func( device, 1 ); + if ( !mc6846->irq.isnull() ) + mc6846->irq( 1 ); } else { mc6846->csr &= ~0x80; - if ( mc6846->iface->irq_func ) - mc6846->iface->irq_func( device, 0 ); + if ( !mc6846->irq.isnull() ) + mc6846->irq( 0 ); } } @@ -146,8 +160,8 @@ INLINE void mc6846_update_cto ( device_t *device ) LOG (( "%f: mc6846 CTO set to %i\n", device->machine().time().as_double(), cto )); mc6846->old_cto = cto; } - if ( mc6846->iface->out_cto_func ) - mc6846->iface->out_cto_func( device, 0, cto ); + if ( !mc6846->out_cto.isnull() ) + mc6846->out_cto( 0, cto ); } @@ -372,8 +386,8 @@ WRITE8_DEVICE_HANDLER ( mc6846_w ) if (data & 0x10) { mc6846->cp2_cpu = (data >> 3) & 1; - if ( mc6846->iface->out_cp2_func ) - mc6846->iface->out_cp2_func( device, 0, mc6846->cp2_cpu ); + if ( !mc6846->out_cp2.isnull() ) + mc6846->out_cp2( 0, mc6846->cp2_cpu ); } else logerror( "$%04x mc6846 acknowledge not implemented\n", device->machine().firstcpu->pcbase( ) ); @@ -385,8 +399,8 @@ WRITE8_DEVICE_HANDLER ( mc6846_w ) if ( ! (mc6846->pcr & 0x80) ) { mc6846->ddr = data; - if ( mc6846->iface->out_port_func ) - mc6846->iface->out_port_func( device, 0, mc6846->pdr & mc6846->ddr ); + if ( !mc6846->out_port.isnull() ) + mc6846->out_port( 0, mc6846->pdr & mc6846->ddr ); } break; @@ -395,8 +409,8 @@ WRITE8_DEVICE_HANDLER ( mc6846_w ) if ( ! (mc6846->pcr & 0x80) ) { mc6846->pdr = data; - if ( mc6846->iface->out_port_func ) - mc6846->iface->out_port_func( device, 0, mc6846->pdr & mc6846->ddr ); + if ( !mc6846->out_port.isnull() ) + mc6846->out_port( 0, mc6846->pdr & mc6846->ddr ); if ( mc6846->csr1_to_be_cleared && (mc6846->csr & 2) ) { mc6846->csr &= ~2; @@ -590,6 +604,19 @@ static DEVICE_START( mc6846 ) mc6846->interval = device->machine().scheduler().timer_alloc(FUNC(mc6846_timer_expire), (void*) device ); mc6846->one_shot = device->machine().scheduler().timer_alloc(FUNC(mc6846_timer_one_shot), (void*) device ); + mc6846->out_port.resolve(mc6846->iface->out_port_func, *device); /* 8-bit output */ + mc6846->out_cp1.resolve(mc6846->iface->out_cp1_func, *device); /* 1-bit output */ + mc6846->out_cp2.resolve(mc6846->iface->out_cp2_func, *device); /* 1-bit output */ + + /* CPU read from the outside through chip */ + mc6846->in_port.resolve(mc6846->iface->in_port_func, *device); /* 8-bit input */ + + /* asynchronous timer output to outside world */ + mc6846->out_cto.resolve(mc6846->iface->out_cto_func, *device); /* 1-bit output */ + + /* timer interrupt */ + mc6846->irq.resolve(mc6846->iface->irq_func, *device); + state_save_register_item( device->machine(), "mc6846", device->tag(), 0, mc6846->csr ); state_save_register_item( device->machine(), "mc6846", device->tag(), 0, mc6846->pcr ); state_save_register_item( device->machine(), "mc6846", device->tag(), 0, mc6846->ddr ); diff --git a/src/mess/machine/mc6846.h b/src/mess/machine/mc6846.h index 567e0ec233e..c6d5af39e82 100644 --- a/src/mess/machine/mc6846.h +++ b/src/mess/machine/mc6846.h @@ -35,18 +35,18 @@ extern const device_type MC6846; struct mc6846_interface { /* CPU write to the outside through chip */ - write8_device_func out_port_func; /* 8-bit output */ - write8_device_func out_cp1_func; /* 1-bit output */ - write8_device_func out_cp2_func; /* 1-bit output */ + devcb_write8 out_port_func; /* 8-bit output */ + devcb_write8 out_cp1_func; /* 1-bit output */ + devcb_write8 out_cp2_func; /* 1-bit output */ /* CPU read from the outside through chip */ - read8_device_func in_port_func; /* 8-bit input */ + devcb_read8 in_port_func; /* 8-bit input */ /* asynchronous timer output to outside world */ - write8_device_func out_cto_func; /* 1-bit output */ + devcb_write8 out_cto_func; /* 1-bit output */ /* timer interrupt */ - void ( * irq_func ) ( device_t *device, int state ); + devcb_write_line irq_func; }; @@ -64,8 +64,8 @@ struct mc6846_interface /* ---------- functions ------------ */ /* interface to CPU via address/data bus*/ -extern READ8_DEVICE_HANDLER ( mc6846_r ); -extern WRITE8_DEVICE_HANDLER ( mc6846_w ); +extern DECLARE_READ8_DEVICE_HANDLER ( mc6846_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER ( mc6846_w ); /* asynchronous write from outside world into interrupt-generating pins */ extern void mc6846_set_input_cp1 ( device_t *device, int data ); diff --git a/src/mess/machine/mc6854.h b/src/mess/machine/mc6854.h index a89fb417bd6..cd66c796611 100644 --- a/src/mess/machine/mc6854.h +++ b/src/mess/machine/mc6854.h @@ -80,8 +80,8 @@ struct mc6854_interface /* ---------- functions ------------ */ /* interface to CPU via address/data bus*/ -extern READ8_DEVICE_HANDLER ( mc6854_r ); -extern WRITE8_DEVICE_HANDLER ( mc6854_w ); +extern DECLARE_READ8_DEVICE_HANDLER ( mc6854_r ); +extern DECLARE_WRITE8_DEVICE_HANDLER ( mc6854_w ); /* low-level, bit-based interface */ WRITE_LINE_DEVICE_HANDLER( mc6854_set_rx ); diff --git a/src/mess/machine/mc80.c b/src/mess/machine/mc80.c index 9766fcd7108..536ed28df7a 100644 --- a/src/mess/machine/mc80.c +++ b/src/mess/machine/mc80.c @@ -194,11 +194,11 @@ Z80CTC_INTERFACE( mc8030_asp_z80ctc_intf ) // SIO CH A in = keyboard; out = beeper; CH B = IFSS (??) const z80sio_interface mc8030_asp_z80sio_intf = { - 0, /* interrupt handler */ - 0, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - 0, /* transmit handler */ - 0 /* receive handler */ + DEVCB_NULL, /* interrupt handler */ + DEVCB_NULL, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_NULL, /* transmit handler */ + DEVCB_NULL /* receive handler */ }; diff --git a/src/mess/machine/micropolis.c b/src/mess/machine/micropolis.c index 922a1d5b753..5919694ab65 100644 --- a/src/mess/machine/micropolis.c +++ b/src/mess/machine/micropolis.c @@ -306,10 +306,10 @@ READ8_DEVICE_HANDLER( micropolis_r ) switch (offset & 0x03) { - case 0: data = micropolis_status_r(device, 0); break; - case 1: data = micropolis_status_r(device, 1); break; + case 0: data = micropolis_status_r(device, space, 0); break; + case 1: data = micropolis_status_r(device, space, 1); break; case 2: - case 3: data = micropolis_data_r(device, 0); break; + case 3: data = micropolis_data_r(device, space, 0); break; } return data; @@ -320,9 +320,9 @@ WRITE8_DEVICE_HANDLER( micropolis_w ) switch (offset & 0x03) { case 0: - case 1: micropolis_command_w(device, 0, data); break; + case 1: micropolis_command_w(device, space, 0, data); break; case 2: - case 3: micropolis_data_w(device, 0, data); break; + case 3: micropolis_data_w(device, space, 0, data); break; } } diff --git a/src/mess/machine/micropolis.h b/src/mess/machine/micropolis.h index 8fd7d27cc3e..46cf6152c6e 100644 --- a/src/mess/machine/micropolis.h +++ b/src/mess/machine/micropolis.h @@ -61,14 +61,14 @@ void micropolis_reset(device_t *device); void micropolis_set_drive(device_t *device, UINT8); // set current drive (0-3) -READ8_DEVICE_HANDLER( micropolis_status_r ); -READ8_DEVICE_HANDLER( micropolis_data_r ); +DECLARE_READ8_DEVICE_HANDLER( micropolis_status_r ); +DECLARE_READ8_DEVICE_HANDLER( micropolis_data_r ); -WRITE8_DEVICE_HANDLER( micropolis_command_w ); -WRITE8_DEVICE_HANDLER( micropolis_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( micropolis_command_w ); +DECLARE_WRITE8_DEVICE_HANDLER( micropolis_data_w ); -READ8_DEVICE_HANDLER( micropolis_r ); -WRITE8_DEVICE_HANDLER( micropolis_w ); +DECLARE_READ8_DEVICE_HANDLER( micropolis_r ); +DECLARE_WRITE8_DEVICE_HANDLER( micropolis_w ); extern const micropolis_interface default_micropolis_interface; diff --git a/src/mess/machine/mm58274c.h b/src/mess/machine/mm58274c.h index a2ad6370f56..b35a9309fa1 100644 --- a/src/mess/machine/mm58274c.h +++ b/src/mess/machine/mm58274c.h @@ -42,8 +42,8 @@ struct mm58274c_interface int day1; /* first day of week */ }; -READ8_DEVICE_HANDLER ( mm58274c_r ); -WRITE8_DEVICE_HANDLER( mm58274c_w ); +DECLARE_READ8_DEVICE_HANDLER ( mm58274c_r ); +DECLARE_WRITE8_DEVICE_HANDLER( mm58274c_w ); /*************************************************************************** DEVICE CONFIGURATION MACROS diff --git a/src/mess/machine/mos6530.h b/src/mess/machine/mos6530.h index 54e7a1bd57d..c3dd421ee3a 100644 --- a/src/mess/machine/mos6530.h +++ b/src/mess/machine/mos6530.h @@ -82,8 +82,8 @@ struct mos6530_interface PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( mos6530_r ); -WRITE8_DEVICE_HANDLER( mos6530_w ); +DECLARE_READ8_DEVICE_HANDLER( mos6530_r ); +DECLARE_WRITE8_DEVICE_HANDLER( mos6530_w ); void mos6530_porta_in_set(device_t *device, UINT8 data, UINT8 mask); void mos6530_portb_in_set(device_t *device, UINT8 data, UINT8 mask); diff --git a/src/mess/machine/msx.c b/src/mess/machine/msx.c index ab3c5ae98cc..6e20a08e1b0 100644 --- a/src/mess/machine/msx.c +++ b/src/mess/machine/msx.c @@ -655,9 +655,9 @@ WRITE8_MEMBER( msx_state::msx_fmpac_w ) if (m_opll_active) { if (offset == 1) - ym2413_w (m_ym, 1, data); + ym2413_w (m_ym, space, 1, data); else - ym2413_w (m_ym, 0, data); + ym2413_w (m_ym, space, 0, data); } } diff --git a/src/mess/machine/msx_slot.c b/src/mess/machine/msx_slot.c index 867dabb9d0f..dac30951d8f 100644 --- a/src/mess/machine/msx_slot.c +++ b/src/mess/machine/msx_slot.c @@ -31,7 +31,7 @@ static void msx_cpu_setbank (running_machine &machine, int page, UINT8 *mem) { msx_state *state = machine.driver_data<msx_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); switch (page) { case 1: @@ -46,17 +46,17 @@ static void msx_cpu_setbank (running_machine &machine, int page, UINT8 *mem) case 4: state->membank ("bank4")->set_base (mem); state->membank ("bank5")->set_base (mem + 0x1ff8); - space->install_read_bank(0x7ff8, 0x7fff, "bank5"); + space.install_read_bank(0x7ff8, 0x7fff, "bank5"); break; case 5: state->membank ("bank6")->set_base (mem); state->membank ("bank7")->set_base (mem + 0x1800); - space->install_read_bank(0x9800, 0x9fff, "bank7"); + space.install_read_bank(0x9800, 0x9fff, "bank7"); break; case 6: state->membank ("bank8")->set_base (mem); state->membank ("bank9")->set_base (mem + 0x1800); - space->install_read_bank(0xb800, 0xbfff, "bank9"); + space.install_read_bank(0xb800, 0xbfff, "bank9"); break; case 7: state->membank ("bank10")->set_base (mem); @@ -353,13 +353,13 @@ static READ8_HANDLER (konami_scc_bank5) { if ((offset & 0xff) >= 0xe0) { - return k051649_test_r (space->machine().device("k051649"), offset & 0xff); + return k051649_test_r (space->machine().device("k051649"), *space, offset & 0xff); } return 0xff; } else { - return k051649_waveform_r (space->machine().device("k051649"), offset & 0x7f); + return k051649_waveform_r (space->machine().device("k051649"), *space, offset & 0x7f); } } @@ -393,7 +393,7 @@ MSX_SLOT_MAP(konami_scc) MSX_SLOT_WRITE(konami_scc) { msx_state *drvstate = machine.driver_data<msx_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); if (addr >= 0x5000 && addr < 0x5800) { state->m_banks[0] = val & state->m_bank_mask; @@ -424,32 +424,32 @@ MSX_SLOT_WRITE(konami_scc) } else if (state->m_cart.scc.active && addr >= 0x9800 && addr < 0xa000) { - device_t *k051649 = space->machine().device("k051649"); + device_t *k051649 = space.machine().device("k051649"); int offset = addr & 0xff; if (offset < 0x80) { - k051649_waveform_w (k051649, offset, val); + k051649_waveform_w (k051649, space, offset, val); } else if (offset < 0xa0) { offset &= 0xf; if (offset < 0xa) { - k051649_frequency_w (k051649, offset, val); + k051649_frequency_w (k051649, space, offset, val); } else if (offset < 0xf) { - k051649_volume_w (k051649, offset - 0xa, val); + k051649_volume_w (k051649, space, offset - 0xa, val); } else { - k051649_keyonoff_w (k051649, 0, val); + k051649_keyonoff_w (k051649, space, 0, val); } } else if (offset >= 0xe0) { - k051649_test_w (k051649, offset, val); + k051649_test_w (k051649, space, offset, val); } } else if (addr >= 0xb000 && addr < 0xb800) @@ -1238,10 +1238,10 @@ static READ8_HANDLER (msx_diskrom_page1_r) device_t *fdc = space->machine().device("wd179x"); switch (offset) { - case 0: return wd17xx_status_r (fdc, 0); - case 1: return wd17xx_track_r (fdc, 0); - case 2: return wd17xx_sector_r (fdc, 0); - case 3: return wd17xx_data_r (fdc, 0); + case 0: return wd17xx_status_r (fdc, *space, 0); + case 1: return wd17xx_track_r (fdc, *space, 0); + case 2: return wd17xx_sector_r (fdc, *space, 0); + case 3: return wd17xx_data_r (fdc, *space, 0); case 7: return state->m_dsk_stat; default: return state->m_state[1]->m_mem[offset + 0x3ff8]; @@ -1257,13 +1257,13 @@ static READ8_HANDLER (msx_diskrom_page2_r) switch (offset) { case 0x7f8: - return wd17xx_status_r (fdc, 0); + return wd17xx_status_r (fdc, *space, 0); case 0x7f9: - return wd17xx_track_r (fdc, 0); + return wd17xx_track_r (fdc, *space, 0); case 0x7fa: - return wd17xx_sector_r (fdc, 0); + return wd17xx_sector_r (fdc, *space, 0); case 0x7fb: - return wd17xx_data_r (fdc, 0); + return wd17xx_data_r (fdc, *space, 0); case 0x7ff: return state->m_dsk_stat; default: @@ -1279,7 +1279,7 @@ static READ8_HANDLER (msx_diskrom_page2_r) MSX_SLOT_MAP(diskrom) { msx_state *drvstate = machine.driver_data<msx_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); switch (page) { case 0: @@ -1289,12 +1289,12 @@ MSX_SLOT_MAP(diskrom) case 1: msx_cpu_setbank (machine, 3, state->m_mem); msx_cpu_setbank (machine, 4, state->m_mem + 0x2000); - space->install_legacy_read_handler(0x7ff8, 0x7fff, FUNC(msx_diskrom_page1_r)); + space.install_legacy_read_handler(0x7ff8, 0x7fff, FUNC(msx_diskrom_page1_r)); break; case 2: msx_cpu_setbank (machine, 5, drvstate->m_empty); msx_cpu_setbank (machine, 6, drvstate->m_empty); - space->install_legacy_read_handler(0xb800, 0xbfff, FUNC(msx_diskrom_page2_r)); + space.install_legacy_read_handler(0xb800, 0xbfff, FUNC(msx_diskrom_page2_r)); break; case 3: msx_cpu_setbank (machine, 7, drvstate->m_empty); @@ -1306,6 +1306,7 @@ MSX_SLOT_MAP(diskrom) MSX_SLOT_WRITE(diskrom) { device_t *fdc = machine.device("wd179x"); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); if (addr >= 0xa000 && addr < 0xc000) { addr -= 0x4000; @@ -1313,16 +1314,16 @@ MSX_SLOT_WRITE(diskrom) switch (addr) { case 0x7ff8: - wd17xx_command_w (fdc, 0, val); + wd17xx_command_w (fdc, space, 0, val); break; case 0x7ff9: - wd17xx_track_w (fdc, 0, val); + wd17xx_track_w (fdc, space, 0, val); break; case 0x7ffa: - wd17xx_sector_w (fdc, 0, val); + wd17xx_sector_w (fdc, space, 0, val); break; case 0x7ffb: - wd17xx_data_w (fdc, 0, val); + wd17xx_data_w (fdc, space, 0, val); break; case 0x7ffc: wd17xx_set_side (fdc,val & 1); @@ -1366,10 +1367,10 @@ static READ8_HANDLER (msx_diskrom2_page1_r) device_t *fdc = space->machine().device("wd179x"); switch (offset) { - case 0: return wd17xx_status_r(fdc, 0); - case 1: return wd17xx_track_r(fdc, 0); - case 2: return wd17xx_sector_r(fdc, 0); - case 3: return wd17xx_data_r(fdc, 0); + case 0: return wd17xx_status_r(fdc, *space, 0); + case 1: return wd17xx_track_r(fdc, *space, 0); + case 2: return wd17xx_sector_r(fdc, *space, 0); + case 3: return wd17xx_data_r(fdc, *space, 0); case 4: return state->m_dsk_stat; default: return state->m_state[1]->m_mem[offset + 0x3ff8]; @@ -1385,13 +1386,13 @@ static READ8_HANDLER (msx_diskrom2_page2_r) switch (offset) { case 0x7b8: - return wd17xx_status_r (fdc, 0); + return wd17xx_status_r (fdc, *space, 0); case 0x7b9: - return wd17xx_track_r (fdc, 0); + return wd17xx_track_r (fdc, *space, 0); case 0x7ba: - return wd17xx_sector_r (fdc, 0); + return wd17xx_sector_r (fdc, *space, 0); case 0x7bb: - return wd17xx_data_r (fdc, 0); + return wd17xx_data_r (fdc, *space, 0); case 0x7bc: return state->m_dsk_stat; default: @@ -1407,7 +1408,7 @@ static READ8_HANDLER (msx_diskrom2_page2_r) MSX_SLOT_MAP(diskrom2) { msx_state *drvstate = machine.driver_data<msx_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); switch (page) { case 0: @@ -1417,12 +1418,12 @@ MSX_SLOT_MAP(diskrom2) case 1: msx_cpu_setbank (machine, 3, state->m_mem); msx_cpu_setbank (machine, 4, state->m_mem + 0x2000); - space->install_legacy_read_handler(0x7fb8, 0x7fbc, FUNC(msx_diskrom2_page1_r)); + space.install_legacy_read_handler(0x7fb8, 0x7fbc, FUNC(msx_diskrom2_page1_r)); break; case 2: msx_cpu_setbank (machine, 5, drvstate->m_empty); msx_cpu_setbank (machine, 6, drvstate->m_empty); - space->install_legacy_read_handler(0xb800, 0xbfbc, FUNC(msx_diskrom2_page2_r)); + space.install_legacy_read_handler(0xb800, 0xbfbc, FUNC(msx_diskrom2_page2_r)); break; case 3: msx_cpu_setbank (machine, 7, drvstate->m_empty); @@ -1433,6 +1434,7 @@ MSX_SLOT_MAP(diskrom2) MSX_SLOT_WRITE(diskrom2) { device_t *fdc = machine.device("wd179x"); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); if (addr >= 0xa000 && addr < 0xc000) { addr -= 0x4000; @@ -1440,16 +1442,16 @@ MSX_SLOT_WRITE(diskrom2) switch (addr) { case 0x7fb8: - wd17xx_command_w (fdc, 0, val); + wd17xx_command_w (fdc, space, 0, val); break; case 0x7fb9: - wd17xx_track_w (fdc, 0, val); + wd17xx_track_w (fdc, space, 0, val); break; case 0x7fba: - wd17xx_sector_w (fdc, 0, val); + wd17xx_sector_w (fdc, space, 0, val); break; case 0x7fbb: - wd17xx_data_w (fdc, 0, val); + wd17xx_data_w (fdc, space, 0, val); break; case 0x7fbc: wd17xx_set_side (fdc,val & 1); @@ -1683,7 +1685,7 @@ MSX_SLOT_MAP(fmpac) MSX_SLOT_WRITE(fmpac) { msx_state *drvstate = machine.driver_data<msx_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); int i, data; if (addr >= 0x4000 && addr < 0x6000 && state->m_cart.fmpac.sram_support) @@ -1703,13 +1705,13 @@ MSX_SLOT_WRITE(fmpac) case 0x7ff4: if (state->m_cart.fmpac.opll_active) { - ym2413_w (space->machine().device("ay8910"), 0, val); + ym2413_w (space.machine().device("ay8910"), space, 0, val); } break; case 0x7ff5: if (state->m_cart.fmpac.opll_active) { - ym2413_w (space->machine().device("ay8910"), 1, val); + ym2413_w (space.machine().device("ay8910"), space, 1, val); } break; case 0x7ff6: @@ -2196,7 +2198,7 @@ static READ8_HANDLER (soundcartridge_scc) if (reg < 0x80) { - return k051649_waveform_r (space->machine().device("k051649"), reg); + return k051649_waveform_r (space->machine().device("k051649"), *space, reg); } else if (reg < 0xa0) { @@ -2205,11 +2207,11 @@ static READ8_HANDLER (soundcartridge_scc) else if (reg < 0xc0) { /* read wave 5 */ - return k051649_waveform_r (space->machine().device("k051649"), 0x80 + (reg & 0x1f)); + return k051649_waveform_r (space->machine().device("k051649"), *space, 0x80 + (reg & 0x1f)); } else if (reg < 0xe0) { - return k051649_test_r (space->machine().device("k051649"), reg); + return k051649_test_r (space->machine().device("k051649"), *space, reg); } return 0xff; @@ -2230,11 +2232,11 @@ static READ8_HANDLER (soundcartridge_sccp) if (reg < 0xa0) { - return k052539_waveform_r (space->machine().device("k051649"), reg); + return k052539_waveform_r (space->machine().device("k051649"), *space, reg); } else if (reg >= 0xc0 && reg < 0xe0) { - return k051649_test_r (space->machine().device("k051649"), reg); + return k051649_test_r (space->machine().device("k051649"), *space, reg); } return 0xff; @@ -2242,7 +2244,7 @@ static READ8_HANDLER (soundcartridge_sccp) MSX_SLOT_MAP(soundcartridge) { - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); switch (page) { case 0: @@ -2257,14 +2259,14 @@ MSX_SLOT_MAP(soundcartridge) msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000); msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000); if (state->m_cart.sccp.scc_active) { - space->install_legacy_read_handler(0x9800, 0x9fff, FUNC(soundcartridge_scc)); + space.install_legacy_read_handler(0x9800, 0x9fff, FUNC(soundcartridge_scc)); } else { - space->install_read_bank(0x9800, 0x9fff, "bank7"); + space.install_read_bank(0x9800, 0x9fff, "bank7"); } if (state->m_cart.sccp.scc_active) { - space->install_legacy_read_handler(0xb800, 0xbfff, FUNC(soundcartridge_sccp)); + space.install_legacy_read_handler(0xb800, 0xbfff, FUNC(soundcartridge_sccp)); } else { - space->install_read_bank(0xb800, 0xbfff, "bank9"); + space.install_read_bank(0xb800, 0xbfff, "bank9"); } break; case 3: @@ -2277,7 +2279,7 @@ MSX_SLOT_MAP(soundcartridge) MSX_SLOT_WRITE(soundcartridge) { msx_state *drvstate = machine.driver_data<msx_state>(); - address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM); int i; if (addr < 0x4000) @@ -2339,12 +2341,12 @@ MSX_SLOT_WRITE(soundcartridge) } else if (addr >= 0x9800 && state->m_cart.sccp.scc_active) { - device_t *k051649 = space->machine().device("k051649"); + device_t *k051649 = space.machine().device("k051649"); int offset = addr & 0xff; if (offset < 0x80) { - k051649_waveform_w (k051649, offset, val); + k051649_waveform_w (k051649, space, offset, val); } else if (offset < 0xa0) { @@ -2352,20 +2354,20 @@ MSX_SLOT_WRITE(soundcartridge) if (offset < 0xa) { - k051649_frequency_w (k051649, offset, val); + k051649_frequency_w (k051649, space, offset, val); } else if (offset < 0x0f) { - k051649_volume_w (k051649, offset - 0xa, val); + k051649_volume_w (k051649, space, offset - 0xa, val); } else if (offset == 0x0f) { - k051649_keyonoff_w (k051649, 0, val); + k051649_keyonoff_w (k051649, space, 0, val); } } else if (offset < 0xe0) { - k051649_test_w (k051649, offset, val); + k051649_test_w (k051649, space, offset, val); } } } @@ -2389,12 +2391,12 @@ MSX_SLOT_WRITE(soundcartridge) } else if (addr >= 0xb800 && state->m_cart.sccp.sccp_active) { - device_t *k051649 = space->machine().device("k051649"); + device_t *k051649 = space.machine().device("k051649"); int offset = addr & 0xff; if (offset < 0xa0) { - k052539_waveform_w (k051649, offset, val); + k052539_waveform_w (k051649, space, offset, val); } else if (offset < 0xc0) { @@ -2402,20 +2404,20 @@ MSX_SLOT_WRITE(soundcartridge) if (offset < 0x0a) { - k051649_frequency_w (k051649, offset, val); + k051649_frequency_w (k051649, space, offset, val); } else if (offset < 0x0f) { - k051649_volume_w (k051649, offset - 0x0a, val); + k051649_volume_w (k051649, space, offset - 0x0a, val); } else if (offset == 0x0f) { - k051649_keyonoff_w (k051649, 0, val); + k051649_keyonoff_w (k051649, space, 0, val); } } else if (offset < 0xe0) { - k051649_test_w (k051649, offset, val); + k051649_test_w (k051649, space, offset, val); } } } diff --git a/src/mess/machine/mtx.c b/src/mess/machine/mtx.c index f9f868b04a8..0973f55ad14 100644 --- a/src/mess/machine/mtx.c +++ b/src/mess/machine/mtx.c @@ -118,7 +118,7 @@ READ8_DEVICE_HANDLER( mtx_sound_strobe_r ) { mtx_state *state = device->machine().driver_data<mtx_state>(); - sn76496_w(device, 0, state->m_sound_latch); + sn76496_w(device, space, 0, state->m_sound_latch); return 0xff; } diff --git a/src/mess/machine/mz700.c b/src/mess/machine/mz700.c index fd4827bc2c5..4b3dfa1a6f9 100644 --- a/src/mess/machine/mz700.c +++ b/src/mess/machine/mz700.c @@ -36,10 +36,10 @@ } while (0) -static READ8_DEVICE_HANDLER ( pio_port_b_r ); -static READ8_DEVICE_HANDLER ( pio_port_c_r ); -static WRITE8_DEVICE_HANDLER ( pio_port_a_w ); -static WRITE8_DEVICE_HANDLER ( pio_port_c_w ); +static DECLARE_READ8_DEVICE_HANDLER ( pio_port_b_r ); +static DECLARE_READ8_DEVICE_HANDLER ( pio_port_c_r ); +static DECLARE_WRITE8_DEVICE_HANDLER ( pio_port_a_w ); +static DECLARE_WRITE8_DEVICE_HANDLER ( pio_port_c_w ); I8255_INTERFACE( mz700_ppi8255_interface ) { diff --git a/src/mess/machine/nes_pcb.c b/src/mess/machine/nes_pcb.c index af45abbd1e8..c5e486f3938 100644 --- a/src/mess/machine/nes_pcb.c +++ b/src/mess/machine/nes_pcb.c @@ -1901,7 +1901,7 @@ static WRITE8_HANDLER( exrom_l_w ) /* Send $5000-$5015 to the sound chip */ if ((offset >= 0xf00) && (offset <= 0xf15)) { - nes_psg_w(state->m_sound, offset & 0x1f, data); + nes_psg_w(state->m_sound, *space, offset & 0x1f, data); return; } diff --git a/src/mess/machine/odyssey2.c b/src/mess/machine/odyssey2.c index 5d876f834a5..ecfb69c6008 100644 --- a/src/mess/machine/odyssey2.c +++ b/src/mess/machine/odyssey2.c @@ -100,7 +100,7 @@ WRITE8_MEMBER(odyssey2_state::odyssey2_bus_w) if ( offset & 0x80 ) { if ( data & 0x20 ) { logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1 ); - sp0256_ALD_w( machine().device("sp0256_speech"), 0, offset & 0x7F ); + sp0256_ALD_w( machine().device("sp0256_speech"), space, 0, offset & 0x7F ); } else { /* TODO: Reset sp0256 in this case */ } diff --git a/src/mess/machine/omti8621.c b/src/mess/machine/omti8621.c index a47754d57a5..64fa2891abc 100644 --- a/src/mess/machine/omti8621.c +++ b/src/mess/machine/omti8621.c @@ -1037,10 +1037,10 @@ WRITE16_DEVICE_HANDLER(omti8621_w ) { switch (mem_mask) { case 0x00ff: - omti8621_w8(device, offset*2+1, data); + omti8621_w8(device, space, offset*2+1, data, mem_mask); break; case 0xff00: - omti8621_w8(device, offset*2, data>>8); + omti8621_w8(device, space, offset*2, data>>8, mem_mask>>8); break; default: LOG3(("writing OMTI 8621 Data Word Register to %0x = %04x & %04x", offset, data, mem_mask)); @@ -1054,10 +1054,10 @@ READ16_DEVICE_HANDLER( omti8621_r ) { UINT16 data; switch (mem_mask) { case 0x00ff: - data = omti8621_r8(device, offset*2+1); + data = omti8621_r8(device, space, offset*2+1, mem_mask); break; case 0xff00: - data = omti8621_r8(device, offset*2) << 8; + data = omti8621_r8(device, space, offset*2, mem_mask >> 8) << 8; break; default: data = get_data(state); diff --git a/src/mess/machine/omti8621.h b/src/mess/machine/omti8621.h index d0569cab71a..7a1a9a93ce3 100644 --- a/src/mess/machine/omti8621.h +++ b/src/mess/machine/omti8621.h @@ -39,8 +39,8 @@ struct omti8621_config { FUNCTION PROTOTYPES ***************************************************************************/ -READ16_DEVICE_HANDLER( omti8621_r ); -WRITE16_DEVICE_HANDLER( omti8621_w ); +DECLARE_READ16_DEVICE_HANDLER( omti8621_r ); +DECLARE_WRITE16_DEVICE_HANDLER( omti8621_w ); void omti8621_set_verbose(int on_off); diff --git a/src/mess/machine/oric.c b/src/mess/machine/oric.c index 8f0887e87ca..4016fa0784c 100644 --- a/src/mess/machine/oric.c +++ b/src/mess/machine/oric.c @@ -137,7 +137,6 @@ WRITE8_MEMBER(oric_state::oric_psg_porta_write) static READ8_DEVICE_HANDLER ( oric_via_in_a_func ) { oric_state *state = device->machine().driver_data<oric_state>(); - address_space *space = device->machine().device( "maincpu")->memory().space( AS_PROGRAM ); /*logerror("port a read\r\n"); */ @@ -146,7 +145,7 @@ static READ8_DEVICE_HANDLER ( oric_via_in_a_func ) { /* if psg is in read register state return reg data */ if (state->m_psg_control==0x01) - return ay8910_r(space->machine().device("ay8912"), 0); + return ay8910_r(space.machine().device("ay8912"), space, 0); /* return high-impedance */ return 0x0ff; @@ -171,9 +170,9 @@ static READ8_DEVICE_HANDLER ( oric_via_in_b_func ) /* read/write data depending on state of bdir, bc1 pins and data output to psg */ -static void oric_psg_connection_refresh(running_machine &machine) +static void oric_psg_connection_refresh(address_space &space) { - oric_state *state = machine.driver_data<oric_state>(); + oric_state *state = space.machine().driver_data<oric_state>(); if (state->m_psg_control!=0) { switch (state->m_psg_control) @@ -190,15 +189,15 @@ static void oric_psg_connection_refresh(running_machine &machine) /* write register data */ case 2: { - device_t *ay8912 = machine.device("ay8912"); - ay8910_data_w(ay8912, 0, state->m_via_port_a_data); + device_t *ay8912 = space.machine().device("ay8912"); + ay8910_data_w(ay8912, space, 0, state->m_via_port_a_data); } break; /* write register index */ case 3: { - device_t *ay8912 = machine.device("ay8912"); - ay8910_address_w(ay8912, 0, state->m_via_port_a_data); + device_t *ay8912 = space.machine().device("ay8912"); + ay8910_address_w(ay8912, space, 0, state->m_via_port_a_data); } break; @@ -215,7 +214,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_a_func ) oric_state *state = device->machine().driver_data<oric_state>(); state->m_via_port_a_data = data; - oric_psg_connection_refresh(device->machine()); + oric_psg_connection_refresh(space); if (state->m_psg_control==0) @@ -302,7 +301,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_b_func ) /* centronics STROBE is connected to PB4 */ centronics->strobe_w(BIT(data, 4)); - oric_psg_connection_refresh(device->machine()); + oric_psg_connection_refresh(space); state->m_previous_portb_data = data; } @@ -327,7 +326,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_ca2_func ) if (data) state->m_psg_control |=1; - oric_psg_connection_refresh(device->machine()); + oric_psg_connection_refresh(space); } static WRITE8_DEVICE_HANDLER ( oric_via_out_cb2_func ) @@ -338,7 +337,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_cb2_func ) if (data) state->m_psg_control |=2; - oric_psg_connection_refresh(device->machine()); + oric_psg_connection_refresh(space); } @@ -680,16 +679,16 @@ READ8_MEMBER(oric_state::oric_jasmin_r) { /* jasmin floppy disc interface */ case 0x04: - data = wd17xx_status_r(fdc, 0); + data = wd17xx_status_r(fdc, space, 0); break; case 0x05: - data =wd17xx_track_r(fdc, 0); + data =wd17xx_track_r(fdc, space, 0); break; case 0x06: - data = wd17xx_sector_r(fdc, 0); + data = wd17xx_sector_r(fdc, space, 0); break; case 0x07: - data = wd17xx_data_r(fdc, 0); + data = wd17xx_data_r(fdc, space, 0); break; default: data = via_0->read(space,offset & 0x0f); @@ -709,16 +708,16 @@ WRITE8_MEMBER(oric_state::oric_jasmin_w) { /* microdisc floppy disc interface */ case 0x04: - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 0x05: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 0x06: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 0x07: - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; /* bit 0 = side */ case 0x08: @@ -898,16 +897,16 @@ READ8_MEMBER(oric_state::oric_microdisc_r) { /* microdisc floppy disc interface */ case 0x00: - data = wd17xx_status_r(fdc, 0); + data = wd17xx_status_r(fdc, space, 0); break; case 0x01: - data =wd17xx_track_r(fdc, 0); + data =wd17xx_track_r(fdc, space, 0); break; case 0x02: - data = wd17xx_sector_r(fdc, 0); + data = wd17xx_sector_r(fdc, space, 0); break; case 0x03: - data = wd17xx_data_r(fdc, 0); + data = wd17xx_data_r(fdc, space, 0); break; case 0x04: data = m_port_314_r | 0x07f; @@ -937,16 +936,16 @@ WRITE8_MEMBER(oric_state::oric_microdisc_w) { /* microdisc floppy disc interface */ case 0x00: - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 0x01: - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 0x02: - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 0x03: - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; case 0x04: { diff --git a/src/mess/machine/orion.c b/src/mess/machine/orion.c index b4e8f27e335..d2100d061f6 100644 --- a/src/mess/machine/orion.c +++ b/src/mess/machine/orion.c @@ -181,13 +181,13 @@ READ8_MEMBER(orion_state::orion128_floppy_r) switch(offset) { case 0x0 : - case 0x10 : return wd17xx_status_r(fdc,0); + case 0x10 : return wd17xx_status_r(fdc,space, 0); case 0x1 : - case 0x11 : return wd17xx_track_r(fdc,0); + case 0x11 : return wd17xx_track_r(fdc,space, 0); case 0x2 : - case 0x12 : return wd17xx_sector_r(fdc,0); + case 0x12 : return wd17xx_sector_r(fdc,space, 0); case 0x3 : - case 0x13 : return wd17xx_data_r(fdc,0); + case 0x13 : return wd17xx_data_r(fdc,space, 0); } return 0xff; } @@ -199,13 +199,13 @@ WRITE8_MEMBER(orion_state::orion128_floppy_w) switch(offset) { case 0x0 : - case 0x10 : wd17xx_command_w(fdc,0,data); break; + case 0x10 : wd17xx_command_w(fdc,space, 0,data); break; case 0x1 : - case 0x11 : wd17xx_track_w(fdc,0,data);break; + case 0x11 : wd17xx_track_w(fdc,space, 0,data);break; case 0x2 : - case 0x12 : wd17xx_sector_w(fdc,0,data);break; + case 0x12 : wd17xx_sector_w(fdc,space, 0,data);break; case 0x3 : - case 0x13 : wd17xx_data_w(fdc,0,data);break; + case 0x13 : wd17xx_data_w(fdc,space, 0,data);break; case 0x4 : case 0x14 : case 0x20 : orion_disk_control_w(space, offset, data);break; @@ -378,7 +378,7 @@ READ8_MEMBER(orion_state::orionz80_io_r) { if (offset == 0xFFFD) { - return ay8910_r (machine().device("ay8912"), 0); + return ay8910_r (machine().device("ay8912"), space, 0); } return 0xff; } @@ -396,10 +396,10 @@ WRITE8_MEMBER(orion_state::orionz80_io_w) } switch(offset) { - case 0xfffd : ay8910_address_w(machine().device("ay8912"), 0, data); + case 0xfffd : ay8910_address_w(machine().device("ay8912"), space, 0, data); break; case 0xbffd : - case 0xbefd : ay8910_data_w(machine().device("ay8912"), 0, data); + case 0xbefd : ay8910_data_w(machine().device("ay8912"), space, 0, data); break; } } @@ -556,10 +556,10 @@ READ8_MEMBER(orion_state::orionpro_io_r) case 0x08 : return m_orionpro_page; case 0x09 : return m_orionpro_rom2_segment; case 0x0a : return m_orionpro_dispatcher; - case 0x10 : return wd17xx_status_r(fdc,0); - case 0x11 : return wd17xx_track_r(fdc,0); - case 0x12 : return wd17xx_sector_r(fdc,0); - case 0x13 : return wd17xx_data_r(fdc,0); + case 0x10 : return wd17xx_status_r(fdc,space, 0); + case 0x11 : return wd17xx_track_r(fdc,space, 0); + case 0x12 : return wd17xx_sector_r(fdc,space, 0); + case 0x13 : return wd17xx_data_r(fdc,space, 0); case 0x18 : case 0x19 : case 0x1a : @@ -572,7 +572,7 @@ READ8_MEMBER(orion_state::orionpro_io_r) } if (offset == 0xFFFD) { - return ay8910_r (machine().device("ay8912"), 0); + return ay8910_r (machine().device("ay8912"), space, 0); } return 0xff; } @@ -589,10 +589,10 @@ WRITE8_MEMBER(orion_state::orionpro_io_w) case 0x08 : m_orionpro_page = data; orionpro_bank_switch(machine()); break; case 0x09 : m_orionpro_rom2_segment = data; orionpro_bank_switch(machine()); break; case 0x0a : m_orionpro_dispatcher = data; orionpro_bank_switch(machine()); break; - case 0x10 : wd17xx_command_w(fdc,0,data); break; - case 0x11 : wd17xx_track_w(fdc,0,data);break; - case 0x12 : wd17xx_sector_w(fdc,0,data);break; - case 0x13 : wd17xx_data_w(fdc,0,data);break; + case 0x10 : wd17xx_command_w(fdc,space, 0,data); break; + case 0x11 : wd17xx_track_w(fdc,space, 0,data);break; + case 0x12 : wd17xx_sector_w(fdc,space, 0,data);break; + case 0x13 : wd17xx_data_w(fdc,space, 0,data);break; case 0x14 : orion_disk_control_w(space, 9, data);break; case 0x18 : case 0x19 : @@ -612,10 +612,10 @@ WRITE8_MEMBER(orion_state::orionpro_io_w) } switch(offset) { - case 0xfffd : ay8910_address_w(machine().device("ay8912"), 0, data); + case 0xfffd : ay8910_address_w(machine().device("ay8912"), space, 0, data); break; case 0xbffd : - case 0xbefd : ay8910_data_w(machine().device("ay8912"), 0, data); + case 0xbefd : ay8910_data_w(machine().device("ay8912"), space, 0, data); break; } } diff --git a/src/mess/machine/osborne1.c b/src/mess/machine/osborne1.c index 47d4cff7965..d67d9a11ba8 100644 --- a/src/mess/machine/osborne1.c +++ b/src/mess/machine/osborne1.c @@ -47,7 +47,7 @@ READ8_MEMBER( osborne1_state::osborne1_2000_r ) switch( offset & 0x0F00 ) { case 0x100: /* Floppy */ - data = wd17xx_r( m_fdc, offset ); + data = wd17xx_r( m_fdc, space, offset ); break; case 0x200: /* Keyboard */ /* Row 0 */ @@ -96,7 +96,7 @@ WRITE8_MEMBER( osborne1_state::osborne1_2000_w ) switch( offset & 0x0F00 ) { case 0x100: /* Floppy */ - wd17xx_w( m_fdc, offset, data ); + wd17xx_w( m_fdc, space, offset, data ); break; case 0x900: /* IEEE488 PIA */ m_pia0->write(space, offset & 0x03, data ); diff --git a/src/mess/machine/partner.c b/src/mess/machine/partner.c index e96e5b61c04..a9d5b4d8066 100644 --- a/src/mess/machine/partner.c +++ b/src/mess/machine/partner.c @@ -84,11 +84,11 @@ READ8_MEMBER(partner_state::partner_floppy_r){ if (offset<0x100) { switch(offset & 3) { - case 0x00 : return wd17xx_status_r(fdc,0); - case 0x01 : return wd17xx_track_r(fdc,0); - case 0x02 : return wd17xx_sector_r(fdc,0); + case 0x00 : return wd17xx_status_r(fdc,space, 0); + case 0x01 : return wd17xx_track_r(fdc,space, 0); + case 0x02 : return wd17xx_sector_r(fdc,space, 0); default : - return wd17xx_data_r(fdc,0); + return wd17xx_data_r(fdc,space, 0); } } else { return 0; @@ -100,10 +100,10 @@ WRITE8_MEMBER(partner_state::partner_floppy_w){ if (offset<0x100) { switch(offset & 3) { - case 0x00 : wd17xx_command_w(fdc,0,data); break; - case 0x01 : wd17xx_track_w(fdc,0,data);break; - case 0x02 : wd17xx_sector_w(fdc,0,data);break; - default : wd17xx_data_w(fdc,0,data);break; + case 0x00 : wd17xx_command_w(fdc,space, 0,data); break; + case 0x01 : wd17xx_track_w(fdc,space, 0,data);break; + case 0x02 : wd17xx_sector_w(fdc,space, 0,data);break; + default : wd17xx_data_w(fdc,space, 0,data);break; } } else { floppy_mon_w(floppy_get_device(machine(), 0), 1); diff --git a/src/mess/machine/pc.c b/src/mess/machine/pc.c index 90e27b829ed..c3a2e8968d0 100644 --- a/src/mess/machine/pc.c +++ b/src/mess/machine/pc.c @@ -200,7 +200,7 @@ WRITE8_MEMBER(pc_state::pc_dma_write_byte) static READ8_DEVICE_HANDLER( pc_dma8237_fdc_dack_r ) { - return pc_fdc_dack_r(device->machine()); + return pc_fdc_dack_r(device->machine(), space); } @@ -212,7 +212,7 @@ static READ8_DEVICE_HANDLER( pc_dma8237_hdc_dack_r ) static WRITE8_DEVICE_HANDLER( pc_dma8237_fdc_dack_w ) { - pc_fdc_dack_w( device->machine(), data ); + pc_fdc_dack_w( device->machine(), space, data ); } diff --git a/src/mess/machine/pc_fdc.c b/src/mess/machine/pc_fdc.c index fdf43632a86..8d2055d0161 100644 --- a/src/mess/machine/pc_fdc.c +++ b/src/mess/machine/pc_fdc.c @@ -194,7 +194,7 @@ static WRITE_LINE_DEVICE_HANDLER( pc_fdc_hw_interrupt ) -int pc_fdc_dack_r(running_machine &machine) +int pc_fdc_dack_r(running_machine &machine, address_space &space) { int data; @@ -204,7 +204,7 @@ int pc_fdc_dack_r(running_machine &machine) /* if dma is not enabled, dacks are not acknowledged */ if ((fdc->digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0) { - data = upd765_dack_r(pc_get_device(machine), 0); + data = upd765_dack_r(pc_get_device(machine), space, 0); } return data; @@ -212,13 +212,13 @@ int pc_fdc_dack_r(running_machine &machine) -void pc_fdc_dack_w(running_machine &machine, int data) +void pc_fdc_dack_w(running_machine &machine, address_space &space, int data) { /* if dma is not enabled, dacks are not issued */ if ((fdc->digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0) { /* dma acknowledge - and send byte to fdc */ - upd765_dack_w(pc_get_device(machine), 0,data); + upd765_dack_w(pc_get_device(machine), space, 0,data); } } @@ -270,15 +270,15 @@ static void pc_fdc_data_rate_w(running_machine &machine, UINT8 data) `------------------ 1 = turn floppy drive D motor on */ -static void pc_fdc_dor_w(running_machine &machine, UINT8 data) +static WRITE8_HANDLER( pc_fdc_dor_w ) { int selected_drive; int floppy_count; - floppy_count = floppy_get_count(machine); + floppy_count = floppy_get_count(space->machine()); if (floppy_count > (fdc->digital_output_register & 0x03)) - floppy_drive_set_ready_state(floppy_get_device(machine, fdc->digital_output_register & 0x03), 1, 0); + floppy_drive_set_ready_state(floppy_get_device(space->machine(), fdc->digital_output_register & 0x03), 1, 0); fdc->digital_output_register = data; @@ -286,34 +286,34 @@ static void pc_fdc_dor_w(running_machine &machine, UINT8 data) /* set floppy drive motor state */ if (floppy_count > 0) - floppy_mon_w(floppy_get_device(machine, 0), !BIT(data, 4)); + floppy_mon_w(floppy_get_device(space->machine(), 0), !BIT(data, 4)); if (floppy_count > 1) - floppy_mon_w(floppy_get_device(machine, 1), !BIT(data, 5)); + floppy_mon_w(floppy_get_device(space->machine(), 1), !BIT(data, 5)); if (floppy_count > 2) - floppy_mon_w(floppy_get_device(machine, 2), !BIT(data, 6)); + floppy_mon_w(floppy_get_device(space->machine(), 2), !BIT(data, 6)); if (floppy_count > 3) - floppy_mon_w(floppy_get_device(machine, 3), !BIT(data, 7)); + floppy_mon_w(floppy_get_device(space->machine(), 3), !BIT(data, 7)); if ((data>>4) & (1<<selected_drive)) { if (floppy_count > selected_drive) - floppy_drive_set_ready_state(floppy_get_device(machine, selected_drive), 1, 0); + floppy_drive_set_ready_state(floppy_get_device(space->machine(), selected_drive), 1, 0); } /* changing the DMA enable bit, will affect the terminal count state from reaching the fdc - if dma is enabled this will send it through otherwise it will be ignored */ - pc_fdc_set_tc_state(machine, fdc->tc_state); + pc_fdc_set_tc_state(space->machine(), fdc->tc_state); /* changing the DMA enable bit, will affect the dma drq state from reaching us - if dma is enabled this will send it through otherwise it will be ignored */ - pc_fdc_hw_dma_drq(pc_get_device(machine), fdc->dma_state); + pc_fdc_hw_dma_drq(pc_get_device(space->machine()), fdc->dma_state); /* changing the DMA enable bit, will affect the irq state from reaching us - if dma is enabled this will send it through otherwise it will be ignored */ - pc_fdc_hw_interrupt(pc_get_device(machine), fdc->int_state); + pc_fdc_hw_interrupt(pc_get_device(space->machine()), fdc->int_state); /* reset? */ if ((fdc->digital_output_register & PC_FDC_FLAGS_DOR_FDC_ENABLED)==0) @@ -336,17 +336,17 @@ static void pc_fdc_dor_w(running_machine &machine, UINT8 data) what is not yet clear is if this is a result of the drives ready state changing... */ - upd765_ready_w(pc_get_device(machine),1); + upd765_ready_w(pc_get_device(space->machine()),1); /* set FDC at reset */ - upd765_reset_w(pc_get_device(machine), 1); + upd765_reset_w(pc_get_device(space->machine()), 1); } else { - pc_fdc_set_tc_state(machine, 0); + pc_fdc_set_tc_state(space->machine(), 0); /* release reset on fdc */ - upd765_reset_w(pc_get_device(machine), 0); + upd765_reset_w(pc_get_device(space->machine()), 0); } } @@ -377,20 +377,20 @@ static TIMER_CALLBACK( watchdog_timeout ) } } -static void pcjr_fdc_dor_w(running_machine &machine, UINT8 data) +static WRITE8_HANDLER( pcjr_fdc_dor_w ) { int floppy_count; - floppy_count = floppy_get_count(machine); + floppy_count = floppy_get_count(space->machine()); /* set floppy drive motor state */ if (floppy_count > 0) - floppy_mon_w(floppy_get_device(machine, 0), BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE); + floppy_mon_w(floppy_get_device(space->machine(), 0), BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE); if ( data & 0x01 ) { if ( floppy_count ) - floppy_drive_set_ready_state(floppy_get_device(machine, 0), 1, 0); + floppy_drive_set_ready_state(floppy_get_device(space->machine(), 0), 1, 0); } /* Is the watchdog timer disabled */ @@ -399,7 +399,7 @@ static void pcjr_fdc_dor_w(running_machine &machine, UINT8 data) fdc->watchdog->adjust( attotime::never ); if ( fdc->fdc_interface.pc_fdc_interrupt ) { - fdc->fdc_interface.pc_fdc_interrupt(machine, 0 ); + fdc->fdc_interface.pc_fdc_interrupt(space->machine(), 0 ); } } else { /* Check for 1->0 watchdog trigger */ @@ -431,17 +431,17 @@ static void pcjr_fdc_dor_w(running_machine &machine, UINT8 data) what is not yet clear is if this is a result of the drives ready state changing... */ - upd765_ready_w(pc_get_device(machine),1); + upd765_ready_w(pc_get_device(space->machine()),1); /* set FDC at reset */ - upd765_reset_w(pc_get_device(machine), 1); + upd765_reset_w(pc_get_device(space->machine()), 1); } else { - pc_fdc_set_tc_state(machine, 0); + pc_fdc_set_tc_state(space->machine(), 0); /* release reset on fdc */ - upd765_reset_w(pc_get_device(machine), 0); + upd765_reset_w(pc_get_device(space->machine()), 0); } logerror("pcjr_fdc_dor_w: changing dor from %02x to %02x\n", fdc->digital_output_register, data); @@ -498,10 +498,10 @@ READ8_HANDLER ( pc_fdc_r ) case 3: /* tape drive select? */ break; case 4: - data = upd765_status_r(pc_get_device(space->machine()), 0); + data = upd765_status_r(pc_get_device(space->machine()), *space, 0); break; case 5: - data = upd765_data_r(pc_get_device(space->machine()), offset); + data = upd765_data_r(pc_get_device(space->machine()), *space, offset); break; case 6: /* FDC reserved */ break; @@ -531,7 +531,7 @@ WRITE8_HANDLER ( pc_fdc_w ) case 1: /* n/a */ break; case 2: - pc_fdc_dor_w(space->machine(), data); + pc_fdc_dor_w(space, 0, data); break; case 3: /* tape drive select? */ @@ -540,7 +540,7 @@ WRITE8_HANDLER ( pc_fdc_w ) pc_fdc_data_rate_w(space->machine(), data); break; case 5: - upd765_data_w(pc_get_device(space->machine()), 0, data); + upd765_data_w(pc_get_device(space->machine()), *space, 0, data); break; case 6: /* FDC reserved */ @@ -568,7 +568,7 @@ WRITE8_HANDLER ( pcjr_fdc_w ) switch(offset) { case 2: - pcjr_fdc_dor_w( space->machine(), data ); + pcjr_fdc_dor_w( space, 0, data ); break; case 4: case 7: diff --git a/src/mess/machine/pc_fdc.h b/src/mess/machine/pc_fdc.h index e60738869aa..9317fea12a2 100644 --- a/src/mess/machine/pc_fdc.h +++ b/src/mess/machine/pc_fdc.h @@ -40,8 +40,8 @@ extern const upd765_interface pcjr_fdc_upd765_interface; void pc_fdc_reset(running_machine &machine); void pc_fdc_init(running_machine &machine, const struct pc_fdc_interface *iface); void pc_fdc_set_tc_state(running_machine &machine, int state); -int pc_fdc_dack_r(running_machine &machine); -void pc_fdc_dack_w(running_machine &machine, int); +int pc_fdc_dack_r(running_machine &machine, address_space &space); +void pc_fdc_dack_w(running_machine &machine, address_space &space, int data); READ8_HANDLER(pc_fdc_r); WRITE8_HANDLER(pc_fdc_w); diff --git a/src/mess/machine/pc_lpt.c b/src/mess/machine/pc_lpt.c index a0f36f7be87..5abda63561c 100644 --- a/src/mess/machine/pc_lpt.c +++ b/src/mess/machine/pc_lpt.c @@ -204,9 +204,9 @@ READ8_DEVICE_HANDLER( pc_lpt_r ) { switch (offset) { - case 0: return pc_lpt_data_r(device, 0); - case 1: return pc_lpt_status_r(device, 0); - case 2: return pc_lpt_control_r(device, 0); + case 0: return pc_lpt_data_r(device, space, 0); + case 1: return pc_lpt_status_r(device, space, 0); + case 2: return pc_lpt_control_r(device, space, 0); } /* if we reach this its an error */ @@ -220,9 +220,9 @@ WRITE8_DEVICE_HANDLER( pc_lpt_w ) { switch (offset) { - case 0: pc_lpt_data_w(device, 0, data); break; + case 0: pc_lpt_data_w(device, space, 0, data); break; case 1: break; - case 2: pc_lpt_control_w(device, 0, data); break; + case 2: pc_lpt_control_w(device, space, 0, data); break; } } diff --git a/src/mess/machine/pc_lpt.h b/src/mess/machine/pc_lpt.h index 5c955ba5007..c29946ed9b5 100644 --- a/src/mess/machine/pc_lpt.h +++ b/src/mess/machine/pc_lpt.h @@ -24,14 +24,14 @@ struct pc_lpt_interface /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( pc_lpt_r ); -WRITE8_DEVICE_HANDLER( pc_lpt_w ); - -READ8_DEVICE_HANDLER( pc_lpt_data_r ); -WRITE8_DEVICE_HANDLER( pc_lpt_data_w ); -READ8_DEVICE_HANDLER( pc_lpt_status_r ); -READ8_DEVICE_HANDLER( pc_lpt_control_r ); -WRITE8_DEVICE_HANDLER( pc_lpt_control_w ); +DECLARE_READ8_DEVICE_HANDLER( pc_lpt_r ); +DECLARE_WRITE8_DEVICE_HANDLER( pc_lpt_w ); + +DECLARE_READ8_DEVICE_HANDLER( pc_lpt_data_r ); +DECLARE_WRITE8_DEVICE_HANDLER( pc_lpt_data_w ); +DECLARE_READ8_DEVICE_HANDLER( pc_lpt_status_r ); +DECLARE_READ8_DEVICE_HANDLER( pc_lpt_control_r ); +DECLARE_WRITE8_DEVICE_HANDLER( pc_lpt_control_w ); /*************************************************************************** diff --git a/src/mess/machine/pk8020.c b/src/mess/machine/pk8020.c index 4977883caf8..31140974e4f 100644 --- a/src/mess/machine/pk8020.c +++ b/src/mess/machine/pk8020.c @@ -164,7 +164,7 @@ READ8_MEMBER(pk8020_state::devices_r) switch(offset & 0x38) { - case 0x00: return pit8253_r(pit,offset & 3); + case 0x00: return pit8253_r(pit,space, offset & 3); case 0x08: return ppi3->read(space,offset & 3); case 0x10: switch(offset & 1) { case 0 : return rs232->data_r(space,0); @@ -172,10 +172,10 @@ READ8_MEMBER(pk8020_state::devices_r) } break; case 0x18: switch(offset & 3) { - case 0 : return wd17xx_status_r(fdc,0); - case 1 : return wd17xx_track_r(fdc,0); - case 2 : return wd17xx_sector_r(fdc,0); - case 3 : return wd17xx_data_r(fdc,0); + case 0 : return wd17xx_status_r(fdc,space, 0); + case 1 : return wd17xx_track_r(fdc,space, 0); + case 2 : return wd17xx_sector_r(fdc,space, 0); + case 3 : return wd17xx_data_r(fdc,space, 0); } break; case 0x20: switch(offset & 1) { @@ -183,7 +183,7 @@ READ8_MEMBER(pk8020_state::devices_r) case 1 : return lan->status_r(space,0); } break; - case 0x28: return pic8259_r(pic,offset & 1); + case 0x28: return pic8259_r(pic,space, offset & 1); case 0x30: return ppi2->read(space,offset & 3); case 0x38: return ppi1->read(space,offset & 3); } @@ -203,7 +203,7 @@ WRITE8_MEMBER(pk8020_state::devices_w) switch(offset & 0x38) { - case 0x00: pit8253_w(pit,offset & 3,data); break; + case 0x00: pit8253_w(pit,space, offset & 3,data); break; case 0x08: ppi3->write(space,offset & 3,data); break; case 0x10: switch(offset & 1) { case 0 : rs232->data_w(space,0,data); break; @@ -211,10 +211,10 @@ WRITE8_MEMBER(pk8020_state::devices_w) } break; case 0x18: switch(offset & 3) { - case 0 : wd17xx_command_w(fdc,0,data);break; - case 1 : wd17xx_track_w(fdc,0,data);break; - case 2 : wd17xx_sector_w(fdc,0,data);break; - case 3 : wd17xx_data_w(fdc,0,data);break; + case 0 : wd17xx_command_w(fdc,space, 0,data);break; + case 1 : wd17xx_track_w(fdc,space, 0,data);break; + case 2 : wd17xx_sector_w(fdc,space, 0,data);break; + case 3 : wd17xx_data_w(fdc,space, 0,data);break; } break; case 0x20: switch(offset & 1) { @@ -222,7 +222,7 @@ WRITE8_MEMBER(pk8020_state::devices_w) case 1 : lan->control_w(space,0,data); break; } break; - case 0x28: pic8259_w(pic,offset & 1,data);break; + case 0x28: pic8259_w(pic,space, offset & 1,data);break; case 0x30: ppi2->write(space,offset & 3,data); break; case 0x38: ppi1->write(space,offset & 3,data); break; } diff --git a/src/mess/machine/pmd85.c b/src/mess/machine/pmd85.c index 8e7425cce64..7367082e900 100644 --- a/src/mess/machine/pmd85.c +++ b/src/mess/machine/pmd85.c @@ -568,7 +568,7 @@ READ8_MEMBER(pmd85_state::pmd85_io_r) case 0x40: /* 8255 (GPIO/0, GPIO/1) */ return machine().device<i8255_device>("ppi8255_1")->read(space, offset & 0x03); case 0x50: /* 8253 */ - return pit8253_r( machine().device("pit8253"), offset & 0x03); + return pit8253_r( machine().device("pit8253"), space, offset & 0x03); case 0x70: /* 8255 (IMS-2) */ return machine().device<i8255_device>("ppi8255_2")->read(space, offset & 0x03); } @@ -645,7 +645,7 @@ WRITE8_MEMBER(pmd85_state::pmd85_io_w) machine().device<i8255_device>("ppi8255_1")->write(space, offset & 0x03, data); break; case 0x50: /* 8253 */ - pit8253_w(machine().device("pit8253"), offset & 0x03, data); + pit8253_w(machine().device("pit8253"), space, offset & 0x03, data); logerror ("8253 writing. Address: %02x, Data: %02x\n", offset, data); break; case 0x70: /* 8255 (IMS-2) */ diff --git a/src/mess/machine/rmnimbus.c b/src/mess/machine/rmnimbus.c index 73780c9d6a4..e3ff3805861 100644 --- a/src/mess/machine/rmnimbus.c +++ b/src/mess/machine/rmnimbus.c @@ -67,10 +67,10 @@ even if you have to use unusual geometry to do so ! #include "includes/rmnimbus.h" -static void sio_interrupt(device_t *device, int state); -//static WRITE8_DEVICE_HANDLER( sio_dtr_w ); -static WRITE8_DEVICE_HANDLER( sio_serial_transmit ); -static int sio_serial_receive( device_t *device, int channel ); +static WRITE_LINE_DEVICE_HANDLER( sio_interrupt ); +//static DECLARE_WRITE8_DEVICE_HANDLER( sio_dtr_w ); +static DECLARE_WRITE16_DEVICE_HANDLER( sio_serial_transmit ); +static DECLARE_READ16_DEVICE_HANDLER( sio_serial_receive ); /*-------------------------------------------------------------------------*/ @@ -113,12 +113,12 @@ static int sio_serial_receive( device_t *device, int channel ); const z80sio_interface nimbus_sio_intf = { - sio_interrupt, /* interrupt handler */ - 0, //sio_dtr_w, /* DTR changed handler */ - 0, /* RTS changed handler */ - 0, /* BREAK changed handler */ - sio_serial_transmit, /* transmit handler */ - sio_serial_receive /* receive handler */ + DEVCB_LINE(sio_interrupt), /* interrupt handler */ + DEVCB_NULL, //sio_dtr_w, /* DTR changed handler */ + DEVCB_NULL, /* RTS changed handler */ + DEVCB_NULL, /* BREAK changed handler */ + DEVCB_HANDLER(sio_serial_transmit), /* transmit handler */ + DEVCB_HANDLER(sio_serial_receive) /* receive handler */ }; /* Floppy drives WD2793 */ @@ -2194,7 +2194,7 @@ Z80SIO, used for the keyboard interface /* Z80 SIO/2 */ -static void sio_interrupt(device_t *device, int state) +static WRITE_LINE_DEVICE_HANDLER( sio_interrupt ) { rmnimbus_state *drvstate = device->machine().driver_data<rmnimbus_state>(); if(LOG_SIO) @@ -2219,13 +2219,13 @@ WRITE8_DEVICE_HANDLER( sio_dtr_w ) } #endif -static WRITE8_DEVICE_HANDLER( sio_serial_transmit ) +static WRITE16_DEVICE_HANDLER( sio_serial_transmit ) { } -static int sio_serial_receive( device_t *device, int channel ) +static READ16_DEVICE_HANDLER( sio_serial_receive ) { - if(channel==0) + if(offset==0) { return keyboard_queue_read(device->machine()); } @@ -2320,17 +2320,17 @@ READ8_MEMBER(rmnimbus_state::nimbus_disk_r) switch(offset*2) { case 0x08 : - result = wd17xx_status_r(fdc, 0); + result = wd17xx_status_r(fdc, space, 0); if (LOG_DISK_FDD) logerror("Disk status=%2.2X\n",result); break; case 0x0A : - result = wd17xx_track_r(fdc, 0); + result = wd17xx_track_r(fdc, space, 0); break; case 0x0C : - result = wd17xx_sector_r(fdc, 0); + result = wd17xx_sector_r(fdc, space, 0); break; case 0x0E : - result = wd17xx_data_r(fdc, 0); + result = wd17xx_data_r(fdc, space, 0); break; case 0x10 : m_nimbus_drives.reg410_in &= ~FDC_BITS_410; @@ -2406,16 +2406,16 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_disk_w) break; case 0x08 : - wd17xx_command_w(fdc, 0, data); + wd17xx_command_w(fdc, space, 0, data); break; case 0x0A : - wd17xx_track_w(fdc, 0, data); + wd17xx_track_w(fdc, space, 0, data); break; case 0x0C : - wd17xx_sector_w(fdc, 0, data); + wd17xx_sector_w(fdc, space, 0, data); break; case 0x0E : - wd17xx_data_w(fdc, 0, data); + wd17xx_data_w(fdc, space, 0, data); break; case 0x10 : hdc_ctrl_write(machine(),data); @@ -2774,7 +2774,7 @@ READ8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_r) UINT8 result=0; if ((offset*2)==0) - result=ay8910_r(ay8910,0); + result=ay8910_r(ay8910,space, 0); return result; } @@ -2789,8 +2789,8 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_w) switch (offset*2) { - case 0x00 : ay8910_data_address_w(ay8910, 1, data); break; - case 0x02 : ay8910_data_address_w(ay8910, 0, data); break; + case 0x00 : ay8910_data_address_w(ay8910, space, 1, data); break; + case 0x02 : ay8910_data_address_w(ay8910, space, 0, data); break; } } diff --git a/src/mess/machine/s100.c b/src/mess/machine/s100.c index 22286546e42..a8cef102d2c 100644 --- a/src/mess/machine/s100.c +++ b/src/mess/machine/s100.c @@ -181,7 +181,7 @@ READ8_MEMBER( s100_device::smemr_r ) while (entry) { - data |= entry->s100_smemr_r(offset); + data |= entry->s100_smemr_r(space, offset); entry = entry->next(); } @@ -199,7 +199,7 @@ WRITE8_MEMBER( s100_device::mwrt_w ) while (entry) { - entry->s100_mwrt_w(offset, data); + entry->s100_mwrt_w(space, offset, data); entry = entry->next(); } } @@ -217,7 +217,7 @@ READ8_MEMBER( s100_device::sinp_r ) while (entry) { - data |= entry->s100_sinp_r(offset); + data |= entry->s100_sinp_r(space, offset); entry = entry->next(); } @@ -235,7 +235,7 @@ WRITE8_MEMBER( s100_device::sout_w ) while (entry) { - entry->s100_sout_w(offset, data); + entry->s100_sout_w(space, offset, data); entry = entry->next(); } } diff --git a/src/mess/machine/s100.h b/src/mess/machine/s100.h index 72daae09b34..64d788a246e 100644 --- a/src/mess/machine/s100.h +++ b/src/mess/machine/s100.h @@ -266,12 +266,12 @@ public: virtual void s100_vi7_w(int state) { }; // memory access - virtual UINT8 s100_smemr_r(offs_t offset) { return 0; }; - virtual void s100_mwrt_w(offs_t offset, UINT8 data) { }; + virtual UINT8 s100_smemr_r(address_space &space, offs_t offset) { return 0; }; + virtual void s100_mwrt_w(address_space &space, offs_t offset, UINT8 data) { }; // I/O access - virtual UINT8 s100_sinp_r(offs_t offset) { return 0; }; - virtual void s100_sout_w(offs_t offset, UINT8 data) { }; + virtual UINT8 s100_sinp_r(address_space &space, offs_t offset) { return 0; }; + virtual void s100_sout_w(address_space &space, offs_t offset, UINT8 data) { }; // configuration access virtual void s100_phlda_w(int state) { } diff --git a/src/mess/machine/s100_dj2db.c b/src/mess/machine/s100_dj2db.c index abe840fafcc..7691a14c1ce 100644 --- a/src/mess/machine/s100_dj2db.c +++ b/src/mess/machine/s100_dj2db.c @@ -304,7 +304,7 @@ void s100_dj2db_device::device_reset() // s100_smemr_r - memory read //------------------------------------------------- -UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset) +UINT8 s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset) { UINT8 data = 0; @@ -365,7 +365,7 @@ UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset) { m_s100->rdy_w(ASSERT_LINE); - data = wd17xx_r(m_fdc, offset & 0x03); + data = wd17xx_r(m_fdc, space, offset & 0x03); } else if ((offset >= 0xfc00) && (offset < 0x10000)) { @@ -385,7 +385,7 @@ UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset) // s100_mwrt_w - memory write //------------------------------------------------- -void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data) +void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, UINT8 data) { // if (!(m_board_enbl & m_phantom)) return; @@ -459,7 +459,7 @@ void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data) } else if ((offset >= 0xfbfc) && (offset < 0xfc00)) { - wd17xx_w(m_fdc, offset & 0x03, data); + wd17xx_w(m_fdc, space, offset & 0x03, data); } else if ((offset >= 0xfc00) && (offset < 0x10000)) { @@ -472,7 +472,7 @@ void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data) // s100_sinp_r - I/O read //------------------------------------------------- -UINT8 s100_dj2db_device::s100_sinp_r(offs_t offset) +UINT8 s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset) { return 0; } @@ -482,7 +482,7 @@ UINT8 s100_dj2db_device::s100_sinp_r(offs_t offset) // s100_sout_w - I/O write //------------------------------------------------- -void s100_dj2db_device::s100_sout_w(offs_t offset, UINT8 data) +void s100_dj2db_device::s100_sout_w(address_space &space, offs_t offset, UINT8 data) { if (offset == 0x41) { diff --git a/src/mess/machine/s100_dj2db.h b/src/mess/machine/s100_dj2db.h index eef58252923..3bc3b53a259 100644 --- a/src/mess/machine/s100_dj2db.h +++ b/src/mess/machine/s100_dj2db.h @@ -51,10 +51,10 @@ protected: virtual void device_config_complete() { m_shortname = "dj2db"; } // device_s100_card_interface overrides - virtual UINT8 s100_smemr_r(offs_t offset); - virtual void s100_mwrt_w(offs_t offset, UINT8 data); - virtual UINT8 s100_sinp_r(offs_t offset); - virtual void s100_sout_w(offs_t offset, UINT8 data); + virtual UINT8 s100_smemr_r(address_space &space, offs_t offset); + virtual void s100_mwrt_w(address_space &space, offs_t offset, UINT8 data); + virtual UINT8 s100_sinp_r(address_space &space, offs_t offset); + virtual void s100_sout_w(address_space &space, offs_t offset, UINT8 data); virtual void s100_phantom_w(int state); virtual bool s100_has_terminal() { return true; } virtual void s100_terminal_w(UINT8 data); diff --git a/src/mess/machine/s100_mm65k16s.c b/src/mess/machine/s100_mm65k16s.c index 45787e161ae..f12a5afc4a2 100644 --- a/src/mess/machine/s100_mm65k16s.c +++ b/src/mess/machine/s100_mm65k16s.c @@ -234,7 +234,7 @@ void s100_mm65k16s_device::device_reset() // s100_smemr_r - memory read //------------------------------------------------- -UINT8 s100_mm65k16s_device::s100_smemr_r(offs_t offset) +UINT8 s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset) { UINT8 data = 0; @@ -251,7 +251,7 @@ UINT8 s100_mm65k16s_device::s100_smemr_r(offs_t offset) // s100_mwrt_w - memory write //------------------------------------------------- -void s100_mm65k16s_device::s100_mwrt_w(offs_t offset, UINT8 data) +void s100_mm65k16s_device::s100_mwrt_w(address_space &space, offs_t offset, UINT8 data) { if (offset < 0xf800) { diff --git a/src/mess/machine/s100_mm65k16s.h b/src/mess/machine/s100_mm65k16s.h index 7632c603846..5dbf3821f0e 100644 --- a/src/mess/machine/s100_mm65k16s.h +++ b/src/mess/machine/s100_mm65k16s.h @@ -41,8 +41,8 @@ protected: virtual void device_config_complete() { m_shortname = "mm65k16s"; } // device_s100_card_interface overrides - virtual UINT8 s100_smemr_r(offs_t offset); - virtual void s100_mwrt_w(offs_t offset, UINT8 data); + virtual UINT8 s100_smemr_r(address_space &space, offs_t offset); + virtual void s100_mwrt_w(address_space &space, offs_t offset, UINT8 data); virtual void s100_phantom_w(int state); private: diff --git a/src/mess/machine/s100_wunderbus.c b/src/mess/machine/s100_wunderbus.c index 1850b5dea6f..15e07c1180c 100644 --- a/src/mess/machine/s100_wunderbus.c +++ b/src/mess/machine/s100_wunderbus.c @@ -327,7 +327,7 @@ void s100_wunderbus_device::s100_vi2_w(int state) // s100_sinp_r - I/O read //------------------------------------------------- -UINT8 s100_wunderbus_device::s100_sinp_r(offs_t offset) +UINT8 s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset) { UINT8 address = (ioport("7C")->read() & 0x3e) << 2; if ((offset & 0xf8) != address) return 0; @@ -406,7 +406,7 @@ UINT8 s100_wunderbus_device::s100_sinp_r(offs_t offset) case 4: // 8259 0 register case 5: // 8259 1 register - data = pic8259_r(m_pic, offset & 0x01); + data = pic8259_r(m_pic, space, offset & 0x01); break; case 6: // not used @@ -436,7 +436,7 @@ UINT8 s100_wunderbus_device::s100_sinp_r(offs_t offset) // s100_sout_w - I/O write //------------------------------------------------- -void s100_wunderbus_device::s100_sout_w(offs_t offset, UINT8 data) +void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, UINT8 data) { UINT8 address = (ioport("7C")->read() & 0x3e) << 2; if ((offset & 0xf8) != address) return; @@ -515,7 +515,7 @@ void s100_wunderbus_device::s100_sout_w(offs_t offset, UINT8 data) case 4: // 8259 0 register case 5: // 8259 1 register - pic8259_w(m_pic, offset & 0x01, data); + pic8259_w(m_pic, space, offset & 0x01, data); break; case 6: // Par. port cntrl. diff --git a/src/mess/machine/s100_wunderbus.h b/src/mess/machine/s100_wunderbus.h index f5689925def..95bbadc5c37 100644 --- a/src/mess/machine/s100_wunderbus.h +++ b/src/mess/machine/s100_wunderbus.h @@ -56,8 +56,8 @@ protected: virtual void s100_vi0_w(int state); virtual void s100_vi1_w(int state); virtual void s100_vi2_w(int state); - virtual UINT8 s100_sinp_r(offs_t offset); - virtual void s100_sout_w(offs_t offset, UINT8 data); + virtual UINT8 s100_sinp_r(address_space &space, offs_t offset); + virtual void s100_sout_w(address_space &space, offs_t offset, UINT8 data); virtual bool s100_has_terminal() { return true; } virtual void s100_terminal_w(UINT8 data); diff --git a/src/mess/machine/s3c44b0.c b/src/mess/machine/s3c44b0.c index 47d271dcd96..a23d564936f 100644 --- a/src/mess/machine/s3c44b0.c +++ b/src/mess/machine/s3c44b0.c @@ -1601,12 +1601,12 @@ static TIMER_CALLBACK( s3c44b0_sio_timer_exp ) /* IIS */ -INLINE void iface_i2s_data_w( device_t *device, int ch, UINT16 data) +INLINE void iface_i2s_data_w( device_t *device, address_space &space, int ch, UINT16 data) { s3c44b0_t *s3c44b0 = get_token( device); if (s3c44b0->iface->i2s.data_w) { - (s3c44b0->iface->i2s.data_w)( device, ch, data, 0); + (s3c44b0->iface->i2s.data_w)( device, space, ch, data, 0); } } @@ -1677,8 +1677,8 @@ static WRITE32_DEVICE_HANDLER( s3c44b0_iis_w ) if (s3c44b0->iis.fifo_index == 2) { s3c44b0->iis.fifo_index = 0; - iface_i2s_data_w( device, 0, s3c44b0->iis.fifo[0]); - iface_i2s_data_w( device, 1, s3c44b0->iis.fifo[1]); + iface_i2s_data_w( device, space, 0, s3c44b0->iis.fifo[0]); + iface_i2s_data_w( device, space, 1, s3c44b0->iis.fifo[1]); } } break; diff --git a/src/mess/machine/sc499.h b/src/mess/machine/sc499.h index 90c43b7c55e..ce1d2f06d29 100644 --- a/src/mess/machine/sc499.h +++ b/src/mess/machine/sc499.h @@ -20,8 +20,8 @@ FUNCTION PROTOTYPES ***************************************************************************/ -READ8_DEVICE_HANDLER( sc499_r ); -WRITE8_DEVICE_HANDLER( sc499_w ); +DECLARE_READ8_DEVICE_HANDLER( sc499_r ); +DECLARE_WRITE8_DEVICE_HANDLER( sc499_w ); void sc499_set_tc_state(running_machine *machine, int state); UINT8 sc499_dack_r(running_machine *machine); diff --git a/src/mess/machine/sms.c b/src/mess/machine/sms.c index 2c4683dd35b..67081761ddc 100644 --- a/src/mess/machine/sms.c +++ b/src/mess/machine/sms.c @@ -859,7 +859,7 @@ WRITE8_MEMBER(sms_state::sms_ym2413_register_port_0_w) { if (m_has_fm) - ym2413_w(m_ym, 0, (data & 0x3f)); + ym2413_w(m_ym, space, 0, (data & 0x3f)); } @@ -869,7 +869,7 @@ WRITE8_MEMBER(sms_state::sms_ym2413_data_port_0_w) if (m_has_fm) { logerror("data_port_0_w %x %x\n", offset, data); - ym2413_w(m_ym, 1, data); + ym2413_w(m_ym, space, 1, data); } } diff --git a/src/mess/machine/southbridge.c b/src/mess/machine/southbridge.c index 0dc4950c43d..77d786cf5ce 100644 --- a/src/mess/machine/southbridge.c +++ b/src/mess/machine/southbridge.c @@ -467,12 +467,12 @@ WRITE_LINE_MEMBER( southbridge_device::at_mc146818_irq ) READ8_MEMBER( southbridge_device::at_dma8237_2_r ) { - return i8237_r( m_dma8237_2, offset / 2); + return i8237_r( m_dma8237_2, space, offset / 2); } WRITE8_MEMBER( southbridge_device::at_dma8237_2_w ) { - i8237_w( m_dma8237_2, offset / 2, data); + i8237_w( m_dma8237_2, space, offset / 2, data); } READ8_MEMBER( southbridge_device::at_keybc_r ) diff --git a/src/mess/machine/super80.c b/src/mess/machine/super80.c index 40079041259..16e467af556 100644 --- a/src/mess/machine/super80.c +++ b/src/mess/machine/super80.c @@ -94,7 +94,7 @@ static TIMER_CALLBACK( super80_timer ) state->m_cass_data[1] = 0; } - state->m_pio->port_b_write(pio_port_b_r(state->m_pio,0)); + state->m_pio->port_b_write(pio_port_b_r(state->m_pio,state->generic_space(),0,0xff)); } /* after the first 4 bytes have been read from ROM, switch the ram back in */ diff --git a/src/mess/machine/svi318.c b/src/mess/machine/svi318.c index a31f6a8a7b7..fa3679dc648 100644 --- a/src/mess/machine/svi318.c +++ b/src/mess/machine/svi318.c @@ -803,19 +803,19 @@ READ8_MEMBER(svi318_state::svi318_io_ext_r) case 0x30: device = machine().device("wd179x"); - data = wd17xx_status_r(device, 0); + data = wd17xx_status_r(device, space, 0); break; case 0x31: device = machine().device("wd179x"); - data = wd17xx_track_r(device, 0); + data = wd17xx_track_r(device, space, 0); break; case 0x32: device = machine().device("wd179x"); - data = wd17xx_sector_r(device, 0); + data = wd17xx_sector_r(device, space, 0); break; case 0x33: device = machine().device("wd179x"); - data = wd17xx_data_r(device, 0); + data = wd17xx_data_r(device, space, 0); break; case 0x34: data = svi318_fdc_irqdrq_r(space, 0); @@ -876,19 +876,19 @@ WRITE8_MEMBER(svi318_state::svi318_io_ext_w) case 0x30: device = machine().device("wd179x"); - wd17xx_command_w(device, 0, data); + wd17xx_command_w(device, space, 0, data); break; case 0x31: device = machine().device("wd179x"); - wd17xx_track_w(device, 0, data); + wd17xx_track_w(device, space, 0, data); break; case 0x32: device = machine().device("wd179x"); - wd17xx_sector_w(device, 0, data); + wd17xx_sector_w(device, space, 0, data); break; case 0x33: device = machine().device("wd179x"); - wd17xx_data_w(device, 0, data); + wd17xx_data_w(device, space, 0, data); break; case 0x34: svi318_fdc_drive_motor_w(space, 0, data); diff --git a/src/mess/machine/thomflop.c b/src/mess/machine/thomflop.c index d47f4005cee..7d885061da1 100644 --- a/src/mess/machine/thomflop.c +++ b/src/mess/machine/thomflop.c @@ -276,7 +276,7 @@ static READ8_HANDLER ( to7_5p14_r ) device_t *fdc = space->machine().device("wd2793"); if ( offset < 4 ) - return wd17xx_r( fdc, offset ); + return wd17xx_r( fdc, *space, offset ); else if ( offset == 8 ) return to7_5p14_select; else @@ -290,7 +290,7 @@ static WRITE8_HANDLER( to7_5p14_w ) { device_t *fdc = space->machine().device("wd2793"); if ( offset < 4 ) - wd17xx_w( fdc, offset, data ); + wd17xx_w( fdc, *space, offset, data ); else if ( offset == 8 ) { /* drive select */ @@ -362,7 +362,7 @@ static UINT8 to7_5p14sd_select; static READ8_HANDLER ( to7_5p14sd_r ) { if ( offset < 8 ) - return mc6843_r( space->machine().device("mc6843"), offset ); + return mc6843_r( space->machine().device("mc6843"), *space, offset ); else if ( offset >= 8 && offset <= 9 ) return to7_5p14sd_select; else @@ -375,7 +375,7 @@ static READ8_HANDLER ( to7_5p14sd_r ) static WRITE8_HANDLER( to7_5p14sd_w ) { if ( offset < 8 ) - mc6843_w( space->machine().device("mc6843"), offset, data ); + mc6843_w( space->machine().device("mc6843"), *space, offset, data ); else if ( offset >= 8 && offset <= 9 ) { /* drive select */ @@ -1715,7 +1715,7 @@ static void to7_network_reset( running_machine &machine ) static READ8_HANDLER ( to7_network_r ) { if ( offset < 4 ) - return mc6854_r( space->machine().device("mc6854"), offset ); + return mc6854_r( space->machine().device("mc6854"), *space, offset ); if ( offset == 8 ) { @@ -1734,7 +1734,7 @@ static READ8_HANDLER ( to7_network_r ) static WRITE8_HANDLER ( to7_network_w ) { if ( offset < 4 ) - mc6854_w( space->machine().device("mc6854"), offset, data ); + mc6854_w( space->machine().device("mc6854"), *space, offset, data ); else { logerror( "%f $%04x to7_network_w: invalid write offset %i (data=$%02X)\n", diff --git a/src/mess/machine/thomson.c b/src/mess/machine/thomson.c index a2030b70dc5..e1d515deb25 100644 --- a/src/mess/machine/thomson.c +++ b/src/mess/machine/thomson.c @@ -319,7 +319,7 @@ static void thom_irq_0 ( running_machine &machine, int state ) thom_set_irq ( machine, 0, state ); } -static void thom_dev_irq_0 ( device_t *device, int state ) +static WRITE_LINE_DEVICE_HANDLER( thom_dev_irq_0 ) { thom_irq_0( device->machine(), state ); } @@ -543,9 +543,9 @@ static WRITE8_DEVICE_HANDLER ( to7_timer_tco_out ) const mc6846_interface to7_timer = { - to7_timer_port_out, NULL, to7_timer_cp2_out, - to7_timer_port_in, to7_timer_tco_out, - thom_dev_irq_0 + DEVCB_HANDLER(to7_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to7_timer_cp2_out), + DEVCB_HANDLER(to7_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out), + DEVCB_LINE(thom_dev_irq_0) }; @@ -934,7 +934,7 @@ static void to7_modem_init( running_machine &machine ) /* ------------ dispatch MODEM / speech extension ------------ */ -const mea8000_interface to7_speech = { "speech", NULL }; +const mea8000_interface to7_speech = { "speech", DEVCB_NULL }; READ8_HANDLER ( to7_modem_mea8000_r ) @@ -947,7 +947,7 @@ READ8_HANDLER ( to7_modem_mea8000_r ) if ( space->machine().root_device().ioport("mconfig")->read() & 1 ) { device_t* device = space->machine().device("mea8000" ); - return mea8000_r( device, offset ); + return mea8000_r( device, *space, offset ); } else { @@ -967,7 +967,7 @@ WRITE8_HANDLER ( to7_modem_mea8000_w ) if ( space->machine().root_device().ioport("mconfig")->read() & 1 ) { device_t* device = space->machine().device("mea8000" ); - mea8000_w( device, offset, data ); + mea8000_w( device, *space, offset, data ); } else { @@ -1662,9 +1662,9 @@ static WRITE8_DEVICE_HANDLER ( to770_timer_port_out ) const mc6846_interface to770_timer = { - to770_timer_port_out, NULL, to7_timer_cp2_out, - to7_timer_port_in, to7_timer_tco_out, - thom_dev_irq_0 + DEVCB_HANDLER(to770_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to7_timer_cp2_out), + DEVCB_HANDLER(to7_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out), + DEVCB_LINE(thom_dev_irq_0) }; @@ -3104,9 +3104,9 @@ static WRITE8_DEVICE_HANDLER ( to9_timer_port_out ) const mc6846_interface to9_timer = { - to9_timer_port_out, NULL, to7_timer_cp2_out, - to7_timer_port_in, to7_timer_tco_out, - thom_dev_irq_0 + DEVCB_HANDLER(to9_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to7_timer_cp2_out), + DEVCB_HANDLER(to7_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out), + DEVCB_LINE(thom_dev_irq_0) }; @@ -4156,9 +4156,9 @@ static WRITE8_DEVICE_HANDLER ( to8_timer_cp2_out ) const mc6846_interface to8_timer = { - to8_timer_port_out, NULL, to8_timer_cp2_out, - to8_timer_port_in, to7_timer_tco_out, - thom_dev_irq_0 + DEVCB_HANDLER(to8_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to8_timer_cp2_out), + DEVCB_HANDLER(to8_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out), + DEVCB_LINE(thom_dev_irq_0) }; @@ -4345,9 +4345,9 @@ static WRITE8_DEVICE_HANDLER ( to9p_timer_port_out ) const mc6846_interface to9p_timer = { - to9p_timer_port_out, NULL, to8_timer_cp2_out, - to9p_timer_port_in, to7_timer_tco_out, - thom_dev_irq_0 + DEVCB_HANDLER(to9p_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to8_timer_cp2_out), + DEVCB_HANDLER(to9p_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out), + DEVCB_LINE(thom_dev_irq_0) }; diff --git a/src/mess/machine/ti99/bwg.c b/src/mess/machine/ti99/bwg.c index 49a974126e5..15dcb0d3094 100644 --- a/src/mess/machine/ti99/bwg.c +++ b/src/mess/machine/ti99/bwg.c @@ -132,7 +132,7 @@ READ8Z_MEMBER(snug_bwg_device::readz) if ((offset & 0x03e1)==0x03e0) { // .... ..11 111x xxx0 - *value = mm58274c_r(m_clock, (offset & 0x001e) >> 1); + *value = mm58274c_r(m_clock, space, (offset & 0x001e) >> 1); } else { @@ -146,7 +146,7 @@ READ8Z_MEMBER(snug_bwg_device::readz) // .... ..11 1111 0xx0 // Note that the value is inverted again on the board, // so we can drop the inversion - *value = wd17xx_r(m_controller, (offset >> 1)&0x03); + *value = wd17xx_r(m_controller, space, (offset >> 1)&0x03); } else { @@ -211,7 +211,7 @@ WRITE8_MEMBER(snug_bwg_device::write) if ((offset & 0x03e1)==0x03e0) { // .... ..11 111x xxx0 - mm58274c_w(m_clock, (offset & 0x001e) >> 1, data); + mm58274c_w(m_clock, space, (offset & 0x001e) >> 1, data); } else { @@ -225,7 +225,7 @@ WRITE8_MEMBER(snug_bwg_device::write) // .... ..11 1111 1xx0 // Note that the value is inverted again on the board, // so we can drop the inversion - wd17xx_w(m_controller, (offset >> 1)&0x03, data); + wd17xx_w(m_controller, space, (offset >> 1)&0x03, data); } else { diff --git a/src/mess/machine/ti99/genboard.c b/src/mess/machine/ti99/genboard.c index 208843635c3..ea900060e7d 100644 --- a/src/mess/machine/ti99/genboard.c +++ b/src/mess/machine/ti99/genboard.c @@ -338,7 +338,7 @@ READ8_MEMBER( geneve_mapper_device::readm ) // clock // tests on the real machine showed that // upper nibble is 0xf (probably because of the location at 0xf130?) - value = mm58274c_r(m_clock, offset & 0x000f) | 0xf0; + value = mm58274c_r(m_clock, space, offset & 0x000f) | 0xf0; do_wait(1); if (VERBOSE>7) LOG("genboard: Read clock %04x -> %02x\n", offset, value); return value; @@ -372,7 +372,7 @@ READ8_MEMBER( geneve_mapper_device::readm ) // Obscure, needs more investigation. We might as well ignore this, // as the high nibble is obviously undefined and takes some past // value floating around. - value = mm58274c_r(m_clock, offset & 0x000f); + value = mm58274c_r(m_clock, space, offset & 0x000f); value |= ((offset & 0x000f)==0x000f)? 0x20 : 0x10; do_wait(1); @@ -609,7 +609,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem ) { // clock // ++++ ++++ ++++ ---- - mm58274c_w(m_clock, offset & 0x00f, data); + mm58274c_w(m_clock, space, offset & 0x00f, data); do_wait(1); if (VERBOSE>7) LOG("genboard: Write clock %04x <- %02x\n", offset, data); return; @@ -630,7 +630,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem ) if ((offset & 0xfff0)==0x8010) { // clock - mm58274c_w(m_clock, offset & 0x00f, data); + mm58274c_w(m_clock, space, offset & 0x00f, data); do_wait(1); if (VERBOSE>7) LOG("genboard: Write clock %04x <- %02x\n", offset, data); return; diff --git a/src/mess/machine/ti99/hfdc.c b/src/mess/machine/ti99/hfdc.c index 1ce03b6261a..d2453c0872d 100644 --- a/src/mess/machine/ti99/hfdc.c +++ b/src/mess/machine/ti99/hfdc.c @@ -86,7 +86,7 @@ READ8Z_MEMBER(myarc_hfdc_device::readz) if ((offset & 0x1fe1)==CLK_ADDR) { - *value = mm58274c_r(m_clock, (offset & 0x001e) >> 1); + *value = mm58274c_r(m_clock, space, (offset & 0x001e) >> 1); if (VERBOSE>7) LOG("hfdc: read from clock address %04x: %02x\n", offset & 0xffff, *value); return; } @@ -140,7 +140,7 @@ WRITE8_MEMBER( myarc_hfdc_device::write ) if ((offset & 0x1fe1)==CLK_ADDR) { if (VERBOSE>7) LOG("hfdc: write to clock address %04x: %02x\n", offset & 0xffff, data); - mm58274c_w(m_clock, (offset & 0x001e) >> 1, data); + mm58274c_w(m_clock, space, (offset & 0x001e) >> 1, data); return; } diff --git a/src/mess/machine/ti99/ti_fdc.c b/src/mess/machine/ti99/ti_fdc.c index 1cb22eab1e4..9c850b125b2 100644 --- a/src/mess/machine/ti99/ti_fdc.c +++ b/src/mess/machine/ti99/ti_fdc.c @@ -64,7 +64,7 @@ READ8Z_MEMBER(ti_fdc_device::readz) if ((offset & 0x1ff9)==0x1ff0) { - reply = wd17xx_r(m_controller, (offset >> 1)&0x03); + reply = wd17xx_r(m_controller, space, (offset >> 1)&0x03); } else { @@ -88,7 +88,7 @@ WRITE8_MEMBER(ti_fdc_device::write) // 0101 1111 1111 1xx0 if ((offset & 0x1ff9)==0x1ff8) { - wd17xx_w(m_controller, (offset >> 1)&0x03, data); + wd17xx_w(m_controller, space, (offset >> 1)&0x03, data); } } } diff --git a/src/mess/machine/trs80.c b/src/mess/machine/trs80.c index 2e7db2d16a4..b420bea7fe2 100644 --- a/src/mess/machine/trs80.c +++ b/src/mess/machine/trs80.c @@ -704,7 +704,7 @@ READ8_MEMBER( trs80_state::trs80_wd179x_r ) { UINT8 data = 0xff; if (BIT(ioport("CONFIG")->read(), 7)) - data = wd17xx_status_r(m_fdc, offset); + data = wd17xx_status_r(m_fdc, space, offset); return data; } diff --git a/src/mess/machine/tvc_hbf.c b/src/mess/machine/tvc_hbf.c index 137d9481e26..d1229a75e29 100644 --- a/src/mess/machine/tvc_hbf.c +++ b/src/mess/machine/tvc_hbf.c @@ -154,7 +154,7 @@ READ8_MEMBER(tvc_hbf_device::io_read) switch((offset>>2) & 0x03) { case 0x00: - return wd17xx_r(m_fdc, offset & 3); + return wd17xx_r(m_fdc, space, offset & 3); case 0x01: return (wd17xx_drq_r(m_fdc)<<7) | wd17xx_intrq_r(m_fdc); default: @@ -171,7 +171,7 @@ WRITE8_MEMBER(tvc_hbf_device::io_write) switch((offset>>2) & 0x03) { case 0x00: - wd17xx_w(m_fdc, offset & 3, data); + wd17xx_w(m_fdc, space, offset & 3, data); break; case 0x01: // bit 0-3 drive select diff --git a/src/mess/machine/upd7002.h b/src/mess/machine/upd7002.h index 4d93d0344eb..92b52bafa81 100644 --- a/src/mess/machine/upd7002.h +++ b/src/mess/machine/upd7002.h @@ -59,9 +59,9 @@ struct uPD7002_interface /* Standard handlers */ -READ8_DEVICE_HANDLER ( uPD7002_EOC_r ); -READ8_DEVICE_HANDLER ( uPD7002_r ); -WRITE8_DEVICE_HANDLER ( uPD7002_w ); +DECLARE_READ8_DEVICE_HANDLER ( uPD7002_EOC_r ); +DECLARE_READ8_DEVICE_HANDLER ( uPD7002_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( uPD7002_w ); /*************************************************************************** diff --git a/src/mess/machine/upd71071.c b/src/mess/machine/upd71071.c index 18817a2d830..e174ce846eb 100644 --- a/src/mess/machine/upd71071.c +++ b/src/mess/machine/upd71071.c @@ -416,8 +416,8 @@ static WRITE8_DEVICE_HANDLER(upd71071_write) } } -READ8_DEVICE_HANDLER(upd71071_r) { return upd71071_read(device,offset); } -WRITE8_DEVICE_HANDLER(upd71071_w) { upd71071_write(device,offset,data); } +READ8_DEVICE_HANDLER(upd71071_r) { return upd71071_read(device,space,offset,mem_mask); } +WRITE8_DEVICE_HANDLER(upd71071_w) { upd71071_write(device,space,offset,data,mem_mask); } const device_type UPD71071 = &device_creator<upd71071_device>; diff --git a/src/mess/machine/upd71071.h b/src/mess/machine/upd71071.h index b8dd084077d..9638c001af6 100644 --- a/src/mess/machine/upd71071.h +++ b/src/mess/machine/upd71071.h @@ -37,7 +37,7 @@ extern const device_type UPD71071; MCFG_DEVICE_ADD(_tag, UPD71071, 0) \ MCFG_DEVICE_CONFIG(_config) -READ8_DEVICE_HANDLER(upd71071_r); -WRITE8_DEVICE_HANDLER(upd71071_w); +DECLARE_READ8_DEVICE_HANDLER(upd71071_r); +DECLARE_WRITE8_DEVICE_HANDLER(upd71071_w); #endif /*UPD71071_H_*/ diff --git a/src/mess/machine/upd765.c b/src/mess/machine/upd765.c index d8abaa3c81f..fc86eaf441d 100644 --- a/src/mess/machine/upd765.c +++ b/src/mess/machine/upd765.c @@ -2263,7 +2263,7 @@ WRITE8_DEVICE_HANDLER(upd765_dack_w) upd765_set_dma_drq(device, CLEAR_LINE); /* write data */ - upd765_data_w(device, offset, data); + upd765_data_w(device, space, offset, data); } READ8_DEVICE_HANDLER(upd765_dack_r) @@ -2272,7 +2272,7 @@ READ8_DEVICE_HANDLER(upd765_dack_r) upd765_set_dma_drq(device,CLEAR_LINE); /* read data */ - return upd765_data_r(device, offset); + return upd765_data_r(device, space, offset); } static TIMER_CALLBACK( interrupt_callback ) diff --git a/src/mess/machine/upd765.h b/src/mess/machine/upd765.h index 291dda6868a..cac6bee3649 100644 --- a/src/mess/machine/upd765.h +++ b/src/mess/machine/upd765.h @@ -113,16 +113,16 @@ struct upd765_interface ***************************************************************************/ /* read of data register */ -READ8_DEVICE_HANDLER(upd765_data_r); +DECLARE_READ8_DEVICE_HANDLER(upd765_data_r); /* write to data register */ -WRITE8_DEVICE_HANDLER(upd765_data_w); +DECLARE_WRITE8_DEVICE_HANDLER(upd765_data_w); /* read of main status register */ -READ8_DEVICE_HANDLER(upd765_status_r); +DECLARE_READ8_DEVICE_HANDLER(upd765_status_r); /* dma acknowledge with write */ -WRITE8_DEVICE_HANDLER(upd765_dack_w); +DECLARE_WRITE8_DEVICE_HANDLER(upd765_dack_w); /* dma acknowledge with read */ -READ8_DEVICE_HANDLER(upd765_dack_r); +DECLARE_READ8_DEVICE_HANDLER(upd765_dack_r); /* reset upd765 */ void upd765_reset(device_t *device, int); diff --git a/src/mess/machine/v1050kb.c b/src/mess/machine/v1050kb.c index 315a55a7c1e..6c694e57821 100644 --- a/src/mess/machine/v1050kb.c +++ b/src/mess/machine/v1050kb.c @@ -417,7 +417,7 @@ WRITE8_MEMBER( v1050_keyboard_device::kb_p2_w ) output_set_led_value(0, BIT(data, 5)); // speaker output - discrete_sound_w(m_discrete, NODE_01, BIT(data, 6)); + discrete_sound_w(m_discrete, space, NODE_01, BIT(data, 6)); // serial output m_so = BIT(data, 7); diff --git a/src/mess/machine/wswan.c b/src/mess/machine/wswan.c index ee96082acb5..9efc0c83209 100644 --- a/src/mess/machine/wswan.c +++ b/src/mess/machine/wswan.c @@ -835,7 +835,7 @@ WRITE8_MEMBER( wswan_state::wswan_port_w ) Bit 0-3 - Master volume Bit 4-7 - Unknown */ - wswan_sound_port_w( machine().device("custom"), offset, data ); + wswan_sound_port_w( machine().device("custom"), space, offset, data ); break; case 0xa0: /* Hardware type - this is probably read only Bit 0 - Enable cartridge slot and/or disable bios diff --git a/src/mess/machine/z80ne.c b/src/mess/machine/z80ne.c index 27e8f106e04..ff97265ea7b 100644 --- a/src/mess/machine/z80ne.c +++ b/src/mess/machine/z80ne.c @@ -632,7 +632,7 @@ READ8_MEMBER(z80ne_state::lx388_data_r) { UINT8 data; - data = kr2376_data_r(m_lx388_kr2376, 0) & 0x7f; + data = kr2376_data_r(m_lx388_kr2376, space, 0) & 0x7f; data |= kr2376_get_output_pin(m_lx388_kr2376, KR2376_SO) << 7; return data; } @@ -725,27 +725,27 @@ READ8_DEVICE_HANDLER(lx390_fdc_r) switch(offset) { case 0: - d = wd17xx_status_r(device, 0) ^ 0xff; + d = wd17xx_status_r(device, space, 0) ^ 0xff; LOG(("lx390_fdc_r, WD17xx status: %02x\n", d)); break; case 1: - d = wd17xx_track_r(device, 0) ^ 0xff; + d = wd17xx_track_r(device, space, 0) ^ 0xff; LOG(("lx390_fdc_r, WD17xx track: %02x\n", d)); break; case 2: - d = wd17xx_sector_r(device, 0) ^ 0xff; + d = wd17xx_sector_r(device, space, 0) ^ 0xff; LOG(("lx390_fdc_r, WD17xx sector: %02x\n", d)); break; case 3: - d = wd17xx_data_r(device, 0) ^ 0xff; + d = wd17xx_data_r(device, space, 0) ^ 0xff; LOG(("lx390_fdc_r, WD17xx data3: %02x\n", d)); break; case 6: d = 0xff; - lx390_reset_bank(device, 0); + lx390_reset_bank(device, space, 0); break; case 7: - d = wd17xx_data_r(device, 3) ^ 0xff; + d = wd17xx_data_r(device, space, 3) ^ 0xff; LOG(("lx390_fdc_r, WD17xx data7, force: %02x\n", d)); break; default: @@ -764,7 +764,7 @@ WRITE8_DEVICE_HANDLER(lx390_fdc_w) { case 0: LOG(("lx390_fdc_w, WD17xx command: %02x\n", d)); - wd17xx_command_w(device, offset, d ^ 0xff); + wd17xx_command_w(device, space, offset, d ^ 0xff); if (state->m_wd17xx_state.drive & 1) output_set_value("drv0", 2); else if (state->m_wd17xx_state.drive & 2) @@ -772,23 +772,23 @@ WRITE8_DEVICE_HANDLER(lx390_fdc_w) break; case 1: LOG(("lx390_fdc_w, WD17xx track: %02x\n", d)); - wd17xx_track_w(device, offset, d ^ 0xff); + wd17xx_track_w(device, space, offset, d ^ 0xff); break; case 2: LOG(("lx390_fdc_w, WD17xx sector: %02x\n", d)); - wd17xx_sector_w(device, offset, d ^ 0xff); + wd17xx_sector_w(device, space, offset, d ^ 0xff); break; case 3: - wd17xx_data_w(device, 0, d ^ 0xff); + wd17xx_data_w(device, space, 0, d ^ 0xff); LOG(("lx390_fdc_w, WD17xx data3: %02x\n", d)); break; case 6: LOG(("lx390_fdc_w, motor_w: %02x\n", d)); - lx390_motor_w(device, 0, d); + lx390_motor_w(device, space, 0, d); break; case 7: LOG(("lx390_fdc_w, WD17xx data7, force: %02x\n", d)); - wd17xx_data_w(device, 3, d ^ 0xff); + wd17xx_data_w(device, space, 3, d ^ 0xff); break; } } diff --git a/src/mess/video/733_asr.h b/src/mess/video/733_asr.h index e461b2033cb..18e810f1ad6 100644 --- a/src/mess/video/733_asr.h +++ b/src/mess/video/733_asr.h @@ -44,8 +44,8 @@ extern const device_type ASR733; MCFG_DEVICE_ADD(_tag, ASR733, 0) \ MCFG_DEVICE_CONFIG(_intf) -READ8_DEVICE_HANDLER(asr733_cru_r); -WRITE8_DEVICE_HANDLER(asr733_cru_w); +DECLARE_READ8_DEVICE_HANDLER(asr733_cru_r); +DECLARE_WRITE8_DEVICE_HANDLER(asr733_cru_w); void asr733_refresh(device_t *device, bitmap_ind16 &bitmap, int x, int y); diff --git a/src/mess/video/911_vdt.h b/src/mess/video/911_vdt.h index 4b37c043366..8b61ca84def 100644 --- a/src/mess/video/911_vdt.h +++ b/src/mess/video/911_vdt.h @@ -68,8 +68,8 @@ extern const device_type VDT911; MCFG_DEVICE_CONFIG(_intf) - READ8_DEVICE_HANDLER(vdt911_cru_r); -WRITE8_DEVICE_HANDLER(vdt911_cru_w); + DECLARE_READ8_DEVICE_HANDLER(vdt911_cru_r); +DECLARE_WRITE8_DEVICE_HANDLER(vdt911_cru_w); void vdt911_refresh(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y); diff --git a/src/mess/video/dl1416.h b/src/mess/video/dl1416.h index 8a99f79540b..e1ecf8f000a 100644 --- a/src/mess/video/dl1416.h +++ b/src/mess/video/dl1416.h @@ -49,7 +49,7 @@ struct dl1416_interface WRITE_LINE_DEVICE_HANDLER( dl1416_wr_w ); /* write enable */ WRITE_LINE_DEVICE_HANDLER( dl1416_ce_w ); /* chip enable */ WRITE_LINE_DEVICE_HANDLER( dl1416_cu_w ); /* cursor enable */ -WRITE8_DEVICE_HANDLER( dl1416_data_w ); +DECLARE_WRITE8_DEVICE_HANDLER( dl1416_data_w ); /* device get info callback */ class dl1416_device : public device_t diff --git a/src/mess/video/isa_mda.c b/src/mess/video/isa_mda.c index 29696a386e3..27e35777b45 100644 --- a/src/mess/video/isa_mda.c +++ b/src/mess/video/isa_mda.c @@ -452,7 +452,7 @@ WRITE8_MEMBER( isa8_mda_device::io_write) mode_control_w(space, offset, data); break; case 12: case 13: case 14: - pc_lpt_w(lpt, offset - 12, data); + pc_lpt_w(lpt, space, offset - 12, data); break; } } @@ -475,7 +475,7 @@ READ8_MEMBER( isa8_mda_device::io_read) break; /* 12, 13, 14 are the LPT ports */ case 12: case 13: case 14: - data = pc_lpt_r(lpt, offset - 12); + data = pc_lpt_r(lpt, space, offset - 12); break; } return data; @@ -686,7 +686,7 @@ WRITE8_MEMBER( isa8_hercules_device::io_write ) mode_control_w(space, offset, data); break; case 12: case 13: case 14: - pc_lpt_w(lpt, offset - 12, data); + pc_lpt_w(lpt, space, offset - 12, data); break; case 15: m_configuration_switch = data; @@ -733,7 +733,7 @@ READ8_MEMBER( isa8_hercules_device::io_read ) break; /* 12, 13, 14 are the LPT ports */ case 12: case 13: case 14: - data = pc_lpt_r(lpt, offset - 12); + data = pc_lpt_r(lpt, space, offset - 12); break; } return data; diff --git a/src/mess/video/k1ge.h b/src/mess/video/k1ge.h index d708af46562..8594eba0333 100644 --- a/src/mess/video/k1ge.h +++ b/src/mess/video/k1ge.h @@ -64,8 +64,8 @@ struct k1ge_interface PALETTE_INIT( k1ge ); PALETTE_INIT( k2ge ); -WRITE8_DEVICE_HANDLER( k1ge_w ); -READ8_DEVICE_HANDLER( k1ge_r ); +DECLARE_WRITE8_DEVICE_HANDLER( k1ge_w ); +DECLARE_READ8_DEVICE_HANDLER( k1ge_r ); void k1ge_update( device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect ); diff --git a/src/mess/video/vdc8563.h b/src/mess/video/vdc8563.h index d2cf2ed6ebe..9862e664a9f 100644 --- a/src/mess/video/vdc8563.h +++ b/src/mess/video/vdc8563.h @@ -59,8 +59,8 @@ extern const device_type VDC8563; void vdc8563_set_rastering(device_t *device, int on); UINT32 vdc8563_video_update(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect); -WRITE8_DEVICE_HANDLER( vdc8563_port_w ); -READ8_DEVICE_HANDLER( vdc8563_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( vdc8563_port_w ); +DECLARE_READ8_DEVICE_HANDLER( vdc8563_port_r ); #endif /* __VDC8563_H__ */ diff --git a/src/mess/video/vic4567.h b/src/mess/video/vic4567.h index c510bf8844e..5a081300b71 100644 --- a/src/mess/video/vic4567.h +++ b/src/mess/video/vic4567.h @@ -164,9 +164,9 @@ extern const device_type VIC3; /*----------- defined in video/vic4567.c -----------*/ -WRITE8_DEVICE_HANDLER( vic3_port_w ); -WRITE8_DEVICE_HANDLER( vic3_palette_w ); -READ8_DEVICE_HANDLER( vic3_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER( vic3_port_w ); +DECLARE_WRITE8_DEVICE_HANDLER( vic3_palette_w ); +DECLARE_READ8_DEVICE_HANDLER( vic3_port_r ); void vic3_raster_interrupt_gen( device_t *device ); UINT32 vic3_video_update( device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect ); diff --git a/src/mess/video/vic6567.h b/src/mess/video/vic6567.h index 4314827d5e2..f603bde41de 100644 --- a/src/mess/video/vic6567.h +++ b/src/mess/video/vic6567.h @@ -163,8 +163,8 @@ extern const device_type VIC2; /*----------- defined in video/vic6567.c -----------*/ -WRITE8_DEVICE_HANDLER ( vic2_port_w ); -READ8_DEVICE_HANDLER ( vic2_port_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( vic2_port_w ); +DECLARE_READ8_DEVICE_HANDLER ( vic2_port_r ); int vic2e_k0_r(device_t *device); int vic2e_k1_r(device_t *device); diff --git a/src/mess/video/vtvideo.h b/src/mess/video/vtvideo.h index dd19e778ba9..205b6410c9e 100644 --- a/src/mess/video/vtvideo.h +++ b/src/mess/video/vtvideo.h @@ -62,10 +62,10 @@ struct vt_video_interface PROTOTYPES ***************************************************************************/ /* register access */ -READ8_DEVICE_HANDLER ( vt_video_lba7_r ); -WRITE8_DEVICE_HANDLER ( vt_video_dc012_w ); -WRITE8_DEVICE_HANDLER ( vt_video_dc011_w ); -WRITE8_DEVICE_HANDLER ( vt_video_brightness_w ); +DECLARE_READ8_DEVICE_HANDLER ( vt_video_lba7_r ); +DECLARE_WRITE8_DEVICE_HANDLER ( vt_video_dc012_w ); +DECLARE_WRITE8_DEVICE_HANDLER ( vt_video_dc011_w ); +DECLARE_WRITE8_DEVICE_HANDLER ( vt_video_brightness_w ); /* screen update */ diff --git a/src/mess/video/x68k.c b/src/mess/video/x68k.c index 68d0b048509..f03b8a6cb21 100644 --- a/src/mess/video/x68k.c +++ b/src/mess/video/x68k.c @@ -1306,7 +1306,7 @@ SCREEN_UPDATE_IND16( x68000 ) // popmessage("Keyboard buffer position = %i",state->m_keyboard.headpos); // popmessage("IERA = 0x%02x, IERB = 0x%02x",state->m_mfp.iera,state->m_mfp.ierb); // popmessage("IPRA = 0x%02x, IPRB = 0x%02x",state->m_mfp.ipra,state->m_mfp.iprb); -// popmessage("uPD72065 status = %02x",upd765_status_r(machine, 0)); +// popmessage("uPD72065 status = %02x",upd765_status_r(machine, space, 0)); // popmessage("Layer enable - 0x%02x",state->m_video.reg[2] & 0xff); // popmessage("Graphic layer scroll - %i, %i - %i, %i - %i, %i - %i, %i", // state->m_crtc.reg[12],state->m_crtc.reg[13],state->m_crtc.reg[14],state->m_crtc.reg[15],state->m_crtc.reg[16],state->m_crtc.reg[17],state->m_crtc.reg[18],state->m_crtc.reg[19]); |