]> git.sur5r.net Git - cc65/blob - src/da65/opctable.c
Encode option strings in the string pool
[cc65] / src / da65 / opctable.c
1 /*****************************************************************************/
2 /*                                                                           */
3 /*                                opctable.c                                 */
4 /*                                                                           */
5 /*                   Disassembler opcode description table                   */
6 /*                                                                           */
7 /*                                                                           */
8 /*                                                                           */
9 /* (C) 2000      Ullrich von Bassewitz                                       */
10 /*               Wacholderweg 14                                             */
11 /*               D-70597 Stuttgart                                           */
12 /* EMail:        uz@musoftware.de                                            */
13 /*                                                                           */
14 /*                                                                           */
15 /* This software is provided 'as-is', without any expressed or implied       */
16 /* warranty.  In no event will the authors be held liable for any damages    */
17 /* arising from the use of this software.                                    */
18 /*                                                                           */
19 /* Permission is granted to anyone to use this software for any purpose,     */
20 /* including commercial applications, and to alter it and redistribute it    */
21 /* freely, subject to the following restrictions:                            */
22 /*                                                                           */
23 /* 1. The origin of this software must not be misrepresented; you must not   */
24 /*    claim that you wrote the original software. If you use this software   */
25 /*    in a product, an acknowledgment in the product documentation would be  */
26 /*    appreciated but is not required.                                       */
27 /* 2. Altered source versions must be plainly marked as such, and must not   */
28 /*    be misrepresented as being the original software.                      */
29 /* 3. This notice may not be removed or altered from any source              */
30 /*    distribution.                                                          */
31 /*                                                                           */
32 /*****************************************************************************/
33
34
35
36 /* da65 */
37 #include "cpu.h"
38 #include "handler.h"
39 #include "opctable.h"
40
41
42
43 /*****************************************************************************/
44 /*                                   Data                                    */
45 /*****************************************************************************/
46
47
48
49 const OpcDesc OpcTable[256] = {
50     {   /* $00 */
51         "brk",
52         1,
53         0,
54         CPU_ALL,
55         OH_Implicit
56     },
57     {  /* $01 */
58         "ora",
59         2,
60         lfUseLabel,
61         CPU_ALL,
62         OH_DirectXIndirect
63     },
64     {  /* $02 */
65         "cop",
66         2,
67         0,
68         CPU_65816,
69         OH_Implicit
70     },
71     {  /* $03 */
72         "ora",
73         2,
74         0,
75         CPU_65816,
76         OH_StackRelative
77     },
78     {  /* $04 */
79         "tsb",
80         2,
81         lfUseLabel,
82         CPU_65816,
83         OH_Direct
84     },
85     {  /* $05 */
86         "ora",
87         2,
88         lfUseLabel,
89         CPU_ALL,
90         OH_Direct
91     },
92     {  /* $06 */
93         "asl",
94         2,
95         lfUseLabel,
96         CPU_ALL,
97         OH_Direct
98     },
99     {  /* $07 */
100         "ora",
101         2,
102         lfUseLabel,
103         CPU_65816,
104         OH_DirectIndirectLong
105     },
106     {  /* $08 */
107         "php",
108         1,
109         0,
110         CPU_ALL,
111         OH_Implicit
112     },
113     {  /* $09 */
114         "ora",
115         2,
116         0,
117         CPU_ALL,
118         OH_Immidiate
119     },
120     {  /* $0a */
121         "asl",
122         1,
123         0,
124         CPU_ALL,
125         OH_Accumulator
126     },
127     {  /* $0b */
128         "phd",
129         1,
130         0,
131         CPU_65816,
132         OH_Implicit
133     },
134     {  /* $0c */
135         "tsb",
136         3,
137         lfUseLabel,
138         CPU_65816,
139         OH_Absolute
140     },
141     {  /* $0d */
142         "ora",
143         3,
144         lfUseLabel,
145         CPU_ALL,
146         OH_Absolute
147     },
148     {  /* $0e */
149         "asl",
150         3,
151         lfUseLabel,
152         CPU_ALL,
153         OH_Absolute
154     },
155     {  /* $0f */
156         "ora",
157         4,
158         lfUseLabel,
159         CPU_65816,
160         OH_AbsoluteLong
161     },
162     {  /* $10 */
163         "bpl",
164         2,
165         lfLabel,
166         CPU_ALL,
167         OH_Relative
168     },
169     {  /* $11 */
170         "ora",
171         2,
172         lfUseLabel,
173         CPU_ALL,
174         OH_DirectIndirectY
175     },
176     {  /* $12 */
177         "ora",
178         2,
179         lfUseLabel,
180         CPU_65816,
181         OH_DirectIndirect
182     },
183     {  /* $13 */
184         "ora",
185         2,
186         0,
187         CPU_65816,
188         OH_StackRelativeIndirectY
189     },
190     {  /* $14 */
191         "trb",
192         2,
193         lfUseLabel,
194         CPU_65816,
195         OH_Direct
196     },
197     {  /* $15 */
198         "ora",
199         2,
200         lfUseLabel,
201         CPU_ALL,
202         OH_DirectX
203     },
204     {  /* $16 */
205         "asl",
206         2,
207         lfUseLabel,
208         CPU_ALL,
209         OH_DirectX
210     },
211     {  /* $17 */
212         "ora",
213         2,
214         lfUseLabel,
215         CPU_65816,
216         OH_DirectIndirectLongY
217     },
218     {  /* $18 */
219         "clc",
220         1,
221         0,
222         CPU_ALL,
223         OH_Implicit
224     },
225     {  /* $19 */
226         "ora",
227         3,
228         lfUseLabel,
229         CPU_ALL,
230         OH_AbsoluteY
231     },
232     {  /* $1a */
233         "inc",
234         1,
235         0,
236         CPU_65816,
237         OH_Accumulator
238     },
239     {  /* $1b */
240         "tcs",
241         1,
242         0,
243         CPU_65816,
244         OH_Implicit
245     },
246     {  /* $1c */
247         "trb",
248         3,
249         lfUseLabel,
250         CPU_65816,
251         OH_Absolute
252     },
253     {  /* $1d */
254         "ora",
255         3,
256         lfUseLabel,
257         CPU_ALL,
258         OH_AbsoluteX
259     },
260     {  /* $1e */
261         "asl",
262         3,
263         lfUseLabel,
264         CPU_ALL,
265         OH_AbsoluteX
266     },
267     {  /* $1f */
268         "ora",
269         4,
270         lfUseLabel,
271         CPU_65816,
272         OH_AbsoluteLongX
273     },
274     {  /* $20 */
275         "jsr",
276         3,
277         lfLabel,
278         CPU_ALL,
279         OH_Absolute
280     },
281     {  /* $21 */
282         "and",
283         2,
284         lfUseLabel,
285         CPU_ALL,
286         OH_DirectXIndirect
287     },
288     {  /* $22 */
289         "jsl",
290         3,
291         lfLabel,
292         CPU_65816,
293         OH_AbsoluteLong
294     },
295     {  /* $23 */
296         "and",
297         2,
298         0,
299         CPU_65816,
300         OH_StackRelative
301     },
302     {  /* $24 */
303         "bit",
304         2,
305         lfUseLabel,
306         CPU_ALL,
307         OH_Direct
308     },
309     {  /* $25 */
310         "and",
311         2,
312         lfUseLabel,
313         CPU_ALL,
314         OH_Direct
315     },
316     {  /* $26 */
317         "rol",
318         2,
319         lfUseLabel,
320         CPU_ALL,
321         OH_Direct
322     },
323     {  /* $27 */
324         "and",
325         2,
326         lfUseLabel,
327         CPU_65816,
328         OH_DirectIndirectLong
329     },
330     {  /* $28 */
331         "plp",
332         1,
333         0,
334         CPU_ALL,
335         OH_Implicit
336     },
337     {  /* $29 */
338         "and",
339         2,
340         0,
341         CPU_ALL,
342         OH_Immidiate
343     },
344     {  /* $2a */
345         "rol",
346         1,
347         0,
348         CPU_ALL,
349         OH_Accumulator
350     },
351     {  /* $2b */
352         "pld",
353         1,
354         0,
355         CPU_65816,
356         OH_Implicit
357     },
358     {  /* $2c */
359         "bit",
360         3,
361         lfUseLabel,
362         CPU_ALL,
363         OH_Absolute
364     },
365     {  /* $2d */
366         "and",
367         3,
368         lfUseLabel,
369         CPU_ALL,
370         OH_Absolute
371     },
372     {  /* $2e */
373         "rol",
374         3,
375         lfUseLabel,
376         CPU_ALL,
377         OH_Absolute
378     },
379     {  /* $2f */
380         "and",
381         4,
382         lfUseLabel,
383         CPU_65816,
384         OH_AbsoluteLong
385     },
386     {  /* $30 */
387         "bmi",
388         2,
389         lfLabel,
390         CPU_ALL,
391         OH_Relative
392     },
393     {  /* $31 */
394         "and",
395         2,
396         lfUseLabel,
397         CPU_ALL,
398         OH_DirectIndirectY
399     },
400     {  /* $32 */
401         "and",
402         2,
403         lfUseLabel,
404         CPU_65816,
405         OH_DirectIndirect
406     },
407     {  /* $33 */
408         "and",
409         2,
410         0,
411         CPU_65816,
412         OH_StackRelativeIndirectY
413     },
414     {  /* $34 */
415         "bit",
416         2,
417         lfUseLabel,
418         CPU_65816,
419         OH_DirectX
420     },
421     {  /* $35 */
422         "and",
423         2,
424         lfUseLabel,
425         CPU_ALL,
426         OH_DirectX
427     },
428     {  /* $36 */
429         "rol",
430         2,
431         lfUseLabel,
432         CPU_ALL,
433         OH_DirectX
434     },
435     {  /* $37 */
436         "and",
437         2,
438         lfUseLabel,
439         CPU_65816,
440         OH_DirectIndirectLongY
441     },
442     {  /* $38 */
443         "sec",
444         1,
445         0,
446         CPU_ALL,
447         OH_Implicit
448     },
449     {  /* $39 */
450         "and",
451         3,
452         lfUseLabel,
453         CPU_ALL,
454         OH_AbsoluteY
455     },
456     {  /* $3a */
457         "dec",
458         1,
459         0,
460         CPU_65816,
461         OH_Accumulator
462     },
463     {  /* $3b */
464         "tsc",
465         1,
466         0,
467         CPU_65816,
468         OH_Implicit
469     },
470     {  /* $3c */
471         "bit",
472         3,
473         lfUseLabel,
474         CPU_65816,
475         OH_AbsoluteX
476     },
477     {  /* $3d */
478         "and",
479         3,
480         lfUseLabel,
481         CPU_ALL,
482         OH_AbsoluteX
483     },
484     {  /* $3e */
485         "rol",
486         3,
487         lfUseLabel,
488         CPU_ALL,
489         OH_AbsoluteX
490     },
491     {  /* $3f */
492         "and",
493         4,
494         lfUseLabel,
495         CPU_65816,
496         OH_AbsoluteLongX
497     },
498     {  /* $40 */
499         "rti",
500         1,
501         0,
502         CPU_ALL,
503         OH_Rts
504     },
505     {  /* $41 */
506         "eor",
507         2,
508         lfUseLabel,
509         CPU_ALL,
510         OH_DirectXIndirect
511     },
512     {  /* $42 */
513         "wdm",
514         2,
515         0,
516         CPU_65816,
517         OH_Implicit
518     },
519     {  /* $43 */
520         "eor",
521         2,
522         0,
523         CPU_65816,
524         OH_StackRelative
525     },
526     {  /* $44 */
527         "mvp",
528         3,
529         0,
530         CPU_65816,
531         OH_BlockMove
532     },
533     {  /* $45 */
534         "eor",
535         2,
536         lfUseLabel,
537         CPU_ALL,
538         OH_Direct
539     },
540     {  /* $46 */
541         "lsr",
542         2,
543         lfUseLabel,
544         CPU_ALL,
545         OH_Direct
546     },
547     {  /* $47 */
548         "eor",
549         2,
550         lfUseLabel,
551         CPU_65816,
552         OH_DirectIndirectLong
553     },
554     {  /* $48 */
555         "pha",
556         1,
557         0,
558         CPU_ALL,
559         OH_Implicit
560     },
561     {  /* $49 */
562         "eor",
563         2,
564         0,
565         CPU_ALL,
566         OH_Immidiate
567     },
568     {  /* $4a */
569         "lsr",
570         1,
571         0,
572         CPU_ALL,
573         OH_Accumulator
574     },
575     {  /* $4b */
576         "phk",
577         1,
578         0,
579         CPU_65816,
580         OH_Implicit
581     },
582     {  /* $4c */
583         "jmp",
584         3,
585         lfLabel,
586         CPU_ALL,
587         OH_JmpAbsolute
588     },
589     {  /* $4d */
590         "eor",
591         3,
592         lfUseLabel,
593         CPU_ALL,
594         OH_Absolute
595     },
596     {  /* $4e */
597         "lsr",
598         3,
599         lfUseLabel,
600         CPU_ALL,
601         OH_Absolute
602     },
603     {  /* $4f */
604         "eor",
605         4,
606         lfUseLabel,
607         CPU_65816,
608         OH_AbsoluteLong
609     },
610     {  /* $50 */
611         "bvc",
612         2,
613         lfLabel,
614         CPU_ALL,
615         OH_Relative
616     },
617     {  /* $51 */
618         "eor",
619         2,
620         lfUseLabel,
621         CPU_ALL,
622         OH_DirectIndirectY
623     },
624     {  /* $52 */
625         "eor",
626         2,
627         lfUseLabel,
628         CPU_65816,
629         OH_DirectIndirect
630     },
631     {  /* $53 */
632         "eor",
633         2,
634         0,
635         CPU_65816,
636         OH_StackRelativeIndirectY
637     },
638     {  /* $54 */
639         "mvn",
640         3,
641         0,
642         CPU_65816,
643         OH_BlockMove
644     },
645     {  /* $55 */
646         "eor",
647         2,
648         lfUseLabel,
649         CPU_ALL,
650         OH_DirectX
651     },
652     {  /* $56 */
653         "lsr",
654         2,
655         lfUseLabel,
656         CPU_ALL,
657         OH_DirectX
658     },
659     {  /* $57 */
660         "eor",
661         2,
662         lfUseLabel,
663         CPU_65816,
664         OH_DirectIndirectLongY
665     },
666     {  /* $58 */
667         "cli",
668         1,
669         0,
670         CPU_ALL,
671         OH_Implicit
672     },
673     {  /* $59 */
674         "eor",
675         3,
676         lfUseLabel,
677         CPU_ALL,
678         OH_AbsoluteY
679     },
680     {  /* $5a */
681         "phy",
682         1,
683         0,
684         CPU_65816,
685         OH_Implicit
686     },
687     {  /* $5b */
688         "tcd",
689         1,
690         0,
691         CPU_65816,
692         OH_Implicit
693     },
694     {  /* $5c */
695         "jml",
696         4,
697         lfLabel,
698         CPU_65816,
699         OH_AbsoluteLong
700     },
701     {  /* $5d */
702         "eor",
703         3,
704         lfUseLabel,
705         CPU_ALL,
706         OH_AbsoluteX
707     },
708     {  /* $5e */
709         "lsr",
710         3,
711         lfUseLabel,
712         CPU_ALL,
713         OH_AbsoluteX
714     },
715     {  /* $5f */
716         "eor",
717         4,
718         lfUseLabel,
719         CPU_65816,
720         OH_AbsoluteLongX
721     },
722     {  /* $60 */
723         "rts",
724         1,
725         0,
726         CPU_ALL,
727         OH_Rts
728     },
729     {  /* $61 */
730         "adc",
731         2,
732         lfUseLabel,
733         CPU_ALL,
734         OH_DirectXIndirect
735     },
736     {  /* $62 */
737         "per",
738         3,
739         lfLabel,
740         CPU_65816,
741         OH_RelativeLong
742     },
743     {  /* $63 */
744         "adc",
745         2,
746         0,
747         CPU_65816,
748         OH_StackRelative
749     },
750     {  /* $64 */
751         "stz",
752         2,
753         lfUseLabel,
754         CPU_65816,
755         OH_Direct
756     },
757     {  /* $65 */
758         "adc",
759         2,
760         lfUseLabel,
761         CPU_ALL,
762         OH_Direct
763     },
764     {  /* $66 */
765         "ror",
766         2,
767         lfUseLabel,
768         CPU_ALL,
769         OH_Direct
770     },
771     {  /* $67 */
772         "adc",
773         2,
774         lfUseLabel,
775         CPU_65816,
776         OH_DirectIndirectLong
777     },
778     {  /* $68 */
779         "pla",
780         1,
781         0,
782         CPU_ALL,
783         OH_Implicit
784     },
785     {  /* $69 */
786         "adc",
787         2,
788         0,
789         CPU_ALL,
790         OH_Immidiate
791     },
792     {  /* $6a */
793         "ror",
794         1,
795         0,
796         CPU_ALL,
797         OH_Accumulator
798     },
799     {  /* $6b */
800         "rtl",
801         1,
802         0,
803         CPU_65816,
804         OH_Implicit
805     },
806     {  /* $6c */
807         "jmp",
808         3,
809         lfLabel,
810         CPU_ALL,
811         OH_JmpAbsoluteIndirect
812     },
813     {  /* $6d */
814         "adc",
815         3,
816         lfUseLabel,
817         CPU_ALL,
818         OH_Absolute
819     },
820     {  /* $6e */
821         "ror",
822         3,
823         lfUseLabel,
824         CPU_ALL,
825         OH_Absolute
826     },
827     {  /* $6f */
828         "adc",
829         4,
830         lfUseLabel,
831         CPU_65816,
832         OH_AbsoluteLong
833     },
834     {  /* $70 */
835         "bvs",
836         2,
837         lfLabel,
838         CPU_ALL,
839         OH_Relative
840     },
841     {  /* $71 */
842         "adc",
843         2,
844         lfUseLabel,
845         CPU_ALL,
846         OH_DirectIndirectY
847     },
848     {  /* $72 */
849         "adc",
850         2,
851         lfUseLabel,
852         CPU_65816,
853         OH_DirectIndirect
854     },
855     {  /* $73 */
856         "adc",
857         2,
858         0,
859         CPU_65816,
860         OH_StackRelativeIndirectY
861     },
862     {  /* $74 */
863         "stz",
864         2,
865         lfUseLabel,
866         CPU_65816,
867         OH_DirectX
868     },
869     {  /* $75 */
870         "adc",
871         2,
872         lfUseLabel,
873         CPU_ALL,
874         OH_DirectX
875     },
876     {  /* $76 */
877         "ror",
878         2,
879         lfUseLabel,
880         CPU_ALL,
881         OH_DirectX
882     },
883     {  /* $77 */
884         "adc",
885         2,
886         lfUseLabel,
887         CPU_65816,
888         OH_DirectIndirectLongY
889     },
890     {  /* $78 */
891         "sei",
892         1,
893         0,
894         CPU_ALL,
895         OH_Implicit
896     },
897     {  /* $79 */
898         "adc",
899         3,
900         lfUseLabel,
901         CPU_ALL,
902         OH_AbsoluteY
903     },
904     {  /* $7a */
905         "ply",
906         1,
907         0,
908         CPU_65816,
909         OH_Implicit
910     },
911     {  /* $7b */
912         "tdc",
913         1,
914         0,
915         CPU_65816,
916         OH_Implicit
917     },
918     {  /* $7c */
919         "jmp",
920         3,
921         lfLabel,
922         CPU_65816,
923         OH_AbsoluteXIndirect
924     },
925     {  /* $7d */
926         "adc",
927         3,
928         lfUseLabel,
929         CPU_ALL,
930         OH_AbsoluteX
931     },
932     {  /* $7e */
933         "ror",
934         3,
935         lfUseLabel,
936         CPU_ALL,
937         OH_AbsoluteX
938     },
939     {  /* $7f */
940         "adc",
941         4,
942         lfUseLabel,
943         CPU_65816,
944         OH_AbsoluteLongX
945     },
946     {  /* $80 */
947         "bra",
948         2,
949         lfLabel,
950         CPU_65816,
951         OH_Relative
952     },
953     {  /* $81 */
954         "sta",
955         2,
956         lfUseLabel,
957         CPU_ALL,
958         OH_DirectXIndirect
959     },
960     {  /* $82 */
961         "brl",
962         3,
963         lfLabel,
964         CPU_65816,
965         OH_RelativeLong
966     },
967     {  /* $83 */
968         "sta",
969         2,
970         0,
971         CPU_65816,
972         OH_StackRelative
973     },
974     {  /* $84 */
975         "sty",
976         2,
977         lfUseLabel,
978         CPU_ALL,
979         OH_Direct
980     },
981     {  /* $85 */
982         "sta",
983         2,
984         lfUseLabel,
985         CPU_ALL,
986         OH_Direct
987     },
988     {  /* $86 */
989         "stx",
990         2,
991         lfUseLabel,
992         CPU_ALL,
993         OH_Direct
994     },
995     {  /* $87 */
996         "sta",
997         2,
998         lfUseLabel,
999         CPU_65816,
1000         OH_DirectIndirectLong
1001     },
1002     {  /* $88 */
1003         "dey",
1004         1,
1005         0,
1006         CPU_ALL,
1007         OH_Implicit
1008     },
1009     {  /* $89 */
1010         "bit",
1011         2,
1012         0,
1013         CPU_65816,
1014         OH_Immidiate
1015     },
1016     {  /* $8a */
1017         "txa",
1018         1,
1019         0,
1020         CPU_ALL,
1021         OH_Implicit
1022     },
1023     {  /* $8b */
1024         "phb",
1025         1,
1026         0,
1027         CPU_65816,
1028         OH_Implicit
1029     },
1030     {  /* $8c */
1031         "sty",
1032         3,
1033         lfUseLabel,
1034         CPU_ALL,
1035         OH_Absolute
1036     },
1037     {  /* $8d */
1038         "sta",
1039         3,
1040         lfUseLabel,
1041         CPU_ALL,
1042         OH_Absolute
1043     },
1044     {  /* $8e */
1045         "stx",
1046         3,
1047         lfUseLabel,
1048         CPU_ALL,
1049         OH_Absolute
1050     },
1051     {  /* $8f */
1052         "sta",
1053         4,
1054         lfUseLabel,
1055         CPU_65816,
1056         OH_AbsoluteLong
1057     },
1058     {  /* $90 */
1059         "bcc",
1060         2,
1061         lfLabel,
1062         CPU_ALL,
1063         OH_Relative
1064     },
1065     {  /* $91 */
1066         "sta",
1067         2,
1068         lfUseLabel,
1069         CPU_ALL,
1070         OH_DirectIndirectY
1071     },
1072     {  /* $92 */
1073         "sta",
1074         2,
1075         lfUseLabel,
1076         CPU_65816,
1077         OH_DirectIndirect
1078     },
1079     {  /* $93 */
1080         "sta",
1081         2,
1082         0,
1083         CPU_65816,
1084         OH_StackRelativeIndirectY
1085     },
1086     {  /* $94 */
1087         "sty",
1088         2,
1089         lfUseLabel,
1090         CPU_ALL,
1091         OH_DirectX
1092     },
1093     {  /* $95 */
1094         "sta",
1095         2,
1096         lfUseLabel,
1097         CPU_ALL,
1098         OH_DirectX
1099     },
1100     {  /* $96 */
1101         "stx",
1102         2,
1103         lfUseLabel,
1104         CPU_ALL,
1105         OH_DirectY
1106     },
1107     {  /* $97 */
1108         "sta",
1109         2,
1110         lfUseLabel,
1111         CPU_65816,
1112         OH_DirectIndirectLongY
1113     },
1114     {  /* $98 */
1115         "tya",
1116         1,
1117         0,
1118         CPU_ALL,
1119         OH_Implicit
1120     },
1121     {  /* $99 */
1122         "sta",
1123         3,
1124         lfUseLabel,
1125         CPU_ALL,
1126         OH_AbsoluteY
1127     },
1128     {  /* $9a */
1129         "txs",
1130         1,
1131         0,
1132         CPU_ALL,
1133         OH_Implicit
1134     },
1135     {  /* $9b */
1136         "txy",
1137         1,
1138         0,
1139         CPU_65816,
1140         OH_Implicit
1141     },
1142     {  /* $9c */
1143         "stz",
1144         3,
1145         lfUseLabel,
1146         CPU_65816,
1147         OH_Absolute
1148     },
1149     {  /* $9d */
1150         "sta",
1151         3,
1152         lfUseLabel,
1153         CPU_ALL,
1154         OH_AbsoluteX
1155     },
1156     {  /* $9e */
1157         "stz",
1158         3,
1159         lfUseLabel,
1160         CPU_65816,
1161         OH_AbsoluteX
1162     },
1163     {  /* $9f */
1164         "sta",
1165         4,
1166         lfUseLabel,
1167         CPU_65816,
1168         OH_AbsoluteLongX
1169     },
1170     {  /* $a0 */
1171         "ldy",
1172         2,
1173         0,
1174         CPU_ALL,
1175         OH_Immidiate
1176     },
1177     {  /* $a1 */
1178         "lda",
1179         2,
1180         lfUseLabel,
1181         CPU_ALL,
1182         OH_DirectXIndirect
1183     },
1184     {  /* $a2 */
1185         "ldx",
1186         2,
1187         0,
1188         CPU_ALL,
1189         OH_Immidiate
1190     },
1191     {  /* $a3 */
1192         "lda",
1193         2,
1194         0,
1195         CPU_65816,
1196         OH_StackRelative
1197     },
1198     {  /* $a4 */
1199         "ldy",
1200         2,
1201         lfUseLabel,
1202         CPU_ALL,
1203         OH_Direct
1204     },
1205     {  /* $a5 */
1206         "lda",
1207         2,
1208         lfUseLabel,
1209         CPU_ALL,
1210         OH_Direct
1211     },
1212     {  /* $a6 */
1213         "ldx",
1214         2,
1215         lfUseLabel,
1216         CPU_ALL,
1217         OH_Direct
1218     },
1219     {  /* $a7 */
1220         "lda",
1221         2,
1222         lfUseLabel,
1223         CPU_65816,
1224         OH_DirectIndirectLong
1225     },
1226     {  /* $a8 */
1227         "tay",
1228         1,
1229         0,
1230         CPU_ALL,
1231         OH_Implicit
1232     },
1233     {  /* $a9 */
1234         "lda",
1235         2,
1236         0,
1237         CPU_ALL,
1238         OH_Immidiate
1239     },
1240     {  /* $aa */
1241         "tax",
1242         1,
1243         0,
1244         CPU_ALL,
1245         OH_Implicit
1246     },
1247     {  /* $ab */
1248         "plb",
1249         1,
1250         0,
1251         CPU_65816,
1252         OH_Implicit
1253     },
1254     {  /* $ac */
1255         "ldy",
1256         3,
1257         lfUseLabel,
1258         CPU_ALL,
1259         OH_Absolute
1260     },
1261     {  /* $ad */
1262         "lda",
1263         3,
1264         lfUseLabel,
1265         CPU_ALL,
1266         OH_Absolute
1267     },
1268     {  /* $ae */
1269         "ldx",
1270         3,
1271         lfUseLabel,
1272         CPU_ALL,
1273         OH_Absolute
1274     },
1275     {  /* $af */
1276         "lda",
1277         4,
1278         lfUseLabel,
1279         CPU_65816,
1280         OH_AbsoluteLong
1281     },
1282     {  /* $b0 */
1283         "bcs",
1284         2,
1285         lfLabel,
1286         CPU_ALL,
1287         OH_Relative
1288     },
1289     {  /* $b1 */
1290         "lda",
1291         2,
1292         lfUseLabel,
1293         CPU_ALL,
1294         OH_DirectIndirectY
1295     },
1296     {  /* $b2 */
1297         "lda",
1298         2,
1299         lfUseLabel,
1300         CPU_65816,
1301         OH_DirectIndirect
1302     },
1303     {  /* $b3 */
1304         "lda",
1305         2,
1306         0,
1307         CPU_65816,
1308         OH_StackRelativeIndirectY
1309     },
1310     {  /* $b4 */
1311         "ldy",
1312         2,
1313         lfUseLabel,
1314         CPU_ALL,
1315         OH_DirectX
1316     },
1317     {  /* $b5 */
1318         "lda",
1319         2,
1320         lfUseLabel,
1321         CPU_ALL,
1322         OH_DirectX
1323     },
1324     {  /* $b6 */
1325         "ldx",
1326         2,
1327         lfUseLabel,
1328         CPU_ALL,
1329         OH_DirectY
1330     },
1331     {  /* $b7 */
1332         "lda",
1333         2,
1334         lfUseLabel,
1335         CPU_65816,
1336         OH_DirectIndirectLongY
1337     },
1338     {  /* $b8 */
1339         "clv",
1340         1,
1341         0,
1342         CPU_ALL,
1343         OH_Implicit
1344     },
1345     {  /* $b9 */
1346         "lda",
1347         3,
1348         lfUseLabel,
1349         CPU_ALL,
1350         OH_AbsoluteY
1351     },
1352     {  /* $ba */
1353         "tsx",
1354         1,
1355         0,
1356         CPU_ALL,
1357         OH_Implicit
1358     },
1359     {  /* $bb */
1360         "tyx",
1361         1,
1362         0,
1363         CPU_65816,
1364         OH_Implicit
1365     },
1366     {  /* $bc */
1367         "ldy",
1368         3,
1369         lfUseLabel,
1370         CPU_ALL,
1371         OH_AbsoluteX
1372     },
1373     {  /* $bd */
1374         "lda",
1375         3,
1376         lfUseLabel,
1377         CPU_ALL,
1378         OH_AbsoluteX
1379     },
1380     {  /* $be */
1381         "ldx",
1382         3,
1383         lfUseLabel,
1384         CPU_ALL,
1385         OH_AbsoluteY
1386     },
1387     {  /* $bf */
1388         "lda",
1389         4,
1390         lfUseLabel,
1391         CPU_65816,
1392         OH_AbsoluteLongX
1393     },
1394     {  /* $c0 */
1395         "cpy",
1396         2,
1397         0,
1398         CPU_ALL,
1399         OH_Immidiate
1400     },
1401     {  /* $c1 */
1402         "cmp",
1403         2,
1404         lfUseLabel,
1405         CPU_ALL,
1406         OH_DirectXIndirect
1407     },
1408     {  /* $c2 */
1409         "rep",
1410         2,
1411         0,
1412         CPU_65816,
1413         OH_Immidiate
1414     },
1415     {  /* $c3 */
1416         "cmp",
1417         2,
1418         0,
1419         CPU_65816,
1420         OH_StackRelative
1421     },
1422     {  /* $c4 */
1423         "cpy",
1424         2,
1425         lfUseLabel,
1426         CPU_ALL,
1427         OH_Direct
1428     },
1429     {  /* $c5 */
1430         "cmp",
1431         2,
1432         lfUseLabel,
1433         CPU_ALL,
1434         OH_Direct
1435     },
1436     {  /* $c6 */
1437         "dec",
1438         2,
1439         lfUseLabel,
1440         CPU_ALL,
1441         OH_Direct
1442     },
1443     {  /* $c7 */
1444         "cmp",
1445         2,
1446         lfUseLabel,
1447         CPU_65816,
1448         OH_DirectIndirectLong
1449     },
1450     {  /* $c8 */
1451         "iny",
1452         1,
1453         0,
1454         CPU_ALL,
1455         OH_Implicit
1456     },
1457     {  /* $c9 */
1458         "cmp",
1459         2,
1460         0,
1461         CPU_ALL,
1462         OH_Immidiate
1463     },
1464     {  /* $ca */
1465         "dex",
1466         1,
1467         0,
1468         CPU_ALL,
1469         OH_Implicit
1470     },
1471     {  /* $cb */
1472         "wai",
1473         1,
1474         0,
1475         CPU_65816,
1476         OH_Implicit
1477     },
1478     {  /* $cc */
1479         "cpy",
1480         3,
1481         lfUseLabel,
1482         CPU_ALL,
1483         OH_Absolute
1484     },
1485     {  /* $cd */
1486         "cmp",
1487         3,
1488         lfUseLabel,
1489         CPU_ALL,
1490         OH_Absolute
1491     },
1492     {  /* $ce */
1493         "dec",
1494         3,
1495         lfUseLabel,
1496         CPU_ALL,
1497         OH_Absolute
1498     },
1499     {  /* $cf */
1500         "cmp",
1501         4,
1502         lfUseLabel,
1503         CPU_65816,
1504         OH_AbsoluteLong
1505     },
1506     {  /* $d0 */
1507         "bne",
1508         2,
1509         lfLabel,
1510         CPU_ALL,
1511         OH_Relative
1512     },
1513     {  /* $d1 */
1514         "cmp",
1515         2,
1516         lfUseLabel,
1517         CPU_ALL,
1518         OH_DirectXIndirect
1519     },
1520     {  /* $d2 */
1521         "cmp",
1522         2,
1523         lfUseLabel,
1524         CPU_65816,
1525         OH_DirectIndirect
1526     },
1527     {  /* $d3 */
1528         "cmp",
1529         2,
1530         0,
1531         CPU_65816,
1532         OH_StackRelativeIndirectY
1533     },
1534     {  /* $d4 */
1535         "pei",
1536         2,
1537         lfUseLabel,
1538         CPU_65816,
1539         OH_Direct
1540     },
1541     {  /* $d5 */
1542         "cmp",
1543         2,
1544         lfUseLabel,
1545         CPU_ALL,
1546         OH_DirectX
1547     },
1548     {  /* $d6 */
1549         "dec",
1550         2,
1551         lfUseLabel,
1552         CPU_ALL,
1553         OH_DirectX
1554     },
1555     {  /* $d7 */
1556         "cmp",
1557         2,
1558         lfUseLabel,
1559         CPU_65816,
1560         OH_DirectIndirectLongY
1561     },
1562     {  /* $d8 */
1563         "cld",
1564         1,
1565         0,
1566         CPU_ALL,
1567         OH_Implicit
1568     },
1569     {  /* $d9 */
1570         "cmp",
1571         3,
1572         lfUseLabel,
1573         CPU_ALL,
1574         OH_AbsoluteY
1575     },
1576     {  /* $da */
1577         "phx",
1578         1,
1579         0,
1580         CPU_65816,
1581         OH_Implicit
1582     },
1583     {  /* $db */
1584         "stp",
1585         1,
1586         0,
1587         CPU_65816,
1588         OH_Implicit
1589     },
1590     {  /* $dc */
1591         "jml",
1592         3,
1593         lfLabel,
1594         CPU_65816,
1595         OH_AbsoluteIndirect
1596     },
1597     {  /* $dd */
1598         "cmp",
1599         3,
1600         lfUseLabel,
1601         CPU_ALL,
1602         OH_AbsoluteX
1603     },
1604     {  /* $de */
1605         "dec",
1606         3,
1607         lfUseLabel,
1608         CPU_ALL,
1609         OH_AbsoluteX
1610     },
1611     {  /* $df */
1612         "cmp",
1613         4,
1614         lfUseLabel,
1615         CPU_65816,
1616         OH_AbsoluteLongX
1617     },
1618     {  /* $e0 */
1619         "cpx",
1620         2,
1621         0,
1622         CPU_ALL,
1623         OH_Immidiate
1624     },
1625     {  /* $e1 */
1626         "sbc",
1627         2,
1628         lfUseLabel,
1629         CPU_ALL,
1630         OH_DirectXIndirect
1631     },
1632     {  /* $e2 */
1633         "sep",
1634         2,
1635         0,
1636         CPU_65816,
1637         OH_Immidiate
1638     },
1639     {  /* $e3 */
1640         "sbc",
1641         2,
1642         0,
1643         CPU_65816,
1644         OH_StackRelative
1645     },
1646     {  /* $e4 */
1647         "cpx",
1648         2,
1649         lfUseLabel,
1650         CPU_ALL,
1651         OH_Direct
1652     },
1653     {  /* $e5 */
1654         "sbc",
1655         2,
1656         lfUseLabel,
1657         CPU_ALL,
1658         OH_Direct
1659     },
1660     {  /* $e6 */
1661         "inc",
1662         2,
1663         lfUseLabel,
1664         CPU_ALL,
1665         OH_Direct
1666     },
1667     {  /* $e7 */
1668         "sbc",
1669         2,
1670         lfUseLabel,
1671         CPU_65816,
1672         OH_DirectIndirectLong
1673     },
1674     {  /* $e8 */
1675         "inx",
1676         1,
1677         0,
1678         CPU_ALL,
1679         OH_Implicit
1680     },
1681     {  /* $e9 */
1682         "sbc",
1683         2,
1684         0,
1685         CPU_ALL,
1686         OH_Immidiate
1687     },
1688     {  /* $ea */
1689         "nop",
1690         1,
1691         0,
1692         CPU_ALL,
1693         OH_Implicit
1694     },
1695     {  /* $eb */
1696         "xba",
1697         1,
1698         0,
1699         CPU_65816,
1700         OH_Implicit
1701     },
1702     {  /* $ec */
1703         "cpx",
1704         3,
1705         lfUseLabel,
1706         CPU_ALL,
1707         OH_Absolute
1708     },
1709     {  /* $ed */
1710         "sbc",
1711         3,
1712         lfUseLabel,
1713         CPU_ALL,
1714         OH_Absolute
1715     },
1716     {  /* $ee */
1717         "inc",
1718         3,
1719         lfUseLabel,
1720         CPU_ALL,
1721         OH_Absolute
1722     },
1723     {  /* $ef */
1724         "sbc",
1725         4,
1726         lfUseLabel,
1727         CPU_65816,
1728         OH_AbsoluteLong
1729     },
1730     {  /* $f0 */
1731         "beq",
1732         2,
1733         lfLabel,
1734         CPU_ALL,
1735         OH_Relative
1736     },
1737     {  /* $f1 */
1738         "sbc",
1739         2,
1740         lfUseLabel,
1741         CPU_ALL,
1742         OH_DirectIndirectY
1743     },
1744     {  /* $f2 */
1745         "sbc",
1746         2,
1747         lfUseLabel,
1748         CPU_65816,
1749         OH_DirectIndirect
1750     },
1751     {  /* $f3 */
1752         "sbc",
1753         2,
1754         0,
1755         CPU_65816,
1756         OH_StackRelativeIndirectY
1757     },
1758     {  /* $f4 */
1759         "pea",
1760         3,
1761         lfUseLabel,
1762         CPU_65816,
1763         OH_Absolute
1764     },
1765     {  /* $f5 */
1766         "sbc",
1767         2,
1768         lfUseLabel,
1769         CPU_ALL,
1770         OH_DirectX
1771     },
1772     {  /* $f6 */
1773         "inc",
1774         2,
1775         lfUseLabel,
1776         CPU_ALL,
1777         OH_DirectX
1778     },
1779     {  /* $f7 */
1780         "sbc",
1781         2,
1782         lfUseLabel,
1783         CPU_65816,
1784         OH_DirectIndirectLongY
1785     },
1786     {  /* $f8 */
1787         "sed",
1788         1,
1789         0,
1790         CPU_ALL,
1791         OH_Implicit
1792     },
1793     {  /* $f9 */
1794         "sbc",
1795         3,
1796         lfUseLabel,
1797         CPU_ALL,
1798         OH_AbsoluteY
1799     },
1800     {  /* $fa */
1801         "plx",
1802         1,
1803         0,
1804         CPU_65816,
1805         OH_Implicit
1806     },
1807     {  /* $fb */
1808         "xce",
1809         1,
1810         0,
1811         CPU_65816,
1812         OH_Implicit
1813     },
1814     {  /* $fc */
1815         "jsr",
1816         3,
1817         lfLabel,
1818         CPU_65816,
1819         OH_AbsoluteXIndirect
1820     },
1821     {  /* $fd */
1822         "sbc",
1823         3,
1824         lfUseLabel,
1825         CPU_ALL,
1826         OH_AbsoluteX
1827     },
1828     {  /* $fe */
1829         "inc",
1830         3,
1831         lfUseLabel,
1832         CPU_ALL,
1833         OH_AbsoluteX
1834     },
1835     {  /* $ff */
1836         "sbc",
1837         4,
1838         lfUseLabel,
1839         CPU_65816,
1840         OH_AbsoluteLongX
1841     },
1842 };
1843
1844
1845