summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/upd7725/upd7725.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/upd7725/upd7725.h')
-rw-r--r--src/devices/cpu/upd7725/upd7725.h50
1 files changed, 27 insertions, 23 deletions
diff --git a/src/devices/cpu/upd7725/upd7725.h b/src/devices/cpu/upd7725/upd7725.h
index 0ebb4338f8d..d77e3620dcf 100644
--- a/src/devices/cpu/upd7725/upd7725.h
+++ b/src/devices/cpu/upd7725/upd7725.h
@@ -36,25 +36,25 @@ public:
auto p0() { return m_out_p0_cb.bind(); }
auto p1() { return m_out_p1_cb.bind(); }
- uint8_t snesdsp_read(bool mode);
- void snesdsp_write(bool mode, uint8_t data);
+ uint8_t status_r();
+ uint8_t data_r();
+ void data_w(uint8_t data);
protected:
// construction/destruction
necdsp_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t abits, uint32_t dbits);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
+ // device_t implementation
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
- // device_execute_interface overrides
- virtual uint32_t execute_min_cycles() const override;
- virtual uint32_t execute_max_cycles() const override;
- virtual uint32_t execute_input_lines() const override;
+ // device_execute_interface implementation
+ virtual uint32_t execute_min_cycles() const noexcept override;
+ virtual uint32_t execute_max_cycles() const noexcept override;
virtual void execute_run() override;
virtual void execute_set_input(int inputnum, int state) override;
- // device_memory_interface overrides
+ // device_memory_interface implementation
virtual space_config_vector memory_space_config() const override;
// device_state_interface overrides
@@ -62,7 +62,7 @@ protected:
virtual void state_export(const device_state_entry &entry) override;
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
- // device_disasm_interface overrides
+ // device_disasm_interface implementation
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
// inline data
@@ -75,12 +75,12 @@ private:
{
bool s1, s0, c, z, ov1, ov0;
- inline operator unsigned() const
+ operator unsigned() const
{
- return (s1 << 5) + (s0 << 4) + (c << 3) + (z << 2) + (ov1 << 1) + (ov0 << 0);
+ return (s1 << 5) | (s0 << 4) | (c << 3) | (z << 2) | (ov1 << 1) | (ov0 << 0);
}
- inline unsigned operator=(unsigned d)
+ unsigned operator=(unsigned d)
{
s1 = d & 0x20; s0 = d & 0x10; c = d & 0x08; z = d & 0x04; ov1 = d & 0x02; ov0 = d & 0x01;
return d;
@@ -91,14 +91,14 @@ private:
{
bool rqm, usf1, usf0, drs, dma, drc, soc, sic, ei, p1, p0;
- inline operator unsigned() const
+ operator unsigned() const
{
- return (rqm << 15) + (usf1 << 14) + (usf0 << 13) + (drs << 12)
- + (dma << 11) + (drc << 10) + (soc << 9) + (sic << 8)
- + (ei << 7) + (p1 << 1) + (p0 << 0);
+ return (rqm << 15) | (usf1 << 14) | (usf0 << 13) | (drs << 12)
+ | (dma << 11) | (drc << 10) | (soc << 9) | (sic << 8)
+ | (ei << 7) | (p1 << 1) | (p0 << 0);
}
- inline unsigned operator=(unsigned d)
+ unsigned operator=(unsigned d)
{
rqm = d & 0x8000; usf1 = d & 0x4000; usf0 = d & 0x2000; drs = d & 0x1000;
dma = d & 0x0800; drc = d & 0x0400; soc = d & 0x0200; sic = d & 0x0100;
@@ -144,8 +144,9 @@ private:
// 1 = next opcode is the first half of int firing 'NOP'
// 2 = next opcode is the second half of int firing 'CALL 0100'
int m_irq_firing;
- address_space *m_program, *m_data;
- memory_access_cache<2, -2, ENDIANNESS_BIG> *m_cache;
+ memory_access<14, 2, -2, ENDIANNESS_BIG>::cache m_cache;
+ memory_access<14, 2, -2, ENDIANNESS_BIG>::specific m_program;
+ memory_access<12, 1, -1, ENDIANNESS_BIG>::specific m_data;
protected:
devcb_read_line m_in_int_cb;
@@ -174,8 +175,11 @@ public:
// construction/destruction
upd96050_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- uint16_t dataram_r(uint16_t addr) { return dataRAM[addr]; }
- void dataram_w(uint16_t addr, uint16_t data) { dataRAM[addr] = data; }
+ uint16_t dataram_r(uint16_t addr) { return dataRAM[addr & 0x07ff]; }
+ void dataram_w(uint16_t addr, uint16_t data, uint16_t mem_mask = uint16_t(~0))
+ {
+ COMBINE_DATA(&dataRAM[addr & 0x07ff]);
+ }
};
// device type definition