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