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