Main Page   Data Structures   File List   Data Fields   Globals   Related Pages  

instructions.h

Go to the documentation of this file.
00001 
00005 #ifndef INSTRUCTIONS_H
00006 #define INSTRUCTIONS_H
00007 
00009 typedef enum {
00010         IMPL, ACC, IMM, ABS, ABSX, ABSY, ZP, ZPX, ZPY, REL, IND, INDX, INDY
00011 } AdrType;
00012 
00014 typedef struct _Instr {
00015         char* name;
00016         AdrType aType;
00017         unsigned char len;
00018 } Instr;
00019 
00021 const Instr INSTRUCTIONS[256] = {
00022         { "BRK", IMPL, 1 },
00023         { "ORA", INDX, 2 },
00024         { "UNKNOWN", IMPL, 1 },
00025         { "UNKNOWN", IMPL, 1 },
00026         { "UNKNOWN", IMPL, 1 },
00027         { "ORA", ZP, 2 },
00028         { "ASL", ZP, 2 },
00029         { "UNKNOWN", IMPL, 1 },
00030         { "PHP", IMPL, 1 },
00031         { "ORA", IMM, 2 },
00032         { "ASL", ACC, 1 },
00033         { "UNKNOWN", IMPL, 1 },
00034         { "UNKNOWN", IMPL, 1 },
00035         { "ORA", ABS, 3 },
00036         { "ASL", ABS, 3 },
00037         { "UNKNOWN", IMPL, 1 },
00038         { "BPL", REL, 2 },
00039         { "ORA", INDY, 2 },
00040         { "UNKNOWN", IMPL, 1 },
00041         { "UNKNOWN", IMPL, 1 },
00042         { "UNKNOWN", IMPL, 1 },
00043         { "ORA", ZPX, 2 },
00044         { "ASL", ZPX, 2 },
00045         { "UNKNOWN", IMPL, 1 },
00046         { "CLC", IMPL, 1 },
00047         { "ORA", ABSY, 3 },
00048         { "UNKNOWN", IMPL, 1 },
00049         { "UNKNOWN", IMPL, 1 },
00050         { "UNKNOWN", IMPL, 1 },
00051         { "ORA", ABSX, 3 },
00052         { "ASL", ABSX, 3 },
00053         { "UNKNOWN", IMPL, 1 },
00054         { "JSR", ABS, 3 },
00055         { "AND", INDX, 2 },
00056         { "UNKNOWN", IMPL, 1 },
00057         { "UNKNOWN", IMPL, 1 },
00058         { "BIT", ZP, 2 },
00059         { "AND", ZP, 2 },
00060         { "ROL", ZP, 2 },
00061         { "UNKNOWN", IMPL, 1 },
00062         { "PLP", IMPL, 1 },
00063         { "AND", IMM, 2 },
00064         { "ROL", ACC, 1 },
00065         { "UNKNOWN", IMPL, 1 },
00066         { "BIT", ABS, 3 },
00067         { "AND", ABS, 3 },
00068         { "ROL", ABS, 3 },
00069         { "UNKNOWN", IMPL, 1 },
00070         { "BMI", REL, 2 },
00071         { "AND", INDY, 2 },
00072         { "UNKNOWN", IMPL, 1 },
00073         { "UNKNOWN", IMPL, 1 },
00074         { "UNKNOWN", IMPL, 1 },
00075         { "AND", ZPX, 2 },
00076         { "ROL", ZPX, 2 },
00077         { "UNKNOWN", IMPL, 1 },
00078         { "SEC", IMPL, 1 },
00079         { "AND", ABSY, 3 },
00080         { "UNKNOWN", IMPL, 1 },
00081         { "UNKNOWN", IMPL, 1 },
00082         { "UNKNOWN", IMPL, 1 },
00083         { "AND", ABSX, 3 },
00084         { "ROL", ABSX, 3 },
00085         { "UNKNOWN", IMPL, 1 },
00086         { "RTI", IMPL, 1 },
00087         { "EOR", INDX, 2 },
00088         { "UNKNOWN", IMPL, 1 },
00089         { "UNKNOWN", IMPL, 1 },
00090         { "UNKNOWN", IMPL, 1 },
00091         { "EOR", ZP, 2 },
00092         { "LSR", ZP, 2 },
00093         { "UNKNOWN", IMPL, 1 },
00094         { "PHA", IMPL, 1 },
00095         { "EOR", IMM, 2 },
00096         { "LSR", ACC, 1 },
00097         { "UNKNOWN", IMPL, 1 },
00098         { "JMP", ABS, 3 },
00099         { "EOR", ABS, 3 },
00100         { "LSR", ABS, 3 },
00101         { "UNKNOWN", IMPL, 1 },
00102         { "BVC", REL, 2 },
00103         { "EOR", INDY, 2 },
00104         { "UNKNOWN", IMPL, 1 },
00105         { "UNKNOWN", IMPL, 1 },
00106         { "UNKNOWN", IMPL, 1 },
00107         { "EOR", ZPX, 2 },
00108         { "LSR", ZPX, 2 },
00109         { "UNKNOWN", IMPL, 1 },
00110         { "CLI", IMPL, 1 },
00111         { "EOR", ABSY, 3 },
00112         { "UNKNOWN", IMPL, 1 },
00113         { "UNKNOWN", IMPL, 1 },
00114         { "UNKNOWN", IMPL, 1 },
00115         { "EOR", ABSX, 3 },
00116         { "LSR", ABSX, 3 },
00117         { "UNKNOWN", IMPL, 1 },
00118         { "RTS", IMPL, 1 },
00119         { "ADC", INDX, 2 },
00120         { "UNKNOWN", IMPL, 1 },
00121         { "UNKNOWN", IMPL, 1 },
00122         { "UNKNOWN", IMPL, 1 },
00123         { "ADC", ZP, 2 },
00124         { "ROR", ZP, 2 },
00125         { "UNKNOWN", IMPL, 1 },
00126         { "PLA", IMPL, 1 },
00127         { "ADC", IMM, 2 },
00128         { "ROR", ACC, 1 },
00129         { "UNKNOWN", IMPL, 1 },
00130         { "JMP", IND, 3 },
00131         { "ADC", ABS, 3 },
00132         { "ROR", ABS, 3 },
00133         { "UNKNOWN", IMPL, 1 },
00134         { "BVS", REL, 2 },
00135         { "ADC", INDY, 2 },
00136         { "UNKNOWN", IMPL, 1 },
00137         { "UNKNOWN", IMPL, 1 },
00138         { "UNKNOWN", IMPL, 1 },
00139         { "ADC", ZPX, 2 },
00140         { "ROR", ZPX, 2 },
00141         { "UNKNOWN", IMPL, 1 },
00142         { "SEI", IMPL, 1 },
00143         { "ADC", ABSY, 3 },
00144         { "UNKNOWN", IMPL, 1 },
00145         { "UNKNOWN", IMPL, 1 },
00146         { "UNKNOWN", IMPL, 1 },
00147         { "ADC", ABSX, 3 },
00148         { "ROR", ABSX, 3 },
00149         { "UNKNOWN", IMPL, 1 },
00150         { "UNKNOWN", IMPL, 1 },
00151         { "STA", INDX, 2 },
00152         { "UNKNOWN", IMPL, 1 },
00153         { "UNKNOWN", IMPL, 1 },
00154         { "STY", ZP, 2 },
00155         { "STA", ZP, 2 },
00156         { "STX", ZP, 2 },
00157         { "UNKNOWN", IMPL, 1 },
00158         { "DEY", IMPL, 1 },
00159         { "UNKNOWN", IMPL, 1 },
00160         { "TXA", IMPL, 1 },
00161         { "UNKNOWN", IMPL, 1 },
00162         { "STY", ABS, 3 },
00163         { "STA", ABS, 3 },
00164         { "STX", ABS, 3 },
00165         { "UNKNOWN", IMPL, 1 },
00166         { "BCC", REL, 2 },
00167         { "STA", INDY, 2 },
00168         { "UNKNOWN", IMPL, 1 },
00169         { "UNKNOWN", IMPL, 1 },
00170         { "STY", ZPX, 2 },
00171         { "STA", ZPX, 2 },
00172         { "STX", ZPX, 2 },
00173         { "UNKNOWN", IMPL, 1 },
00174         { "TYA", IMPL, 1 },
00175         { "STA", ABSY, 3 },
00176         { "TXS", IMPL, 1 },
00177         { "UNKNOWN", IMPL, 1 },
00178         { "UNKNOWN", IMPL, 1 },
00179         { "STA", ABSX, 3 },
00180         { "UNKNOWN", IMPL, 1 },
00181         { "UNKNOWN", IMPL, 1 },
00182         { "LDY", IMM, 2 },
00183         { "LDA", INDX, 2 },
00184         { "LDX", IMM, 2 },
00185         { "UNKNOWN", IMPL, 1 },
00186         { "LDY", ZP, 2 },
00187         { "LDA", ZP, 2 },
00188         { "LDX", ZP, 2 },
00189         { "UNKNOWN", IMPL, 1 },
00190         { "TAY", IMPL, 1 },
00191         { "LDA", IMM, 2 },
00192         { "TAX", IMPL, 1 },
00193         { "UNKNOWN", IMPL, 1 },
00194         { "LDY", ABS, 3 },
00195         { "LDA", ABS, 3 },
00196         { "LDX", ABS, 3 },
00197         { "BCS", REL, 2 },
00198         { "UNKNOWN", IMPL, 1 },
00199         { "LDA", INDY, 2 },
00200         { "UNKNOWN", IMPL, 1 },
00201         { "UNKNOWN", IMPL, 1 },
00202         { "LDY", ZPX, 2 },
00203         { "LDA", ZPX, 2 },
00204         { "LDX", ZPY, 2 },
00205         { "UNKNOWN", IMPL, 1 },
00206         { "CLV", IMPL, 1 },
00207         { "LDA", ABSY, 3 },
00208         { "TSX", IMPL, 1 },
00209         { "UNKNOWN", IMPL, 1 },
00210         { "LDY", ABSX, 3 },
00211         { "LDA", ABSX, 3 },
00212         { "LDX", ABSY, 3 },
00213         { "UNKNOWN", IMPL, 1 },
00214         { "CPY", IMM, 2 },
00215         { "CMP", INDX, 2 },
00216         { "UNKNOWN", IMPL, 1 },
00217         { "UNKNOWN", IMPL, 1 },
00218         { "CPY", ZP, 2 },
00219         { "CMP", ZP, 2 },
00220         { "DEC", ZP, 2 },
00221         { "UNKNOWN", IMPL, 1 },
00222         { "INY", IMPL, 1 },
00223         { "CMP", IMM, 2 },
00224         { "DEX", IMPL, 1 },
00225         { "UNKNOWN", IMPL, 1 },
00226         { "CPY", ABS, 3 },
00227         { "CMP", ABS, 3 },
00228         { "DEC", ABS, 3 },
00229         { "UNKNOWN", IMPL, 1 },
00230         { "BNE", REL, 2 },
00231         { "CMP", INDY, 2 },
00232         { "UNKNOWN", IMPL, 1 },
00233         { "UNKNOWN", IMPL, 1 },
00234         { "UNKNOWN", IMPL, 1 },
00235         { "CMP", ZPX, 2 },
00236         { "DEC", ZPX, 2 },
00237         { "UNKNOWN", IMPL, 1 },
00238         { "CLD", IMPL, 1 },
00239         { "CMP", ABSY, 3 },
00240         { "UNKNOWN", IMPL, 1 },
00241         { "UNKNOWN", IMPL, 1 },
00242         { "UNKNOWN", IMPL, 1 },
00243         { "CMP", ABSX, 3 },
00244         { "DEC", ABSX, 3 },
00245         { "UNKNOWN", IMPL, 1 },
00246         { "CPX", IMM, 2 },
00247         { "SBC", INDX, 2 },
00248         { "UNKNOWN", IMPL, 1 },
00249         { "UNKNOWN", IMPL, 1 },
00250         { "CPX", ZP, 2 },
00251         { "SBC", ZP, 2 },
00252         { "INC", ZP, 2 },
00253         { "UNKNOWN", IMPL, 1 },
00254         { "INX", IMPL, 1 },
00255         { "SBC", IMM, 2 },
00256         { "NOP", IMPL, 1 },
00257         { "UNKNOWN", IMPL, 1 },
00258         { "CPX", ABS, 3 },
00259         { "SBC", ABS, 3 },
00260         { "INC", ABS, 3 },
00261         { "UNKNOWN", IMPL, 1 },
00262         { "BEQ", REL, 2 },
00263         { "SBC", INDY, 2 },
00264         { "UNKNOWN", IMPL, 1 },
00265         { "UNKNOWN", IMPL, 1 },
00266         { "UNKNOWN", IMPL, 1 },
00267         { "SBC", ZPX, 2 },
00268         { "UNKNOWN", IMPL, 1 },
00269         { "UNKNOWN", IMPL, 1 },
00270         { "SED", IMPL, 1 },
00271         { "SBC", ABSY, 3 },
00272         { "UNKNOWN", IMPL, 1 },
00273         { "UNKNOWN", IMPL, 1 },
00274         { "UNKNOWN", IMPL, 1 },
00275         { "SBC", ABSX, 3 },
00276         { "INC", ABSX, 3 },
00277         { "UNKNOWN", IMPL, 1 }
00278 };
00279 
00280 #endif INSTRUCTIONS_H

Generated on Fri Sep 6 18:32:14 2002 for Emu6502 by doxygen1.2.17