summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/psx/psx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/psx/psx.h')
-rw-r--r--src/devices/cpu/psx/psx.h63
1 files changed, 31 insertions, 32 deletions
diff --git a/src/devices/cpu/psx/psx.h b/src/devices/cpu/psx/psx.h
index ff21787eeab..16950f929da 100644
--- a/src/devices/cpu/psx/psx.h
+++ b/src/devices/cpu/psx/psx.h
@@ -128,42 +128,41 @@ public:
auto cd_write() { return m_cd_write_handler.bind(); }
// public interfaces
- DECLARE_WRITE32_MEMBER( berr_w );
- DECLARE_READ32_MEMBER( berr_r );
+ void berr_w(uint32_t data);
+ uint32_t berr_r();
uint32_t exp_base();
- DECLARE_WRITE32_MEMBER( exp_base_w );
- DECLARE_READ32_MEMBER( exp_base_r );
+ void exp_base_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t exp_base_r();
- DECLARE_WRITE32_MEMBER( exp_config_w );
- DECLARE_READ32_MEMBER( exp_config_r );
+ void exp_config_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t exp_config_r();
- DECLARE_WRITE32_MEMBER( ram_config_w );
- DECLARE_READ32_MEMBER( ram_config_r );
+ void ram_config_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t ram_config_r();
- DECLARE_WRITE32_MEMBER( rom_config_w );
- DECLARE_READ32_MEMBER( rom_config_r );
+ void rom_config_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t rom_config_r();
- DECLARE_WRITE32_MEMBER( biu_w );
- DECLARE_READ32_MEMBER( biu_r );
+ void biu_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t biu_r();
- DECLARE_WRITE32_MEMBER( gpu_w );
- DECLARE_READ32_MEMBER( gpu_r );
+ void gpu_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t gpu_r(offs_t offset, uint32_t mem_mask = ~0);
- DECLARE_WRITE16_MEMBER( spu_w );
- DECLARE_READ16_MEMBER( spu_r );
+ void spu_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t spu_r(offs_t offset, uint16_t mem_mask = ~0);
- DECLARE_WRITE8_MEMBER( cd_w );
- DECLARE_READ8_MEMBER( cd_r );
+ void cd_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ uint8_t cd_r(offs_t offset, uint8_t mem_mask = ~0);
- DECLARE_WRITE32_MEMBER( com_delay_w );
- DECLARE_READ32_MEMBER( com_delay_r );
+ void com_delay_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t com_delay_r(offs_t offset, uint32_t mem_mask = ~0);
- static psxcpu_device *getcpu( device_t &device, const char *cputag ) { return downcast<psxcpu_device *>( device.subdevice( cputag ) ); }
void set_disable_rom_berr(bool mode);
- void psxcpu_internal_map(address_map &map);
+ void psxcpu_internal_map(address_map &map) ATTR_COLD;
protected:
static constexpr unsigned ICACHE_ENTRIES = 0x400;
static constexpr unsigned DCACHE_ENTRIES = 0x100;
@@ -171,17 +170,16 @@ protected:
psxcpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void device_post_load() override;
- virtual void device_add_mconfig(machine_config &config) override;
+ virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
// device_execute_interface overrides
- virtual uint32_t execute_min_cycles() const override { return 1; }
- virtual uint32_t execute_max_cycles() const override { return 40; }
- virtual uint32_t execute_input_lines() const override { return 6; }
- virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const override { return ( clocks + 3 ) / 4; }
- virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const override { return cycles * 4; }
+ virtual uint32_t execute_min_cycles() const noexcept override { return 1; }
+ virtual uint32_t execute_max_cycles() const noexcept override { return 40; }
+ virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return ( clocks + 3 ) / 4; }
+ virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return cycles * 4; }
virtual void execute_run() override;
virtual void execute_set_input(int inputnum, int state) override;
@@ -208,7 +206,8 @@ protected:
// address spaces
const address_space_config m_program_config;
address_space *m_program;
- memory_access_cache<2, 0, ENDIANNESS_LITTLE> *m_cache;
+ memory_access<32, 2, 0, ENDIANNESS_LITTLE>::cache m_instruction;
+ memory_access<32, 2, 0, ENDIANNESS_LITTLE>::specific m_data;
// other internal states
int m_icount;
@@ -309,7 +308,7 @@ protected:
devcb_read8 m_cd_read_handler;
devcb_write8 m_cd_write_handler;
required_device<ram_device> m_ram;
- memory_region *m_rom;
+ required_memory_region m_rom;
bool m_disable_rom_berr;
private: