4 * Copyright (C) 1989-2009 Alan R. Baldwin
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
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 * Extensions: P. Felber
30 * TLCS90 Port: R. Keuchel
34 * Indirect Addressing delimeters
63 * Conditional definitions
70 NZ Z = 0 Result not zero
72 NC C = 0 Carry is not Set
73 PL or P S = 0 Result positive; >= 0
74 MI or M S = 1 Result negative; < 0
75 NE Z = 0 Result not zero
77 OV P/V = 1 Overflow ocurred
78 NOV P/V = 0 Overflow didn't occur
79 PE P/V = 1 Result has even Parity
80 PO P/V = 0 Result has odd Parity
81 GE (S xor P/V) = 0 Result (signed) is >= 0
82 LT (S xor P/V) = 1 Result (signed) is < 0
83 GT [Z or (S xor P/V)] = 0 Result (signed) is > 0
84 LE [Z or (S xor P/V)] = 1 Result (signed) is <= 0
85 UGE C = 0 Result (unsigned) is >= 0
86 ULT C = 1 Result (unsigned) is < 0
87 UGT (C or Z) = 0 Result (unsigned) is > 0
88 ULE (C or Z) = 1 Result (unsigned) is <= 0
222 * Processor Types (S_CPU)
228 char a_str
[4]; /* addressing string */
229 int a_val
; /* addressing mode value */
232 extern struct adsym R8
[];
233 //extern struct adsym R8X[];
234 //extern struct adsym R8U1[];
235 //extern struct adsym R8U2[];
237 extern struct adsym R16
[];
238 extern struct adsym R16X
[];
239 extern struct adsym CND
[];
241 /* machine dependent functions */
246 extern int addr(struct expr
*esp
);
247 extern int admode(struct adsym
*sp
);
248 extern int srch(char *str
);
251 extern int genop(int pop
, int op
, struct expr
*esp
, int f
);
252 extern VOID
machine(struct mne
*mp
);
253 extern int mchpcr(struct expr
*esp
);
254 extern VOID
minit(void);
264 extern VOID
machine();