COMPILATION LISTING OF SEGMENT linus_set_mode Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1115.37_Tue_mdt Options: optimize map 1 /* 2*/* *********************************************************** 3* * * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* ****************************************************** 11* * * 12* * * 13* * Copyright (c) 1972 by Massachusetts Institute of * 14* * Technology and Honeywell Information Systems, Inc. * 15* * * 16* * * 17* ****************************************************** */ 18 19 linus_set_mode: 20 proc (sci_ptr, lcb_ptr); 21 22 /* DESCRIPTION: 23* 24* This procedure sets or resets the specified modes. 25* 26* 27* 28* HISTORY: 29* 30* 77-08-01 J. A. Weeldreyer: Initially written. 31* 32* 80-06-01 Jim Gray : Modified to correct prompt_string declaration to agree 33* with it's usage in the command loop. 34* 35* 81-11-12 Rickie E. Brinegar: Added the timing mode. 36* 37* 81-12-12 Bert G. Moberg: Added print_search_order and no_optimize 38* 39* 82-02-10 Paul W. Benjamin: ssu_ conversion. Added iteration mode. 40* 41* 82-10-27 David J. Schimke: Modified the way iteration is controled 42* to use the new ssu_$set_request_processor_options. Deleted references 43* to the replacement procedures: execute_line, evaluate_active_string, 44* invoke_request and unknown_request which were used to implement the 45* original iteration control under ssu_. 46**/ 47 1 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 1 7* install(86-07-29,MR12.0-1106): 1 8* Added general_work_area_ptr and renamed sfr_ptr to 1 9* force_retrieve_scope_ptr. 1 10* END HISTORY COMMENTS */ 1 11 1 12 1 13 /* HISTORY: 1 14* 1 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 1 16* 1 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 1 18* a part of the attribute level control work. 1 19* 1 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 1 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 1 22* scope information. 1 23* 1 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 1 25* retaining various vcpu times to be collected when in timing mode. The 1 26* times to be collected are: LINUS parsing time, LINUS processing time, and 1 27* MRDS processing time. 1 28* 1 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 1 30* part of the line numbering implementation. This allows for possible later 1 31* LINUS control of the build defaults. 1 32* 1 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 1 34* information is now retained by ssu_. Removed parse_timer as no longer 1 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 1 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 1 37* 1 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 1 39* subsystem_invocation_level, and selection_expression_identifier. 1 40* 1 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 1 42* table_control_info_ptr. 1 43* 1 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 1 45* 1 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 1 47* 1 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 1 49* 1 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 1 51**/ 1 52 1 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 1 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 1 55 2 rb_len fixed bin (21), /* length of request buffer */ 1 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 1 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 1 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 1 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 1 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 1 61 2 test_flag bit (1) unal, /* on if in test mode */ 1 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 1 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 1 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 1 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 1 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 1 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 1 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 1 69 2 reserved bit (27) unal, 1 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 1 71 2 rb_ptr ptr, /* ptr to request buffer */ 1 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 1 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 1 74 2 ttn_ptr ptr, /* pointer to table info structure */ 1 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 1 76 2 lv_ptr ptr, /* pointer linus variables */ 1 77 2 si_ptr ptr, /* pointer to select_info structure */ 1 78 2 setfi_ptr ptr, /* pointer to set function information */ 1 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 1 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 1 81 2 lit_ptr ptr, /* pointer to literal pool */ 1 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 1 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 1 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 1 85* (MR7.0) */ 1 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 1 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 1 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 1 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 1 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 1 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 1 92* for current lila expression */ 1 93 2 unused_timer float bin (63), /* future expansion */ 1 94 2 request_time float bin (63), /* How much request time was spent 1 95* in LINUS. (-1 = user has just enabled 1 96* timing, do not report) */ 1 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 1 98 2 build_increment fixed bin, /* default increment for build mode */ 1 99 2 build_start fixed bin, /* default start count for build mode */ 1 100 2 linus_version char (4), /* current version of LINUS */ 1 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 1 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 1 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 1 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 1 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 1 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 1 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 1 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 1 109 2 word_pad (6) bit (36) unal, 1 110 /* procedures that will be optionally */ 1 111 /* replaced by the user. Saved so they */ 1 112 /* can be reinstated if desired. */ 1 113 2 ssu_abort_line entry options (variable), 1 114 2 ssu_post_request_line variable entry (ptr), 1 115 2 ssu_pre_request_line variable entry (ptr), 1 116 1 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 1 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 1 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 1 120 1 121 dcl lcb_ptr ptr; 1 122 1 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 48 49 2 1 /* BEGIN INCLUDE FILE ... cp_character_types.incl.pl1 */ 2 2 /* Created: June 1982 by G. Palter */ 2 3 2 4 /* Character types used to define Multics command language and subsystem request languages */ 2 5 2 6 dcl (NORMAL_CHARACTER initial ( 0), /* normal everyday character */ 2 7 2 8 WHITESPACE initial ( 1), /* separates tokens but is otherwise ignored (ie: does not 2 9* appear in the command/request name or any arguments */ 2 10 2 11 COMMAND_SEPARATOR initial ( 2), /* separate multiple commands/requests on the line but is 2 12* otherwise ignored (as above) (semi-colon) */ 2 13 COMMAND_SEPARATOR_OR_WHITESPACE initial ( 3), /* separate multiple commands/requests on the line and is also 2 14* treated as whitespace when rescanning |[...] return values 2 15* (newline) */ 2 16 2 17 SINGLE_TOKEN initial ( 4), /* appears as a one character argument to the command/request 2 18* even if not surrounded by whitespace (causes a break) */ 2 19 2 20 COMPOUND_TOKEN initial ( 5), /* appears as an argument to the command/request even if not 2 21* surrounded by whitespace; if several of this type character 2 22* appear on the line without any intervening characters, they 2 23* are merged into a single argument (eg: ^=) */ 2 24 2 25 QUOTE_CHARACTER initial ( 6), /* begin and end a quoted string ("): only the same character 2 26* ends the quoted string (ie: "' isn't a completed string); 2 27* within the string, any occurence of this character must be 2 28* doubled */ 2 29 2 30 ACTIVE_STRING_MODIFIER initial ( 7), /* modifies interpretation of an active string (|) */ 2 31 2 32 BEGIN_ITERATION_1 initial (17), /* starts an iteration set; only matches END_ITERATION_1 */ 2 33 BEGIN_ITERATION_2 initial (18), /* starts an iteration set; only matches END_ITERATION_2 */ 2 34 BEGIN_ITERATION_3 initial (19), /* ... */ 2 35 BEGIN_ITERATION_4 initial (20), /* ... */ 2 36 BEGIN_ITERATION_5 initial (21), /* ... */ 2 37 BEGIN_ITERATION_6 initial (22), /* ... */ 2 38 BEGIN_ITERATION_7 initial (23), /* ... */ 2 39 BEGIN_ITERATION_8 initial (24), /* ... */ 2 40 2 41 END_ITERATION_1 initial (25), /* ends an iteration set; only matches BEGIN_ITERATION_1 */ 2 42 END_ITERATION_2 initial (26), /* ends an iteration set; only matches BEGIN_ITERATION_2 */ 2 43 END_ITERATION_3 initial (27), /* ... */ 2 44 END_ITERATION_4 initial (28), /* ... */ 2 45 END_ITERATION_5 initial (29), /* ... */ 2 46 END_ITERATION_6 initial (30), /* ... */ 2 47 END_ITERATION_7 initial (31), /* ... */ 2 48 END_ITERATION_8 initial (32), /* ... */ 2 49 2 50 BEGIN_ACTIVE_STRING_1 initial (33), /* starts active string; only matches END_ACTIVE_STRING_1 */ 2 51 BEGIN_ACTIVE_STRING_2 initial (34), /* starts active string; only matches END_ACTIVE_STRING_2 */ 2 52 BEGIN_ACTIVE_STRING_3 initial (35), /* ... */ 2 53 BEGIN_ACTIVE_STRING_4 initial (36), /* ... */ 2 54 BEGIN_ACTIVE_STRING_5 initial (37), /* ... */ 2 55 BEGIN_ACTIVE_STRING_6 initial (38), /* ... */ 2 56 BEGIN_ACTIVE_STRING_7 initial (39), /* ... */ 2 57 BEGIN_ACTIVE_STRING_8 initial (40), /* ... */ 2 58 2 59 END_ACTIVE_STRING_1 initial (41), /* ends active string; only matches BEGIN_ACTIVE_STRING_1 */ 2 60 END_ACTIVE_STRING_2 initial (42), /* ends active string; only matches BEGIN_ACTIVE_STRING_2 */ 2 61 END_ACTIVE_STRING_3 initial (43), /* ... */ 2 62 END_ACTIVE_STRING_4 initial (44), /* ... */ 2 63 END_ACTIVE_STRING_5 initial (45), /* ... */ 2 64 END_ACTIVE_STRING_6 initial (46), /* ... */ 2 65 END_ACTIVE_STRING_7 initial (47), /* ... */ 2 66 END_ACTIVE_STRING_8 initial (48)) /* ... */ 2 67 fixed binary (9) unsigned static options (constant); 2 68 2 69 /* END INCLUDE FILE ... cp_character_types.incl.pl1 */ 50 51 3 1 /* BEGIN INCLUDE FILE linus_char_argl.incl.pl1 -- jaw 2/11/77 */ 3 2 3 3 /* HISTORY: 3 4* 3 5* 82-02-05 Paul W. Benjamin: Changed arg_len to fixed bin (21). 3 6* 3 7**/ 3 8 3 9 dcl 1 char_argl aligned based (ca_ptr), /* structure for general char. arg. list */ 3 10 2 nargs fixed bin, /* number of args */ 3 11 2 arg (nargs_init refer (char_argl.nargs)), 3 12 3 arg_ptr ptr, /* ptr to first char. of arg */ 3 13 3 arg_len fixed bin (21); /* no. of chars. in arg */ 3 14 3 15 dcl ca_ptr ptr; 3 16 dcl nargs_init fixed bin; 3 17 3 18 /* END INCLUDE FILE linus_char_argl.incl.pl1 */ 52 53 4 1 /* BEGIN INCLUDE FILE ... ssu_prompt_modes.incl.pl1 */ 4 2 /* Created: 15 February 1982 by G. Palter */ 4 3 4 4 /* Values for use in calls to ssu_$set_prompt_mode to control prompting by the subsystem listener */ 4 5 4 6 dcl PROMPT bit (1) static options (constant) initial ("0"b); 4 7 dcl DONT_PROMPT bit (1) static options (constant) initial ("1"b); 4 8 4 9 dcl PROMPT_AFTER_NULL_LINES bit (2) static options (constant) initial ("01"b); 4 10 dcl DONT_PROMPT_AFTER_NULL_LINES bit (2) static options (constant) initial ("00"b); 4 11 4 12 dcl PROMPT_IF_TYPEAHEAD bit (3) static options (constant) initial ("000"b); 4 13 dcl DONT_PROMPT_IF_TYPEAHEAD bit (3) static options (constant) initial ("001"b); 4 14 4 15 /* For example: 4 16* call ssu_$set_prompt_mode (sci_ptr, PROMPT | DONT_PROMPT_AFTER_NULL_LINES | DONT_PROMPT_IF_TYPEAHEAD); */ 4 17 4 18 /* END INCLUDE FILE ... ssu_prompt_modes.incl.pl1 */ 54 55 5 1 /* BEGIN INCLUDE FILE ... ssu_rp_options.incl.pl1 */ 5 2 /* Created: June 1982 by G. Palter */ 5 3 5 4 /* Options for the standard subsystem request processor */ 5 5 5 6 dcl 1 rp_options aligned based (rp_options_ptr), 5 7 2 version character (8), 5 8 2 language_info, /* defines the request language */ 5 9 3 non_standard_language bit (1) aligned, /* ... ON => use language defined in following array */ 5 10 3 character_types (0 : 511) fixed binary (9) unaligned unsigned, 5 11 2 abbrev_info, /* information related to abbreviation processing ... */ 5 12 3 expand_request_lines bit (1) aligned, /* ... ON => request processor should expand abbreviations */ 5 13 3 default_profile_ptr pointer, /* ... -> profile to use if ".u" given without pathname */ 5 14 3 profile_ptr pointer; /* ... -> abbreviation profile used by this subsystem */ 5 15 5 16 dcl rp_options_ptr pointer; 5 17 5 18 dcl RP_OPTIONS_VERSION_1 character (8) static options (constant) initial ("rpo_0001"); 5 19 5 20 /* END INCLUDE FILE ... ssu_rp_options.incl.pl1 */ 56 57 58 dcl sci_ptr ptr; /* for ssu_ */ 59 dcl code fixed bin (35); 60 dcl scode fixed bin (35); /* used in calls to ssu_ */ 61 dcl i fixed bin; 62 dcl arg char (char_argl.arg_len (i)) based (char_argl.arg_ptr (i)); 63 dcl 1 local_rpo aligned like rp_options; 64 dcl mode_name char (32); 65 dcl mode_sw bit (1); 66 dcl prompt_string char (32) varying based; 67 68 dcl ( 69 linus_error_$bad_mode, 70 linus_error_$long_id, 71 linus_error_$no_input_arg, 72 linus_data_$set_mode_id, 73 sys_info$max_seg_size, 74 linus_error_$too_few_args 75 ) fixed bin (35) ext; 76 77 dcl cleanup condition; 78 dcl (fixed, rel, addr, null, rank, substr) builtin; 79 80 dcl linus$post_request_line entry (ptr); 81 dcl linus$pre_request_line entry (ptr); 82 dcl linus_convert_code entry (fixed bin (35), fixed bin (35), fixed bin (35)); 83 dcl ssu_$abort_line entry options (variable); 84 dcl ssu_$arg_count entry (ptr, fixed bin); 85 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin (21)); 86 dcl ssu_$get_request_processor_options 87 entry (ptr, char(8), ptr, fixed bin(35)); 88 dcl ssu_$set_procedure entry (ptr, char (*), entry, fixed bin (35)); 89 dcl ssu_$set_prompt entry (ptr, char (64) varying); 90 dcl ssu_$set_prompt_mode entry (ptr, bit (*)); 91 dcl ssu_$set_request_processor_options entry (ptr, ptr, fixed bin(35)); 92 93 ca_ptr = null; 94 call ssu_$arg_count (sci_ptr, nargs_init); 95 if nargs_init = 0 then 96 call error (linus_error_$no_input_arg, ""); 97 allocate char_argl in (lcb.static_area); 98 on cleanup begin; 99 if ca_ptr ^= null 100 then free char_argl; 101 end; 102 do i = 1 to nargs_init; 103 call ssu_$arg_ptr (sci_ptr, i, char_argl.arg.arg_ptr (i), char_argl.arg.arg_len (i)); 104 end; 105 do i = 1 to char_argl.nargs; /* for each mode specified */ 106 if substr (arg, 1, 1) = "^" then do; /* turning off */ 107 mode_sw = "0"b; 108 mode_name = substr (arg, 2); 109 end; 110 else do; /* turning on */ 111 mode_sw = "1"b; 112 mode_name = arg; 113 end; 114 if mode_name = "prompt" 115 then do; 116 lcb.prompt_flag = mode_sw; 117 if mode_sw 118 then call ssu_$set_prompt_mode (sci_ptr, PROMPT | DONT_PROMPT_AFTER_NULL_LINES | PROMPT_IF_TYPEAHEAD); 119 else call ssu_$set_prompt_mode (sci_ptr, DONT_PROMPT); 120 end; 121 else if mode_name = "test" then 122 lcb.test_flag = mode_sw; 123 else if mode_name = "pso" | mode_name = "print_search_order" then 124 lcb.pso_flag = mode_sw; 125 else if mode_name = "no_ot" | mode_name = "no_optimize" then 126 lcb.no_ot_flag = mode_sw; 127 else /* if invalid mode */ 128 if mode_name = "set_linus_prompt_string" | mode_name = "slups" 129 then do; 130 if i >= char_argl.nargs then 131 call 132 error (linus_error_$too_few_args, 133 "set_linus_prompt_string needs a string"); 134 i = i + 1; 135 if char_argl.arg_len (i) > 32 then 136 call error (linus_error_$long_id, arg); 137 call ssu_$set_prompt (sci_ptr, (arg)); 138 end; 139 else if mode_name = "set_lila_prompt_string" | mode_name = "slaps" 140 then do; 141 if i >= char_argl.nargs then 142 call 143 error (linus_error_$too_few_args, 144 "set_lila_prompt_string needs a string."); 145 i = i + 1; 146 if char_argl.arg_len (i) > 32 then 147 call error (linus_error_$long_id, arg); 148 lcb.lila_promp_chars_ptr -> prompt_string = arg; 149 end; 150 else if mode_name = "timing" 151 then do; 152 if mode_sw & lcb.timing_mode 153 then ; /* no change */ 154 else if ^mode_sw & ^lcb.timing_mode 155 then ; /* no change */ 156 else if ^mode_sw & lcb.timing_mode 157 then do; /* turn timing off */ 158 call ssu_$set_procedure (sci_ptr, "pre_request_line", lcb.ssu_pre_request_line, scode); 159 if scode ^= 0 160 then call error (scode, ""); 161 call ssu_$set_procedure (sci_ptr, "post_request_line", lcb.ssu_post_request_line, scode); 162 if scode ^= 0 163 then call error (scode, ""); 164 lcb.timing_mode = mode_sw; 165 end; 166 else do; /* turn timing on */ 167 call ssu_$set_procedure (sci_ptr, "pre_request_line", linus$pre_request_line, scode); 168 if scode ^= 0 169 then call error (scode, ""); 170 call ssu_$set_procedure (sci_ptr, "post_request_line", linus$post_request_line, scode); 171 if scode ^= 0 172 then call error (scode, ""); 173 lcb.timing_mode = mode_sw; 174 lcb.request_time = -1; /* Don't report timings this time */ 175 end; 176 end; 177 else if mode_name = "iteration" 178 then do; 179 if mode_sw & lcb.iteration 180 then ; /* no change */ 181 else if ^mode_sw & ^lcb.iteration 182 then ; /* no change */ 183 else do; /* change iteration*/ 184 call ssu_$get_request_processor_options (sci_ptr, RP_OPTIONS_VERSION_1, addr(local_rpo), scode); 185 if scode ^= 0 then call error (scode, ""); 186 187 if mode_sw & ^lcb.iteration 188 then local_rpo.language_info.non_standard_language = "0"b; /* turn iteration on (go back to standard language) */ 189 190 else do; /* turn iteration off */ 191 local_rpo.language_info.non_standard_language = "1"b; 192 local_rpo.language_info.character_types (rank ("(")) = NORMAL_CHARACTER; 193 local_rpo.language_info.character_types (rank (")")) = NORMAL_CHARACTER; 194 end; 195 call ssu_$set_request_processor_options (sci_ptr, addr(local_rpo), scode); 196 if scode ^= 0 then call error (scode, ""); 197 lcb.iteration = mode_sw; 198 end; /* change iteration */ 199 end; 200 else call error (linus_error_$bad_mode, arg); 201 end; /* mode loop */ 202 203 code = 0; 204 if ca_ptr ^= null 205 then free char_argl; 206 return; 207 208 error: 209 proc (icode, msg); 210 211 /* Error procedure, calls convert_code and print_error and then returns. */ 212 213 dcl (icode, ucode) fixed bin (35); 214 dcl msg char (*); 215 216 if ca_ptr ^= null 217 then free char_argl; 218 call linus_convert_code (icode, ucode, linus_data_$set_mode_id); 219 call ssu_$abort_line (sci_ptr, ucode, msg); 220 221 end error; 222 223 end linus_set_mode; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1115.3 linus_set_mode.pl1 >udd>sm>ds>w>ml>linus_set_mode.pl1 48 1 07/29/86 1248.4 linus_lcb.incl.pl1 >ldd>incl>linus_lcb.incl.pl1 50 2 09/09/82 1518.0 cp_character_types.incl.pl1 >ldd>incl>cp_character_types.incl.pl1 52 3 11/23/82 1427.3 linus_char_argl.incl.pl1 >ldd>incl>linus_char_argl.incl.pl1 54 4 04/13/82 1720.2 ssu_prompt_modes.incl.pl1 >ldd>incl>ssu_prompt_modes.incl.pl1 56 5 09/28/82 1537.6 ssu_rp_options.incl.pl1 >ldd>incl>ssu_rp_options.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. DONT_PROMPT 000014 constant bit(1) initial packed unaligned dcl 4-7 set ref 119* DONT_PROMPT_AFTER_NULL_LINES constant bit(2) initial packed unaligned dcl 4-10 ref 117 NORMAL_CHARACTER constant fixed bin(9,0) initial unsigned dcl 2-6 ref 192 193 PROMPT constant bit(1) initial packed unaligned dcl 4-6 ref 117 PROMPT_IF_TYPEAHEAD constant bit(3) initial packed unaligned dcl 4-12 ref 117 RP_OPTIONS_VERSION_1 000000 constant char(8) initial packed unaligned dcl 5-18 set ref 184* addr builtin function dcl 78 ref 184 184 195 195 arg based char packed unaligned dcl 62 in procedure "linus_set_mode" set ref 106 108 112 135* 137 146* 148 200* arg 2 based structure array level 2 in structure "char_argl" dcl 3-9 in procedure "linus_set_mode" arg_len 4 based fixed bin(21,0) array level 3 dcl 3-9 set ref 103* 106 108 112 135 135 135 137 146 146 146 148 200 200 arg_ptr 2 based pointer array level 3 dcl 3-9 set ref 103* 106 108 112 135 137 146 148 200 ca_ptr 000100 automatic pointer dcl 3-15 set ref 93* 97* 99 99 103 103 105 106 106 108 108 112 112 130 135 135 135 135 137 137 141 146 146 146 146 148 148 200 200 200 204 204 216 216 char_argl based structure level 1 dcl 3-9 set ref 97 99 204 216 character_types 3 000106 automatic fixed bin(9,0) array level 3 packed packed unsigned unaligned dcl 63 set ref 192* 193* cleanup 000332 stack reference condition dcl 77 ref 98 code 000103 automatic fixed bin(35,0) dcl 59 set ref 203* i 000105 automatic fixed bin(17,0) dcl 61 set ref 102* 103* 103 103* 105* 106 106 108 108 112 112 130 134* 134 135 135 135 135 137 137 141 145* 145 146 146 146 146 148 148 200 200 200* icode parameter fixed bin(35,0) dcl 213 set ref 208 218* iteration 15(06) based bit(1) level 2 packed packed unaligned dcl 1-53 set ref 179 181 187 197* language_info 2 000106 automatic structure level 2 dcl 63 lcb based structure level 1 dcl 1-53 lcb_ptr parameter pointer dcl 1-121 ref 19 97 116 121 123 125 148 152 154 156 158 161 164 173 174 179 181 187 197 lila_promp_chars_ptr 56 based pointer level 2 dcl 1-53 ref 148 linus$post_request_line 000022 constant entry external dcl 80 ref 170 170 linus$pre_request_line 000024 constant entry external dcl 81 ref 167 167 linus_convert_code 000026 constant entry external dcl 82 ref 218 linus_data_$set_mode_id 000016 external static fixed bin(35,0) dcl 68 set ref 218* linus_error_$bad_mode 000010 external static fixed bin(35,0) dcl 68 set ref 200* linus_error_$long_id 000012 external static fixed bin(35,0) dcl 68 set ref 135* 146* linus_error_$no_input_arg 000014 external static fixed bin(35,0) dcl 68 set ref 95* linus_error_$too_few_args 000020 external static fixed bin(35,0) dcl 68 set ref 130* 141* local_rpo 000106 automatic structure level 1 dcl 63 set ref 184 184 195 195 mode_name 000320 automatic char(32) packed unaligned dcl 64 set ref 108* 112* 114 121 123 123 125 125 127 127 139 139 150 177 mode_sw 000330 automatic bit(1) packed unaligned dcl 65 set ref 107* 111* 116 117 121 123 125 152 154 156 164 173 179 181 187 197 msg parameter char packed unaligned dcl 214 set ref 208 219* nargs based fixed bin(17,0) level 2 dcl 3-9 set ref 97* 99 105 130 141 204 216 nargs_init 000102 automatic fixed bin(17,0) dcl 3-16 set ref 94* 95 97 97 102 no_ot_flag 15(08) based bit(1) level 2 packed packed unaligned dcl 1-53 set ref 125* non_standard_language 2 000106 automatic bit(1) level 3 dcl 63 set ref 187* 191* null builtin function dcl 78 ref 93 99 204 216 prompt_flag 15 based bit(1) level 2 packed packed unaligned dcl 1-53 set ref 116* prompt_string based varying char(32) dcl 66 set ref 148* pso_flag 15(07) based bit(1) level 2 packed packed unaligned dcl 1-53 set ref 123* rank builtin function dcl 78 ref 192 193 request_time 72 based float bin(63) level 2 dcl 1-53 set ref 174* rp_options based structure level 1 dcl 5-6 sci_ptr parameter pointer dcl 58 set ref 19 94* 103* 117* 119* 137* 158* 161* 167* 170* 184* 195* 219* scode 000104 automatic fixed bin(35,0) dcl 60 set ref 158* 159 159* 161* 162 162* 167* 168 168* 170* 171 171* 184* 185 185* 195* 196 196* ssu_$abort_line 000030 constant entry external dcl 83 ref 219 ssu_$arg_count 000032 constant entry external dcl 84 ref 94 ssu_$arg_ptr 000034 constant entry external dcl 85 ref 103 ssu_$get_request_processor_options 000036 constant entry external dcl 86 ref 184 ssu_$set_procedure 000040 constant entry external dcl 88 ref 158 161 167 170 ssu_$set_prompt 000042 constant entry external dcl 89 ref 137 ssu_$set_prompt_mode 000044 constant entry external dcl 90 ref 117 119 ssu_$set_request_processor_options 000046 constant entry external dcl 91 ref 195 ssu_post_request_line 132 based entry variable level 2 dcl 1-53 set ref 161* ssu_pre_request_line 136 based entry variable level 2 dcl 1-53 set ref 158* static_area 144 based area level 2 dcl 1-53 ref 97 substr builtin function dcl 78 ref 106 108 test_flag 15(01) based bit(1) level 2 packed packed unaligned dcl 1-53 set ref 121* timing_mode 15(05) based bit(1) level 2 packed packed unaligned dcl 1-53 set ref 152 154 156 164* 173* ucode 000350 automatic fixed bin(35,0) dcl 213 set ref 218* 219* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE_STRING_MODIFIER internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_1 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_2 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_3 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_4 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_5 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_6 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_7 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ACTIVE_STRING_8 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_1 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_2 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_3 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_4 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_5 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_6 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_7 internal static fixed bin(9,0) initial unsigned dcl 2-6 BEGIN_ITERATION_8 internal static fixed bin(9,0) initial unsigned dcl 2-6 COMMAND_SEPARATOR internal static fixed bin(9,0) initial unsigned dcl 2-6 COMMAND_SEPARATOR_OR_WHITESPACE internal static fixed bin(9,0) initial unsigned dcl 2-6 COMPOUND_TOKEN internal static fixed bin(9,0) initial unsigned dcl 2-6 DONT_PROMPT_IF_TYPEAHEAD internal static bit(3) initial packed unaligned dcl 4-13 END_ACTIVE_STRING_1 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_2 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_3 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_4 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_5 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_6 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_7 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ACTIVE_STRING_8 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_1 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_2 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_3 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_4 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_5 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_6 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_7 internal static fixed bin(9,0) initial unsigned dcl 2-6 END_ITERATION_8 internal static fixed bin(9,0) initial unsigned dcl 2-6 PROMPT_AFTER_NULL_LINES internal static bit(2) initial packed unaligned dcl 4-9 QUOTE_CHARACTER internal static fixed bin(9,0) initial unsigned dcl 2-6 SINGLE_TOKEN internal static fixed bin(9,0) initial unsigned dcl 2-6 WHITESPACE internal static fixed bin(9,0) initial unsigned dcl 2-6 fixed builtin function dcl 78 rel builtin function dcl 78 rp_options_ptr automatic pointer dcl 5-16 sys_info$max_seg_size external static fixed bin(35,0) dcl 68 NAMES DECLARED BY EXPLICIT CONTEXT. error 001352 constant entry internal dcl 208 ref 95 130 135 141 146 159 162 168 171 185 196 200 linus_set_mode 000130 constant entry external dcl 19 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1704 1754 1453 1714 Length 2254 1453 50 263 230 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_set_mode 328 external procedure is an external procedure. on unit on line 98 64 on unit error internal procedure shares stack frame of external procedure linus_set_mode. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_set_mode 000100 ca_ptr linus_set_mode 000102 nargs_init linus_set_mode 000103 code linus_set_mode 000104 scode linus_set_mode 000105 i linus_set_mode 000106 local_rpo linus_set_mode 000320 mode_name linus_set_mode 000330 mode_sw linus_set_mode 000350 ucode error THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac enable_op ext_entry int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. linus$post_request_line linus$pre_request_line linus_convert_code ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$get_request_processor_options ssu_$set_procedure ssu_$set_prompt ssu_$set_prompt_mode ssu_$set_request_processor_options THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. linus_data_$set_mode_id linus_error_$bad_mode linus_error_$long_id linus_error_$no_input_arg linus_error_$too_few_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000124 93 000135 94 000137 95 000150 97 000167 98 000203 99 000217 101 000231 102 000232 103 000241 104 000261 105 000263 106 000273 107 000303 108 000304 109 000311 111 000312 112 000314 114 000320 116 000324 117 000333 119 000355 120 000372 121 000373 123 000410 125 000431 127 000452 130 000462 134 000505 135 000506 137 000535 138 000564 139 000565 141 000575 145 000620 146 000621 148 000650 149 000671 150 000672 152 000676 154 000711 156 000720 158 000724 159 000755 161 000762 162 001020 164 001025 165 001035 167 001036 168 001073 170 001100 171 001140 173 001145 174 001155 176 001157 177 001160 179 001164 181 001177 184 001204 185 001223 187 001230 191 001242 192 001244 193 001252 195 001260 196 001276 197 001303 199 001313 200 001314 201 001335 203 001337 204 001340 206 001351 208 001352 216 001363 218 001374 219 001410 221 001434 ----------------------------------------------------------- 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