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