/* */
/* */
/* */
-/* (C) 2003 Ullrich von Bassewitz */
-/* Römerstrasse 52 */
-/* D-70794 Filderstadt */
-/* EMail: uz@cc65.org */
+/* (C) 2003-2011, Ullrich von Bassewitz */
+/* Roemerstrasse 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/*****************************************************************************/
-/* Data */
+/* Data */
/*****************************************************************************/
/* CPUs */
typedef enum {
CPU_UNKNOWN = -1, /* Not specified or invalid target */
+ CPU_NONE, /* No CPU - for assembler */
CPU_6502,
+ CPU_6502X, /* "Extended", that is: with illegal opcodes */
CPU_65SC02,
CPU_65C02,
CPU_65816,
- CPU_SUNPLUS, /* Not in the freeware version - sorry */
- CPU_COUNT /* Number of different CPUs */
+ CPU_SWEET16,
+ CPU_HUC6280, /* Used in PC engine */
+ CPU_M740, /* Mitsubishi 740 series MCUs */
+ CPU_COUNT /* Number of different CPUs */
} cpu_t;
+/* CPU instruction sets */
+enum {
+ CPU_ISET_NONE = 1 << CPU_NONE,
+ CPU_ISET_6502 = 1 << CPU_6502,
+ CPU_ISET_6502X = 1 << CPU_6502X,
+ CPU_ISET_65SC02 = 1 << CPU_65SC02,
+ CPU_ISET_65C02 = 1 << CPU_65C02,
+ CPU_ISET_65816 = 1 << CPU_65816,
+ CPU_ISET_SWEET16 = 1 << CPU_SWEET16,
+ CPU_ISET_HUC6280 = 1 << CPU_HUC6280,
+ CPU_ISET_M740 = 1 << CPU_M740,
+};
+
/* CPU used */
extern cpu_t CPU;
-/* Table with target names */
+/* Table with CPU names */
extern const char* CPUNames[CPU_COUNT];
+/* Table with CPU the instruction sets */
+extern const unsigned CPUIsets[CPU_COUNT];
+
/*****************************************************************************/
-/* Code */
+/* Code */
/*****************************************************************************/
+int ValidAddrSizeForCPU (unsigned char AddrSize);
+/* Check if the given address size is valid for the current CPU */
+
cpu_t FindCPU (const char* Name);
/* Find a CPU by name and return the target id. CPU_UNKNOWN is returned if
* the given name is no valid target.
/* End of cpu.h */
-#endif
+#endif