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-2023 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