]> git.sur5r.net Git - cc65/blobdiff - src/ca65/ea.h
More lineinfo usage.
[cc65] / src / ca65 / ea.h
index 8d3c88a8de3b4d8268ebfc850656a671e1d56817..dbedcd760bfd3bb8f85748258578be5c39f8a131 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                  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 */
+};