summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/rii/riscii.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/rii/riscii.h')
-rw-r--r--src/devices/cpu/rii/riscii.h40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/devices/cpu/rii/riscii.h b/src/devices/cpu/rii/riscii.h
index 1acc09e4862..5dedcf53af5 100644
--- a/src/devices/cpu/rii/riscii.h
+++ b/src/devices/cpu/rii/riscii.h
@@ -56,6 +56,18 @@ public:
RII_VOCON
};
+ enum
+ {
+ PA0_LINE = 0,
+ PA1_LINE,
+ PA2_LINE,
+ PA3_LINE,
+ PA4_LINE,
+ PA5_LINE,
+ PA6_LINE,
+ PA7_LINE
+ };
+
// callback configuration
auto in_porta_cb() { return m_porta_in_cb.bind(); }
auto in_portb_cb() { return m_port_in_cb[0].bind(); }
@@ -82,19 +94,18 @@ public:
protected:
riscii_series_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, unsigned addrbits, unsigned pcbits, unsigned bankbits, u8 maxbank, u8 post_id_mask, address_map_constructor regs);
- // device-level overrides
- virtual void device_resolve_objects() override;
+ // device_t implementation
virtual void device_start() override;
virtual void device_reset() override;
- // device_execute_interface overrides
+ // device_execute_interface implementation
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
+ // device_state_interface implementation
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
void core_regs_map(address_map &map);
@@ -173,6 +184,15 @@ protected:
void sprm_w(u8 data);
u8 sprh_r();
void sprh_w(u8 data);
+ void timer0_reload();
+ TIMER_CALLBACK_MEMBER(timer0);
+ u16 timer0_count() const;
+ void timer1_reload();
+ TIMER_CALLBACK_MEMBER(timer1);
+ u8 timer1_count() const;
+ void timer2_reload();
+ TIMER_CALLBACK_MEMBER(timer2);
+ u8 timer2_count() const;
u8 trl0l_r();
void trl0l_w(u8 data);
u8 trl0h_r();
@@ -264,6 +284,7 @@ private:
void execute_undef(u16 opcode);
void execute_cycle1(u16 opcode);
void execute_tbrd(u32 ptr);
+ void idle_wakeup();
// interrupt helpers
bool interrupt_active() const;
@@ -281,7 +302,8 @@ private:
EXEC_L0CALL, EXEC_L1CALL, EXEC_L2CALL, EXEC_L3CALL,
EXEC_L4CALL, EXEC_L5CALL, EXEC_L6CALL, EXEC_L7CALL,
EXEC_L8CALL, EXEC_L9CALL, EXEC_LACALL, EXEC_LBCALL,
- EXEC_LCCALL, EXEC_LDCALL, EXEC_LECALL, EXEC_LFCALL
+ EXEC_LCCALL, EXEC_LDCALL, EXEC_LECALL, EXEC_LFCALL,
+ EXEC_IDLE
};
// address spaces
@@ -325,6 +347,7 @@ private:
u8 m_port_dcr[6];
u8 m_port_control[2];
u8 m_stbcon;
+ u8 m_pa;
u8 m_painten;
u8 m_paintsta;
u8 m_pawake;
@@ -344,9 +367,10 @@ private:
u8 m_tr01con;
u8 m_tr2con;
u8 m_trlir;
- u8 m_sfcr;
+ emu_timer *m_timer[3];
// synthesizer state
+ u8 m_sfcr;
u32 m_add[4];
u8 m_env[4];
u8 m_mtcon[4];
@@ -371,7 +395,7 @@ public:
epg3231_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected:
- // device_disasm_interface overrides
+ // device_disasm_interface implementation
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
private: