summaryrefslogtreecommitdiff
path: root/sid/sidplay-libs-2.1.0/libsidplay/src/mos6510/opcodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'sid/sidplay-libs-2.1.0/libsidplay/src/mos6510/opcodes.h')
-rw-r--r--sid/sidplay-libs-2.1.0/libsidplay/src/mos6510/opcodes.h331
1 files changed, 331 insertions, 0 deletions
diff --git a/sid/sidplay-libs-2.1.0/libsidplay/src/mos6510/opcodes.h b/sid/sidplay-libs-2.1.0/libsidplay/src/mos6510/opcodes.h
new file mode 100644
index 00000000..e4d44acd
--- /dev/null
+++ b/sid/sidplay-libs-2.1.0/libsidplay/src/mos6510/opcodes.h
@@ -0,0 +1,331 @@
+/***************************************************************************
+ opcodes.h - description
+ -------------------
+ begin : Thu May 11 2000
+ copyright : (C) 2000 by Simon White
+ email : s_a_white@email.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#ifndef _opcodes_h_
+#define _opcodes_h_
+
+#define OPCODE_MAX 0x100
+
+/* HLT
+ case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52:
+ case 0x62: case 0x72: case 0x92: case 0xb2: case 0xd2: case 0xf2:
+ case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52:
+ case 0x62: case 0x72: case 0x92: case 0xb2: case 0xd2: case 0xf2:
+*/
+
+#define BRKn 0x00
+#define JSRw 0x20
+#define RTIn 0x40
+#define RTSn 0x60
+#define NOPb 0x80
+#define NOPb_ NOPb: case 0x82: case 0xC2: case 0xE2: case 0x89
+#define LDYb 0xA0
+#define CPYb 0xC0
+#define CPXb 0xE0
+
+#define ORAix 0x01
+#define ANDix 0x21
+#define EORix 0x41
+#define ADCix 0x61
+#define STAix 0x81
+#define LDAix 0xA1
+#define CMPix 0xC1
+#define SBCix 0xE1
+
+#define LDXb 0xA2
+
+#define SLOix 0x03
+#define RLAix 0x23
+#define SREix 0x43
+#define RRAix 0x63
+#define SAXix 0x83
+#define LAXix 0xA3
+#define DCPix 0xC3
+#define ISBix 0xE3
+
+#define NOPz 0x04
+#define NOPz_ NOPz: case 0x44: case 0x64
+#define BITz 0x24
+#define STYz 0x84
+#define LDYz 0xA4
+#define CPYz 0xC4
+#define CPXz 0xE4
+
+#define ORAz 0x05
+#define ANDz 0x25
+#define EORz 0x45
+#define ADCz 0x65
+#define STAz 0x85
+#define LDAz 0xA5
+#define CMPz 0xC5
+#define SBCz 0xE5
+
+#define ASLz 0x06
+#define ROLz 0x26
+#define LSRz 0x46
+#define RORz 0x66
+#define STXz 0x86
+#define LDXz 0xA6
+#define DECz 0xC6
+#define INCz 0xE6
+
+#define SLOz 0x07
+#define RLAz 0x27
+#define SREz 0x47
+#define RRAz 0x67
+#define SAXz 0x87
+#define LAXz 0xA7
+#define DCPz 0xC7
+#define ISBz 0xE7
+
+#define PHPn 0x08
+#define PLPn 0x28
+#define PHAn 0x48
+#define PLAn 0x68
+#define DEYn 0x88
+#define TAYn 0xA8
+#define INYn 0xC8
+#define INXn 0xE8
+
+#define ORAb 0x09
+#define ANDb 0x29
+#define EORb 0x49
+#define ADCb 0x69
+#define LDAb 0xA9
+#define CMPb 0xC9
+#define SBCb 0xE9
+#define SBCb_ SBCb: case 0XEB
+
+#define ASLn 0x0A
+#define ROLn 0x2A
+#define LSRn 0x4A
+#define RORn 0x6A
+#define TXAn 0x8A
+#define TAXn 0xAA
+#define DEXn 0xCA
+#define NOPn 0xEA
+#define NOPn_ NOPn: case 0x1A: case 0x3A: case 0x5A: case 0x7A: case 0xDA: case 0xFA
+
+#define ANCb 0x0B
+#define ANCb_ ANCb: case 0x2B
+#define ASRb 0x4B
+#define ARRb 0x6B
+#define ANEb 0x8B
+#define XAAb 0x8B
+#define LXAb 0xAB
+#define SBXb 0xCB
+
+#define NOPa 0x0C
+#define BITa 0x2C
+#define JMPw 0x4C
+#define JMPi 0x6C
+#define STYa 0x8C
+#define LDYa 0xAC
+#define CPYa 0xCC
+#define CPXa 0xEC
+
+#define ORAa 0x0D
+#define ANDa 0x2D
+#define EORa 0x4D
+#define ADCa 0x6D
+#define STAa 0x8D
+#define LDAa 0xAD
+#define CMPa 0xCD
+#define SBCa 0xED
+
+#define ASLa 0x0E
+#define ROLa 0x2E
+#define LSRa 0x4E
+#define RORa 0x6E
+#define STXa 0x8E
+#define LDXa 0xAE
+#define DECa 0xCE
+#define INCa 0xEE
+
+#define SLOa 0x0F
+#define RLAa 0x2F
+#define SREa 0x4F
+#define RRAa 0x6F
+#define SAXa 0x8F
+#define LAXa 0xAF
+#define DCPa 0xCF
+#define ISBa 0xEF
+
+#define BPLr 0x10
+#define BMIr 0x30
+#define BVCr 0x50
+#define BVSr 0x70
+#define BCCr 0x90
+#define BCSr 0xB0
+#define BNEr 0xD0
+#define BEQr 0xF0
+
+#define ORAiy 0x11
+#define ANDiy 0x31
+#define EORiy 0x51
+#define ADCiy 0x71
+#define STAiy 0x91
+#define LDAiy 0xB1
+#define CMPiy 0xD1
+#define SBCiy 0xF1
+
+#define SLOiy 0x13
+#define RLAiy 0x33
+#define SREiy 0x53
+#define RRAiy 0x73
+#define SHAiy 0x93
+#define LAXiy 0xB3
+#define DCPiy 0xD3
+#define ISBiy 0xF3
+
+#define NOPzx 0x14
+#define NOPzx_ NOPzx: case 0x34: case 0x54: case 0x74: case 0xD4: case 0xF4
+#define STYzx 0x94
+#define LDYzx 0xB4
+
+#define ORAzx 0x15
+#define ANDzx 0x35
+#define EORzx 0x55
+#define ADCzx 0x75
+#define STAzx 0x95
+#define LDAzx 0xB5
+#define CMPzx 0xD5
+#define SBCzx 0xF5
+
+#define ASLzx 0x16
+#define ROLzx 0x36
+#define LSRzx 0x56
+#define RORzx 0x76
+#define STXzy 0x96
+#define LDXzy 0xB6
+#define DECzx 0xD6
+#define INCzx 0xF6
+
+#define SLOzx 0x17
+#define RLAzx 0x37
+#define SREzx 0x57
+#define RRAzx 0x77
+#define SAXzy 0x97
+#define LAXzy 0xB7
+#define DCPzx 0xD7
+#define ISBzx 0xF7
+
+#define CLCn 0x18
+#define SECn 0x38
+#define CLIn 0x58
+#define SEIn 0x78
+#define TYAn 0x98
+#define CLVn 0xB8
+#define CLDn 0xD8
+#define SEDn 0xF8
+
+#define ORAay 0x19
+#define ANDay 0x39
+#define EORay 0x59
+#define ADCay 0x79
+#define STAay 0x99
+#define LDAay 0xB9
+#define CMPay 0xD9
+#define SBCay 0xF9
+
+#define TXSn 0x9A
+#define TSXn 0xBA
+
+#define SLOay 0x1B
+#define RLAay 0x3B
+#define SREay 0x5B
+#define RRAay 0x7B
+#define SHSay 0x9B
+#define TASay 0x9B
+#define LASay 0xBB
+#define DCPay 0xDB
+#define ISBay 0xFB
+
+#define NOPax 0x1C
+#define NOPax_ NOPax: case 0x3C: case 0x5C: case 0x7C: case 0xDC: case 0xFC
+#define SHYax 0x9C
+#define LDYax 0xBC
+
+#define ORAax 0x1D
+#define ANDax 0x3D
+#define EORax 0x5D
+#define ADCax 0x7D
+#define STAax 0x9D
+#define LDAax 0xBD
+#define CMPax 0xDD
+#define SBCax 0xFD
+
+#define ASLax 0x1E
+#define ROLax 0x3E
+#define LSRax 0x5E
+#define RORax 0x7E
+#define SHXay 0x9E
+#define LDXay 0xBE
+#define DECax 0xDE
+#define INCax 0xFE
+
+#define SLOax 0x1F
+#define RLAax 0x3F
+#define SREax 0x5F
+#define RRAax 0x7F
+#define SHAay 0x9F
+#define LAXay 0xBF
+#define DCPax 0xDF
+#define ISBax 0xFF
+
+// Instruction Aliases
+#define ASOix SLOix
+#define LSEix SREix
+#define AXSix SAXix
+#define DCMix DCPix
+#define INSix ISBix
+#define ASOz SLOz
+#define LSEz SREz
+#define AXSz SAXz
+#define DCMz DCPz
+#define INSz ISBz
+#define ALRb ASRb
+#define OALb LXAb
+#define ASOa SLOa
+#define LSEa SREa
+#define AXSa SAXa
+#define DCMa DCPa
+#define INSa ISBa
+#define ASOiy SLOiy
+#define LSEiy SREiy
+#define AXAiy SHAiy
+#define DCMiy DCPiy
+#define INSiy ISBiy
+#define ASOzx SLOzx
+#define LSEzx SREzx
+#define AXSzy SAXzy
+#define DCMzx DCPzx
+#define INSzx ISBzx
+#define ASOay SLOay
+#define LSEay SREay
+#define DCMay DCPay
+#define INSay ISBay
+#define SAYax SHYax
+#define XASay SHXay
+#define ASOax SLOax
+#define LSEax SREax
+#define AXAay SHAay
+#define DCMax DCPax
+#define INSax ISBax
+#define SKBn NOPb
+#define SKWn NOPa
+
+#endif // _opcodes_h_