diff options
Diffstat (limited to 'src/devices/cpu/unsp/unsp.h')
-rw-r--r-- | src/devices/cpu/unsp/unsp.h | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/devices/cpu/unsp/unsp.h b/src/devices/cpu/unsp/unsp.h index 9131cf8b983..2f274d6f890 100644 --- a/src/devices/cpu/unsp/unsp.h +++ b/src/devices/cpu/unsp/unsp.h @@ -26,6 +26,8 @@ enum UNSP_GPR_COUNT = UNSP_PC, + UNSP_IRQ_EN, + UNSP_FIQ_EN, UNSP_IRQ, UNSP_FIQ, UNSP_SB @@ -81,12 +83,14 @@ private: address_space_config m_program_config; uint16_t m_r[16]; - uint8_t m_irq; - uint8_t m_fiq; + bool m_enable_irq; + bool m_enable_fiq; + bool m_irq; + bool m_fiq; uint16_t m_curirq; uint16_t m_sirq; uint8_t m_sb; - uint8_t m_saved_sb; + uint8_t m_saved_sb[3]; address_space *m_program; int m_icount; @@ -94,14 +98,15 @@ private: uint32_t m_debugger_temp; void unimplemented_opcode(uint16_t op); - inline uint16_t READ16(uint32_t address); - inline void WRITE16(uint32_t address, uint16_t data); - inline void unsp_update_nz(uint32_t value); - inline void unsp_update_nzsc(uint32_t value, uint16_t r0, uint16_t r1); - inline void unsp_push(uint16_t value, uint16_t *reg); - inline uint16_t unsp_pop(uint16_t *reg); - - + inline uint16_t read16(uint32_t address); + inline void write16(uint32_t address, uint16_t data); + inline void update_nz(uint32_t value); + inline void update_sc(uint32_t value, uint16_t r0, uint16_t r1); + inline void push(uint16_t value, uint16_t *reg); + inline uint16_t pop(uint16_t *reg); + inline void trigger_fiq(); + inline void trigger_irq(int line); + inline void check_irqs(); }; |