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