/*****************************************************************************/
/* */
-/* ea.h */
+/* ea65.h */
/* */
-/* Effective address parsing for the ca65 macroassembler */
+/* Effective address structure definition */
/* */
/* */
/* */
-/* (C) 1998 Ullrich von Bassewitz */
-/* Wacholderweg 14 */
-/* D-70597 Stuttgart */
-/* EMail: uz@musoftware.de */
+/* (C) 1998-2004 Ullrich von Bassewitz */
+/* Römerstrasse 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
-#include "expr.h"
-
-
-
/*****************************************************************************/
-/* Data */
+/* Data */
/*****************************************************************************/
-/*****************************************************************************/
-/* Code */
-/*****************************************************************************/
-
-
+/* GetEA result struct */
+typedef struct EffAddr EffAddr;
+struct EffAddr {
+ /* First three fields get filled when calling GetEA */
+ unsigned long AddrModeSet; /* Possible addressing modes */
+ struct ExprNode* Expr; /* Expression if any (NULL otherwise) */
+ unsigned Reg; /* Register number in sweet16 mode */
-void GetEA (unsigned long* AddrMode, ExprNode** Expr, ExprNode** Bank);
-/* Parse an effective address, return the possible modes in AddrMode, and the
- * expression involved (if any) in Expr.
- */
+ /* The following fields are used inside instr.c */
+ unsigned AddrMode; /* Actual addressing mode used */
+ unsigned long AddrModeBit; /* Addressing mode as bit mask */
+ unsigned char Opcode; /* Opcode */
+};