1 /*
2  * Copyright (c) 2007-2013 Michael Mondy
3  * Copyright (c) 2012-2016 Harry Reed
4  * Copyright (c) 2013-2018 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 #ifndef DPS8_EM_CONSTS_H
15 # define DPS8_EM_CONSTS_H
16 
17 ////////////////
18 //
19 // System components: SCU, IOM, CPU
20 //
21 ////////////////
22 
23 // SCU
24 enum { N_SCU_UNITS_MAX = 8 };
25 
26 // IOM
27 enum { N_IOM_UNITS_MAX = 4 };
28 
29 // CPU
30 enum { N_CPU_UNITS_MAX = 8 };
31 
32 
33 ////////////////
34 //
35 // Controllers
36 //
37 ////////////////
38 
39 // Unit record processor
40 enum { N_URP_UNITS_MAX = 16 };
41 
42 // ABSI
43 enum { N_ABSI_UNITS_MAX = 1 };
44 
45 // FNP
46 enum { N_FNP_UNITS_MAX = 16 };
47 
48 // Operator console
49 enum { N_OPC_UNITS_MAX = 8 };
50 
51 // MTP
52 enum { N_MTP_UNITS_MAX = 16 };
53 
54 // MSP
55 enum { N_MSP_UNITS_MAX = 16 };
56 
57 // IPC
58 enum { N_IPC_UNITS_MAX = 16 };
59 
60 // DIA
61 enum { N_DIA_UNITS_MAX = 16 };
62 
63 ////////////////
64 //
65 // Peripherals
66 //
67 ////////////////
68 
69 // Tape drive
70 enum { N_MT_UNITS_MAX = 34 };
71 
72 // Printer
73 enum { N_PRT_UNITS_MAX = 34 };
74 
75 // Socket controller
76 enum { N_SKC_UNITS_MAX = 64 };
77 
78 // Card reader
79 enum { N_RDR_UNITS_MAX = 16 };
80 
81 // Card punch
82 enum { N_PUN_UNITS_MAX = 16 };
83 
84 // Disk
85 enum { N_DSK_UNITS_MAX = 64 };
86 
87 //
88 // Memory
89 //
90 
91 enum { MEMSIZE = MEM_SIZE_MAX };
92 
93 //
94 // Controller ports
95 //
96 
97 enum { MAX_CTLR_PORTS = 8 };
98 
99 //
100 // CPU ports
101 //
102 
103 # ifdef DPS8M
104 enum { N_CPU_PORTS = 4 };
105 # endif
106 # ifdef L68
107 enum { N_CPU_PORTS = 8 };
108 # endif
109 
110 #endif // DPS8_EM_CONSTS_H
111