3 Copyright (C) 1989-1995 Alan R. Baldwin
4 721 Berkeley St., Kent, Ohio 44240
6 This program is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 3, or (at your option) any
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
26 register struct expr *esp;
29 register struct area *espa;
33 if ((c = getnb()) == '#') {
35 esp->e_mode = S_IMMED;
36 } else if (c == ',') {
54 } else if (c == '*') {
57 if (esp->e_addr & ~0xFF)
81 if ((esp->e_mode = admode(axs)) != 0) {
85 espa = esp->e_base.e_ap;
90 if (esp->e_flag == 0 &&
92 (espv & ~0xFF) == 0) {
133 return (esp->e_mode);
137 * Enter admode() to search a specific addressing mode table
138 * for a match. Return the addressing value on a match or
143 register struct adsym *sp;
147 register const char *ips;
153 while ( *(ptr = &sp[i].a_str[0]) ) {
164 * srch --- does string match ?
170 register const char *ptr;
173 while (*ptr && *str) {
174 if(ccase[*ptr & 0x007F] != ccase[*str & 0x007F])
179 if (ccase[*ptr & 0x007F] == ccase[*str & 0x007F]) {
185 if (any(*ptr," \t\n,];")) {
193 * any --- does str contain c?
206 struct adsym axs[] = { /* a, x, or s registers */