00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef OPCODES_H
00024 #define OPCODES_H
00025
00026 #define OPCODE_MAX 0x100
00027
00028
00029
00030
00031
00032
00033
00034
00035 #define BRKn 0x00
00036 #define JSRw 0x20
00037 #define RTIn 0x40
00038 #define RTSn 0x60
00039 #define NOPb 0x80
00040 #define NOPb_ NOPb: case 0x82: case 0xC2: case 0xE2: case 0x89
00041 #define LDYb 0xA0
00042 #define CPYb 0xC0
00043 #define CPXb 0xE0
00044
00045 #define ORAix 0x01
00046 #define ANDix 0x21
00047 #define EORix 0x41
00048 #define ADCix 0x61
00049 #define STAix 0x81
00050 #define LDAix 0xA1
00051 #define CMPix 0xC1
00052 #define SBCix 0xE1
00053
00054 #define LDXb 0xA2
00055
00056 #define SLOix 0x03
00057 #define RLAix 0x23
00058 #define SREix 0x43
00059 #define RRAix 0x63
00060 #define SAXix 0x83
00061 #define LAXix 0xA3
00062 #define DCPix 0xC3
00063 #define ISBix 0xE3
00064
00065 #define NOPz 0x04
00066 #define NOPz_ NOPz: case 0x44: case 0x64
00067 #define BITz 0x24
00068 #define STYz 0x84
00069 #define LDYz 0xA4
00070 #define CPYz 0xC4
00071 #define CPXz 0xE4
00072
00073 #define ORAz 0x05
00074 #define ANDz 0x25
00075 #define EORz 0x45
00076 #define ADCz 0x65
00077 #define STAz 0x85
00078 #define LDAz 0xA5
00079 #define CMPz 0xC5
00080 #define SBCz 0xE5
00081
00082 #define ASLz 0x06
00083 #define ROLz 0x26
00084 #define LSRz 0x46
00085 #define RORz 0x66
00086 #define STXz 0x86
00087 #define LDXz 0xA6
00088 #define DECz 0xC6
00089 #define INCz 0xE6
00090
00091 #define SLOz 0x07
00092 #define RLAz 0x27
00093 #define SREz 0x47
00094 #define RRAz 0x67
00095 #define SAXz 0x87
00096 #define LAXz 0xA7
00097 #define DCPz 0xC7
00098 #define ISBz 0xE7
00099
00100 #define PHPn 0x08
00101 #define PLPn 0x28
00102 #define PHAn 0x48
00103 #define PLAn 0x68
00104 #define DEYn 0x88
00105 #define TAYn 0xA8
00106 #define INYn 0xC8
00107 #define INXn 0xE8
00108
00109 #define ORAb 0x09
00110 #define ANDb 0x29
00111 #define EORb 0x49
00112 #define ADCb 0x69
00113 #define LDAb 0xA9
00114 #define CMPb 0xC9
00115 #define SBCb 0xE9
00116 #define SBCb_ SBCb: case 0XEB
00117
00118 #define ASLn 0x0A
00119 #define ROLn 0x2A
00120 #define LSRn 0x4A
00121 #define RORn 0x6A
00122 #define TXAn 0x8A
00123 #define TAXn 0xAA
00124 #define DEXn 0xCA
00125 #define NOPn 0xEA
00126 #define NOPn_ NOPn: case 0x1A: case 0x3A: case 0x5A: case 0x7A: case 0xDA: case 0xFA
00127
00128 #define ANCb 0x0B
00129 #define ANCb_ ANCb: case 0x2B
00130 #define ASRb 0x4B
00131 #define ARRb 0x6B
00132 #define ANEb 0x8B
00133 #define XAAb 0x8B
00134 #define LXAb 0xAB
00135 #define SBXb 0xCB
00136
00137 #define NOPa 0x0C
00138 #define BITa 0x2C
00139 #define JMPw 0x4C
00140 #define JMPi 0x6C
00141 #define STYa 0x8C
00142 #define LDYa 0xAC
00143 #define CPYa 0xCC
00144 #define CPXa 0xEC
00145
00146 #define ORAa 0x0D
00147 #define ANDa 0x2D
00148 #define EORa 0x4D
00149 #define ADCa 0x6D
00150 #define STAa 0x8D
00151 #define LDAa 0xAD
00152 #define CMPa 0xCD
00153 #define SBCa 0xED
00154
00155 #define ASLa 0x0E
00156 #define ROLa 0x2E
00157 #define LSRa 0x4E
00158 #define RORa 0x6E
00159 #define STXa 0x8E
00160 #define LDXa 0xAE
00161 #define DECa 0xCE
00162 #define INCa 0xEE
00163
00164 #define SLOa 0x0F
00165 #define RLAa 0x2F
00166 #define SREa 0x4F
00167 #define RRAa 0x6F
00168 #define SAXa 0x8F
00169 #define LAXa 0xAF
00170 #define DCPa 0xCF
00171 #define ISBa 0xEF
00172
00173 #define BPLr 0x10
00174 #define BMIr 0x30
00175 #define BVCr 0x50
00176 #define BVSr 0x70
00177 #define BCCr 0x90
00178 #define BCSr 0xB0
00179 #define BNEr 0xD0
00180 #define BEQr 0xF0
00181
00182 #define ORAiy 0x11
00183 #define ANDiy 0x31
00184 #define EORiy 0x51
00185 #define ADCiy 0x71
00186 #define STAiy 0x91
00187 #define LDAiy 0xB1
00188 #define CMPiy 0xD1
00189 #define SBCiy 0xF1
00190
00191 #define SLOiy 0x13
00192 #define RLAiy 0x33
00193 #define SREiy 0x53
00194 #define RRAiy 0x73
00195 #define SHAiy 0x93
00196 #define LAXiy 0xB3
00197 #define DCPiy 0xD3
00198 #define ISBiy 0xF3
00199
00200 #define NOPzx 0x14
00201 #define NOPzx_ NOPzx: case 0x34: case 0x54: case 0x74: case 0xD4: case 0xF4
00202 #define STYzx 0x94
00203 #define LDYzx 0xB4
00204
00205 #define ORAzx 0x15
00206 #define ANDzx 0x35
00207 #define EORzx 0x55
00208 #define ADCzx 0x75
00209 #define STAzx 0x95
00210 #define LDAzx 0xB5
00211 #define CMPzx 0xD5
00212 #define SBCzx 0xF5
00213
00214 #define ASLzx 0x16
00215 #define ROLzx 0x36
00216 #define LSRzx 0x56
00217 #define RORzx 0x76
00218 #define STXzy 0x96
00219 #define LDXzy 0xB6
00220 #define DECzx 0xD6
00221 #define INCzx 0xF6
00222
00223 #define SLOzx 0x17
00224 #define RLAzx 0x37
00225 #define SREzx 0x57
00226 #define RRAzx 0x77
00227 #define SAXzy 0x97
00228 #define LAXzy 0xB7
00229 #define DCPzx 0xD7
00230 #define ISBzx 0xF7
00231
00232 #define CLCn 0x18
00233 #define SECn 0x38
00234 #define CLIn 0x58
00235 #define SEIn 0x78
00236 #define TYAn 0x98
00237 #define CLVn 0xB8
00238 #define CLDn 0xD8
00239 #define SEDn 0xF8
00240
00241 #define ORAay 0x19
00242 #define ANDay 0x39
00243 #define EORay 0x59
00244 #define ADCay 0x79
00245 #define STAay 0x99
00246 #define LDAay 0xB9
00247 #define CMPay 0xD9
00248 #define SBCay 0xF9
00249
00250 #define TXSn 0x9A
00251 #define TSXn 0xBA
00252
00253 #define SLOay 0x1B
00254 #define RLAay 0x3B
00255 #define SREay 0x5B
00256 #define RRAay 0x7B
00257 #define SHSay 0x9B
00258 #define TASay 0x9B
00259 #define LASay 0xBB
00260 #define DCPay 0xDB
00261 #define ISBay 0xFB
00262
00263 #define NOPax 0x1C
00264 #define NOPax_ NOPax: case 0x3C: case 0x5C: case 0x7C: case 0xDC: case 0xFC
00265 #define SHYax 0x9C
00266 #define LDYax 0xBC
00267
00268 #define ORAax 0x1D
00269 #define ANDax 0x3D
00270 #define EORax 0x5D
00271 #define ADCax 0x7D
00272 #define STAax 0x9D
00273 #define LDAax 0xBD
00274 #define CMPax 0xDD
00275 #define SBCax 0xFD
00276
00277 #define ASLax 0x1E
00278 #define ROLax 0x3E
00279 #define LSRax 0x5E
00280 #define RORax 0x7E
00281 #define SHXay 0x9E
00282 #define LDXay 0xBE
00283 #define DECax 0xDE
00284 #define INCax 0xFE
00285
00286 #define SLOax 0x1F
00287 #define RLAax 0x3F
00288 #define SREax 0x5F
00289 #define RRAax 0x7F
00290 #define SHAay 0x9F
00291 #define LAXay 0xBF
00292 #define DCPax 0xDF
00293 #define ISBax 0xFF
00294
00295
00296 #define ASOix SLOix
00297 #define LSEix SREix
00298 #define AXSix SAXix
00299 #define DCMix DCPix
00300 #define INSix ISBix
00301 #define ASOz SLOz
00302 #define LSEz SREz
00303 #define AXSz SAXz
00304 #define DCMz DCPz
00305 #define INSz ISBz
00306 #define ALRb ASRb
00307 #define OALb LXAb
00308 #define ASOa SLOa
00309 #define LSEa SREa
00310 #define AXSa SAXa
00311 #define DCMa DCPa
00312 #define INSa ISBa
00313 #define ASOiy SLOiy
00314 #define LSEiy SREiy
00315 #define AXAiy SHAiy
00316 #define DCMiy DCPiy
00317 #define INSiy ISBiy
00318 #define ASOzx SLOzx
00319 #define LSEzx SREzx
00320 #define AXSzy SAXzy
00321 #define DCMzx DCPzx
00322 #define INSzx ISBzx
00323 #define ASOay SLOay
00324 #define LSEay SREay
00325 #define DCMay DCPay
00326 #define INSay ISBay
00327 #define SAYax SHYax
00328 #define XASay SHXay
00329 #define ASOax SLOax
00330 #define LSEax SREax
00331 #define AXAay SHAay
00332 #define DCMax DCPax
00333 #define INSax ISBax
00334 #define SKBn NOPb
00335 #define SKWn NOPa
00336
00337 #endif // OPCODES_H