54d725e87f480895700439dfb493307c4b913cd3
[fw/sdcc] / as / hc08 / m08pst.c
1 /* m08pst.c */
2
3 /*
4  * (C) Copyright 1993-2002
5  * All Rights Reserved
6  *
7  * Alan R. Baldwin
8  * 721 Berkeley St.
9  * Kent, Ohio  44240
10  */
11
12 #include <stdio.h>
13 #include <setjmp.h>
14 #include "asm.h"
15 #include "m6808.h"
16
17 struct  mne     mne[] = {
18
19         /* machine */
20
21     {   NULL,   ".setdp",       S_SDP,          0,      0       },
22
23         /* system */
24
25     {   NULL,   "CON",          S_ATYP,         0,      A_CON   },
26     {   NULL,   "OVR",          S_ATYP,         0,      A_OVR   },
27     {   NULL,   "REL",          S_ATYP,         0,      A_REL   },
28     {   NULL,   "ABS",          S_ATYP,         0,      A_ABS|A_OVR     },
29     {   NULL,   "NOPAG",        S_ATYP,         0,      A_NOPAG },
30     {   NULL,   "PAG",          S_ATYP,         0,      A_PAG   },
31
32     {   NULL,   ".byte",        S_BYTE,         0,      1       },
33     {   NULL,   ".db",          S_BYTE,         0,      1       },
34     {   NULL,   ".word",        S_WORD,         0,      2       },
35     {   NULL,   ".dw",          S_WORD,         0,      2       },
36     {   NULL,   ".ascii",       S_ASCII,        0,      0       },
37     {   NULL,   ".asciz",       S_ASCIZ,        0,      0       },
38     {   NULL,   ".blkb",        S_BLK,          0,      1       },
39     {   NULL,   ".ds",          S_BLK,          0,      1       },
40     {   NULL,   ".blkw",        S_BLK,          0,      2       },
41     {   NULL,   ".page",        S_PAGE,         0,      0       },
42     {   NULL,   ".title",       S_TITLE,        0,      0       },
43     {   NULL,   ".sbttl",       S_SBTL,         0,      0       },
44     {   NULL,   ".globl",       S_GLOBL,        0,      0       },
45     {   NULL,   ".area",        S_DAREA,        0,      0       },
46     {   NULL,   ".even",        S_EVEN,         0,      0       },
47     {   NULL,   ".odd",         S_ODD,          0,      0       },
48     {   NULL,   ".if",          S_IF,           0,      0       },
49     {   NULL,   ".else",        S_ELSE,         0,      0       },
50     {   NULL,   ".endif",       S_ENDIF,        0,      0       },
51     {   NULL,   ".include",     S_INCL,         0,      0       },
52     {   NULL,   ".radix",       S_RADIX,        0,      0       },
53     {   NULL,   ".org",         S_ORG,          0,      0       },
54     {   NULL,   ".module",      S_MODUL,        0,      0       },
55     {   NULL,   ".ascis",       S_ASCIS,        0,      0       },
56 //    { NULL,   ".assume",      S_ERROR,        0,      0       },
57 //    { NULL,   ".error",       S_ERROR,        0,      1       },
58
59         /* 68HC08 */
60
61     {   NULL,   "neg",          S_TYP1,         0,      0x30    },
62     {   NULL,   "com",          S_TYP1,         0,      0x33    },
63     {   NULL,   "lsr",          S_TYP1,         0,      0x34    },
64     {   NULL,   "ror",          S_TYP1,         0,      0x36    },
65     {   NULL,   "asr",          S_TYP1,         0,      0x37    },
66     {   NULL,   "asl",          S_TYP1,         0,      0x38    },
67     {   NULL,   "lsl",          S_TYP1,         0,      0x38    },
68     {   NULL,   "rol",          S_TYP1,         0,      0x39    },
69     {   NULL,   "dec",          S_TYP1,         0,      0x3A    },
70     {   NULL,   "inc",          S_TYP1,         0,      0x3C    },
71     {   NULL,   "tst",          S_TYP1,         0,      0x3D    },
72     {   NULL,   "clr",          S_TYP1,         0,      0x3F    },
73
74     {   NULL,   "sub",          S_TYP2,         0,      0xA0    },
75     {   NULL,   "cmp",          S_TYP2,         0,      0xA1    },
76     {   NULL,   "sbc",          S_TYP2,         0,      0xA2    },
77     {   NULL,   "cpx",          S_TYP2,         0,      0xA3    },
78     {   NULL,   "and",          S_TYP2,         0,      0xA4    },
79     {   NULL,   "bit",          S_TYP2,         0,      0xA5    },
80     {   NULL,   "lda",          S_TYP2,         0,      0xA6    },
81     {   NULL,   "sta",          S_TYP2,         0,      0xA7    },
82     {   NULL,   "eor",          S_TYP2,         0,      0xA8    },
83     {   NULL,   "adc",          S_TYP2,         0,      0xA9    },
84     {   NULL,   "ora",          S_TYP2,         0,      0xAA    },
85     {   NULL,   "add",          S_TYP2,         0,      0xAB    },
86     {   NULL,   "jmp",          S_TYP2,         0,      0xAC    },
87     {   NULL,   "jsr",          S_TYP2,         0,      0xAD    },
88     {   NULL,   "ldx",          S_TYP2,         0,      0xAE    },
89     {   NULL,   "stx",          S_TYP2,         0,      0xAF    },
90
91     {   NULL,   "bset",         S_TYP3,         0,      0x10    },
92     {   NULL,   "bclr",         S_TYP3,         0,      0x11    },
93
94     {   NULL,   "brset",        S_TYP4,         0,      0x00    },
95     {   NULL,   "brclr",        S_TYP4,         0,      0x01    },
96
97     {   NULL,   "ais",          S_TYPAI,        0,      0xA7    },
98     {   NULL,   "aix",          S_TYPAI,        0,      0xAF    },
99
100     {   NULL,   "sthx",         S_TYPHX,        0,      0x25    },
101     {   NULL,   "ldhx",         S_TYPHX,        0,      0x45    },
102     {   NULL,   "cphx",         S_TYPHX,        0,      0x65    },
103
104     {   NULL,   "cbeq",         S_CBEQ,         0,      0x31    },
105     {   NULL,   "cbeqa",        S_CQAX,         0,      0x41    },
106     {   NULL,   "cbeqx",        S_CQAX,         0,      0x51    },
107
108     {   NULL,   "dbnz",         S_DBNZ,         0,      0x3B    },
109     {   NULL,   "dbnza",        S_DZAX,         0,      0x4B    },
110     {   NULL,   "dbnzx",        S_DZAX,         0,      0x5B    },
111
112     {   NULL,   "mov",          S_MOV,          0,      0x4E    },
113
114     {   NULL,   "bra",          S_BRA,          0,      0x20    },
115     {   NULL,   "brn",          S_BRA,          0,      0x21    },
116     {   NULL,   "bhi",          S_BRA,          0,      0x22    },
117     {   NULL,   "bls",          S_BRA,          0,      0x23    },
118     {   NULL,   "bcc",          S_BRA,          0,      0x24    },
119     {   NULL,   "bhs",          S_BRA,          0,      0x24    },
120     {   NULL,   "bcs",          S_BRA,          0,      0x25    },
121     {   NULL,   "blo",          S_BRA,          0,      0x25    },
122     {   NULL,   "bne",          S_BRA,          0,      0x26    },
123     {   NULL,   "beq",          S_BRA,          0,      0x27    },
124     {   NULL,   "bhcc",         S_BRA,          0,      0x28    },
125     {   NULL,   "bhcs",         S_BRA,          0,      0x29    },
126     {   NULL,   "bpl",          S_BRA,          0,      0x2A    },
127     {   NULL,   "bmi",          S_BRA,          0,      0x2B    },
128     {   NULL,   "bmc",          S_BRA,          0,      0x2C    },
129     {   NULL,   "bms",          S_BRA,          0,      0x2D    },
130     {   NULL,   "bil",          S_BRA,          0,      0x2E    },
131     {   NULL,   "bih",          S_BRA,          0,      0x2F    },
132     {   NULL,   "bge",          S_BRA,          0,      0x90    },
133     {   NULL,   "blt",          S_BRA,          0,      0x91    },
134     {   NULL,   "bgt",          S_BRA,          0,      0x92    },
135     {   NULL,   "ble",          S_BRA,          0,      0x93    },
136     {   NULL,   "bsr",          S_BRA,          0,      0xAD    },
137
138     {   NULL,   "nega",         S_INH,          0,      0x40    },
139     {   NULL,   "mul",          S_INH,          0,      0x42    },
140     {   NULL,   "coma",         S_INH,          0,      0x43    },
141     {   NULL,   "lsra",         S_INH,          0,      0x44    },
142     {   NULL,   "rora",         S_INH,          0,      0x46    },
143     {   NULL,   "asra",         S_INH,          0,      0x47    },
144     {   NULL,   "asla",         S_INH,          0,      0x48    },
145     {   NULL,   "lsla",         S_INH,          0,      0x48    },
146     {   NULL,   "rola",         S_INH,          0,      0x49    },
147     {   NULL,   "deca",         S_INH,          0,      0x4A    },
148     {   NULL,   "inca",         S_INH,          0,      0x4C    },
149     {   NULL,   "tsta",         S_INH,          0,      0x4D    },
150     {   NULL,   "clra",         S_INH,          0,      0x4F    },
151
152     {   NULL,   "negx",         S_INH,          0,      0x50    },
153     {   NULL,   "div",          S_INH,          0,      0x52    },
154     {   NULL,   "comx",         S_INH,          0,      0x53    },
155     {   NULL,   "lsrx",         S_INH,          0,      0x54    },
156     {   NULL,   "rorx",         S_INH,          0,      0x56    },
157     {   NULL,   "asrx",         S_INH,          0,      0x57    },
158     {   NULL,   "aslx",         S_INH,          0,      0x58    },
159     {   NULL,   "lslx",         S_INH,          0,      0x58    },
160     {   NULL,   "rolx",         S_INH,          0,      0x59    },
161     {   NULL,   "decx",         S_INH,          0,      0x5A    },
162     {   NULL,   "incx",         S_INH,          0,      0x5C    },
163     {   NULL,   "tstx",         S_INH,          0,      0x5D    },
164     {   NULL,   "clrx",         S_INH,          0,      0x5F    },
165
166     {   NULL,   "nsa",          S_INH,          0,      0x62    },
167
168     {   NULL,   "daa",          S_INH,          0,      0x72    },
169
170     {   NULL,   "rti",          S_INH,          0,      0x80    },
171     {   NULL,   "rts",          S_INH,          0,      0x81    },
172     {   NULL,   "swi",          S_INH,          0,      0x83    },
173     {   NULL,   "tap",          S_INH,          0,      0x84    },
174     {   NULL,   "tpa",          S_INH,          0,      0x85    },
175     {   NULL,   "pula",         S_INH,          0,      0x86    },
176     {   NULL,   "psha",         S_INH,          0,      0x87    },
177     {   NULL,   "pulx",         S_INH,          0,      0x88    },
178     {   NULL,   "pshx",         S_INH,          0,      0x89    },
179     {   NULL,   "pulh",         S_INH,          0,      0x8A    },
180     {   NULL,   "pshh",         S_INH,          0,      0x8B    },
181     {   NULL,   "clrh",         S_INH,          0,      0x8C    },
182     {   NULL,   "stop",         S_INH,          0,      0x8E    },
183     {   NULL,   "wait",         S_INH,          0,      0x8F    },
184
185     {   NULL,   "txs",          S_INH,          0,      0x94    },
186     {   NULL,   "tsx",          S_INH,          0,      0x95    },
187     {   NULL,   "tax",          S_INH,          0,      0x97    },
188     {   NULL,   "clc",          S_INH,          0,      0x98    },
189     {   NULL,   "sec",          S_INH,          0,      0x99    },
190     {   NULL,   "cli",          S_INH,          0,      0x9A    },
191     {   NULL,   "sei",          S_INH,          0,      0x9B    },
192     {   NULL,   "rsp",          S_INH,          0,      0x9C    },
193     {   NULL,   "nop",          S_INH,          0,      0x9D    },
194     {   NULL,   "txa",          S_INH,          S_END,  0x9F    }
195 };