1 /*
2     the DASM macro assembler (aka small systems cross assembler)
3 
4     Copyright (c) 1988-2002 by Matthew Dillon.
5     Copyright (c) 1995 by Olaf "Rhialto" Seibert.
6     Copyright (c) 2003-2008 by Andrew Davie.
7     Copyright (c) 2008 by Peter H. Froehlich.
8 
9     This program is free software; you can redistribute it and/or modify
10     it under the terms of the GNU General Public License as published by
11     the Free Software Foundation; either version 2 of the License, or
12     (at your option) any later version.
13 
14     This program is distributed in the hope that it will be useful,
15     but WITHOUT ANY WARRANTY; without even the implied warranty of
16     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17     GNU General Public License for more details.
18 
19     You should have received a copy of the GNU General Public License along
20     with this program; if not, write to the Free Software Foundation, Inc.,
21     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23 
24 /*
25  *  MNE68705.C
26  */
27 
28 #include "asm.h"
29 
30 #define AFSTD	AF_BYTEADR|AF_BYTEADRX|AF_WORDADR|AF_WORDADRX|AF_0X
31 
32 MNEMONIC Mne68705[] = {
33     { NULL, v_mnemonic, "adc", 0, AF_IMM8|AFSTD, { 0xA9, 0xB9, 0xE9, 0xC9, 0xD9, 0xF9 } },
34     { NULL, v_mnemonic, "add", 0, AF_IMM8|AFSTD, { 0xAB, 0xBB, 0xEB, 0xCB, 0xDB, 0xFB } },
35     { NULL, v_mnemonic, "and", 0, AF_IMM8|AFSTD, { 0xA4, 0xB4, 0xE4, 0xC4, 0xD4, 0xF4 } },
36     { NULL, v_mnemonic, "asl", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x48, 0x38, 0x68, 0x78 } },
37     { NULL, v_mnemonic, "asla", 0,AF_IMP, { 0x48 } },
38     { NULL, v_mnemonic, "aslx", 0,AF_IMP, { 0x58 } },
39     { NULL, v_mnemonic, "asr", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x47, 0x37, 0x67, 0x77 } },
40     { NULL, v_mnemonic, "asra", 0,AF_IMP, { 0x47 } },
41     { NULL, v_mnemonic, "asrx", 0,AF_IMP, { 0x57 } },
42     { NULL, v_mnemonic, "bcc", 0, AF_REL, { 0x24 } },
43     { NULL, v_mnemonic, "bclr", MF_IMOD,AF_BITMOD, { 0x11 } },
44     { NULL, v_mnemonic, "bcs", 0, AF_REL, { 0x25 } },
45     { NULL, v_mnemonic, "beq", 0, AF_REL, { 0x27 } },
46     { NULL, v_mnemonic, "bhcc", 0,AF_REL, { 0x28 } },
47     { NULL, v_mnemonic, "bhcs", 0,AF_REL, { 0x29 } },
48     { NULL, v_mnemonic, "bhi", 0, AF_REL, { 0x22 } },
49     { NULL, v_mnemonic, "bhs", 0, AF_REL, { 0x24 } },
50     { NULL, v_mnemonic, "bih", 0, AF_REL, { 0x2F } },
51     { NULL, v_mnemonic, "bil", 0, AF_REL, { 0x2E } },
52     { NULL, v_mnemonic, "bit", 0, AF_IMM8|AFSTD, { 0xA5, 0xB5, 0xE5, 0xC5, 0xD5, 0xF5 } },
53     { NULL, v_mnemonic, "blo", 0, AF_REL, { 0x25 } },
54     { NULL, v_mnemonic, "bls", 0, AF_REL, { 0x23 } },
55     { NULL, v_mnemonic, "bmc", 0, AF_REL, { 0x2C } },
56     { NULL, v_mnemonic, "bmi", 0, AF_REL, { 0x2B } },
57     { NULL, v_mnemonic, "bms", 0, AF_REL, { 0x2D } },
58     { NULL, v_mnemonic, "bne", 0, AF_REL, { 0x26 } },
59     { NULL, v_mnemonic, "bpl", 0, AF_REL, { 0x2A } },
60     { NULL, v_mnemonic, "bra", 0, AF_REL, { 0x20 } },
61     { NULL, v_mnemonic, "brn", 0, AF_REL, { 0x21 } },
62     { NULL, v_mnemonic, "brclr", MF_IMOD|MF_REL,   AF_BITBRAMOD, { 0x01 } },
63     { NULL, v_mnemonic, "brset", MF_IMOD|MF_REL,   AF_BITBRAMOD, { 0x00 } },
64     { NULL, v_mnemonic, "bset", MF_IMOD,AF_BITMOD, { 0x10 } },
65     { NULL, v_mnemonic, "bsr", 0, AF_REL, { 0xAD } },
66     { NULL, v_mnemonic, "clc", 0, AF_IMP, { 0x98 } },
67     { NULL, v_mnemonic, "cli", 0, AF_IMP, { 0x9A } },
68     { NULL, v_mnemonic, "clr", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x4F, 0x3F, 0x6F, 0x7F } },
69     { NULL, v_mnemonic, "clra", 0,AF_IMP, { 0x4F } },
70     { NULL, v_mnemonic, "clrx", 0,AF_IMP, { 0x5F } },
71     { NULL, v_mnemonic, "cmp", 0, AF_IMM8|AFSTD, { 0xA1, 0xB1, 0xE1, 0xC1, 0xD1, 0xF1 } },
72     { NULL, v_mnemonic, "com", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x43, 0x33, 0x63, 0x73 } },
73     { NULL, v_mnemonic, "coma", 0,AF_IMP, { 0x43 } },
74     { NULL, v_mnemonic, "comx", 0,AF_IMP, { 0x53 } },
75     { NULL, v_mnemonic, "cpx", 0, AF_IMM8|AFSTD, { 0xA3, 0xB3, 0xE3, 0xC3, 0xD3, 0xF3 } },
76     { NULL, v_mnemonic, "dec", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x4A, 0x3A, 0x6A, 0x7A } },
77     { NULL, v_mnemonic, "deca", 0,AF_IMP, { 0x4A } },
78     { NULL, v_mnemonic, "decx", 0,AF_IMP, { 0x5A } },
79     { NULL, v_mnemonic, "dex", 0, AF_IMP, { 0x5A } },
80     { NULL, v_mnemonic, "eor", 0, AF_IMM8|AFSTD, { 0xA8, 0xB8, 0xE8, 0xC8, 0xD8, 0xF8 } },
81     { NULL, v_mnemonic, "inc", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x4C, 0x3C, 0x6C, 0x7C } },
82     { NULL, v_mnemonic, "inca", 0,AF_IMP, { 0x4C } },
83     { NULL, v_mnemonic, "incx", 0,AF_IMP, { 0x5C } },
84     { NULL, v_mnemonic, "inx", 0, AF_IMP, { 0x5C } },
85     { NULL, v_mnemonic, "jmp", 0, AFSTD, { 0xBC, 0xEC, 0xCC, 0xDC, 0xFC } },
86     { NULL, v_mnemonic, "jsr", 0, AFSTD, { 0xBD, 0xED, 0xCD, 0xDD, 0xFD } },
87     { NULL, v_mnemonic, "lda", 0, AF_IMM8|AFSTD, { 0xA6, 0xB6, 0xE6, 0xC6, 0xD6, 0xF6 } },
88     { NULL, v_mnemonic, "ldx", 0, AF_IMM8|AFSTD, { 0xAE, 0xBE, 0xEE, 0xCE, 0xDE, 0xFE } },
89     { NULL, v_mnemonic, "lsl", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x48, 0x38, 0x68, 0x78 } },
90     { NULL, v_mnemonic, "lsla", 0,AF_IMP, { 0x48 } },
91     { NULL, v_mnemonic, "lslx", 0,AF_IMP, { 0x58 } },
92     { NULL, v_mnemonic, "lsr", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x44, 0x34, 0x64, 0x74 } },
93     { NULL, v_mnemonic, "lsra", 0,AF_IMP, { 0x44 } },
94     { NULL, v_mnemonic, "lsrx", 0,AF_IMP, { 0x54 } },
95     { NULL, v_mnemonic, "neg", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x40, 0x30, 0x60, 0x70 } },
96     { NULL, v_mnemonic, "nega", 0,AF_IMP, { 0x40 } },
97     { NULL, v_mnemonic, "negx", 0,AF_IMP, { 0x50 } },
98     { NULL, v_mnemonic, "nop", 0, AF_IMP, { 0x9D } },
99     { NULL, v_mnemonic, "ora", 0, AF_IMM8|AFSTD, { 0xAA, 0xBA, 0xEA, 0xCA, 0xDA, 0xFA } },
100     { NULL, v_mnemonic, "rol", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x49, 0x39, 0x69, 0x79 } },
101     { NULL, v_mnemonic, "rola", 0,AF_IMP, { 0x49 } },
102     { NULL, v_mnemonic, "rolx", 0,AF_IMP, { 0x59 } },
103     { NULL, v_mnemonic, "ror", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x46, 0x36, 0x66, 0x76 } },
104     { NULL, v_mnemonic, "rora", 0,AF_IMP, { 0x46 } },
105     { NULL, v_mnemonic, "rorx", 0,AF_IMP, { 0x56 } },
106     { NULL, v_mnemonic, "rsp", 0, AF_IMP, { 0x9C } },
107     { NULL, v_mnemonic, "rti", 0, AF_IMP, { 0x80 } },
108     { NULL, v_mnemonic, "rts", 0, AF_IMP, { 0x81 } },
109     { NULL, v_mnemonic, "sbc", 0, AF_IMM8|AFSTD, { 0xA2, 0xB2, 0xE2, 0xC2, 0xD2, 0xF2 } },
110     { NULL, v_mnemonic, "sec", 0, AF_IMP, { 0x99 } },
111     { NULL, v_mnemonic, "sei", 0, AF_IMP, { 0x9B } },
112     { NULL, v_mnemonic, "sta", 0, AFSTD, { 0xB7, 0xE7, 0xC7, 0xD7, 0xF7 } },
113     { NULL, v_mnemonic, "stx", 0, AFSTD, { 0xBF, 0xEF, 0xCF, 0xDF, 0xFF } },
114     { NULL, v_mnemonic, "sub", 0, AF_IMM8|AFSTD, { 0xA0, 0xB0, 0xE0, 0xC0, 0xD0, 0xF0 } },
115     { NULL, v_mnemonic, "swi", 0, AF_IMP, { 0x83 } },
116     { NULL, v_mnemonic, "tax", 0, AF_IMP, { 0x97 } },
117     { NULL, v_mnemonic, "tst", 0, AF_IMP|AF_BYTEADR|AF_BYTEADRX|AF_0X, { 0x4D, 0x3D, 0x6D, 0x7D } },
118     { NULL, v_mnemonic, "tsta", 0,AF_IMP, { 0x4D } },
119     { NULL, v_mnemonic, "tstx", 0,AF_IMP, { 0x5D } },
120     { NULL, v_mnemonic, "txa", 0, AF_IMP, { 0x9F } },
121     MNEMONIC_NULL
122 };
123 
124