COMPILATION LISTING OF SEGMENT linus_list_values Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1526.0 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 4* * * 5* *********************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(86-01-06,Dupuis), approve(86-05-23,MCR7404), audit(86-07-23,GWMay), 10* install(86-07-29,MR12.0-1106): 11* Changed to also work as an active request. Rewritten to make the program 12* easier to understand. 13* END HISTORY COMMENTS */ 14 15 16 /* format: off */ 17 18 /* DESCRIPTION: 19* 20* This is the main level procedure called by ssu_ to implement the 21* linus list_values request. It prints or returns the values of linus 22* variables that are named as arguments. If no arguments are given (for 23* request usage) all variable values are printed. 24**/ 25 26 linus_list_values: proc ( 27 28 sci_ptr_parm, /* input: ptr to the ssu_ info structure */ 29 lcb_ptr_parm /* input: points to the linus control block */ 30 ); 31 32 dcl lcb_ptr_parm ptr parm; 33 dcl sci_ptr_parm ptr parm; 34 35 call initialize; 36 37 if number_of_args_supplied = 0 38 then do loop = 1 to variables.nvars; 39 call print_value (loop); 40 end; 41 else do loop = 1 to number_of_args_supplied; 42 call print_value (lookup_argument_number (loop)); 43 end; 44 45 return; 46 47 initialize: proc; 48 49 sci_ptr = sci_ptr_parm; 50 lcb_ptr = lcb_ptr_parm; 51 lv_ptr = lcb.lv_ptr; 52 53 call ssu_$return_arg (sci_ptr, number_of_args_supplied, 54 active_request_flag, return_value_ptr, return_value_length); 55 if active_request_flag 56 then return_value = ""; 57 58 if lcb.db_index = 0 59 then call ssu_$abort_line (sci_ptr, linus_error_$no_db); 60 61 if lv_ptr = null 62 then call ssu_$abort_line (sci_ptr, linus_error_$no_linus_var); 63 64 if active_request_flag 65 then if number_of_args_supplied = 0 66 then call ssu_$abort_line (sci_ptr, error_table_$noarg, ACTIVE_REQUEST_USAGE_MESSAGE); 67 else if number_of_args_supplied > 1 68 then call ssu_$abort_line (sci_ptr, error_table_$too_many_args, ACTIVE_REQUEST_USAGE_MESSAGE); 69 else; 70 else; 71 72 return; 73 74 end initialize; 75 76 lookup_argument_number: proc ( 77 78 lan_argument_number_parm) /* input: number of current argument */ 79 returns (fixed bin); /* output: position in variables.var_info array of argument */ 80 81 dcl lan_argument_number_parm fixed bin parm; 82 dcl lan_loop fixed bin; 83 84 call ssu_$arg_ptr (sci_ptr, lan_argument_number_parm, arg_ptr, arg_length); 85 if arg_length ^> 1 86 then call ssu_$abort_line (sci_ptr, linus_error_$linus_var_not_defined); 87 else if substr (arg, 1, 1) ^= "!" 88 then call ssu_$abort_line (sci_ptr, linus_error_$inv_linus_var, "^a", arg); 89 90 do lan_loop = 1 to variables.nvars; 91 if substr (arg, 2) = variables.var_info.name (lan_loop) 92 then return (lan_loop); 93 end; 94 95 call ssu_$abort_line (sci_ptr, linus_error_$linus_var_not_defined, "^x^a", arg); 96 97 end lookup_argument_number; 98 99 print_value: proc ( 100 101 pv_variable_index_parm /* input: index of variable in variables.var_info array */ 102 ); 103 104 dcl pv_based_char_string char (4096) based (pv_based_char_string_ptr); 105 dcl pv_based_char_string_ptr ptr; 106 dcl pv_bit_dtype bit (1) aligned; 107 dcl pv_bit_string bit (pv_bit_string_length) based (pv_bit_string_ptr); 108 dcl pv_bit_string_length fixed bin; 109 dcl pv_bit_string_ptr ptr; 110 dcl pv_char_dtype bit (1) aligned; 111 dcl pv_char_string char (4096) varying; 112 dcl pv_char_string_redefined_smaller char (150) varying based (addr (pv_char_string)); 113 dcl pv_code fixed bin (35); 114 dcl pv_length_doesnt_matter fixed bin (21); 115 dcl pv_numeric_dtype bit (1) aligned; 116 dcl pv_variable_index_parm fixed bin parm; 117 118 arg_descriptor_ptr = addr (variables.var_info.desc (pv_variable_index_parm)); 119 120 pv_bit_dtype = (arg_descriptor.type = bit_dtype | arg_descriptor.type = varying_bit_dtype); 121 pv_char_dtype = (arg_descriptor.type = char_dtype | arg_descriptor.type = varying_char_dtype); 122 pv_numeric_dtype = ^(pv_bit_dtype | pv_char_dtype); 123 124 if pv_char_dtype 125 then do; 126 if arg_descriptor.type = char_dtype 127 then pv_based_char_string_ptr = variables.var_info.var_ptr (pv_variable_index_parm); 128 else pv_based_char_string_ptr = addrel (variables.var_info.var_ptr (pv_variable_index_parm), 1); 129 pv_char_string = rtrim (substr (pv_based_char_string, 1, arg_descriptor.size)); 130 end; 131 else if pv_numeric_dtype 132 then do; 133 call linus_convert_num_to_str (variables.var_info.var_ptr (pv_variable_index_parm), 134 arg_descriptor_ptr, pv_char_string_redefined_smaller, pv_code); 135 if pv_code ^= 0 136 then call ssu_$abort_line (sci_ptr, pv_code); 137 end; 138 else do; 139 if arg_descriptor.type = varying_bit_dtype 140 then pv_bit_string_ptr = addrel (variables.var_info.var_ptr (pv_variable_index_parm), 1); 141 else pv_bit_string_ptr = variables.var_info.var_ptr (pv_variable_index_parm); 142 pv_bit_string_length = arg_descriptor.size; 143 call ioa_$rsnnl ("^b", pv_char_string, pv_length_doesnt_matter, pv_bit_string); 144 end; 145 146 if active_request_flag 147 then return_value = pv_char_string; 148 else call ioa_ ("!^a^x=^x^a", variables.var_info.name (pv_variable_index_parm), pv_char_string); 149 150 return; 151 152 end print_value; 153 154 dcl ACTIVE_REQUEST_USAGE_MESSAGE char (34) internal static options (constant) init ("Usage: [list_values VARIABLE_NAME]"); 155 156 dcl active_request_flag bit (1) aligned; 157 dcl addr builtin; 158 dcl addrel builtin; 159 dcl arg char (arg_length) based (arg_ptr); 160 dcl arg_length fixed bin (21); 161 dcl arg_ptr ptr; 162 163 dcl error_table_$noarg fixed bin(35) ext static; 164 dcl error_table_$too_many_args fixed bin(35) ext static; 165 166 dcl fixed builtin; 167 168 dcl ioa_ entry() options(variable); 169 dcl ioa_$rsnnl entry() options(variable); 170 171 dcl linus_convert_num_to_str entry (ptr, ptr, char(150) var, fixed bin(35)); 172 dcl linus_error_$inv_linus_var fixed bin(35) ext static; 173 dcl linus_error_$linus_var_not_defined fixed bin(35) ext static; 174 dcl linus_error_$no_db fixed bin(35) ext static; 175 dcl linus_error_$no_linus_var fixed bin(35) ext static; 176 dcl loop fixed bin; 177 178 dcl null builtin; 179 dcl number_of_args_supplied fixed bin; 180 181 dcl rel builtin; 182 dcl return_value char (return_value_length) varying based (return_value_ptr); 183 dcl return_value_length fixed bin (21); 184 dcl return_value_ptr ptr; 185 dcl rtrim builtin; 186 187 dcl sci_ptr ptr; 188 dcl ssu_$abort_line entry() options(variable); 189 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 190 dcl ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, ptr, fixed bin(21)); 191 dcl substr builtin; 192 dcl sys_info$max_seg_size fixed bin(35) ext static; 193 194 1 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 1 2* 1 3* James R. Davis 1 Mar 79 */ 1 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 1 5 1 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 1 7 2 flag bit (1) unal, 1 8 2 type fixed bin (6) unsigned unal, 1 9 2 packed bit (1) unal, 1 10 2 number_dims fixed bin (4) unsigned unal, 1 11 2 size fixed bin (24) unsigned unal; 1 12 1 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 1 14 2 flag bit (1) unal, 1 15 2 type fixed bin (6) unsigned unal, 1 16 2 packed bit (1) unal, 1 17 2 number_dims fixed bin (4) unsigned unal, 1 18 2 scale fixed bin (11) unal, 1 19 2 precision fixed bin (12) unsigned unal; 1 20 1 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 1 22 2 flag bit (1) unal, /* = "1"b */ 1 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 1 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 1 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 1 26 2 size bit (24) unal, 1 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 1 28 3 low fixed bin (35), 1 29 3 high fixed bin (35), 1 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 1 31 2 real_type fixed bin (18) unsigned unal, 1 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 1 33 1 34 dcl arg_descriptor_ptr ptr; 1 35 1 36 dcl extended_arg_type fixed bin init (58); 1 37 1 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 195 196 2 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 2 7* install(86-07-29,MR12.0-1106): 2 8* Added general_work_area_ptr and renamed sfr_ptr to 2 9* force_retrieve_scope_ptr. 2 10* END HISTORY COMMENTS */ 2 11 2 12 2 13 /* HISTORY: 2 14* 2 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 2 16* 2 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 2 18* a part of the attribute level control work. 2 19* 2 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 2 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 2 22* scope information. 2 23* 2 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 2 25* retaining various vcpu times to be collected when in timing mode. The 2 26* times to be collected are: LINUS parsing time, LINUS processing time, and 2 27* MRDS processing time. 2 28* 2 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 2 30* part of the line numbering implementation. This allows for possible later 2 31* LINUS control of the build defaults. 2 32* 2 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 2 34* information is now retained by ssu_. Removed parse_timer as no longer 2 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 2 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 2 37* 2 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 2 39* subsystem_invocation_level, and selection_expression_identifier. 2 40* 2 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 2 42* table_control_info_ptr. 2 43* 2 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 2 45* 2 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 2 47* 2 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 2 49* 2 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 2 51**/ 2 52 2 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 2 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 2 55 2 rb_len fixed bin (21), /* length of request buffer */ 2 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 2 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 2 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 2 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 2 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 2 61 2 test_flag bit (1) unal, /* on if in test mode */ 2 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 2 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 2 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 2 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 2 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 2 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 2 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 2 69 2 reserved bit (27) unal, 2 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 2 71 2 rb_ptr ptr, /* ptr to request buffer */ 2 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 2 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 2 74 2 ttn_ptr ptr, /* pointer to table info structure */ 2 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 2 76 2 lv_ptr ptr, /* pointer linus variables */ 2 77 2 si_ptr ptr, /* pointer to select_info structure */ 2 78 2 setfi_ptr ptr, /* pointer to set function information */ 2 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 2 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 2 81 2 lit_ptr ptr, /* pointer to literal pool */ 2 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 2 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 2 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 2 85* (MR7.0) */ 2 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 2 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 2 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 2 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 2 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 2 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 2 92* for current lila expression */ 2 93 2 unused_timer float bin (63), /* future expansion */ 2 94 2 request_time float bin (63), /* How much request time was spent 2 95* in LINUS. (-1 = user has just enabled 2 96* timing, do not report) */ 2 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 2 98 2 build_increment fixed bin, /* default increment for build mode */ 2 99 2 build_start fixed bin, /* default start count for build mode */ 2 100 2 linus_version char (4), /* current version of LINUS */ 2 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 2 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 2 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 2 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 2 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 2 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 2 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 2 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 2 109 2 word_pad (6) bit (36) unal, 2 110 /* procedures that will be optionally */ 2 111 /* replaced by the user. Saved so they */ 2 112 /* can be reinstated if desired. */ 2 113 2 ssu_abort_line entry options (variable), 2 114 2 ssu_post_request_line variable entry (ptr), 2 115 2 ssu_pre_request_line variable entry (ptr), 2 116 2 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 2 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 2 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 2 120 2 121 dcl lcb_ptr ptr; 2 122 2 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 197 198 3 1 /* BEGIN INCLUDE FILE linus_variables.incl.pl1 -- jaw 7/19/77 */ 3 2 3 3 dcl 1 variables aligned based (lv_ptr), /* info for all variables */ 3 4 2 nvars_alloc fixed bin, /* no. var. slots alloc. */ 3 5 2 nvars fixed bin, /* no. of variables currently defined */ 3 6 2 var_info (nvars_init refer (variables.nvars_alloc)), 3 7 3 name char (32), /* name of variable */ 3 8 3 var_ptr ptr, /* ptr to curr. value */ 3 9 3 bit_len fixed bin (35), /* bit length of current value */ 3 10 3 assn_type fixed bin, /* assign_ type code of current value */ 3 11 3 assn_len fixed bin (35), /* assign_ length of current value */ 3 12 3 desc bit (36); /* descrptor of current value */ 3 13 3 14 dcl lv_ptr ptr; 3 15 dcl nvars_init fixed bin; 3 16 3 17 /* END INCLUDE FILE linus_variables.incl.pl1 */ 199 200 4 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 4 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 4 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 4 8* Objects of this type are PASCAL string types. 4 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 11* Added the new C types. 4 12* END HISTORY COMMENTS */ 4 13 4 14 /* This include file defines mnemonic names for the Multics 4 15* standard descriptor types, using both pl1 and cobol terminology. 4 16* PG 780613 4 17* JRD 790530 4 18* JRD 791016 4 19* MBW 810731 4 20* TGO 830614 Add hex types. 4 21* Modified June 83 JMAthane to add PASCAL data types 4 22* TGO 840120 Add float dec extended and generic, float binary generic 4 23**/ 4 24 4 25 dcl (real_fix_bin_1_dtype init (1), 4 26 real_fix_bin_2_dtype init (2), 4 27 real_flt_bin_1_dtype init (3), 4 28 real_flt_bin_2_dtype init (4), 4 29 cplx_fix_bin_1_dtype init (5), 4 30 cplx_fix_bin_2_dtype init (6), 4 31 cplx_flt_bin_1_dtype init (7), 4 32 cplx_flt_bin_2_dtype init (8), 4 33 real_fix_dec_9bit_ls_dtype init (9), 4 34 real_flt_dec_9bit_dtype init (10), 4 35 cplx_fix_dec_9bit_ls_dtype init (11), 4 36 cplx_flt_dec_9bit_dtype init (12), 4 37 pointer_dtype init (13), 4 38 offset_dtype init (14), 4 39 label_dtype init (15), 4 40 entry_dtype init (16), 4 41 structure_dtype init (17), 4 42 area_dtype init (18), 4 43 bit_dtype init (19), 4 44 varying_bit_dtype init (20), 4 45 char_dtype init (21), 4 46 varying_char_dtype init (22), 4 47 file_dtype init (23), 4 48 real_fix_dec_9bit_ls_overp_dtype init (29), 4 49 real_fix_dec_9bit_ts_overp_dtype init (30), 4 50 real_fix_bin_1_uns_dtype init (33), 4 51 real_fix_bin_2_uns_dtype init (34), 4 52 real_fix_dec_9bit_uns_dtype init (35), 4 53 real_fix_dec_9bit_ts_dtype init (36), 4 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 4 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 4 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 4 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 4 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 4 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 4 60 real_flt_dec_4bit_bytealigned_dtype init (44), 4 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 4 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 4 63 real_flt_hex_1_dtype init (47), 4 64 real_flt_hex_2_dtype init (48), 4 65 cplx_flt_hex_1_dtype init (49), 4 66 cplx_flt_hex_2_dtype init (50), 4 67 c_typeref_dtype init (54), 4 68 c_enum_dtype init (55), 4 69 c_enum_const_dtype init (56), 4 70 c_union_dtype init (57), 4 71 algol68_straight_dtype init (59), 4 72 algol68_format_dtype init (60), 4 73 algol68_array_descriptor_dtype init (61), 4 74 algol68_union_dtype init (62), 4 75 4 76 cobol_comp_6_dtype init (1), 4 77 cobol_comp_7_dtype init (1), 4 78 cobol_display_ls_dtype init (9), 4 79 cobol_structure_dtype init (17), 4 80 cobol_char_string_dtype init (21), 4 81 cobol_display_ls_overp_dtype init (29), 4 82 cobol_display_ts_overp_dtype init (30), 4 83 cobol_display_uns_dtype init (35), 4 84 cobol_display_ts_dtype init (36), 4 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 4 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 4 87 cobol_comp_5_uns_dtype init (40), 4 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 4 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 4 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 4 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 4 92 cplx_flt_dec_generic_dtype init (84), 4 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 4 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 4 95 4 96 dcl (ft_integer_dtype init (1), 4 97 ft_real_dtype init (3), 4 98 ft_double_dtype init (4), 4 99 ft_complex_dtype init (7), 4 100 ft_complex_double_dtype init (8), 4 101 ft_external_dtype init (16), 4 102 ft_logical_dtype init (19), 4 103 ft_char_dtype init (21), 4 104 ft_hex_real_dtype init (47), 4 105 ft_hex_double_dtype init (48), 4 106 ft_hex_complex_dtype init (49), 4 107 ft_hex_complex_double_dtype init (50) 4 108 ) fixed bin internal static options (constant); 4 109 4 110 dcl (algol68_short_int_dtype init (1), 4 111 algol68_int_dtype init (1), 4 112 algol68_long_int_dtype init (2), 4 113 algol68_real_dtype init (3), 4 114 algol68_long_real_dtype init (4), 4 115 algol68_compl_dtype init (7), 4 116 algol68_long_compl_dtype init (8), 4 117 algol68_bits_dtype init (19), 4 118 algol68_bool_dtype init (19), 4 119 algol68_char_dtype init (21), 4 120 algol68_byte_dtype init (21), 4 121 algol68_struct_struct_char_dtype init (22), 4 122 algol68_struct_struct_bool_dtype init (20) 4 123 ) fixed bin internal static options (constant); 4 124 4 125 dcl (label_constant_runtime_dtype init (24), 4 126 int_entry_runtime_dtype init (25), 4 127 ext_entry_runtime_dtype init (26), 4 128 ext_procedure_runtime_dtype init (27), 4 129 picture_runtime_dtype init (63) 4 130 ) fixed bin internal static options (constant); 4 131 4 132 dcl (pascal_integer_dtype init (1), 4 133 pascal_real_dtype init (4), 4 134 pascal_label_dtype init (24), 4 135 pascal_internal_procedure_dtype init (25), 4 136 pascal_exportable_procedure_dtype init (26), 4 137 pascal_imported_procedure_dtype init (27), 4 138 pascal_typed_pointer_type_dtype init (64), 4 139 pascal_char_dtype init (65), 4 140 pascal_boolean_dtype init (66), 4 141 pascal_record_file_type_dtype init (67), 4 142 pascal_record_type_dtype init (68), 4 143 pascal_set_dtype init (69), 4 144 pascal_enumerated_type_dtype init (70), 4 145 pascal_enumerated_type_element_dtype init (71), 4 146 pascal_enumerated_type_instance_dtype init (72), 4 147 pascal_user_defined_type_dtype init (73), 4 148 pascal_user_defined_type_instance_dtype init (74), 4 149 pascal_text_file_dtype init (75), 4 150 pascal_procedure_type_dtype init (76), 4 151 pascal_variable_formal_parameter_dtype init (77), 4 152 pascal_value_formal_parameter_dtype init (78), 4 153 pascal_entry_formal_parameter_dtype init (79), 4 154 pascal_parameter_procedure_dtype init (80), 4 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 4 156 4 157 4 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 201 202 203 end linus_list_values; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.4 linus_list_values.pl1 >special_ldd>install>MR12.2-1184>linus_list_values.pl1 195 1 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 197 2 07/29/86 1148.4 linus_lcb.incl.pl1 >ldd>include>linus_lcb.incl.pl1 199 3 03/27/82 0434.5 linus_variables.incl.pl1 >ldd>include>linus_variables.incl.pl1 201 4 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.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_REQUEST_USAGE_MESSAGE 000000 constant char(34) initial packed unaligned dcl 154 set ref 64* 67* active_request_flag 000100 automatic bit(1) dcl 156 set ref 53* 55 64 146 addr builtin function dcl 157 ref 118 133 addrel builtin function dcl 158 ref 128 139 arg based char packed unaligned dcl 159 set ref 87 87* 91 95* arg_descriptor based structure level 1 dcl 1-6 arg_descriptor_ptr 000114 automatic pointer dcl 1-34 set ref 118* 120 120 121 121 126 129 133* 139 142 arg_length 000101 automatic fixed bin(21,0) dcl 160 set ref 84* 85 87 87 87 91 95 95 arg_ptr 000102 automatic pointer dcl 161 set ref 84* 87 87 91 95 bit_dtype constant fixed bin(17,0) initial dcl 4-25 ref 120 char_dtype constant fixed bin(17,0) initial dcl 4-25 ref 121 126 db_index based fixed bin(35,0) level 2 dcl 2-53 ref 58 desc 17 based bit(36) array level 3 dcl 3-3 set ref 118 error_table_$noarg 000010 external static fixed bin(35,0) dcl 163 set ref 64* error_table_$too_many_args 000012 external static fixed bin(35,0) dcl 164 set ref 67* extended_arg_type 000116 automatic fixed bin(17,0) initial dcl 1-36 set ref 1-36* ioa_ 000014 constant entry external dcl 168 ref 148 ioa_$rsnnl 000016 constant entry external dcl 169 ref 143 lan_argument_number_parm parameter fixed bin(17,0) dcl 81 set ref 76 84* lan_loop 000142 automatic fixed bin(17,0) dcl 82 set ref 90* 91 91* lcb based structure level 1 dcl 2-53 lcb_ptr 000120 automatic pointer dcl 2-121 set ref 50* 51 58 lcb_ptr_parm parameter pointer dcl 32 ref 26 50 linus_convert_num_to_str 000020 constant entry external dcl 171 ref 133 linus_error_$inv_linus_var 000022 external static fixed bin(35,0) dcl 172 set ref 87* linus_error_$linus_var_not_defined 000024 external static fixed bin(35,0) dcl 173 set ref 85* 95* linus_error_$no_db 000026 external static fixed bin(35,0) dcl 174 set ref 58* linus_error_$no_linus_var 000030 external static fixed bin(35,0) dcl 175 set ref 61* loop 000104 automatic fixed bin(17,0) dcl 176 set ref 37* 39* 41* 42* 42* lv_ptr 32 based pointer level 2 in structure "lcb" dcl 2-53 in procedure "linus_list_values" ref 51 lv_ptr 000122 automatic pointer dcl 3-14 in procedure "linus_list_values" set ref 37 51* 61 90 91 118 126 128 133 139 141 148 name 2 based char(32) array level 3 dcl 3-3 set ref 91 148* null builtin function dcl 178 ref 61 number_of_args_supplied 000105 automatic fixed bin(17,0) dcl 179 set ref 37 41 53* 64 67 nvars 1 based fixed bin(17,0) level 2 dcl 3-3 ref 37 90 pv_based_char_string based char(4096) packed unaligned dcl 104 ref 129 pv_based_char_string_ptr 000152 automatic pointer dcl 105 set ref 126* 128* 129 pv_bit_dtype 000154 automatic bit(1) dcl 106 set ref 120* 122 pv_bit_string based bit packed unaligned dcl 107 set ref 143* pv_bit_string_length 000155 automatic fixed bin(17,0) dcl 108 set ref 142* 143 143 pv_bit_string_ptr 000156 automatic pointer dcl 109 set ref 139* 141* 143 pv_char_dtype 000160 automatic bit(1) dcl 110 set ref 121* 122 124 pv_char_string 000161 automatic varying char(4096) dcl 111 set ref 129* 133 143* 146 148* pv_char_string_redefined_smaller based varying char(150) dcl 112 set ref 133* pv_code 002162 automatic fixed bin(35,0) dcl 113 set ref 133* 135 135* pv_length_doesnt_matter 002163 automatic fixed bin(21,0) dcl 114 set ref 143* pv_numeric_dtype 002164 automatic bit(1) dcl 115 set ref 122* 131 pv_variable_index_parm parameter fixed bin(17,0) dcl 116 ref 99 118 126 128 133 139 141 148 return_value based varying char dcl 182 set ref 55* 146* return_value_length 000106 automatic fixed bin(21,0) dcl 183 set ref 53* 55 146 return_value_ptr 000110 automatic pointer dcl 184 set ref 53* 55 146 rtrim builtin function dcl 185 ref 129 sci_ptr 000112 automatic pointer dcl 187 set ref 49* 53* 58* 61* 64* 67* 84* 85* 87* 95* 135* sci_ptr_parm parameter pointer dcl 33 ref 26 49 size 0(12) based fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 1-6 ref 129 142 ssu_$abort_line 000032 constant entry external dcl 188 ref 58 61 64 67 85 87 95 135 ssu_$arg_ptr 000034 constant entry external dcl 189 ref 84 ssu_$return_arg 000036 constant entry external dcl 190 ref 53 substr builtin function dcl 191 ref 87 91 129 type 0(01) based fixed bin(6,0) level 2 packed packed unsigned unaligned dcl 1-6 ref 120 120 121 121 126 139 var_info 2 based structure array level 2 dcl 3-3 var_ptr 12 based pointer array level 3 dcl 3-3 set ref 126 128 133* 139 141 variables based structure level 1 dcl 3-3 varying_bit_dtype constant fixed bin(17,0) initial dcl 4-25 ref 120 139 varying_char_dtype constant fixed bin(17,0) initial dcl 4-25 ref 121 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 4-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 4-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 4-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 4-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 4-25 area_dtype internal static fixed bin(17,0) initial dcl 4-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 4-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 4-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 4-25 c_union_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 4-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 4-25 entry_dtype internal static fixed bin(17,0) initial dcl 4-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 extended_arg_descriptor based structure level 1 dcl 1-21 file_dtype internal static fixed bin(17,0) initial dcl 4-25 fixed builtin function dcl 166 fixed_arg_descriptor based structure level 1 dcl 1-13 ft_char_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 4-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 4-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 label_dtype internal static fixed bin(17,0) initial dcl 4-25 nvars_init automatic fixed bin(17,0) dcl 3-15 offset_dtype internal static fixed bin(17,0) initial dcl 4-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 4-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 4-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 pointer_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 4-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 4-25 rel builtin function dcl 181 structure_dtype internal static fixed bin(17,0) initial dcl 4-25 sys_info$max_seg_size external static fixed bin(35,0) dcl 192 NAMES DECLARED BY EXPLICIT CONTEXT. initialize 000112 constant entry internal dcl 47 ref 35 linus_list_values 000045 constant entry external dcl 26 lookup_argument_number 000262 constant entry internal dcl 76 ref 42 42 print_value 000452 constant entry internal dcl 99 ref 39 42 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1130 1170 753 1140 Length 1462 753 40 255 155 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_list_values 1230 external procedure is an external procedure. initialize internal procedure shares stack frame of external procedure linus_list_values. lookup_argument_number internal procedure shares stack frame of external procedure linus_list_values. print_value internal procedure shares stack frame of external procedure linus_list_values. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_list_values 000100 active_request_flag linus_list_values 000101 arg_length linus_list_values 000102 arg_ptr linus_list_values 000104 loop linus_list_values 000105 number_of_args_supplied linus_list_values 000106 return_value_length linus_list_values 000110 return_value_ptr linus_list_values 000112 sci_ptr linus_list_values 000114 arg_descriptor_ptr linus_list_values 000116 extended_arg_type linus_list_values 000120 lcb_ptr linus_list_values 000122 lv_ptr linus_list_values 000142 lan_loop lookup_argument_number 000152 pv_based_char_string_ptr print_value 000154 pv_bit_dtype print_value 000155 pv_bit_string_length print_value 000156 pv_bit_string_ptr print_value 000160 pv_char_dtype print_value 000161 pv_char_string print_value 002162 pv_code print_value 002163 pv_length_doesnt_matter print_value 002164 pv_numeric_dtype print_value THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return_mac signal_op ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ ioa_$rsnnl linus_convert_num_to_str ssu_$abort_line ssu_$arg_ptr ssu_$return_arg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$noarg error_table_$too_many_args linus_error_$inv_linus_var linus_error_$linus_var_not_defined linus_error_$no_db linus_error_$no_linus_var LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000041 1 36 000052 35 000054 37 000055 39 000067 40 000071 41 000074 42 000103 43 000107 45 000111 47 000112 49 000113 50 000117 51 000122 53 000124 55 000143 58 000147 61 000166 64 000207 67 000236 72 000261 76 000262 84 000264 85 000302 87 000323 90 000361 91 000371 93 000412 95 000414 97 000446 99 000452 118 000454 120 000461 121 000474 122 000503 124 000506 126 000511 128 000520 129 000525 130 000551 131 000552 133 000554 135 000573 137 000612 139 000613 141 000623 142 000627 143 000632 146 000663 148 000700 150 000733 ----------------------------------------------------------- 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