summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/devcb.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/devcb.h')
-rw-r--r--src/emu/devcb.h134
1 files changed, 67 insertions, 67 deletions
diff --git a/src/emu/devcb.h b/src/emu/devcb.h
index 0440413f417..c30f9db431b 100644
--- a/src/emu/devcb.h
+++ b/src/emu/devcb.h
@@ -14,8 +14,8 @@
#error Dont include this file directly; include emu.h instead.
#endif
-#ifndef __DEVCB_H__
-#define __DEVCB_H__
+#ifndef MAME_EMU_DEVCB_H
+#define MAME_EMU_DEVCB_H
//**************************************************************************
@@ -63,7 +63,7 @@
#define MCFG_DEVCB_RSHIFT(_shift) devcb->set_rshift(_shift);
#define MCFG_DEVCB_MASK(_mask) devcb->set_mask(_mask);
#define MCFG_DEVCB_XOR(_xor) devcb->set_xor(_xor);
-#define MCFG_DEVCB_INVERT devcb->set_xor(~U64(0));
+#define MCFG_DEVCB_INVERT devcb->set_xor(~u64(0));
#define MCFG_DEVCB_ADDRESS_SPACE(_device, _spacenum) devcb->set_space(_device, _spacenum);
@@ -98,7 +98,7 @@ protected:
};
// construction/destruction
- devcb_base(device_t &device, uint64_t defmask);
+ devcb_base(device_t &device, u64 defmask);
public:
// getters
@@ -107,8 +107,8 @@ public:
// additional configuration
devcb_base &set_space(const char *device, address_spacenum space = AS_0) { m_space_tag = device; m_space_num = space; return *this; }
devcb_base &set_rshift(int rshift) { m_rshift = rshift; return *this; }
- devcb_base &set_mask(uint64_t mask) { m_mask = mask; return *this; }
- devcb_base &set_xor(uint64_t xorval) { m_xor = xorval; return *this; }
+ devcb_base &set_mask(u64 mask) { m_mask = mask; return *this; }
+ devcb_base &set_xor(u64 xorval) { m_xor = xorval; return *this; }
// construction helper classes
class null_desc
@@ -127,16 +127,16 @@ public:
class constant_desc
{
public:
- constant_desc(uint64_t value) { m_value = value; }
- uint64_t m_value;
+ constant_desc(u64 value) { m_value = value; }
+ u64 m_value;
};
class logger_desc
{
public:
- logger_desc(const char *string, uint64_t value = 0) { m_string = string; m_value = value; }
+ logger_desc(const char *string, u64 value = 0) { m_string = string; m_value = value; }
const char *m_string;
- uint64_t m_value;
+ u64 m_value;
};
class inputline_desc
@@ -156,9 +156,9 @@ public:
protected:
// internal helpers
- inline uint64_t shift_mask_xor(uint64_t value) const { return (((m_rshift < 0) ? (value << -m_rshift) : (value >> m_rshift)) ^ m_xor) & m_mask; }
- inline uint64_t unshift_mask(uint64_t value) const { return (m_rshift < 0) ? ((value & m_mask) >> -m_rshift) : ((value & m_mask) << m_rshift); }
- inline uint64_t unshift_mask_xor(uint64_t value) const { return (m_rshift < 0) ? (((value ^ m_xor) & m_mask) >> -m_rshift) : (((value ^ m_xor) & m_mask) << m_rshift); }
+ inline u64 shift_mask_xor(u64 value) const { return (((m_rshift < 0) ? (value << -m_rshift) : (value >> m_rshift)) ^ m_xor) & m_mask; }
+ inline u64 unshift_mask(u64 value) const { return (m_rshift < 0) ? ((value & m_mask) >> -m_rshift) : ((value & m_mask) << m_rshift); }
+ inline u64 unshift_mask_xor(u64 value) const { return (m_rshift < 0) ? (((value ^ m_xor) & m_mask) >> -m_rshift) : (((value ^ m_xor) & m_mask) << m_rshift); }
void reset(callback_type type = CALLBACK_NONE);
void resolve_ioport();
void resolve_inputline();
@@ -176,7 +176,7 @@ protected:
device_t & m_device; // reference to our owning device
callback_type m_type; // type of callback registered
const char * m_target_tag; // tag of target object
- uint64_t m_target_int; // integer value of target object
+ u64 m_target_int; // integer value of target object
const char * m_space_tag; // tag of address space device
address_spacenum m_space_num; // address space number of space device
@@ -184,8 +184,8 @@ protected:
address_space * m_space; // target address space
callback_target m_target; // resolved pointer to target object
int m_rshift; // right shift to apply to data read
- uint64_t m_mask; // mask to apply to data read
- uint64_t m_xor; // XOR to apply to data read
+ u64 m_mask; // mask to apply to data read
+ u64 m_xor; // XOR to apply to data read
};
@@ -195,7 +195,7 @@ class devcb_read_base : public devcb_base
{
protected:
// construction/destruction
- devcb_read_base(device_t &device, uint64_t defmask);
+ devcb_read_base(device_t &device, u64 defmask);
public:
// callback configuration
@@ -208,22 +208,22 @@ public:
// resolution
void resolve();
- void resolve_safe(uint64_t none_constant_value);
+ void resolve_safe(u64 none_constant_value);
protected:
// internal helpers
void reset(callback_type type = CALLBACK_NONE);
// adapters
- uint64_t read_unresolved_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read_line_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read8_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read16_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read32_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read64_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read_ioport_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read_logged_adapter(address_space &space, offs_t offset, uint64_t mask);
- uint64_t read_constant_adapter(address_space &space, offs_t offset, uint64_t mask);
+ u64 read_unresolved_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read_line_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read8_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read16_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read32_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read64_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read_ioport_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read_logged_adapter(address_space &space, offs_t offset, u64 mask);
+ u64 read_constant_adapter(address_space &space, offs_t offset, u64 mask);
// configuration
read_line_delegate m_readline; // copy of registered line reader
@@ -233,7 +233,7 @@ protected:
read64_delegate m_read64; // copy of registered 64-bit reader
// derived state
- typedef uint64_t (devcb_read_base::*adapter_func)(address_space &, offs_t, uint64_t);
+ typedef u64 (devcb_read_base::*adapter_func)(address_space &, offs_t, u64);
adapter_func m_adapter; // actual callback to invoke
};
@@ -244,7 +244,7 @@ class devcb_write_base : public devcb_base
{
protected:
// construction/destruction
- devcb_write_base(device_t &device, uint64_t defmask);
+ devcb_write_base(device_t &device, u64 defmask);
public:
// callback configuration
@@ -264,16 +264,16 @@ protected:
void reset(callback_type type = CALLBACK_NONE);
// adapters
- void write_unresolved_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write_line_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write8_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write16_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write32_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write64_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write_ioport_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write_logged_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write_noop_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
- void write_inputline_adapter(address_space &space, offs_t offset, uint64_t data, uint64_t mask);
+ void write_unresolved_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write_line_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write8_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write16_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write32_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write64_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write_ioport_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write_logged_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write_noop_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
+ void write_inputline_adapter(address_space &space, offs_t offset, u64 data, u64 mask);
// configuration
write_line_delegate m_writeline; // copy of registered line writer
@@ -283,7 +283,7 @@ protected:
write64_delegate m_write64; // copy of registered 64-bit writer
// derived state
- typedef void (devcb_write_base::*adapter_func)(address_space &, offs_t, uint64_t, uint64_t);
+ typedef void (devcb_write_base::*adapter_func)(address_space &, offs_t, u64, u64);
adapter_func m_adapter; // actual callback to invoke
};
@@ -294,8 +294,8 @@ class devcb_read_line : public devcb_read_base
{
public:
devcb_read_line(device_t &device) : devcb_read_base(device, 0xff) { }
- int operator()() { return (this->*m_adapter)(*m_space, 0, U64(0xff)) & 1; }
- int operator()(address_space &space) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, 0, U64(0xff)) & 1; }
+ int operator()() { return (this->*m_adapter)(*m_space, 0, 0xffU) & 1; }
+ int operator()(address_space &space) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, 0, 0xffU) & 1; }
};
@@ -305,8 +305,8 @@ class devcb_read8 : public devcb_read_base
{
public:
devcb_read8(device_t &device) : devcb_read_base(device, 0xff) { }
- uint8_t operator()(offs_t offset = 0, uint8_t mask = 0xff) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
- uint8_t operator()(address_space &space, offs_t offset = 0, uint8_t mask = 0xff) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
+ u8 operator()(offs_t offset = 0, u8 mask = 0xff) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
+ u8 operator()(address_space &space, offs_t offset = 0, u8 mask = 0xff) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
};
@@ -316,8 +316,8 @@ class devcb_read16 : public devcb_read_base
{
public:
devcb_read16(device_t &device) : devcb_read_base(device, 0xffff) { }
- uint16_t operator()(offs_t offset = 0, uint16_t mask = 0xffff) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
- uint16_t operator()(address_space &space, offs_t offset = 0, uint16_t mask = 0xffff) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
+ u16 operator()(offs_t offset = 0, u16 mask = 0xffff) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
+ u16 operator()(address_space &space, offs_t offset = 0, u16 mask = 0xffff) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
};
@@ -327,8 +327,8 @@ class devcb_read32 : public devcb_read_base
{
public:
devcb_read32(device_t &device) : devcb_read_base(device, 0xffffffff) { }
- uint32_t operator()(offs_t offset = 0, uint32_t mask = 0xffffffff) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
- uint32_t operator()(address_space &space, offs_t offset = 0, uint32_t mask = 0xffffffff) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
+ u32 operator()(offs_t offset = 0, u32 mask = 0xffffffff) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
+ u32 operator()(address_space &space, offs_t offset = 0, u32 mask = 0xffffffff) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
};
@@ -337,9 +337,9 @@ public:
class devcb_read64 : public devcb_read_base
{
public:
- devcb_read64(device_t &device) : devcb_read_base(device, U64(0xffffffffffffffff)) { }
- uint64_t operator()(offs_t offset = 0, uint64_t mask = U64(0xffffffffffffffff)) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
- uint64_t operator()(address_space &space, offs_t offset = 0, uint64_t mask = U64(0xffffffffffffffff)) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
+ devcb_read64(device_t &device) : devcb_read_base(device, 0xffffffffffffffffU) { }
+ u64 operator()(offs_t offset = 0, u64 mask = 0xffffffffffffffffU) { return (this->*m_adapter)(*m_space, offset, mask) & mask; }
+ u64 operator()(address_space &space, offs_t offset = 0, u64 mask = 0xffffffffffffffffU) { return (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, mask) & mask; }
};
@@ -349,8 +349,8 @@ class devcb_write_line : public devcb_write_base
{
public:
devcb_write_line(device_t &device) : devcb_write_base(device, 0xff) { }
- void operator()(int state) { (this->*m_adapter)(*m_space, 0, state & 1, U64(0xff)); }
- void operator()(address_space &space, int state) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, 0, state & 1, U64(0xff)); }
+ void operator()(int state) { (this->*m_adapter)(*m_space, 0, state & 1, 0xffU); }
+ void operator()(address_space &space, int state) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, 0, state & 1, 0xffU); }
};
@@ -360,9 +360,9 @@ class devcb_write8 : public devcb_write_base
{
public:
devcb_write8(device_t &device) : devcb_write_base(device, 0xff) { }
- void operator()(uint8_t data, uint8_t mask = 0xff) { (this->*m_adapter)(*m_space, 0, data, mask); }
- void operator()(offs_t offset, uint8_t data, uint8_t mask = 0xff) { (this->*m_adapter)(*m_space, offset, data, mask); }
- void operator()(address_space &space, offs_t offset, uint8_t data, uint8_t mask = 0xff) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
+ void operator()(u8 data, u8 mask = 0xff) { (this->*m_adapter)(*m_space, 0, data, mask); }
+ void operator()(offs_t offset, u8 data, u8 mask = 0xff) { (this->*m_adapter)(*m_space, offset, data, mask); }
+ void operator()(address_space &space, offs_t offset, u8 data, u8 mask = 0xff) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
};
@@ -372,9 +372,9 @@ class devcb_write16 : public devcb_write_base
{
public:
devcb_write16(device_t &device) : devcb_write_base(device, 0xffff) { }
- void operator()(uint16_t data, uint16_t mask = 0xffff) { (this->*m_adapter)(*m_space, 0, data, mask); }
- void operator()(offs_t offset, uint16_t data, uint16_t mask = 0xffff) { (this->*m_adapter)(*m_space, offset, data, mask); }
- void operator()(address_space &space, offs_t offset, uint16_t data, uint16_t mask = 0xffff) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
+ void operator()(u16 data, u16 mask = 0xffff) { (this->*m_adapter)(*m_space, 0, data, mask); }
+ void operator()(offs_t offset, u16 data, u16 mask = 0xffff) { (this->*m_adapter)(*m_space, offset, data, mask); }
+ void operator()(address_space &space, offs_t offset, u16 data, u16 mask = 0xffff) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
};
@@ -384,9 +384,9 @@ class devcb_write32 : public devcb_write_base
{
public:
devcb_write32(device_t &device) : devcb_write_base(device, 0xffffffff) { }
- void operator()(uint32_t data, uint32_t mask = 0xffffffff) { (this->*m_adapter)(*m_space, 0, data, mask); }
- void operator()(offs_t offset, uint32_t data, uint32_t mask = 0xffffffff) { (this->*m_adapter)(*m_space, offset, data, mask); }
- void operator()(address_space &space, offs_t offset, uint32_t data, uint32_t mask = 0xffffffff) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
+ void operator()(u32 data, u32 mask = 0xffffffff) { (this->*m_adapter)(*m_space, 0, data, mask); }
+ void operator()(offs_t offset, u32 data, u32 mask = 0xffffffff) { (this->*m_adapter)(*m_space, offset, data, mask); }
+ void operator()(address_space &space, offs_t offset, u32 data, u32 mask = 0xffffffff) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
};
@@ -395,11 +395,11 @@ public:
class devcb_write64 : public devcb_write_base
{
public:
- devcb_write64(device_t &device) : devcb_write_base(device, U64(0xffffffffffffffff)) { }
- void operator()(uint64_t data, uint64_t mask = U64(0xffffffffffffffff)) { (this->*m_adapter)(*m_space, 0, data, mask); }
- void operator()(offs_t offset, uint64_t data, uint64_t mask = U64(0xffffffffffffffff)) { (this->*m_adapter)(*m_space, offset, data, mask); }
- void operator()(address_space &space, offs_t offset, uint64_t data, uint64_t mask = U64(0xffffffffffffffff)) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
+ devcb_write64(device_t &device) : devcb_write_base(device, 0xffffffffffffffffU) { }
+ void operator()(u64 data, u64 mask = 0xffffffffffffffffU) { (this->*m_adapter)(*m_space, 0, data, mask); }
+ void operator()(offs_t offset, u64 data, u64 mask = 0xffffffffffffffffU) { (this->*m_adapter)(*m_space, offset, data, mask); }
+ void operator()(address_space &space, offs_t offset, u64 data, u64 mask = 0xffffffffffffffffU) { (this->*m_adapter)((m_space_tag != nullptr) ? *m_space : space, offset, data, mask); }
};
-#endif /* __DEVCB_H__ */
+#endif /* MAME_EMU_DEVCB_H */