summaryrefslogtreecommitdiff
path: root/src/os9x_65c816_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/os9x_65c816_def.h')
-rw-r--r--src/os9x_65c816_def.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/os9x_65c816_def.h b/src/os9x_65c816_def.h
new file mode 100644
index 0000000..a078bca
--- /dev/null
+++ b/src/os9x_65c816_def.h
@@ -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)