summaryrefslogtreecommitdiff
path: root/68kinst.h
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2013-04-21 13:00:34 -0700
committerMike Pavone <pavone@retrodev.com>2013-04-21 13:00:34 -0700
commit28b19a047f98ac80090e5286d5f0c0349b91dc38 (patch)
treea6b8b394b7027d6dc8d8f1467acf7abe27d0dc10 /68kinst.h
parent1dd89758e07ed71dc664a8341c19315293ef2730 (diff)
Implement CHK instruction (not fully tested).
Diffstat (limited to '68kinst.h')
-rw-r--r--68kinst.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/68kinst.h b/68kinst.h
index ae2b38f..96210b4 100644
--- a/68kinst.h
+++ b/68kinst.h
@@ -182,6 +182,48 @@ typedef struct m68kinst {
m68k_op_info dst;
} m68kinst;
+typedef enum {
+ VECTOR_RESET_STACK,
+ VECTOR_RESET_PC,
+ VECTOR_ACCESS_FAULT,
+ VECTOR_ADDRESS_ERROR,
+ VECTOR_ILLEGAL_INST,
+ VECTOR_INT_DIV_ZERO,
+ VECTOR_CHK,
+ VECTOR_TRAPV,
+ VECTOR_PRIV_VIOLATION,
+ VECTOR_TRACE,
+ VECTOR_LINE_1010,
+ VECTOR_LINE_1111,
+ VECTOR_COPROC_VIOLATION=13,
+ VECTOR_FORMAT_ERROR,
+ VECTOR_UNINIT_INTERRUPT,
+ VECTOR_SPURIOUS_INTERRUPT=24,
+ VECTOR_INT_1,
+ VECTOR_INT_2,
+ VECTOR_INT_3,
+ VECTOR_INT_4,
+ VECTOR_INT_5,
+ VECTOR_INT_6,
+ VECTOR_INT_7,
+ VECTOR_TRAP_0,
+ VECTOR_TRAP_1,
+ VECTOR_TRAP_2,
+ VECTOR_TRAP_3,
+ VECTOR_TRAP_4,
+ VECTOR_TRAP_5,
+ VECTOR_TRAP_6,
+ VECTOR_TRAP_7,
+ VECTOR_TRAP_8,
+ VECTOR_TRAP_9,
+ VECTOR_TRAP_10,
+ VECTOR_TRAP_11,
+ VECTOR_TRAP_12,
+ VECTOR_TRAP_13,
+ VECTOR_TRAP_14,
+ VECTOR_TRAP_15
+} m68k_vector;
+
uint16_t * m68k_decode(uint16_t * istream, m68kinst * dst, uint32_t address);
uint32_t m68k_cycles(m68kinst * inst);
int m68k_disasm(m68kinst * decoded, char * dst);