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 
14 inzr_stk0: proc;
15 
16 /* This program is the initializer's stack during initialization */
17 /* This is so called because it must be found in bootstrap1's magic name
18    table, which limits names to 8 recognizable characters. */
19 
20 /* Automatic */
21 
22 dcl 1 cdsa aligned like cds_args;
23 dcl  code fixed bin (35);
24 
25 /* Static */
26 
27 dcl  name char (32) aligned static init ("inzr_stk0") options (constant);
28 dcl  exclude_pad (1) char (32) aligned static options (constant) init ("*");
29 
30 /* Builtins */
31 
32 dcl (addr, baseptr, bin, bit, hbound, mod, null, ptr, rel, size, string) builtin;
33 
34 /* Entries */
35 
36 dcl  com_err_ entry options (variable);
37 dcl  create_data_segment_ entry (ptr, fixed bin (35));
38 
39 
40 /* The initialization stack definition */
41 
42 
43 dcl 1 inzr_stk0 aligned,
44     2 header like stack_header,
45     2 frame like stack_frame;
46 
47 /* ^L */
48 
49            unspec (inzr_stk0) = ""b;
50 
51 /* Initialize the stack header pointers. */
52 
53           inzr_stk0.header.stack_begin_ptr
54                = ptr (null (), bin (rel (addr (inzr_stk0.frame)))
55                                    - bin (rel (addr (inzr_stk0))));
56           inzr_stk0.header.stack_end_ptr = inzr_stk0.header.stack_begin_ptr;
57 
58 /* Now set up call to create data segment */
59 
60           cdsa.sections (1).p = addr (inzr_stk0);
61           cdsa.sections (1).len = size (inzr_stk0);
62           cdsa.sections (1).struct_name = "inzr_stk0";
63 
64           cdsa.seg_name = name;
65           cdsa.num_exclude_names = 1;
66           cdsa.exclude_array_ptr = addr (exclude_pad);
67 
68           string (cdsa.switches) = "0"b;
69           cdsa.switches.have_text = "1"b;
70 
71           call create_data_segment_ (addr (cdsa), code);
72           return;
73 
74 ^L
75 % include cds_args;
76 % include stack_header;
77 % include stack_frame;
78      end inzr_stk0;