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