initial upstream import
[drnoksnes] / os9x_65c816_def.h
diff --git a/os9x_65c816_def.h b/os9x_65c816_def.h
new file mode 100644 (file)
index 0000000..eae9730
--- /dev/null
@@ -0,0 +1,76 @@
+//#define __PALMOS__
+
+//#define __TESTING__
+
+#define MAP_LAST       12
+
+#define regA           R11     //format : 0xhhll0000 or 0xll000000
+#define rstatus                R4      //format : 0xff800000
+#define regDBank       R4      //format : 0x000000ll
+#define regX           R5      //format : 0xhhll0000 or 0xll000000
+#define regY           R6      //format : 0xhhll0000 or 0xll000000
+
+#define rpc            R7      //32bits address
+#define regD           R8      //format : 0xhhll0000
+#define regPBank       R8      //format : 0x000000ll
+#define regCycles      R9      //32bits counter
+#define regS           R10     //format : 0x0000hhll
+
+#define rscratch       R0      //format : 0xhhll0000 if data and calculation or return of S9XREADBYTE  or WORD
+#define regopcode      R0      //format : 0x000000ll
+#define rscratch2      R1      //format : 0xhhll for calculation and value
+#define rscratch3      R2      //
+#define rscratch4      R3      //??????
+
+
+#define rscratch5      R5      //??????
+#define rscratch6      R6      //??????
+#define rscratch7      R8      //??????
+#define rscratch8      R9      //??????
+#define rscratch9      R10     //??????
+
+#define regpcbase      R12     //32bits address
+
+#define regCPUvar       R14
+
+
+
+//not used
+//R13  //Pointer 32 bit on a struct.
+
+//R15 = pc (sic!)
+
+
+/*#define Carry       1
+#define Zero        2
+#define IRQ         4
+#define Decimal     8
+#define IndexFlag  16
+#define MemoryFlag 32
+#define Overflow   64
+#define Negative  128
+#define Emulation 256*/
+
+#define STATUS_SHIFTER         24
+#define MASK_EMUL              (1<<(STATUS_SHIFTER-1))
+#define MASK_SHIFTER_CARRY     (STATUS_SHIFTER+1)
+#define        MASK_CARRY              (1<<(STATUS_SHIFTER))  //0
+#define        MASK_ZERO               (2<<(STATUS_SHIFTER))  //1
+#define MASK_IRQ               (4<<(STATUS_SHIFTER))  //2
+#define MASK_DECIMAL           (8<<(STATUS_SHIFTER))  //3
+#define        MASK_INDEX              (16<<(STATUS_SHIFTER)) //4  //1
+#define        MASK_MEM                (32<<(STATUS_SHIFTER)) //5  //2
+#define        MASK_OVERFLOW           (64<<(STATUS_SHIFTER)) //6  //4
+#define        MASK_NEG                (128<<(STATUS_SHIFTER))//7  //8
+
+#define ONE_CYCLE 6
+#define SLOW_ONE_CYCLE 8
+
+#define        NMI_FLAG            (1 << 7)
+#define IRQ_PENDING_FLAG    (1 << 11)
+#define SCAN_KEYS_FLAG     (1 << 4)
+
+
+#define MEMMAP_BLOCK_SIZE (0x1000)
+#define MEMMAP_SHIFT 12
+#define MEMMAP_MASK (0xFFF)