1 #ifndef DRZ80_Z80_H
2 #define DRZ80_Z80_H
3 
4 #include "cpuintrf.h"
5 #include "osd_cpu.h"
6 
7 extern int drz80_ICount;
8 
9 #define DRZ80_IGNORE_INT  -1    /* Ignore interrupt */
10 #define DRZ80_NMI_INT 	-2	/* Execute NMI */
11 #define DRZ80_IRQ_INT 	-1000	/* Execute IRQ */
12 
13 extern void drz80_init(void);
14 extern void drz80_reset (void *param);
15 extern void drz80_exit (void);
16 extern int drz80_execute(int cycles);
17 extern void drz80_burn(int cycles);
18 extern unsigned drz80_get_context (void *dst);
19 extern void drz80_set_context (void *src);
20 extern const void *drz80_get_cycle_table (int which);
21 extern void drz80_set_cycle_table (int which, void *new_tbl);
22 extern unsigned drz80_get_pc (void);
23 extern void drz80_set_pc (unsigned val);
24 extern unsigned drz80_get_sp (void);
25 extern void drz80_set_sp (unsigned val);
26 extern unsigned drz80_get_reg (int regnum);
27 extern void drz80_set_reg (int regnum, unsigned val);
28 extern void drz80_set_irq_line(int irqline, int state);
29 extern void drz80_set_irq_callback(int (*irq_callback)(int));
30 extern void drz80_state_save(void *file);
31 extern void drz80_state_load(void *file);
32 extern const char *drz80_info(void *context, int regnum);
33 extern unsigned drz80_dasm(char *buffer, unsigned pc);
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 extern void Interrupt(void); /* required for DrZ80 int hack */
39 #ifdef __cplusplus
40 } /* End of extern "C" */
41 #endif
42 
43 #endif
44