diff options
Diffstat (limited to 'src/emu/cpu/z80/z80daisy.h')
-rw-r--r-- | src/emu/cpu/z80/z80daisy.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/emu/cpu/z80/z80daisy.h b/src/emu/cpu/z80/z80daisy.h new file mode 100644 index 00000000000..b0e791e6ef1 --- /dev/null +++ b/src/emu/cpu/z80/z80daisy.h @@ -0,0 +1,36 @@ +/*************************************************************************** + + z80daisy.h + + Z80/180 daisy chaining support functions. + +***************************************************************************/ + + +#ifndef Z80DAISY_H +#define Z80DAISY_H + + +/* daisy-chain link */ +struct z80_irq_daisy_chain +{ + void (*reset)(int); /* reset callback */ + int (*irq_state)(int); /* get interrupt state */ + int (*irq_ack)(int); /* interrupt acknowledge callback */ + void (*irq_reti)(int); /* reti callback */ + int param; /* callback parameter (-1 ends list) */ +}; + + +/* these constants are returned from the irq_state function */ +#define Z80_DAISY_INT 0x01 /* interrupt request mask */ +#define Z80_DAISY_IEO 0x02 /* interrupt disable mask (IEO) */ + + +/* prototypes */ +void z80daisy_reset(const struct z80_irq_daisy_chain *daisy); +int z80daisy_update_irq_state(const struct z80_irq_daisy_chain *chain); +int z80daisy_call_ack_device(const struct z80_irq_daisy_chain *chain); +void z80daisy_call_reti_device(const struct z80_irq_daisy_chain *chain); + +#endif |