1 /* ***********************************************************
 2    *                                                         *
 3    * Copyright, (C) Honeywell Bull Inc., 1987                *
 4    *                                                         *
 5    * Copyright, (C) Honeywell Information Systems Inc., 1982 *
 6    *                                                         *
 7    * Copyright (c) 1972 by Massachusetts Institute of        *
 8    * Technology and Honeywell Information Systems, Inc.      *
 9    *                                                         *
10    *********************************************************** */
11 
12 
13 sst_seg: procedure ();
14 
15 /* This creates the sst_seg database. Because there are no initializations performed herein,
16    the sst is simply declared as an automatic buffer, since it is not necessary to take
17    base-relative offsets. */
18 
19 /* Rewritten 04/19/81, W. Olin Sibert */
20 
21 dcl  code fixed bin (35);
22 dcl 1 cdsa like cds_args aligned;
23 dcl 1 sst_automatic aligned like sst automatic;
24 
25 dcl  create_data_segment_ entry (ptr, fixed bin (35));
26 dcl  com_err_ entry options (variable);
27 
28 dcl  WHOAMI char (32) internal static options (constant) init ("sst_seg");
29 dcl  EXCLUDE_ARRAY (1) char (32) internal static options (constant) init ("pad*");
30 
31 dcl (addr, dimension, null, size) builtin;
32 
33 /* ^L */
34 
35           sstp = addr (sst_automatic);                      /* Fill our automatic copy with zeros */
36           unspec (sst) = ""b;
37 
38           if size (sst) ^= 512 then do;                     /* Bad */
39                call com_err_ (0, WHOAMI, "The sst structure must be exactly 512 words long, not ^d.", size (sst));
40                return;
41                end;
42 
43           unspec (cdsa) = ""b;
44           cdsa.have_text = "1"b;
45           cdsa.p (1) = sstp;
46           cdsa.len (1) = size (sst);
47           cdsa.struct_name (1) = "sst";
48 
49           cdsa.seg_name = WHOAMI;
50           cdsa.num_exclude_names = dimension (EXCLUDE_ARRAY, 1);
51           cdsa.exclude_array_ptr = addr (EXCLUDE_ARRAY);
52 
53           call create_data_segment_ (addr (cdsa), code);
54 
55           if code ^= 0 then
56                call com_err_ (code, WHOAMI, "Creating sst_seg.");
57 
58           return;
59 
60 %page; %include cds_args;
61 %page; %include sst;
62 
63           end sst_seg;