Initial revision
[fw/sdcc] / as / z80 / z80pst.c
1 /* z80pst.c */
2
3 /*
4  * (C) Copyright 1989-1995
5  * All Rights Reserved
6  *
7  * Alan R. Baldwin
8  * 721 Berkeley St.
9  * Kent, Ohio  44240
10  */
11
12 /*
13  * Extensions: P. Felber
14  */
15
16 #include <stdio.h>
17 #include <setjmp.h>
18 #include "asm.h"
19 #include "z80.h"
20
21 struct  mne     mne[] = {
22
23         /* machine */
24
25         /* system */
26
27         NULL,   "CON",          S_ATYP,         0,      A_CON,
28         NULL,   "OVR",          S_ATYP,         0,      A_OVR,
29         NULL,   "REL",          S_ATYP,         0,      A_REL,
30         NULL,   "ABS",          S_ATYP,         0,      A_ABS|A_OVR,
31         NULL,   "NOPAG",        S_ATYP,         0,      A_NOPAG,
32         NULL,   "PAG",          S_ATYP,         0,      A_PAG,
33
34         NULL,   ".byte",        S_BYTE,         0,      0,
35         NULL,   ".db",          S_BYTE,         0,      0,
36         NULL,   ".word",        S_WORD,         0,      0,
37         NULL,   ".dw",          S_WORD,         0,      0,
38         NULL,   ".df",          S_FLOAT,        0,      0,
39         NULL,   ".ascii",       S_ASCII,        0,      0,
40         NULL,   ".asciz",       S_ASCIZ,        0,      0,
41         NULL,   ".blkb",        S_BLK,          0,      1,
42         NULL,   ".ds",          S_BLK,          0,      1,
43         NULL,   ".blkw",        S_BLK,          0,      2,
44         NULL,   ".page",        S_PAGE,         0,      0,
45         NULL,   ".title",       S_TITLE,        0,      0,
46         NULL,   ".sbttl",       S_SBTL,         0,      0,
47         NULL,   ".globl",       S_GLOBL,        0,      0,
48         NULL,   ".area",        S_DAREA,        0,      0,
49         NULL,   ".even",        S_EVEN,         0,      0,
50         NULL,   ".odd",         S_ODD,          0,      0,
51         NULL,   ".if",          S_IF,           0,      0,
52         NULL,   ".else",        S_ELSE,         0,      0,
53         NULL,   ".endif",       S_ENDIF,        0,      0,
54         NULL,   ".include",     S_INCL,         0,      0,
55         NULL,   ".radix",       S_RADIX,        0,      0,
56         NULL,   ".org",         S_ORG,          0,      0,
57         NULL,   ".module",      S_MODUL,        0,      0,
58         NULL,   ".ascis",       S_ASCIS,        0,      0,
59
60         /* z80 / hd64180 */
61
62         NULL,   "ld",           S_LD,           0,      0x40,
63
64         NULL,   "call",         S_CALL,         0,      0xC4,
65         NULL,   "jp",           S_JP,           0,      0xC2,
66         NULL,   "jr",           S_JR,           0,      0x18,
67 #ifndef GAMEBOY
68         NULL,   "djnz",         S_DJNZ,         0,      0x10,
69 #endif /* GAMEBOY */
70         NULL,   "ret",          S_RET,          0,      0xC0,
71
72         NULL,   "bit",          S_BIT,          0,      0x40,
73         NULL,   "res",          S_BIT,          0,      0x80,
74         NULL,   "set",          S_BIT,          0,      0xC0,
75
76         NULL,   "inc",          S_INC,          0,      0x04,
77         NULL,   "dec",          S_DEC,          0,      0x05,
78
79         NULL,   "add",          S_ADD,          0,      0x80,
80         NULL,   "adc",          S_ADC,          0,      0x88,
81         NULL,   "sub",          S_SUB,          0,      0x90,
82         NULL,   "sbc",          S_SBC,          0,      0x98,
83
84         NULL,   "and",          S_AND,          0,      0xA0,
85         NULL,   "cp",           S_AND,          0,      0xB8,
86         NULL,   "or",           S_AND,          0,      0xB0,
87         NULL,   "xor",          S_AND,          0,      0xA8,
88
89 #ifndef GAMEBOY
90         NULL,   "ex",           S_EX,           0,      0xE3,
91 #endif /* GAMEBOY */
92
93         NULL,   "push",         S_PUSH,         0,      0xC5,
94         NULL,   "pop",          S_PUSH,         0,      0xC1,
95
96 #ifndef GAMEBOY
97         NULL,   "in",           S_IN,           0,      0xDB,
98         NULL,   "out",          S_OUT,          0,      0xD3,
99 #endif /* GAMEBOY */
100
101         NULL,   "rl",           S_RL,           0,      0x10,
102         NULL,   "rlc",          S_RL,           0,      0x00,
103         NULL,   "rr",           S_RL,           0,      0x18,
104         NULL,   "rrc",          S_RL,           0,      0x08,
105         NULL,   "sla",          S_RL,           0,      0x20,
106         NULL,   "sra",          S_RL,           0,      0x28,
107         NULL,   "srl",          S_RL,           0,      0x38,
108
109         NULL,   "rst",          S_RST,          0,      0xC7,
110
111 #ifndef GAMEBOY
112         NULL,   "im",           S_IM,           0,      0xED,
113 #endif /* GAMEBOY */
114
115         NULL,   "ccf",          S_INH1,         0,      0x3F,
116         NULL,   "cpl",          S_INH1,         0,      0x2F,
117         NULL,   "daa",          S_INH1,         0,      0x27,
118         NULL,   "di",           S_INH1,         0,      0xF3,
119         NULL,   "ei",           S_INH1,         0,      0xFB,
120 #ifndef GAMEBOY
121         NULL,   "exx",          S_INH1,         0,      0xD9,
122 #endif /* GAMEBOY */
123         NULL,   "nop",          S_INH1,         0,      0x00,
124         NULL,   "halt",         S_INH1,         0,      0x76,
125         NULL,   "rla",          S_INH1,         0,      0x17,
126         NULL,   "rlca",         S_INH1,         0,      0x07,
127         NULL,   "rra",          S_INH1,         0,      0x1F,
128         NULL,   "rrca",         S_INH1,         0,      0x0F,
129         NULL,   "scf",          S_INH1,         0,      0x37,
130
131 #ifndef GAMEBOY
132         NULL,   "cpd",          S_INH2,         0,      0xA9,
133         NULL,   "cpdr",         S_INH2,         0,      0xB9,
134         NULL,   "cpi",          S_INH2,         0,      0xA1,
135         NULL,   "cpir",         S_INH2,         0,      0xB1,
136         NULL,   "ind",          S_INH2,         0,      0xAA,
137         NULL,   "indr",         S_INH2,         0,      0xBA,
138         NULL,   "ini",          S_INH2,         0,      0xA2,
139         NULL,   "inir",         S_INH2,         0,      0xB2,
140         NULL,   "ldd",          S_INH2,         0,      0xA8,
141         NULL,   "lddr",         S_INH2,         0,      0xB8,
142         NULL,   "ldi",          S_INH2,         0,      0xA0,
143         NULL,   "ldir",         S_INH2,         0,      0xB0,
144         NULL,   "neg",          S_INH2,         0,      0x44,
145         NULL,   "otdr",         S_INH2,         0,      0xBB,
146         NULL,   "otir",         S_INH2,         0,      0xB3,
147         NULL,   "outd",         S_INH2,         0,      0xAB,
148         NULL,   "outi",         S_INH2,         0,      0xA3,
149         NULL,   "reti",         S_INH2,         0,      0x4D,
150         NULL,   "retn",         S_INH2,         0,      0x45,
151         NULL,   "rld",          S_INH2,         0,      0x6F,
152         NULL,   "rrd",          S_INH2,         0,      0x67,
153
154         /* 64180 */
155
156         NULL,   ".hd64",        X_HD64,         0,      0,
157
158         NULL,   "otdm",         X_INH2,         0,      0x8B,
159         NULL,   "otdmr",        X_INH2,         0,      0x9B,
160         NULL,   "otim",         X_INH2,         0,      0x83,
161         NULL,   "otimr",        X_INH2,         0,      0x93,
162         NULL,   "slp",          X_INH2,         0,      0x76,
163
164         NULL,   "in0",          X_IN,           0,      0x00,
165         NULL,   "out0",         X_OUT,          0,      0x01,
166
167         NULL,   "mlt",          X_MLT,          0,      0x4C,
168
169         NULL,   "tst",          X_TST,          0,      0x04,
170         NULL,   "tstio",        X_TSTIO,        S_END,  0x74
171 #else /* GAMEBOY */
172         NULL,   "stop",         S_STOP,         0,      0x10,
173         NULL,   "swap",         S_RL,           0,      0x30,
174         NULL,   "reti",         S_INH1,         0,      0xD9,
175         NULL,   "ldh",          S_LDH,          0,      0xE0,
176         NULL,   "lda",          S_LDA,          0,      0xE8,
177         NULL,   "ldhl",         S_LDHL,         S_END,  0xF8
178 #endif /* GAMEBOY */
179 };