1 /* BEGIN INCLUDE FILE ... system_constants.incl.pl1 */
 2 
 3 /****^  HISTORY COMMENTS:
 4   1) change(86-11-12,GWMay), approve(86-11-12,MCR7445), audit(86-11-19,GDixon),
 5      install(86-11-21,MR12.0-1223):
 6      created.
 7                                                    END HISTORY COMMENTS */
 8 
 9 /* format: off */
10 
11 /* ************************************************************************ */
12 /*                                                                          */
13 /* Function: Provides constants for commonly used Multics system values.    */
14 /*                                                                          */
15 /* Usage: These values are available for use in place of "magic" numbers    */
16 /*        (unexplained numbers) in programming applications.                */
17 /*                                                                          */
18 /* Definitions:                                                             */
19 /*                                                                          */
20 /*   PER             bit     character/byte     word     page     segment   */
21 /*                                                                          */
22 /*   bits              1            9             36     36864    9400320   */
23 /*   characters/bytes               1              4      4096    1044480   */
24 /*   words                                         1      1024     261120   */
25 /*   pages                                                   1        255   */
26 /*   segments                                                           1   */
27 /*                                                                          */
28 /*  The base values for a bit, char, word and page are determined by the    */
29 /*  Multics hardware implementation.  The other values are calculated from  */
30 /*  their relation to one another as shown in the matrix above.             */
31 /*                                                                          */
32 /*  BITS_PER_CHAR     = 9 (defined by the hardware)                         */
33 /*  BITS_PER_WORD     = BITS_PER_CHAR * CHARS_PER_WORD                      */
34 /*                    = 9 * 4                                               */
35 /*                    = 36                                                  */
36 /*  BITS_PER_PAGE     = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE     */
37 /*                    = 9 * 4 * 1024                                        */
38 /*                    = 36864                                               */
39 /*  BITS_PER_SEGMENT  = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE *   */
40 /*                      PAGES_PER_SEGMENT                                   */
41 /*                    = 9 * 4 * 1024 * 255                                  */
42 /*                    = 9400320                                             */
43 /*                                                                          */
44 /*  CHARS_PER_WORD    = 4 (defined by the hardware)                         */
45 /*  CHARS_PER_PAGE    = CHARS_PER_WORD * WORDS_PER_PAGE                     */
46 /*                    = 4 * 1024                                            */
47 /*                    = 4096                                                */
48 /*  CHARS_PER_SEGMENT = CHARS_PER_WORD * WORDS_PER_PAGE * PAGES_PER_SEGMENT */
49 /*                    = 4 * 1024 * 255                                      */
50 /*                    = 1044480                                             */
51 /*                                                                          */
52 /*  WORDS_PER_PAGE    = 1024 (defined by the hardware)                      */
53 /*  WORDS_PER_SEGMENT = WORDS_PER_PAGE * PAGES_PER_SEGMENT                  */
54 /*                    = 1024 * 255                                          */
55 /*                    = 261120                                              */
56 /*                                                                          */
57 /*  PAGES_PER_SEGMENT = 255 (defined by system standard)                    */
58 /*                                                                          */
59 /* ************************************************************************ */
60 
61        declare BITS_PER_CHAR            fixed bin (4) internal static
62                                         options (constant) initial (9);
63 
64        declare BITS_PER_WORD            fixed bin (6) internal static
65                                         options (constant) initial (36);
66 
67        declare BITS_PER_PAGE            fixed bin (16) internal static
68                                         options (constant) initial (36864);
69 
70        declare BITS_PER_SEGMENT         fixed bin (24) internal static
71                                         options (constant) initial (9400320);
72 
73        declare CHARS_PER_WORD           fixed bin (3) internal static
74                                         options (constant) initial (4);
75 
76        declare CHARS_PER_PAGE           fixed bin (13) internal static
77                                         options (constant) initial (4096);
78 
79        declare CHARS_PER_SEGMENT        fixed bin (21) internal static
80                                         options (constant) initial (1044480);
81 
82        /* Note: WORDS_PER_PAGE should be equal to sys_info$max_page_size    */
83 
84        declare WORDS_PER_PAGE           fixed bin (11) internal static
85                                         options (constant) initial (1024);
86 
87        /* Note: WORDS_PER_SEGMENT should be equal to sys_info$max_seg_size  */
88 
89        declare WORDS_PER_SEGMENT        fixed bin (21) internal static
90                                         options (constant) initial (261120);
91 
92        declare PAGES_PER_SEGMENT        fixed bin (8) internal static
93                                         options (constant) initial (255);
94 
95 /* END INCLUDE FILE ... system_constants.incl.pl1 */
96