1 /*
2 * vim: filetype=c:tabstop=4:ai:expandtab
3 * SPDX-License-Identifier: ICU
4 * scspell-id: bd0d99ce-f62e-11ec-b63c-80ee73e9b8e7
5 *
6 * ---------------------------------------------------------------------------
7 *
8 * Copyright (c) 2007-2013 Michael Mondy
9 * Copyright (c) 2012-2016 Harry Reed
10 * Copyright (c) 2013-2016 Charles Anthony
11 * Copyright (c) 2021-2025 The DPS8M Development Team
12 *
13 * This software is made available under the terms of the ICU License.
14 * See the LICENSE.md file at the top-level directory of this distribution.
15 *
16 * ---------------------------------------------------------------------------
17 */
18
19 extern char GEBcdToASCII[64]; ///< GEBCD => ASCII map
20 #if !defined(QUIET_UNUSED)
21 extern char ASCIIToGEBcd[128]; ///< ASCII => GEBCD map
22 extern char *op0text[512];
23 extern char *op1text[512];
24 extern char *opcodes2text[1024];
25 #endif /* if !defined(QUIET_UNUSED) */
26
27 struct adrMods {
28 const char *mod; ///< mnemonic
29 int Td; ///< Td value
30 int Flags;
31 };
32 typedef struct adrMods adrMods;
33
34 extern struct adrMods extMods[0100]; ///< extended address modifiers
35 extern struct opcode_s opcodes10[02000];
36 #if defined(PANEL68)
37 extern word8 insGrp [02000];
38 // CPT 3U 0-35, 3L 0-17
39 enum { GRP_UNKN = 0,
40 GRP_FXDML = 1, // Fixed-Point Data Movement Load
41 GRP_FXDMS = 2, // Fixed-Point Data Movement Store
42 GRP_FXDMR = 3, // Fixed-Point Data Movement Shift
43 GRP_FXA = 4, // Fixed-Point Addition
44 GRP_FXS = 5, // Fixed-Point Subtraction
45 GRP_FXM = 6, // Fixed-Point Multiplication
46 GRP_FXD = 7, // Fixed-Point Division
47 GRP_FXN = 8, // Fixed-Point Negate
48 GRP_FXC = 9, // Fixed-Point Comparison
49 GRP_FXI = 10, // Fixed-Point Miscellaneous
50 GRP_BA = 11, // Boolean And
51 GRP_BO = 12, // Boolean Or
52 GRP_BE = 13, // Boolean Exclusive Or
53 GRP_BCA = 14, // Boolean Comparative And
54 GRP_BCN = 15, // Boolean Comparative Not
55 GRP_FLDML = 16, // Floating-Point Data Movement Load
56 GRP_FLDMS = 17, // Floating-Point Data Movement Store
57 GRP_FLA = 18, // Floating-Point Addition
58 GRP_FLS = 19, // Floating-Point Subtraction
59 GRP_FLM = 20, // Floating-Point Multiplication
60 GRP_FLD = 21, // Floating-Point Division
61 GRP_FLN = 22, // Floating-Point Negate
62 GRP_FLNOR = 23, // Floating-Point Normalize
63 GRP_FLR = 24, // Floating-Point Round
64 GRP_FLC = 25, // Floating-Point Compare
65 GRP_FLI = 26, // Floating-Point Miscellaneous
66 GRP_TRA = 27, // Transfer
67 GRP_PRDML = 28, // Pointer Register Data Movement Load
68 GRP_PRDMS = 29, // Pointer Register Data Movement Store
69 GRP_PRAA = 30, // Pointer Register Address Arithmetic
70 GRP_PRM = 31, // Pointer Register Miscellaneous
71 GRP_MISC = 32, // Miscellaneous
72 GRP_PRL = 33, // Privileged - Register Load
73 GRP_PRS = 34, // Privileged - Register Store
74 GRP_PCAM = 35, // Privileged - Clear Associative Memory
75 GRP_PCS = 36, // Privileged - Configuration and Status
76 GRP_PSC = 37, // Privileged - System Control
77 GRP_PM = 38, // Privileged - Miscellaneous
78 GRP_EARL = 39, // EIS - Address Register Load
79 GRP_EARS = 40, // EIS - Address Register Store
80 GRP_EARSA = 41, // EIS - Address Register Special Arithmetic
81 GRP_EANC = 42, // EIS - Alphanumeric Compare
82 GRP_EANM = 43, // EIS - Alphanumeric Move
83 GRP_ENC = 44, // EIS - Numeric Compare
84 GRP_ENM = 45, // EIS - Numeric Move
85 GRP_EBCN = 46, // EIS - Bit String Combine
86 GRP_EBCR = 47, // EIS - Bit String Compare
87 GRP_EBSI = 48, // EIS - Bit String Set Indicators
88 GRP_EDC = 49, // EIS - Data Conversion
89 GRP_EDA = 50, // EIS - Decimal Addition
90 GRP_EDS = 51, // EIS - Decimal Subtraction
91 GRP_EDM = 52, // EIS - Decimal Multiplication
92 GRP_EDD = 53, // EIS - Decimal Division
93 };
94 #endif /* if defined(PANEL68) */