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