Added the remaining HuC6280 instructions

git-svn-id: svn://svn.cc65.org/cc65/trunk@3615 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2005-09-01 19:40:34 +00:00
parent 0bdf6211bc
commit d1ee736417
2 changed files with 252 additions and 53 deletions

View File

@@ -83,6 +83,7 @@
#define AM65_IMM_IMPLICIT 0x00800000UL
#define AM65_IMM (AM65_IMM_ACCU | AM65_IMM_INDEX | AM65_IMM_IMPLICIT)
#define AM65_BLOCKMOVE 0x01000000UL
#define AM65_BLOCKXFER 0x02000000UL
/* Bitmask for all ZP operations that have correspondent ABS ops */
#define AM65_SET_ZP (AM65_DIR | AM65_DIR_X | AM65_DIR_Y | AM65_DIR_IND | AM65_DIR_X_IND)
@@ -93,7 +94,7 @@
/* Bit numbers and count */
#define AM65I_IMM_ACCU 21
#define AM65I_IMM_INDEX 22
#define AM65I_COUNT 25
#define AM65I_COUNT 26
@@ -101,16 +102,16 @@
typedef struct InsDesc InsDesc;
struct InsDesc {
char Mnemonic[5];
unsigned long AddrMode; /* Valid adressing modes */
unsigned char BaseCode; /* Base opcode */
unsigned char ExtCode; /* Number of ext code table */
unsigned long AddrMode; /* Valid adressing modes */
unsigned char BaseCode; /* Base opcode */
unsigned char ExtCode; /* Number of ext code table */
void (*Emit) (const InsDesc*);/* Handler function */
};
/* An instruction table */
/* An instruction table */
typedef struct InsTable InsTable;
struct InsTable {
unsigned Count; /* Number of intstructions */
unsigned Count; /* Number of intstructions */
InsDesc Ins[1]; /* Varying length */
};