COMPILATION LISTING OF SEGMENT !BBBJZjXkqqdbKN Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1029.2 mst Sat Options: table map 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 /* format: off */ 13 14 /* Static and constant data used by the Multics command processor */ 15 16 /* Created: January 1981 by Ellie Donner */ 17 /* Modified: June 1982 by G. Palter to add standard command language definition */ 18 /* Modified: July 1984 by G. Palter to add the permanent scratch segment list */ 19 /* Modified: March 1985 by Keith Loepere so that it can reside within bound_multics_bce_. */ 20 21 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 22 23 24 cp_data_: 25 procedure () options (variable); 26 27 dcl 1 cp_constants aligned, /* constant data: see cp_data_.incl.pl1 for details */ 28 2 standard_language (0:511) fixed binary (9) unaligned unsigned; 29 30 dcl 1 cp_static aligned, /* static data: see cp_data_.incl.pl1 for details */ 31 2 command_table_ptr pointer, 32 2 under_lss bit (1) aligned, 33 2 scratch_lock_id fixed binary (35), 34 2 scratch_release_factor fixed binary, 35 2 permanent_scratch_segment_list, 36 3 n_scratch_segments fixed binary, 37 3 scratch_segments (4), 38 4 segment_ptr pointer, 39 4 lock bit (36) aligned, 40 4 usage_count fixed binary; 41 42 dcl 1 cds_arguments aligned like cds_args; 43 44 dcl code fixed binary (35); 45 46 dcl CP_DATA_ character (8) static options (constant) initial ("cp_data_"); 47 48 /* format: off */ 49 dcl (SPACE initial (" "), 50 HT initial (" "), /* horizontal tab */ 51 VT initial (" "), /* veritcal tab */ 52 FF initial (" "), /* form feed */ 53 NL initial (" 54 ")) /* new line */ 55 character (1) static options (constant); 56 /* format: on */ 57 58 dcl com_err_ entry () options (variable); 59 dcl create_data_segment_ entry (pointer, fixed binary (35)); 60 61 dcl (addr, currentsize, null, rank, string) builtin; 62 63 64 /* Define the standard command language */ 65 66 cp_constants.standard_language (*) = NORMAL_CHARACTER; 67 /* start out by declaring all characters to be normal */ 68 69 cp_constants.standard_language (rank (SPACE)) = WHITESPACE; 70 cp_constants.standard_language (rank (HT)) = WHITESPACE; 71 cp_constants.standard_language (rank (VT)) = WHITESPACE; 72 cp_constants.standard_language (rank (FF)) = WHITESPACE; 73 74 cp_constants.standard_language (rank (";")) = COMMAND_SEPARATOR; 75 76 cp_constants.standard_language (rank (NL)) = COMMAND_SEPARATOR_OR_WHITESPACE; 77 78 cp_constants.standard_language (rank ("""")) = QUOTE_CHARACTER; 79 80 cp_constants.standard_language (rank ("(")) = BEGIN_ITERATION_1; 81 cp_constants.standard_language (rank (")")) = END_ITERATION_1; 82 83 cp_constants.standard_language (rank ("[")) = BEGIN_ACTIVE_STRING_1; 84 cp_constants.standard_language (rank ("]")) = END_ACTIVE_STRING_1; 85 cp_constants.standard_language (rank ("|")) = ACTIVE_STRING_MODIFIER; 86 87 88 /* Setup constants and static data related to scratch segment management */ 89 90 cp_static.scratch_release_factor = 1000; /* release "permanement" scratch segments every 1000 uses */ 91 92 cp_static.scratch_lock_id = 0; 93 94 cp_static.permanent_scratch_segment_list.n_scratch_segments = 4; 95 cp_static.permanent_scratch_segment_list.scratch_segments (*).segment_ptr = null (); 96 cp_static.permanent_scratch_segment_list.scratch_segments (*).lock = ""b; 97 cp_static.permanent_scratch_segment_list.scratch_segments (*).usage_count = 0; 98 99 100 /* Supply initial values for the remaining static data */ 101 102 cp_static.under_lss = "0"b; /* no restriction on commands that may be executed */ 103 cp_static.command_table_ptr = null (); 104 105 106 /* Fill in CDS description and create the data segment */ 107 108 cds_arguments.sections (1).p = addr (cp_constants); 109 cds_arguments.sections (1).len = currentsize (cp_constants); 110 cds_arguments.sections (1).struct_name = "cp_constants"; 111 112 cds_arguments.sections (2).p = addr (cp_static); 113 cds_arguments.sections (2).len = currentsize (cp_static); 114 cds_arguments.sections (2).struct_name = "cp_static"; 115 116 cds_arguments.seg_name = CP_DATA_; 117 cds_arguments.num_exclude_names = 0; 118 cds_arguments.exclude_array_ptr = null (); 119 120 string (cds_arguments.switches) = "0"b; 121 cds_arguments.switches.have_text = "1"b; 122 cds_arguments.switches.have_static = "1"b; 123 124 cds_arguments.switches.separate_static = "1"b; 125 126 call create_data_segment_ (addr (cds_arguments), code); 127 if code ^= 0 then call com_err_ (CP_DATA_, code); 128 129 return; 130 1 1 /* BEGIN INCLUDE FILE ... cp_character_types.incl.pl1 */ 1 2 /* Created: June 1982 by G. Palter */ 1 3 1 4 /* Character types used to define Multics command language and subsystem request languages */ 1 5 1 6 dcl (NORMAL_CHARACTER initial ( 0), /* normal everyday character */ 1 7 1 8 WHITESPACE initial ( 1), /* separates tokens but is otherwise ignored (ie: does not 1 9* appear in the command/request name or any arguments */ 1 10 1 11 COMMAND_SEPARATOR initial ( 2), /* separate multiple commands/requests on the line but is 1 12* otherwise ignored (as above) (semi-colon) */ 1 13 COMMAND_SEPARATOR_OR_WHITESPACE initial ( 3), /* separate multiple commands/requests on the line and is also 1 14* treated as whitespace when rescanning |[...] return values 1 15* (newline) */ 1 16 1 17 SINGLE_TOKEN initial ( 4), /* appears as a one character argument to the command/request 1 18* even if not surrounded by whitespace (causes a break) */ 1 19 1 20 COMPOUND_TOKEN initial ( 5), /* appears as an argument to the command/request even if not 1 21* surrounded by whitespace; if several of this type character 1 22* appear on the line without any intervening characters, they 1 23* are merged into a single argument (eg: ^=) */ 1 24 1 25 QUOTE_CHARACTER initial ( 6), /* begin and end a quoted string ("): only the same character 1 26* ends the quoted string (ie: "' isn't a completed string); 1 27* within the string, any occurence of this character must be 1 28* doubled */ 1 29 1 30 ACTIVE_STRING_MODIFIER initial ( 7), /* modifies interpretation of an active string (|) */ 1 31 1 32 BEGIN_ITERATION_1 initial (17), /* starts an iteration set; only matches END_ITERATION_1 */ 1 33 BEGIN_ITERATION_2 initial (18), /* starts an iteration set; only matches END_ITERATION_2 */ 1 34 BEGIN_ITERATION_3 initial (19), /* ... */ 1 35 BEGIN_ITERATION_4 initial (20), /* ... */ 1 36 BEGIN_ITERATION_5 initial (21), /* ... */ 1 37 BEGIN_ITERATION_6 initial (22), /* ... */ 1 38 BEGIN_ITERATION_7 initial (23), /* ... */ 1 39 BEGIN_ITERATION_8 initial (24), /* ... */ 1 40 1 41 END_ITERATION_1 initial (25), /* ends an iteration set; only matches BEGIN_ITERATION_1 */ 1 42 END_ITERATION_2 initial (26), /* ends an iteration set; only matches BEGIN_ITERATION_2 */ 1 43 END_ITERATION_3 initial (27), /* ... */ 1 44 END_ITERATION_4 initial (28), /* ... */ 1 45 END_ITERATION_5 initial (29), /* ... */ 1 46 END_ITERATION_6 initial (30), /* ... */ 1 47 END_ITERATION_7 initial (31), /* ... */ 1 48 END_ITERATION_8 initial (32), /* ... */ 1 49 1 50 BEGIN_ACTIVE_STRING_1 initial (33), /* starts active string; only matches END_ACTIVE_STRING_1 */ 1 51 BEGIN_ACTIVE_STRING_2 initial (34), /* starts active string; only matches END_ACTIVE_STRING_2 */ 1 52 BEGIN_ACTIVE_STRING_3 initial (35), /* ... */ 1 53 BEGIN_ACTIVE_STRING_4 initial (36), /* ... */ 1 54 BEGIN_ACTIVE_STRING_5 initial (37), /* ... */ 1 55 BEGIN_ACTIVE_STRING_6 initial (38), /* ... */ 1 56 BEGIN_ACTIVE_STRING_7 initial (39), /* ... */ 1 57 BEGIN_ACTIVE_STRING_8 initial (40), /* ... */ 1 58 1 59 END_ACTIVE_STRING_1 initial (41), /* ends active string; only matches BEGIN_ACTIVE_STRING_1 */ 1 60 END_ACTIVE_STRING_2 initial (42), /* ends active string; only matches BEGIN_ACTIVE_STRING_2 */ 1 61 END_ACTIVE_STRING_3 initial (43), /* ... */ 1 62 END_ACTIVE_STRING_4 initial (44), /* ... */ 1 63 END_ACTIVE_STRING_5 initial (45), /* ... */ 1 64 END_ACTIVE_STRING_6 initial (46), /* ... */ 1 65 END_ACTIVE_STRING_7 initial (47), /* ... */ 1 66 END_ACTIVE_STRING_8 initial (48)) /* ... */ 1 67 fixed binary (9) unsigned static options (constant); 1 68 1 69 /* END INCLUDE FILE ... cp_character_types.incl.pl1 */ 131 132 2 1 /* BEGIN INCLUDE FILE cds_args.incl.pl1 */ 2 2 2 3 dcl 1 cds_args based aligned, 2 4 2 sections (2), 2 5 3 p ptr, /* pointer to data for text/static section */ 2 6 3 len fixed bin (18), /* size of text/static section */ 2 7 3 struct_name char (32), /* name of declared structure for this section */ 2 8 2 seg_name char (32), /* name to create segment by */ 2 9 2 num_exclude_names fixed bin, /* number of names in exclude array */ 2 10 2 exclude_array_ptr ptr, /* pointer to array of exclude names */ 2 11 2 switches, /* control switches */ 2 12 3 defs_in_link bit (1) unal, /* says put defs in linkage */ 2 13 3 separate_static bit (1) unal, /* says separate static section is wanted */ 2 14 3 have_text bit (1) unal, /* ON if text section given */ 2 15 3 have_static bit (1) unal, /* ON if static section given */ 2 16 3 pad bit (32) unal; 2 17 2 18 dcl exclude_names (1) char (32) based; /* pointed to be cds_args.exclude_array_ptr */ 2 19 2 20 /* END INCLUDE FILE cds_args.incl.pl1 */ 133 134 135 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0803.7 !BBBJZjXkqqdbKN.pl1 >spec>install>1111>cp_data_.cds 131 1 09/09/82 1418.0 cp_character_types.incl.pl1 >ldd>include>cp_character_types.incl.pl1 133 2 04/01/76 2209.5 cds_args.incl.pl1 >ldd>include>cds_args.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACTIVE_STRING_MODIFIER 000330 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 85 BEGIN_ACTIVE_STRING_1 000001 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 83 BEGIN_ITERATION_1 000003 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 80 COMMAND_SEPARATOR 000005 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 74 COMMAND_SEPARATOR_OR_WHITESPACE 000004 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 76 CP_DATA_ 000014 constant char(8) initial packed unaligned dcl 46 set ref 116 127* END_ACTIVE_STRING_1 000000 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 84 END_ITERATION_1 000002 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 81 FF 000007 constant char(1) initial packed unaligned dcl 49 ref 72 HT 000011 constant char(1) initial packed unaligned dcl 49 ref 70 NL 000006 constant char(1) initial packed unaligned dcl 49 ref 76 NORMAL_CHARACTER 000333 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 66 QUOTE_CHARACTER 000331 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 78 SPACE 000012 constant char(1) initial packed unaligned dcl 49 ref 69 VT 000010 constant char(1) initial packed unaligned dcl 49 ref 71 WHITESPACE 000332 constant fixed bin(9,0) initial unsigned dcl 1-6 ref 69 70 71 72 addr builtin function dcl 61 ref 108 112 126 126 cds_args based structure level 1 dcl 2-3 cds_arguments 000330 automatic structure level 1 dcl 42 set ref 126 126 code 000375 automatic fixed bin(35,0) dcl 44 set ref 126* 127 127* com_err_ 000012 constant entry external dcl 58 ref 127 command_table_ptr 000300 automatic pointer level 2 dcl 30 set ref 103* cp_constants 000100 automatic structure level 1 dcl 27 set ref 108 109 cp_static 000300 automatic structure level 1 dcl 30 set ref 112 113 create_data_segment_ 000014 constant entry external dcl 59 ref 126 currentsize builtin function dcl 61 ref 109 113 exclude_array_ptr 42 000330 automatic pointer level 2 dcl 42 set ref 118* have_static 44(03) 000330 automatic bit(1) level 3 packed packed unaligned dcl 42 set ref 122* have_text 44(02) 000330 automatic bit(1) level 3 packed packed unaligned dcl 42 set ref 121* len 2 000330 automatic fixed bin(18,0) array level 3 dcl 42 set ref 109* 113* lock 12 000300 automatic bit(36) array level 4 dcl 30 set ref 96* n_scratch_segments 6 000300 automatic fixed bin(17,0) level 3 dcl 30 set ref 94* null builtin function dcl 61 ref 95 103 118 num_exclude_names 40 000330 automatic fixed bin(17,0) level 2 dcl 42 set ref 117* p 000330 automatic pointer array level 3 dcl 42 set ref 108* 112* permanent_scratch_segment_list 6 000300 automatic structure level 2 dcl 30 rank builtin function dcl 61 ref 69 70 71 72 74 76 78 80 81 83 84 85 scratch_lock_id 3 000300 automatic fixed bin(35,0) level 2 dcl 30 set ref 92* scratch_release_factor 4 000300 automatic fixed bin(17,0) level 2 dcl 30 set ref 90* scratch_segments 10 000300 automatic structure array level 3 dcl 30 sections 000330 automatic structure array level 2 dcl 42 seg_name 30 000330 automatic char(32) level 2 dcl 42 set ref 116* segment_ptr 10 000300 automatic pointer array level 4 dcl 30 set ref 95* separate_static 44(01) 000330 automatic bit(1) level 3 packed packed unaligned dcl 42 set ref 124* standard_language 000100 automatic fixed bin(9,0) array level 2 packed packed unsigned unaligned dcl 27 set ref 66* 69* 70* 71* 72* 74* 76* 78* 80* 81* 83* 84* 85* string builtin function dcl 61 set ref 120* struct_name 3 000330 automatic char(32) array level 3 dcl 42 set ref 110* 114* switches 44 000330 automatic structure level 2 dcl 42 set ref 120* under_lss 2 000300 automatic bit(1) level 2 dcl 30 set ref 102* usage_count 13 000300 automatic fixed bin(17,0) array level 4 dcl 30 set ref 97* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BEGIN_ACTIVE_STRING_2 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ACTIVE_STRING_3 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ACTIVE_STRING_4 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ACTIVE_STRING_5 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ACTIVE_STRING_6 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ACTIVE_STRING_7 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ACTIVE_STRING_8 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_2 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_3 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_4 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_5 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_6 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_7 constant fixed bin(9,0) initial unsigned dcl 1-6 BEGIN_ITERATION_8 constant fixed bin(9,0) initial unsigned dcl 1-6 COMPOUND_TOKEN constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_2 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_3 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_4 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_5 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_6 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_7 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ACTIVE_STRING_8 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_2 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_3 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_4 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_5 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_6 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_7 constant fixed bin(9,0) initial unsigned dcl 1-6 END_ITERATION_8 constant fixed bin(9,0) initial unsigned dcl 1-6 SINGLE_TOKEN constant fixed bin(9,0) initial unsigned dcl 1-6 exclude_names based char(32) array packed unaligned dcl 2-18 NAME DECLARED BY EXPLICIT CONTEXT. cp_data_ 000031 constant entry external dcl 24 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 406 424 334 416 Length 2132 334 16 1471 52 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cp_data_ 274 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cp_data_ 000100 cp_constants cp_data_ 000300 cp_static cp_data_ 000330 cds_arguments cp_data_ 000375 code cp_data_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ create_data_segment_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 24 000030 66 000036 69 000051 70 000057 71 000065 72 000073 74 000101 76 000107 78 000115 80 000123 81 000131 83 000137 84 000145 85 000153 90 000161 92 000163 94 000164 95 000166 96 000201 97 000213 102 000225 103 000226 108 000230 109 000232 110 000234 112 000237 113 000241 114 000243 116 000246 117 000251 118 000252 120 000254 121 000255 122 000257 124 000261 126 000263 127 000276 129 000315 Object Segment >spec>install>1111>cp_data_ Created on 11/11/89 1029.3 mst Sat by Hirneisen.SysMaint.a using create_data_segment_, Version II of Thursday, November 20, 1986 with separate static Object Text Defs Link Symb Static Start 0 0 200 332 342 302 Length 536 200 102 10 160 30 8 Definitions: segname: cp_data_ stat|0 command_table_ptr stat|6 permanent_scratch_segment_list stat|3 scratch_lock_id stat|4 scratch_release_factor text|0 standard_language symb|0 symbol_table stat|2 under_lss No Links. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved