1 #ifndef M68000__HEADER 2 #define M68000__HEADER 3 4 #include "osd_cpu.h" 5 6 enum 7 { 8 /* NOTE: M68K_SP fetches the current SP, be it USP, ISP, or MSP */ 9 M68K_PC=1, M68K_SP, M68K_ISP, M68K_USP, M68K_MSP, M68K_SR, M68K_VBR, 10 M68K_SFC, M68K_DFC, M68K_CACR, M68K_CAAR, M68K_PREF_ADDR, M68K_PREF_DATA, 11 M68K_D0, M68K_D1, M68K_D2, M68K_D3, M68K_D4, M68K_D5, M68K_D6, M68K_D7, 12 M68K_A0, M68K_A1, M68K_A2, M68K_A3, M68K_A4, M68K_A5, M68K_A6, M68K_A7 13 }; 14 15 /* The MAME API for MC68000 */ 16 17 #define MC68000_INT_NONE 0 18 #define MC68000_IRQ_1 1 19 #define MC68000_IRQ_2 2 20 #define MC68000_IRQ_3 3 21 #define MC68000_IRQ_4 4 22 #define MC68000_IRQ_5 5 23 #define MC68000_IRQ_6 6 24 #define MC68000_IRQ_7 7 25 26 #define MC68000_INT_ACK_AUTOVECTOR -1 27 #define MC68000_INT_ACK_SPURIOUS -2 28 29 extern void m68000_reset(void *param); 30 extern void m68000_exit(void); 31 extern int m68000_execute(int cycles); 32 extern unsigned m68000_get_context(void *dst); 33 extern void m68000_set_context(void *src); 34 extern unsigned m68000_get_pc(void); 35 extern void m68000_set_pc(unsigned val); 36 extern unsigned m68000_get_sp(void); 37 extern void m68000_set_sp(unsigned val); 38 extern unsigned m68000_get_reg(int regnum); 39 extern void m68000_set_reg(int regnum, unsigned val); 40 extern void m68000_set_nmi_line(int state); 41 extern void m68000_set_irq_line(int irqline, int state); 42 extern void m68000_set_irq_callback(int (*callback)(int irqline)); 43 extern const char *m68000_info(void *context, int regnum); 44 extern unsigned m68000_dasm(char *buffer, unsigned pc); 45 46 /**************************************************************************** 47 * M68010 section 48 ****************************************************************************/ 49 #if HAS_M68010 50 #define MC68010_INT_NONE MC68000_INT_NONE 51 #define MC68010_IRQ_1 MC68000_IRQ_1 52 #define MC68010_IRQ_2 MC68000_IRQ_2 53 #define MC68010_IRQ_3 MC68000_IRQ_3 54 #define MC68010_IRQ_4 MC68000_IRQ_4 55 #define MC68010_IRQ_5 MC68000_IRQ_5 56 #define MC68010_IRQ_6 MC68000_IRQ_6 57 #define MC68010_IRQ_7 MC68000_IRQ_7 58 #define MC68010_INT_ACK_AUTOVECTOR MC68000_INT_ACK_AUTOVECTOR 59 #define MC68010_INT_ACK_SPURIOUS MC68000_INT_ACK_SPURIOUS 60 61 #define m68010_ICount m68000_ICount 62 extern void m68010_reset(void *param); 63 extern void m68010_exit(void); 64 extern int m68010_execute(int cycles); 65 extern unsigned m68010_get_context(void *dst); 66 extern void m68010_set_context(void *src); 67 extern unsigned m68010_get_pc(void); 68 extern void m68010_set_pc(unsigned val); 69 extern unsigned m68010_get_sp(void); 70 extern void m68010_set_sp(unsigned val); 71 extern unsigned m68010_get_reg(int regnum); 72 extern void m68010_set_reg(int regnum, unsigned val); 73 extern void m68010_set_nmi_line(int state); 74 extern void m68010_set_irq_line(int irqline, int state); 75 extern void m68010_set_irq_callback(int (*callback)(int irqline)); 76 const char *m68010_info(void *context, int regnum); 77 extern unsigned m68010_dasm(char *buffer, unsigned pc); 78 #endif 79 80 /**************************************************************************** 81 * M68EC020 section 82 ****************************************************************************/ 83 #if HAS_M68EC020 84 #define MC68EC020_INT_NONE MC68000_INT_NONE 85 #define MC68EC020_IRQ_1 MC68000_IRQ_1 86 #define MC68EC020_IRQ_2 MC68000_IRQ_2 87 #define MC68EC020_IRQ_3 MC68000_IRQ_3 88 #define MC68EC020_IRQ_4 MC68000_IRQ_4 89 #define MC68EC020_IRQ_5 MC68000_IRQ_5 90 #define MC68EC020_IRQ_6 MC68000_IRQ_6 91 #define MC68EC020_IRQ_7 MC68000_IRQ_7 92 #define MC68EC020_INT_ACK_AUTOVECTOR MC68000_INT_ACK_AUTOVECTOR 93 #define MC68EC020_INT_ACK_SPURIOUS MC68000_INT_ACK_SPURIOUS 94 95 #define m68ec020_ICount m68000_ICount 96 extern void m68ec020_reset(void *param); 97 extern void m68ec020_exit(void); 98 extern int m68ec020_execute(int cycles); 99 extern unsigned m68ec020_get_context(void *dst); 100 extern void m68ec020_set_context(void *src); 101 extern unsigned m68ec020_get_pc(void); 102 extern void m68ec020_set_pc(unsigned val); 103 extern unsigned m68ec020_get_sp(void); 104 extern void m68ec020_set_sp(unsigned val); 105 extern unsigned m68ec020_get_reg(int regnum); 106 extern void m68ec020_set_reg(int regnum, unsigned val); 107 extern void m68ec020_set_nmi_line(int state); 108 extern void m68ec020_set_irq_line(int irqline, int state); 109 extern void m68ec020_set_irq_callback(int (*callback)(int irqline)); 110 const char *m68ec020_info(void *context, int regnum); 111 extern unsigned m68ec020_dasm(char *buffer, unsigned pc); 112 #endif 113 114 /**************************************************************************** 115 * M68020 section 116 ****************************************************************************/ 117 #if HAS_M68020 118 #define MC68020_INT_NONE MC68000_INT_NONE 119 #define MC68020_IRQ_1 MC68000_IRQ_1 120 #define MC68020_IRQ_2 MC68000_IRQ_2 121 #define MC68020_IRQ_3 MC68000_IRQ_3 122 #define MC68020_IRQ_4 MC68000_IRQ_4 123 #define MC68020_IRQ_5 MC68000_IRQ_5 124 #define MC68020_IRQ_6 MC68000_IRQ_6 125 #define MC68020_IRQ_7 MC68000_IRQ_7 126 #define MC68020_INT_ACK_AUTOVECTOR MC68000_INT_ACK_AUTOVECTOR 127 #define MC68020_INT_ACK_SPURIOUS MC68000_INT_ACK_SPURIOUS 128 129 #define m68020_ICount m68000_ICount 130 extern void m68020_reset(void *param); 131 extern void m68020_exit(void); 132 extern int m68020_execute(int cycles); 133 extern unsigned m68020_get_context(void *dst); 134 extern void m68020_set_context(void *src); 135 extern unsigned m68020_get_pc(void); 136 extern void m68020_set_pc(unsigned val); 137 extern unsigned m68020_get_sp(void); 138 extern void m68020_set_sp(unsigned val); 139 extern unsigned m68020_get_reg(int regnum); 140 extern void m68020_set_reg(int regnum, unsigned val); 141 extern void m68020_set_nmi_line(int state); 142 extern void m68020_set_irq_line(int irqline, int state); 143 extern void m68020_set_irq_callback(int (*callback)(int irqline)); 144 const char *m68020_info(void *context, int regnum); 145 extern unsigned m68020_dasm(char *buffer, unsigned pc); 146 #endif 147 148 149 #ifndef A68KEM 150 151 /* Handling for C core */ 152 #include "m68kmame.h" 153 154 #endif /* A68KEM */ 155 156 extern int m68000_ICount; 157 158 159 #endif /* M68000__HEADER */ 160