diff options
Diffstat (limited to 'src/devices/cpu/romp/romp.h')
-rw-r--r-- | src/devices/cpu/romp/romp.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/devices/cpu/romp/romp.h b/src/devices/cpu/romp/romp.h index c7b866c9a8e..b14859faa22 100644 --- a/src/devices/cpu/romp/romp.h +++ b/src/devices/cpu/romp/romp.h @@ -11,7 +11,7 @@ class romp_device : public cpu_device public: romp_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); - auto out_tm() { return m_out_tm.bind(); } + void clk_w(int state); protected: enum registers : unsigned @@ -33,6 +33,13 @@ protected: CS = 15, // condition status }; + enum ts_mask : u32 + { + TS_E = 0x0000'0040, // enable + TS_I = 0x0000'0020, // interrupt status + TS_O = 0x0000'0010, // overflow + TS_P = 0x0000'0007, // timer interrupt priority + }; enum mpcs_mask : u32 { // reserved @@ -120,7 +127,7 @@ private: u32 ba(u16 hi, u16 lo) const { return ((u32(hi) << 16) | lo) & 0x00ff'fffeU; } s32 bi(u16 hi, u16 lo) const { return s32((u32(hi) << 16 | lo) << 12) >> 11; } - void flags(u32 const op1); + void flags_log(u32 const op1); void flags_add(u32 const op1, u32 const op2); void flags_sub(u32 const op1, u32 const op2); @@ -129,13 +136,13 @@ private: void interrupt_check(); void machine_check(u32 mcs); void program_check(u32 pcs); - void interrupt_enter(unsigned vector, u16 svc = 0); + void interrupt_enter(unsigned vector, u32 iar, u16 svc = 0); // address spaces address_space_config const m_mem_config; address_space_config const m_io_config; - devcb_write_line m_out_tm; + memory_access<32, 2, 0, ENDIANNESS_BIG>::cache m_mem; // mame state int m_icount; @@ -154,6 +161,7 @@ private: } m_branch_state; u32 m_branch_target; + bool m_trap; }; DECLARE_DEVICE_TYPE(ROMP, romp_device) |