* To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
* Other contributors include:
* Karl Bongers karl@turbobit.com,
- * Johan Knol
+ * Johan Knol johan.knol@iduna.nl
*
*/
// odd-ball ones
NO_OPERANDS, // for NOP
- C_BIT,
- C_NOTBIT,
+ CY_BIT,
+ BIT_CY,
+ CY_NOTBIT,
+ DATA4,
REG_DATA4,
+ REG_DATA5,
IREG_DATA4,
IREGINC_DATA4,
IREGOFF8_DATA4,
IREG,
BIT_ALONE,
DIRECT,
+ DIRECT_DIRECT,
RLIST,
ADDR24,
BIT_REL8,
REG_REL8,
DIRECT_REL8,
+ REG_REGOFF8,
+ REG_REGOFF16,
+
+ REG_USP,
+ USP_REG,
REL8,
REL16,
REG_DATA8_REL8,
REG_DATA16_REL8,
IREG_DATA8_REL8,
- IREG_DATA16_REL8
+ IREG_DATA16_REL8,
+ A_APLUSDPTR,
+ A_APLUSPC
};
// table of dissassembled instructions
struct xa_dis_entry
{
- uint code, mask;
- char branch;
- uchar length;
- int mnemonic;
- int operands;
+ uint is1byte; /* only grab 1 byte for table lookup(most are 2 bytes) */
+ uint code; /* bits in opcode used to match table entry(with mask) */
+ uint mask; /* mask used on .code to match up a common opcode */
+ char branch; /* used by main app to implement "next" around calls */
+ uchar length; /* total length of opcode, used by dissasembler and main app */
+ int mnemonic; /* type of opcode(ADD, ADDC...) */
+ int operands; /* unique classification of operands: Rd,Rs = REG_REG,... */
};
extern struct dis_entry glob_disass_xa[];
extern struct xa_dis_entry disass_xa[];
+extern struct name_entry sfr_tabXA51[];
+extern struct name_entry bit_tabXA51[];
#endif
/* End of xa.src/glob.h */