summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/romp/romp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/romp/romp.h')
-rw-r--r--src/devices/cpu/romp/romp.h16
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)