libsidplayfp 1.0.3
|
00001 /* 00002 * This file is part of libsidplayfp, a SID player engine. 00003 * 00004 * Copyright 2011-2013 Leandro Nini <drfiemost@users.sourceforge.net> 00005 * Copyright 2007-2010 Antti Lankila 00006 * Copyright 2000 Simon White 00007 * 00008 * This program is free software; you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation; either version 2 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00021 */ 00022 00023 #ifndef OPCODES_H 00024 #define OPCODES_H 00025 00026 #define OPCODE_MAX 0x100 00027 00028 /* HLT 00029 case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52: 00030 case 0x62: case 0x72: case 0x92: case 0xb2: case 0xd2: case 0xf2: 00031 case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52: 00032 case 0x62: case 0x72: case 0x92: case 0xb2: case 0xd2: case 0xf2: 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 // Instruction Aliases 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