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