1 /***************************************************************************** 2 3 h6280.h Portable Hu6280 emulator interface 4 5 Copyright (c) 1999 Bryan McPhail, mish@tendril.co.uk 6 7 This source code is based (with permission!) on the 6502 emulator by 8 Juergen Buchmueller. It is released as part of the Mame emulator project. 9 Let me know if you intend to use this code in any other project. 10 11 ******************************************************************************/ 12 13 #ifndef _H6280_H 14 #define _H6280_H 15 16 #include "osd_cpu.h" 17 18 enum { 19 H6280_PC=1, H6280_S, H6280_P, H6280_A, H6280_X, H6280_Y, 20 H6280_IRQ_MASK, H6280_TIMER_STATE, 21 H6280_NMI_STATE, H6280_IRQ1_STATE, H6280_IRQ2_STATE, H6280_IRQT_STATE 22 #ifdef MAME_DEBUG 23 , 24 H6280_M1, H6280_M2, H6280_M3, H6280_M4, 25 H6280_M5, H6280_M6, H6280_M7, H6280_M8 26 #endif 27 }; 28 29 #define LAZY_FLAGS 0 30 31 #define H6280_RESET_VEC 0xfffe 32 #define H6280_NMI_VEC 0xfffc 33 #define H6280_TIMER_VEC 0xfffa 34 #define H6280_IRQ1_VEC 0xfff8 35 #define H6280_IRQ2_VEC 0xfff6 /* Aka BRK vector */ 36 37 extern int h6280_ICount; /* cycle count */ 38 39 extern void h6280_init(void); 40 extern void h6280_reset(void *param); /* Reset registers to the initial values */ 41 extern void h6280_exit(void); /* Shut down CPU */ 42 extern int h6280_execute(int cycles); /* Execute cycles - returns number of cycles actually run */ 43 extern unsigned h6280_get_context(void *dst); /* Get registers, return context size */ 44 extern void h6280_set_context(void *src); /* Set registers */ 45 extern unsigned h6280_get_reg (int regnum); 46 extern void h6280_set_reg (int regnum, unsigned val); 47 extern void h6280_set_irq_line(int irqline, int state); 48 extern void h6280_set_irq_callback(int (*callback)(int irqline)); 49 extern const char *h6280_info(void *context, int regnum); 50 extern unsigned h6280_dasm(char *buffer, unsigned pc); 51 52 READ_HANDLER( H6280_irq_status_r ); 53 WRITE_HANDLER( H6280_irq_status_w ); 54 55 READ_HANDLER( H6280_timer_r ); 56 WRITE_HANDLER( H6280_timer_w ); 57 58 #ifdef MAME_DEBUG 59 extern int Dasm6280(char *buffer, int pc); 60 #endif 61 62 #endif /* _H6280_H */ 63