1 /* 2 * vim: filetype=c:tabstop=4:ai:expandtab 3 * SPDX-License-Identifier: ICU 4 * scspell-id: 3ceeac54-f62e-11ec-b6e7-80ee73e9b8e7 5 * 6 * --------------------------------------------------------------------------- 7 * 8 * Copyright (c) 2007-2013 Michael Mondy 9 * Copyright (c) 2012-2016 Harry Reed 10 * Copyright (c) 2013-2018 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 #ifndef DPS8_EM_CONSTS_H 23 # define DPS8_EM_CONSTS_H 24 25 //////////////// 26 // 27 // System components: SCU, IOM, CPU 28 // 29 //////////////// 30 31 // SCU 32 enum { N_SCU_UNITS_MAX = 8 }; 33 34 // IOM 35 enum { N_IOM_UNITS_MAX = 4 }; 36 37 // CPU 38 enum { N_CPU_UNITS_MAX = 8 }; 39 40 //////////////// 41 // 42 // Controllers 43 // 44 //////////////// 45 46 // Unit record processor 47 enum { N_URP_UNITS_MAX = 16 }; 48 49 // ABSI 50 enum { N_ABSI_UNITS_MAX = 1 }; 51 52 // FNP 53 enum { N_FNP_UNITS_MAX = 16 }; 54 55 // Operator console 56 enum { N_OPC_UNITS_MAX = 8 }; 57 58 // MTP 59 enum { N_MTP_UNITS_MAX = 16 }; 60 61 // MSP 62 enum { N_MSP_UNITS_MAX = 16 }; 63 64 // IPC 65 enum { N_IPC_UNITS_MAX = 16 }; 66 67 // DIA 68 enum { N_DIA_UNITS_MAX = 16 }; 69 70 //////////////// 71 // 72 // Peripherals 73 // 74 //////////////// 75 76 // Tape drive 77 enum { N_MT_UNITS_MAX = 34 }; 78 79 // Printer 80 enum { N_PRT_UNITS_MAX = 34 }; 81 82 // Socket controller 83 enum { N_SKC_UNITS_MAX = 64 }; 84 85 // Card reader 86 enum { N_RDR_UNITS_MAX = 16 }; 87 88 // Card punch 89 enum { N_PUN_UNITS_MAX = 16 }; 90 91 // Disk 92 enum { N_DSK_UNITS_MAX = 64 }; 93 94 // 95 // Memory 96 // 97 98 enum { MEMSIZE = MEM_SIZE_MAX }; 99 100 // 101 // Controller ports 102 // 103 104 enum { MAX_CTLR_PORTS = 8 }; 105 106 // 107 // CPU ports 108 // 109 110 enum { N_DPS8M_CPU_PORTS = 4 }; 111 enum { N_L68_CPU_PORTS = 8 }; 112 enum { N_CPU_PORTS = 8 }; // For data structures, allocate the worst case and enforce limit at run-time 113 114 #endif // DPS8_EM_CONSTS_H