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-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 #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 // URP (Unit record processor_
47 enum { N_URP_UNITS_MAX = 16 };
48
49 // ABSI
50 enum { N_ABSI_UNITS_MAX = 1 };
51
52 // MGP (Chaosnet)
53 enum { N_MGP_UNITS_MAX = 2 };
54
55 // FNP
56 enum { N_FNP_UNITS_MAX = 16 };
57
58 // OPC (Operator console)
59 enum { N_OPC_UNITS_MAX = 8 };
60
61 // MTP
62 enum { N_MTP_UNITS_MAX = 16 };
63
64 // MSP
65 enum { N_MSP_UNITS_MAX = 16 };
66
67 // IPC
68 enum { N_IPC_UNITS_MAX = 16 };
69
70 // DIA
71 enum { N_DIA_UNITS_MAX = 16 };
72
73 ////////////////
74 //
75 // Peripherals
76 //
77 ////////////////
78
79 // Tape drive
80 enum { N_MT_UNITS_MAX = 34 };
81
82 // Printer
83 enum { N_PRT_UNITS_MAX = 34 };
84
85 // Socket controller
86 enum { N_SKC_UNITS_MAX = 64 };
87
88 // Card reader
89 enum { N_RDR_UNITS_MAX = 16 };
90
91 // Card punch
92 enum { N_PUN_UNITS_MAX = 16 };
93
94 // Disk
95 enum { N_DSK_UNITS_MAX = 64 };
96
97 //
98 // Memory
99 //
100
101 enum { MEMSIZE = MEM_SIZE_MAX };
102
103 //
104 // Controller ports
105 //
106
107 enum { MAX_CTLR_PORTS = 8 };
108
109 //
110 // CPU ports
111 //
112
113 enum { N_DPS8M_CPU_PORTS = 4 };
114 enum { N_L68_CPU_PORTS = 8 };
115 enum { N_CPU_PORTS = 8 }; // For data structures, allocate the worst case and enforce limit at run-time
116
117 #endif // DPS8_EM_CONSTS_H