COMPILATION LISTING OF SEGMENT add_line_numbers Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 01/19/88 1501.8 mst Tue Options: optimize map 1 /****^ ****************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* ****************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(87-12-03,TLNguyen), approve(87-12-03,MCR7806), 14* audit(87-12-10,Lippard), install(88-01-19,MR12.2-1015): 15* - Fixed string range condition occured in the copy internal procedure. 16* - Replace the hcs_$initiate_count entrypoint in the get_seg internal 17* procedure with the initiate_file_ to meet standards and add the include 18* file named access_mode_values.incl.pl1. 19* - Replace the "^a>^a" argument string in com_err_ with the pathname_. 20* - Remove error_table_$badopt and error_table_$segknown entrypoints 21* from the source since they are not referenced anywhere within it. 22* END HISTORY COMMENTS */ 23 24 25 add_line_numbers: aln: proc; 26 27 /* * This procedure adds or deletes line numbers from the beginning of each line or a specified segment. 28* * It also discards characters at the end of a segment that does not end with a new_line character. 29* * 30* * add_line_numbers, aln path [sequence_number] [increment] 31* * 32* * default values: 33* * sequence_number = 100 34* * increment = 10 35* * 36* * delete_line_numbers, dln path 37* * 38* * This procedure strips off leading digits from a line. If the line does not begin with a digit, 39* * it is kept unchanged. If the leading digits are followed by a blank, then one blank is also removed. 40* * 41* * " 20 abc" -> " 20 abc" no leading digit 42* * "20 abc" -> "abc" 43* * "20abc" -> "abc" 44* * "20 abc" -> " abc" only one blank is removed 45* * 46* * Written 3/76 by S.E. Barr 47**/ 48 /* Bug fixed that adds null chars 06/24/81 S. Herbst */ 49 50 /* automatic */ 51 52 dcl arg_len fixed bin; 53 dcl arg_ptr ptr; 54 dcl bit_count fixed bin (24); 55 dcl command_name char (19); 56 dcl code fixed bin (35); 57 dcl directory_name char (168) aligned; 58 dcl entry_name char (32) aligned; 59 dcl i fixed bin (21); /* num characters in line */ 60 dcl increment fixed bin; 61 dcl nargs fixed bin; /* number of arguments to command */ 62 dcl number_pic pic "99999"; /* leading zeros */ 63 dcl seg_length fixed bin (21); 64 dcl seg_ptr ptr init (null); 65 dcl seq_number fixed bin; 66 dcl start fixed bin (21); 67 dcl temp_length fixed bin (21); 68 dcl temp_ptr ptr init (null); 69 70 dcl (addr, length, substr, index, verify, null, divide) builtin; 71 72 dcl cleanup condition; 73 74 /* constants */ 75 76 dcl DIGIT char (10) int static options (constant) init ("0123456789"); 77 dcl edit_max_number fixed bin int static options (constant) init (99999); 78 dcl NEW_LINE char int static options (constant) init (" 79 "); 80 81 /* based */ 82 83 dcl arg char (arg_len) based (arg_ptr); 84 dcl ptr_array (1) ptr based; 85 dcl seg char (seg_length) based (seg_ptr); 86 dcl temp char (temp_length) based (temp_ptr); 87 88 89 /* external */ 90 91 dcl com_err_ entry options (variable); 92 dcl cu_$arg_count entry (fixed bin); 93 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 94 dcl dfast_error_ entry (fixed bin (35), char (*), char (*)); 95 dcl error_table_$wrong_no_of_args fixed bin (35) ext; 96 dcl expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin (35)); 97 dcl fst_cv_line_num_ entry (char (*), fixed bin, fixed bin (35)) returns (bit (1) unal); 98 dcl get_temp_segments_ entry (char (*), (*) ptr, fixed bin (35)); 99 dcl hcs_$set_bc_seg entry (ptr, fixed bin (24), fixed bin (35)); 100 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 101 dcl hcs_$truncate_seg entry (ptr, fixed bin (21), fixed bin (35)); 102 dcl initiate_file_ entry (char (*) aligned, char (*) aligned, bit (*), pointer, fixed bin (24), fixed bin (35)); 103 dcl pathname_ entry (char (*) aligned , char (*) aligned) returns (char (168)); 104 dcl release_temp_segments_ entry (char (*), (*)ptr, fixed bin (35)); 105 106 1 1 /* BEGIN INCLUDE ... dfast_error_codes.incl.pl1 */ 1 2 1 3 dcl error_alt_empty fixed bin (35) int static init (1)options (constant); 1 4 dcl error_max_size fixed bin (35) int static init (2)options (constant); 1 5 dcl error_cur_empty fixed bin (35) int static init (3)options (constant); 1 6 dcl error_not_saved fixed bin (35) int static init (4)options (constant); 1 7 dcl error_name_dup fixed bin (35) int static init (5)options (constant); 1 8 dcl error_long_rec fixed bin (35) int static init (6)options (constant); 1 9 dcl error_unknown_arg fixed bin (35) int static init (7)options (constant); 1 10 dcl error_no_expl fixed bin (35) int static init (8)options (constant); 1 11 dcl error_bad_name fixed bin (35) int static init (9)options (constant); 1 12 dcl error_bad_req fixed bin (35) int static init (10)options (constant); 1 13 dcl error_syntax_string fixed bin (35) int static init (11)options (constant); 1 14 dcl error_name_miss fixed bin (35) int static init (12)options (constant); 1 15 dcl error_no_comp fixed bin (35) int static init (13)options (constant); 1 16 dcl error_no_main fixed bin (35) int static init (14)options (constant); 1 17 dcl error_block_spec fixed bin (35) int static init (15)options (constant); 1 18 dcl error_obj_nop fixed bin (35) int static init (16)options (constant); 1 19 dcl error_sav_cur fixed bin (35) int static init (17)options (constant); 1 20 dcl error_bad_type fixed bin (35) int static init (18)options (constant); 1 21 dcl error_unkn_sys fixed bin (35) int static init (19)options (constant); 1 22 dcl error_no_suffix fixed bin (35) int static init (20)options (constant); 1 23 dcl error_no_nl fixed bin (35) int static init (21)options (constant); 1 24 dcl error_bad_sort fixed bin (35) int static init (22)options (constant); 1 25 dcl error_no_num fixed bin (35) int static init (23)options (constant); 1 26 dcl error_line_miss fixed bin (35) int static init (24)options (constant); 1 27 dcl error_request_miss fixed bin (35) int static init (25)options (constant); 1 28 dcl error_bad_line fixed bin (35) int static init (26)options (constant); 1 29 dcl error_no_string fixed bin (35) int static init (27)options (constant); 1 30 dcl error_line_order fixed bin (35) int static init (28)options (constant); 1 31 dcl error_max_lines fixed bin (35) int static init (29)options (constant); 1 32 dcl error_bad_pathname fixed bin (35) int static init (30)options (constant); 1 33 dcl error_access_mode fixed bin (35) int static init (31)options (constant); 1 34 dcl error_delimiter_miss fixed bin (35) int static init (32)options (constant); 1 35 dcl error_size_fixed_record fixed bin (35) int static init (33)options (constant); 1 36 dcl error_bad_rec_len fixed bin (35) int static init (34)options (constant); 1 37 dcl error_string_size fixed bin (35) int static init (35)options (constant); 1 38 dcl error_max_line_number fixed bin (35) int static init (36)options (constant); 1 39 dcl error_max_args fixed bin (35) int static init (37)options (constant); 1 40 dcl error_name_sys fixed bin (35) int static init (38)options (constant); 1 41 dcl error_dprint_map fixed bin (35) int static init (39)options (constant); 1 42 dcl error_max_num fixed bin (35) int static options (constant) init (40); 1 43 dcl error_edit_max_num fixed bin (35) int static options (constant) init (41); 1 44 dcl error_un_num_text fixed bin (35) int static options (constant) init (42); 1 45 dcl error_no_new_line fixed bin (35) int static options (constant) init (43); 1 46 1 47 /* END INCLUDE ... dfast_error_codes.incl.pl1 */ 107 108 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 109 110 111 /* */ 112 command_name = "add_line_numbers"; 113 114 /* parse arguments for pathname and optionsl sequence number and increment */ 115 116 call cu_$arg_count (nargs); 117 if nargs > 0 & nargs <= 3 then do; 118 119 temp_ptr, seg_ptr = null; 120 on cleanup call term_seg; 121 122 if get_seg () then do; 123 seq_number = 100; 124 increment = 10; 125 126 if nargs >= 2 then do; 127 call cu_$arg_ptr (2, arg_ptr, arg_len, code); 128 if code = 0 then do; 129 if fst_cv_line_num_ (arg, seq_number, code) then do; 130 if nargs = 3 then do; 131 call cu_$arg_ptr (3, arg_ptr, arg_len, code); 132 if code = 0 then if fst_cv_line_num_ (arg, increment, code) then; 133 end; 134 end; 135 end; 136 if code ^= 0 then call dfast_error_ (code, command_name, arg); 137 end; 138 139 140 /* loop through the text adding the numbers to each line. The only error that can occur, is exceeding the max line number */ 141 142 if code = 0 then do; 143 do start = 1 repeat (start + i) while (start <= seg_length & code = 0); 144 145 if seq_number <= edit_max_number then do; 146 i = index (substr (seg, start), NEW_LINE); 147 if i > 0 then do; 148 number_pic = seq_number; 149 call copy (number_pic || " "); 150 call copy (substr (seg, start, i)); 151 end; 152 else i = seg_length + 1; /* discard rest of the characters */ 153 seq_number = seq_number + increment; 154 end; 155 else code = error_edit_max_num; 156 end; 157 158 if code = 0 then call switch; 159 else call dfast_error_ (code, command_name, ""); 160 end; 161 end; 162 call term_seg; 163 end; 164 else call com_err_ (error_table_$wrong_no_of_args, command_name, """path seq_number increment"""); 165 166 return; 167 168 /* */ 169 delete_line_numbers: dln: entry; 170 171 command_name = "delete_line_numbers"; 172 call cu_$arg_count (nargs); 173 if nargs = 1 then do; 174 175 temp_ptr, seg_ptr = null; 176 on cleanup call term_seg; 177 178 if get_seg () then do; 179 do start = 1 repeat (start + i) while (start <= seg_length); 180 i = verify (substr (seg, start), DIGIT); 181 if i > 0 then do; 182 if i > 1 then if substr (seg, start + i -1, 1) = " " then i = i + 1; 183 start = start + i -1; 184 i = index (substr (seg, start), NEW_LINE); 185 if i = 0 then i = seg_length; /* discard line fragment */ 186 else call copy (substr (seg, start, i)); 187 end; 188 else i = seg_length; /* discard line fragment */ 189 end; 190 call switch; 191 end; 192 call term_seg; 193 end; 194 else call com_err_ (error_table_$wrong_no_of_args, command_name, "pathname is missing"); 195 196 return; 197 198 /* */ 199 get_seg: proc returns (bit (1) unal); 200 201 202 call cu_$arg_ptr (1, arg_ptr, arg_len, code); 203 if code = 0 then do; 204 call expand_path_ (arg_ptr, arg_len, addr (directory_name), addr (entry_name), code); 205 if code = 0 then do; 206 call initiate_file_ (directory_name, entry_name, R_ACCESS, seg_ptr, bit_count, code); 207 if seg_ptr ^= null then do; 208 if bit_count > 0 then do; 209 seg_length = divide (bit_count, 9, 21, 0); 210 call get_temp_segments_ ("fast", addr (temp_ptr) -> ptr_array, code); 211 temp_length = 0; 212 if code = 0 then return ("1"b); 213 end; 214 else call com_err_ (0, command_name, "segment is empty", arg); 215 end; 216 else call com_err_ (code, command_name, pathname_ (directory_name, entry_name)); 217 end; 218 else call com_err_ (code, command_name, arg); 219 end; 220 else call com_err_ (code, command_name, "pathname is missing"); 221 222 return ("0"b); 223 224 end get_seg; 225 226 /* */ 227 copy: proc (string); 228 229 dcl string char (*); 230 dcl next_position fixed bin; 231 232 next_position = temp_length + 1; 233 temp_length = temp_length + length (string); 234 substr (temp, next_position, length (string)) = string; 235 236 237 return; 238 239 end copy; 240 241 242 243 term_seg: proc; 244 245 if seg_ptr ^= null then call hcs_$terminate_noname (seg_ptr, 0); 246 if temp_ptr ^= null then call release_temp_segments_ (command_name, addr (temp_ptr) -> ptr_array, code); 247 248 return; 249 250 end term_seg; 251 252 253 switch: proc; 254 255 seg_length = temp_length; 256 bit_count = seg_length * 9; 257 seg = temp; 258 call hcs_$set_bc_seg (seg_ptr, bit_count, code); 259 if code = 0 then call hcs_$truncate_seg (seg_ptr, divide (bit_count + 35, 36, 21, 0), code); 260 261 return; 262 263 end switch; 264 265 end add_line_numbers; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/19/88 1501.8 add_line_numbers.pl1 >spec>install>MR12.2-1015>add_line_numbers.pl1 107 1 03/27/82 0439.4 dfast_error_codes.incl.pl1 >ldd>include>dfast_error_codes.incl.pl1 109 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. DIGIT 000000 constant char(10) initial unaligned dcl 76 ref 180 NEW_LINE constant char(1) initial unaligned dcl 78 ref 146 184 R_ACCESS 000006 constant bit(3) initial unaligned dcl 2-11 set ref 206* addr builtin function dcl 70 ref 204 204 204 204 210 246 arg based char unaligned dcl 83 set ref 129* 132* 136* 214* 218* arg_len 000100 automatic fixed bin(17,0) dcl 52 set ref 127* 129 129 131* 132 132 136 136 202* 204* 214 214 218 218 arg_ptr 000102 automatic pointer dcl 53 set ref 127* 129 131* 132 136 202* 204* 214 218 bit_count 000104 automatic fixed bin(24,0) dcl 54 set ref 206* 208 209 256* 258* 259 259 cleanup 000214 stack reference condition dcl 72 ref 120 176 code 000112 automatic fixed bin(35,0) dcl 56 set ref 127* 128 129* 131* 132 132* 136 136* 142 143 155* 158 159* 202* 203 204* 205 206* 210* 212 216* 218* 220* 246* 258* 259 259* com_err_ 000010 constant entry external dcl 91 ref 164 194 214 216 218 220 command_name 000105 automatic char(19) unaligned dcl 55 set ref 112* 136* 159* 164* 171* 194* 214* 216* 218* 220* 246* cu_$arg_count 000012 constant entry external dcl 92 ref 116 172 cu_$arg_ptr 000014 constant entry external dcl 93 ref 127 131 202 dfast_error_ 000016 constant entry external dcl 94 ref 136 159 directory_name 000113 automatic char(168) dcl 57 set ref 204 204 206* 216* 216* divide builtin function dcl 70 ref 209 259 259 edit_max_number constant fixed bin(17,0) initial dcl 77 ref 145 entry_name 000165 automatic char(32) dcl 58 set ref 204 204 206* 216* 216* error_edit_max_num constant fixed bin(35,0) initial dcl 1-43 ref 155 error_table_$wrong_no_of_args 000020 external static fixed bin(35,0) dcl 95 set ref 164* 194* expand_path_ 000022 constant entry external dcl 96 ref 204 fst_cv_line_num_ 000024 constant entry external dcl 97 ref 129 132 get_temp_segments_ 000026 constant entry external dcl 98 ref 210 hcs_$set_bc_seg 000030 constant entry external dcl 99 ref 258 hcs_$terminate_noname 000032 constant entry external dcl 100 ref 245 hcs_$truncate_seg 000034 constant entry external dcl 101 ref 259 i 000175 automatic fixed bin(21,0) dcl 59 set ref 146* 147 150 150 152* 156 180* 181 182 182 182* 182 183 184* 185 185* 186 186 188* 189 increment 000176 automatic fixed bin(17,0) dcl 60 set ref 124* 132* 153 index builtin function dcl 70 ref 146 184 initiate_file_ 000036 constant entry external dcl 102 ref 206 length builtin function dcl 70 ref 233 234 nargs 000177 automatic fixed bin(17,0) dcl 61 set ref 116* 117 117 126 130 172* 173 next_position 000100 automatic fixed bin(17,0) dcl 230 set ref 232* 234 null builtin function dcl 70 ref 64 68 119 175 207 245 246 number_pic 000200 automatic picture(5) unaligned dcl 62 set ref 148* 149 pathname_ 000040 constant entry external dcl 103 ref 216 216 ptr_array based pointer array dcl 84 set ref 210* 246* release_temp_segments_ 000042 constant entry external dcl 104 ref 246 seg based char unaligned dcl 85 set ref 146 150 150 180 182 184 186 186 257* seg_length 000202 automatic fixed bin(21,0) dcl 63 set ref 143 146 150 150 152 179 180 182 184 185 186 186 188 209* 255* 256 257 seg_ptr 000204 automatic pointer initial dcl 64 set ref 64* 119* 146 150 150 175* 180 182 184 186 186 206* 207 245 245* 257 258* 259* seq_number 000206 automatic fixed bin(17,0) dcl 65 set ref 123* 129* 145 148 153* 153 start 000207 automatic fixed bin(21,0) dcl 66 set ref 143* 143* 146 150 150* 156 179* 179* 180 182 183* 183 184 186 186* 189 string parameter char unaligned dcl 229 ref 227 233 234 234 substr builtin function dcl 70 set ref 146 150 150 180 182 184 186 186 234* temp based char unaligned dcl 86 set ref 234* 257 temp_length 000210 automatic fixed bin(21,0) dcl 67 set ref 211* 232 233* 233 234 255 257 temp_ptr 000212 automatic pointer initial dcl 68 set ref 68* 119* 175* 210 234 246 246 257 verify builtin function dcl 70 ref 180 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-33 E_ACCESS internal static bit(3) initial unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 M_ACCESS internal static bit(3) initial unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_ACCESS internal static bit(3) initial unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 REW_ACCESS internal static bit(3) initial unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS internal static bit(3) initial unaligned dcl 2-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 S_ACCESS internal static bit(3) initial unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 W_ACCESS internal static bit(3) initial unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 error_access_mode internal static fixed bin(35,0) initial dcl 1-33 error_alt_empty internal static fixed bin(35,0) initial dcl 1-3 error_bad_line internal static fixed bin(35,0) initial dcl 1-28 error_bad_name internal static fixed bin(35,0) initial dcl 1-11 error_bad_pathname internal static fixed bin(35,0) initial dcl 1-32 error_bad_rec_len internal static fixed bin(35,0) initial dcl 1-36 error_bad_req internal static fixed bin(35,0) initial dcl 1-12 error_bad_sort internal static fixed bin(35,0) initial dcl 1-24 error_bad_type internal static fixed bin(35,0) initial dcl 1-20 error_block_spec internal static fixed bin(35,0) initial dcl 1-17 error_cur_empty internal static fixed bin(35,0) initial dcl 1-5 error_delimiter_miss internal static fixed bin(35,0) initial dcl 1-34 error_dprint_map internal static fixed bin(35,0) initial dcl 1-41 error_line_miss internal static fixed bin(35,0) initial dcl 1-26 error_line_order internal static fixed bin(35,0) initial dcl 1-30 error_long_rec internal static fixed bin(35,0) initial dcl 1-8 error_max_args internal static fixed bin(35,0) initial dcl 1-39 error_max_line_number internal static fixed bin(35,0) initial dcl 1-38 error_max_lines internal static fixed bin(35,0) initial dcl 1-31 error_max_num internal static fixed bin(35,0) initial dcl 1-42 error_max_size internal static fixed bin(35,0) initial dcl 1-4 error_name_dup internal static fixed bin(35,0) initial dcl 1-7 error_name_miss internal static fixed bin(35,0) initial dcl 1-14 error_name_sys internal static fixed bin(35,0) initial dcl 1-40 error_no_comp internal static fixed bin(35,0) initial dcl 1-15 error_no_expl internal static fixed bin(35,0) initial dcl 1-10 error_no_main internal static fixed bin(35,0) initial dcl 1-16 error_no_new_line internal static fixed bin(35,0) initial dcl 1-45 error_no_nl internal static fixed bin(35,0) initial dcl 1-23 error_no_num internal static fixed bin(35,0) initial dcl 1-25 error_no_string internal static fixed bin(35,0) initial dcl 1-29 error_no_suffix internal static fixed bin(35,0) initial dcl 1-22 error_not_saved internal static fixed bin(35,0) initial dcl 1-6 error_obj_nop internal static fixed bin(35,0) initial dcl 1-18 error_request_miss internal static fixed bin(35,0) initial dcl 1-27 error_sav_cur internal static fixed bin(35,0) initial dcl 1-19 error_size_fixed_record internal static fixed bin(35,0) initial dcl 1-35 error_string_size internal static fixed bin(35,0) initial dcl 1-37 error_syntax_string internal static fixed bin(35,0) initial dcl 1-13 error_un_num_text internal static fixed bin(35,0) initial dcl 1-44 error_unkn_sys internal static fixed bin(35,0) initial dcl 1-21 error_unknown_arg internal static fixed bin(35,0) initial dcl 1-9 NAMES DECLARED BY EXPLICIT CONTEXT. add_line_numbers 000110 constant entry external dcl 25 aln 000100 constant entry external dcl 25 copy 001352 constant entry internal dcl 227 ref 149 150 186 delete_line_numbers 000566 constant entry external dcl 169 dln 000556 constant entry external dcl 169 get_seg 001014 constant entry internal dcl 199 ref 122 178 switch 001456 constant entry internal dcl 253 ref 158 190 term_seg 001404 constant entry internal dcl 243 ref 120 162 176 192 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2204 2250 1735 2214 Length 2516 1735 44 232 246 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME aln 301 external procedure is an external procedure. on unit on line 120 64 on unit on unit on line 176 64 on unit get_seg internal procedure shares stack frame of external procedure aln. copy 66 internal procedure is called during a stack extension. term_seg 86 internal procedure is called by several nonquick procedures. switch internal procedure shares stack frame of external procedure aln. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME aln 000100 arg_len aln 000102 arg_ptr aln 000104 bit_count aln 000105 command_name aln 000112 code aln 000113 directory_name aln 000165 entry_name aln 000175 i aln 000176 increment aln 000177 nargs aln 000200 number_pic aln 000202 seg_length aln 000204 seg_ptr aln 000206 seq_number aln 000207 start aln 000210 temp_length aln 000212 temp_ptr aln copy 000100 next_position copy THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr dfast_error_ expand_path_ fst_cv_line_num_ get_temp_segments_ hcs_$set_bc_seg hcs_$terminate_noname hcs_$truncate_seg initiate_file_ pathname_ release_temp_segments_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 64 000072 68 000074 25 000077 112 000116 116 000121 117 000130 119 000134 120 000137 122 000161 123 000166 124 000170 126 000172 127 000175 128 000214 129 000216 130 000251 131 000254 132 000273 136 000330 142 000356 143 000360 145 000367 146 000372 147 000412 148 000413 149 000423 150 000440 151 000461 152 000463 153 000466 154 000470 155 000471 156 000473 158 000476 159 000502 162 000523 163 000527 164 000530 166 000554 169 000555 171 000574 172 000577 173 000606 175 000611 176 000614 178 000636 179 000643 180 000651 181 000671 182 000672 183 000702 184 000706 185 000724 186 000730 187 000747 188 000751 189 000753 190 000756 192 000757 193 000763 194 000764 196 001013 199 001014 202 001016 203 001035 204 001037 205 001062 206 001064 207 001121 208 001125 209 001127 210 001131 211 001154 212 001155 213 001165 214 001166 215 001223 216 001224 217 001266 218 001267 219 001313 220 001314 222 001343 227 001351 232 001365 233 001371 234 001373 237 001402 243 001403 245 001411 246 001427 248 001455 253 001456 255 001457 256 001461 257 001463 258 001472 259 001505 261 001526 ----------------------------------------------------------- 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