]> git.sur5r.net Git - cc65/blobdiff - src/ca65/instr.h
Finished implemenation of commands to delete macros. Added the new commands to
[cc65] / src / ca65 / instr.h
index b9706ce84d024a19e7c35c978879594fd4599e05..7b36cfffbab6e5c87ff698fba87adaa71c683a8d 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                 instr.h                                  */
+/*                                 instr.h                                  */
 /*                                                                           */
 /*            Instruction encoding for the ca65 macroassembler              */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2004 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
-/*               D-70794 Filderstadt                                         */
-/* EMail:        uz@cc65.org                                                 */
+/* (C) 1998-2008, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -40,6 +40,7 @@
 
 /* common */
 #include "cpu.h"
+#include "strbuf.h"
 
 
 
@@ -83,6 +84,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 +95,7 @@
 /* Bit numbers and count */
 #define AM65I_IMM_ACCU         21
 #define AM65I_IMM_INDEX                22
-#define AM65I_COUNT            25
+#define AM65I_COUNT            26
 
 
 
 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 */
 typedef struct InsTable InsTable;
 struct InsTable {
-    unsigned                   Count;                  /* Number of intstructions */
+    unsigned                   Count;                  /* Number of intstructions */
     InsDesc                    Ins[1];                 /* Varying length */
 };
 
@@ -151,7 +153,7 @@ void SetCPU (cpu_t NewCPU);
 cpu_t GetCPU (void);
 /* Return the current CPU */
 
-int FindInstruction (const char* Ident);
+int FindInstruction (const StrBuf* Ident);
 /* Check if Ident is a valid mnemonic. If so, return the index in the
  * instruction table. If not, return -1.
  */
@@ -168,3 +170,4 @@ void HandleInstruction (unsigned Index);
 
 
 
+