COMPILATION LISTING OF SEGMENT make_volume_labels Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/25/86 0843.6 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 make_volume_labels: proc; 12 13 /* This command generates data used to print paper labels for 14* tape reels, disk packs, etc. 15* 16* Written (read "cribbed after make_tape_labels") 03/79 by C. D. Tavares 17* Modified 09/81 by M.R. Jordan to fix a bug in -height processing. */ 18 19 dcl cu_$arg_count ext entry (fixed bin), 20 cu_$arg_list_ptr ext entry (pointer), 21 cu_$arg_ptr_rel ext entry (fixed bin, pointer, fixed bin, fixed bin (35), pointer), 22 (com_err_, com_err_$suppress_name, ioa_$rsnnl) ext entry options (variable); 23 24 dcl authenticate_ ext entry (char (*)) returns (char (3) aligned), 25 bigletter_$five ext entry (char (*) aligned, entry), 26 resource_info_$canonicalize_name entry (char (*), char (*), char (*), fixed bin (35)); 27 28 dcl alp pointer, 29 nargs fixed bin; 30 31 dcl (NEWLINE char (1) initial (" 32 "), 33 RETURN char (1) initial (" "), 34 usage_line char (128) initial 35 ("Usage: make_volume_labels resource_name1 {-to resource_nameN} {-control_args}")) static options (constant); 36 37 dcl (error_table_$bad_arg, 38 error_table_$bad_conversion, 39 error_table_$inconsistent, 40 error_table_$badopt, 41 error_table_$noarg) ext fixed bin (35) static; 42 1 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 1 2 1 3 /* Written 05/04/78 by C. D. Tavares */ 1 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 1 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 1 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 1 7 1 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 1 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 1 10 iox_$close entry (pointer, fixed bin (35)), 1 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 1 12 iox_$delete_record entry (pointer, fixed bin (35)), 1 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 1 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 1 15 iox_$err_not_attached entry options (variable), 1 16 iox_$err_not_closed entry options (variable), 1 17 iox_$err_no_operation entry options (variable), 1 18 iox_$err_not_open entry options (variable), 1 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 1 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 1 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 1 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 1 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 1 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 1 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 1 28 iox_$propagate entry (pointer), 1 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 1 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 1 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 1 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 1 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 1 40 1 41 dcl (iox_$user_output, 1 42 iox_$user_input, 1 43 iox_$user_io, 1 44 iox_$error_output) external static pointer; 1 45 1 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 43 44 2 1 /* Begin include file ... rcp_resource_types.incl.pl1 2 2* * 2 3* * Created 3/79 by Michael R. Jordan for MR7.0R 2 4* * 2 5* * This include file defines the official RCP resource types. 2 6* * The array of names is indexed by the corresponding device type. 2 7* * MOD by RAF for MCA 2 8**/ 2 9 2 10 2 11 2 12 /****^ HISTORY COMMENTS: 2 13* 1) change(85-09-09,Fawcett), approve(85-09-09,MCR6979), 2 14* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 2 15* Support of MCA. 2 16* END HISTORY COMMENTS */ 2 17 2 18 dcl DEVICE_TYPE (8) char (32) 2 19 internal static options (constant) 2 20 init ("tape_drive", "disk_drive", "console", "printer", "punch", "reader", "special", "mca"); 2 21 2 22 dcl NUM_QUALIFIERS (8) fixed bin /* Number of qualifiers for each device type. */ 2 23 internal static init (3, 0, 0, 2, 0, 0, 0, 0); 2 24 2 25 dcl VOLUME_TYPE (8) char (32) 2 26 internal static options (constant) 2 27 init ("tape_vol", "disk_vol", "", "", "", "", "", ""); 2 28 2 29 dcl TAPE_DRIVE_DTYPEX fixed bin static internal options (constant) init (1); 2 30 dcl DISK_DRIVE_DTYPEX fixed bin static internal options (constant) init (2); 2 31 dcl CONSOLE_DTYPEX fixed bin static internal options (constant) init (3); 2 32 dcl PRINTER_DTYPEX fixed bin static internal options (constant) init (4); 2 33 dcl PUNCH_DTYPEX fixed bin static internal options (constant) init (5); 2 34 dcl READER_DTYPEX fixed bin static internal options (constant) init (6); 2 35 dcl SPECIAL_DTYPEX fixed bin static internal options (constant) init (7); 2 36 dcl MCA_DTYPEX fixed bin static internal options (constant) init (8); 2 37 dcl TAPE_VOL_VTYPEX fixed bin static internal options (constant) init (1); 2 38 dcl DISK_VOL_VTYPEX fixed bin static internal options (constant) init (2); 2 39 2 40 2 41 /* End include file ... rcp_resource_types.incl.pl1 */ 45 46 47 call cu_$arg_count (nargs); 48 if nargs = 0 then call crump (error_table_$noarg, usage_line); 49 50 call cu_$arg_list_ptr (alp); 51 52 begin; 53 54 dcl 1 arg_structure aligned automatic, 55 2 n_used fixed bin initial (0), 56 2 each (nargs) aligned, 57 3 label char (32) varying, 58 3 multiple bit (1) aligned, 59 3 label_prefix char (32) varying, 60 3 first_value fixed bin (35), 61 3 last_value fixed bin (35), 62 3 field_size fixed bin, 63 3 label_suffix char (32) varying; 64 65 dcl ap pointer, 66 (skip_name_label, skip_auth_label) bit (1) aligned initial (""b), 67 al fixed bin, 68 auth char (3) aligned, 69 (i, j) fixed bin, 70 (prefix_len, suffix_len, len_wo_suffix) fixed bin, 71 code fixed bin (35), 72 temp char (32), 73 temp_len fixed bin, 74 temp_var char (32) varying, 75 prefix char (512) varying, 76 resource_type char (32) initial (VOLUME_TYPE (TAPE_VOL_VTYPEX)), 77 switchname char (32) initial ("label_stream"), 78 switch_ptr pointer; 79 80 dcl sticker_width fixed bin initial (50), 81 sticker_height fixed bin initial (9); 82 83 dcl max_linel fixed bin, 84 partial_linel fixed bin, 85 max_label_chars fixed bin, 86 partial_label_chars fixed bin; 87 88 dcl arg char (al) based (ap); 89 90 dcl (rtrim, addrel, translate, substr, verify) builtin; 91 dcl (addr, binary, copy, divide, index, length, max, min, mod, reverse, search) builtin; 92 93 dcl NUMERICS char (10) static options (constant) initial ("0123456789"), 94 UPPERCASE char (26) static options (constant) initial ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 95 96 do i = 1 to nargs; 97 98 call cu_$arg_ptr_rel (i, ap, al, code, alp); 99 if code ^= 0 then call crump (code, "Obtaining argument."); 100 101 if substr (arg, 1, 1) = "-" then do; 102 if arg = "-to" then do; 103 i = i + 1; 104 call cu_$arg_ptr_rel (i, ap, al, code, alp); 105 if code ^= 0 then call crump (code, "After -to."); 106 107 if arg_structure.n_used = 0 then call crump (error_table_$inconsistent, usage_line); 108 109 if arg_structure.multiple (n_used) = "1"b then 110 call crump (error_table_$inconsistent, "-to specified more than once."); 111 112 arg_structure.multiple (n_used) = "1"b; 113 114 temp_var = arg_structure.label (n_used); 115 116 j = search (reverse (temp_var), NUMERICS); 117 if j = 0 then 118 call crump (error_table_$bad_arg, 119 "No numeric portion in " || arg_structure.label (n_used)); 120 121 len_wo_suffix = length (temp_var) - j + 2; 122 if len_wo_suffix ^> length (temp_var) then do; 123 arg_structure.label_suffix (n_used) = substr (temp_var, len_wo_suffix); 124 temp_var = substr (temp_var, 1, len_wo_suffix-1); 125 end; 126 127 suffix_len = length (arg_structure.label_suffix (n_used)); 128 prefix_len = length (rtrim (temp_var, NUMERICS)); 129 arg_structure.label_prefix (n_used) = substr (temp_var, 1, prefix_len); 130 arg_structure.field_size (n_used) = length (arg_structure.label (n_used)) - prefix_len 131 - length (arg_structure.label_suffix (n_used)); 132 arg_structure.first_value (n_used) = binary (substr (temp_var, prefix_len+1)); 133 134 call resource_info_$canonicalize_name (resource_type, arg, temp, code); 135 if code ^= 0 then 136 call crump (code, rtrim (resource_type) || " " || arg); 137 138 if substr (temp, 1, prefix_len) ^= substr (temp_var, 1, prefix_len) then 139 /* prefix check */ 140 dissimilar: call crump (error_table_$bad_arg, "Resource name is not similar: " || temp); 141 142 temp_len = length (rtrim (temp)); 143 if verify (substr (temp, prefix_len+1, temp_len-suffix_len-prefix_len), NUMERICS) > 0 then 144 goto dissimilar; /* numeric field check */ 145 146 arg_structure.last_value (n_used) = binary (substr (temp, prefix_len+1, 147 temp_len - suffix_len - prefix_len)); 148 149 j = temp_len - suffix_len + 1; 150 if substr (temp, j) ^= arg_structure.label_suffix (n_used) then 151 goto dissimilar; /* suffix check */ 152 153 if arg_structure.last_value (n_used) < arg_structure.first_value (n_used) then 154 call crump (error_table_$bad_arg, "Numeric portion of " || temp 155 || "greater than that of " || arg_structure.label (n_used)); 156 end; 157 158 else if arg = "-auth_only" then 159 skip_name_label = "1"b; 160 161 else if arg = "-name_only" then 162 skip_auth_label = "1"b; 163 164 else if arg = "-width" | arg = "-height" then do; 165 temp_var = arg; 166 167 i = i + 1; 168 call cu_$arg_ptr_rel (i, ap, al, code, alp); 169 if code ^= 0 then call crump (error_table_$noarg, "No number after " || temp_var); 170 171 if verify (arg, NUMERICS) > 0 then 172 call crump (error_table_$bad_conversion, "Non-numeric: " || arg); 173 174 j = binary (arg); 175 176 if temp_var = "-width" then do; 177 if j < 19 then call crump (error_table_$bad_arg, "Width less than 19 characters."); 178 sticker_width = j; 179 end; 180 181 else do; 182 if j < 8 then call crump (error_table_$bad_arg, "Height less than 8 lines."); 183 sticker_height = j; 184 end; 185 end; 186 187 else if arg = "-output_switch" | arg = "-osw" then do; 188 i = i + 1; 189 call cu_$arg_ptr_rel (i, ap, al, code, alp); 190 if code ^= 0 then call crump (code, "After -output_switch."); 191 switchname = arg; 192 end; 193 194 else if arg = "-resource_type" | arg = "-rst" then do; 195 i = i + 1; 196 call cu_$arg_ptr_rel (i, ap, al, code, alp); 197 if code ^= 0 then call crump (code, "After -resource_type."); 198 resource_type = arg; 199 end; 200 201 202 else call crump (error_table_$badopt, arg); 203 end; 204 205 else do; 206 call resource_info_$canonicalize_name (resource_type, arg, temp, code); 207 if code ^= 0 then 208 call crump (code, rtrim (resource_type) || " " || arg); 209 210 arg_structure.n_used = arg_structure.n_used + 1; 211 arg_structure.label (n_used) = rtrim (temp); 212 arg_structure.multiple (n_used) = ""b; 213 arg_structure.label_prefix (n_used), 214 arg_structure.label_suffix (n_used) = ""; 215 arg_structure.first_value (n_used), 216 arg_structure.last_value (n_used), 217 arg_structure.field_size (n_used) = 0; 218 end; 219 end; 220 221 if skip_name_label & skip_auth_label then 222 call crump (error_table_$inconsistent, "-auth_only and -name_only"); 223 224 max_label_chars = divide (sticker_width + 2, 7, 17, 0); 225 partial_label_chars = divide (sticker_width, 7, 17, 0); 226 partial_linel = sticker_width - 2 - max (mod (sticker_width - 3, 7) - 4, 0); 227 228 call iox_$look_iocb (switchname, switch_ptr, code); 229 if code ^= 0 then call crump (code, switchname); 230 231 /* Now we have all the arguments. Process them. */ 232 233 do i = 1 to arg_structure.n_used; 234 235 /* Do the first one first */ 236 237 if ^skip_name_label then 238 if length (arg_structure.label (i)) > max_label_chars then 239 call com_err_$suppress_name (0, "make_volume_labels", 240 "Warning: Only the first ^d complete characters of ^[^s^a^a^a^;^a^] will appear on the label.", 241 partial_label_chars, arg_structure.multiple (i), 242 arg_structure.label (i), 243 arg_structure.label_prefix (i), copy ("_n", arg_structure.field_size (i)), 244 arg_structure.label_suffix (i)); 245 246 call make_label (arg_structure.label (i)); 247 248 if arg_structure.multiple (i) = "1"b then /* have a set of them to make */ 249 do j = arg_structure.first_value (i) + 1 to arg_structure.last_value (i); 250 251 call ioa_$rsnnl ("^a^vd^a", temp_var, 0, arg_structure.label_prefix (i), 252 arg_structure.field_size (i), j, 253 arg_structure.label_suffix (i)); 254 255 temp_var = translate (temp_var, "0", " "); /* change blanks to zeroes */ 256 257 call make_label (temp_var); 258 end; 259 end; 260 261 return; 262 263 make_label: proc (label); 264 265 dcl label char (32) varying parameter; 266 dcl i fixed bin, 267 (extra_lines, leading_spaces) fixed bin, 268 data_len fixed bin, 269 buffer char (1024) varying; 270 271 auth = authenticate_ ((label)); 272 leading_spaces = max (divide (sticker_width - 5 - length (label), 2, 17, 0), 0); 273 extra_lines = sticker_height - 7; 274 275 if ^ skip_name_label then do; 276 i = divide (sticker_width + 2 - (7 * length (label)), 2, 17, 0); 277 if i > 0 then prefix = copy (" ", i); 278 else prefix = ""; 279 280 data_len = length (label); 281 if data_len <= max_label_chars then 282 max_linel = data_len * 7 - 2; 283 else max_linel = partial_linel; 284 285 call bigletter_$five ((label), line_proc); 286 287 buffer = prefix; 288 289 do i = 1 to min (max_label_chars, length (label)); 290 if index (UPPERCASE, substr (label, i, 1)) > 0 then 291 buffer = buffer || "-=-=-=-=-= "; 292 else buffer = buffer || " "; 293 end; 294 295 buffer = buffer || copy (NEWLINE, 2); 296 297 call iox_$put_chars (switch_ptr, addrel (addr (buffer), 1), length (buffer), code); 298 if code ^= 0 then call crump (code, "while printing label"); 299 300 call ioa_$rsnnl ("^vx^a^2x^3a", buffer, 0, 301 leading_spaces, label, auth); 302 303 buffer = buffer || RETURN || buffer; 304 buffer = buffer || copy (NEWLINE, extra_lines); 305 306 call iox_$put_chars (switch_ptr, addrel (addr (buffer), 1), length (buffer), code); 307 if code ^= 0 then call crump (code, "while printing label"); 308 end; 309 310 if ^ skip_auth_label then do; 311 i = divide (sticker_width - 19, 2, 17, 0); 312 prefix = copy (" ", i); 313 314 data_len = 3; 315 max_linel = 19; /* 3 * 7 - 2 */ 316 317 call bigletter_$five (auth, line_proc); 318 319 call ioa_$rsnnl ("^vx^a^2x^3a", buffer, 0, 320 leading_spaces, label, auth); 321 322 buffer = buffer || RETURN || buffer; 323 buffer = copy (NEWLINE, 2) || buffer || copy (NEWLINE, extra_lines); 324 325 call iox_$put_chars (switch_ptr, addrel (addr (buffer), 1), length (buffer), code); 326 if code ^= 0 then call crump (code, "while printing label"); 327 end; 328 329 return; 330 331 line_proc: proc (linep, linel); 332 333 dcl linep pointer parameter, 334 linel fixed bin parameter; 335 336 dcl line char (max_linel) based (linep); 337 338 dcl buffer char (512) aligned varying, 339 i fixed bin; 340 341 dcl ANVZ_at_number char (11) static options (constant) initial ("ANVZ@#"); 342 343 buffer = prefix; 344 345 do i = 1 to length (line); 346 if substr (line, i, 1) = " " then buffer = buffer || " "; 347 else buffer = buffer || ANVZ_at_number; 348 end; 349 350 if data_len > max_label_chars then buffer = buffer || " /"; 351 buffer = buffer || NEWLINE; 352 353 call iox_$put_chars (switch_ptr, addrel (addr (buffer), 1), length (buffer), code); 354 355 return; 356 end line_proc; 357 end make_label; 358 end; /* begin block */ 359 360 crump: proc (code, reason); 361 362 dcl code fixed bin (35) parameter, 363 reason char (*) parameter; 364 365 call com_err_ (code, "make_volume_labels", reason); 366 goto returner; 367 end crump; 368 369 returner: return; 370 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/25/86 0843.7 make_volume_labels.pl1 >special_ldd>install>MR12.0-1033>make_volume_labels.pl1 43 1 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 45 2 03/21/86 1306.7 rcp_resource_types.incl.pl1 >special_ldd>install>MR12.0-1033>rcp_resource_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. ANVZ_at_number 000000 constant char(11) initial unaligned dcl 341 ref 347 NEWLINE 004627 constant char(1) initial unaligned dcl 31 ref 295 304 323 323 351 NUMERICS 000012 constant char(10) initial unaligned dcl 93 ref 116 128 143 171 RETURN 004626 constant char(1) initial unaligned dcl 31 ref 303 322 TAPE_VOL_VTYPEX constant fixed bin(17,0) initial dcl 2-37 ref 65 UPPERCASE 000003 constant char(26) initial unaligned dcl 93 ref 290 VOLUME_TYPE 000015 constant char(32) initial array unaligned dcl 2-25 ref 65 addr builtin function dcl 91 ref 297 297 306 306 325 325 353 353 addrel builtin function dcl 90 ref 297 297 306 306 325 325 353 353 al 000104 automatic fixed bin(17,0) dcl 65 set ref 98* 101 102 104* 134 134 135 158 161 164 164 165 168* 171 171 174 187 187 189* 191 194 194 196* 198 202 202 206 206 207 alp 000100 automatic pointer dcl 28 set ref 50* 98* 104* 168* 189* 196* ap 000100 automatic pointer dcl 65 set ref 98* 101 102 104* 134 135 158 161 164 164 165 168* 171 171 174 187 187 189* 191 194 194 196* 198 202 206 207 arg based char unaligned dcl 88 set ref 101 102 134* 135 158 161 164 164 165 171 171 174 187 187 191 194 194 198 202* 206* 207 arg_structure 000100 automatic structure level 1 dcl 54 auth 000105 automatic char(3) dcl 65 set ref 271* 300* 317* 319* authenticate_ 000024 constant entry external dcl 24 ref 271 bigletter_$five 000026 constant entry external dcl 24 ref 285 317 binary builtin function dcl 91 ref 132 146 174 buffer 000100 automatic varying char(512) dcl 338 in procedure "line_proc" set ref 343* 346* 346 347* 347 350* 350 351* 351 353 353 353 353 buffer 000416 automatic varying char(1024) dcl 266 in procedure "make_label" set ref 287* 290* 290 292* 292 295* 295 297 297 297 297 300* 303* 303 303 304* 304 306 306 306 306 319* 322* 322 322 323* 323 325 325 325 325 code parameter fixed bin(35,0) dcl 362 in procedure "crump" set ref 360 365* code 000113 automatic fixed bin(35,0) dcl 65 in begin block on line 52 set ref 98* 99 99* 104* 105 105* 134* 135 135* 168* 169 189* 190 190* 196* 197 197* 206* 207 207* 228* 229 229* 297* 298 298* 306* 307 307* 325* 326 326* 353* com_err_ 000016 constant entry external dcl 19 ref 365 com_err_$suppress_name 000020 constant entry external dcl 19 ref 237 copy builtin function dcl 91 ref 237 237 277 295 304 312 323 323 cu_$arg_count 000010 constant entry external dcl 19 ref 47 cu_$arg_list_ptr 000012 constant entry external dcl 19 ref 50 cu_$arg_ptr_rel 000014 constant entry external dcl 19 ref 98 104 168 189 196 data_len 000415 automatic fixed bin(17,0) dcl 266 set ref 280* 281 281 314* 350 divide builtin function dcl 91 ref 224 225 272 276 311 each 1 000100 automatic structure array level 2 dcl 54 error_table_$bad_arg 000032 external static fixed bin(35,0) dcl 37 set ref 117* 138* 153* 177* 182* error_table_$bad_conversion 000034 external static fixed bin(35,0) dcl 37 set ref 171* error_table_$badopt 000040 external static fixed bin(35,0) dcl 37 set ref 202* error_table_$inconsistent 000036 external static fixed bin(35,0) dcl 37 set ref 107* 109* 221* error_table_$noarg 000042 external static fixed bin(35,0) dcl 37 set ref 48* 169* extra_lines 000413 automatic fixed bin(17,0) dcl 266 set ref 273* 304 323 field_size 26 000100 automatic fixed bin(17,0) array level 3 dcl 54 set ref 130* 215* 237 237 251* first_value 24 000100 automatic fixed bin(35,0) array level 3 dcl 54 set ref 132* 153 215* 248 i 000301 automatic fixed bin(17,0) dcl 338 in procedure "line_proc" set ref 345* 346* i 000106 automatic fixed bin(17,0) dcl 65 in begin block on line 52 set ref 96* 98* 103* 103 104* 167* 167 168* 188* 188 189* 195* 195 196* 233* 237 237 237 237 237 237 237 246 248 248 248 251 251 251* i 000412 automatic fixed bin(17,0) dcl 266 in procedure "make_label" set ref 276* 277 277 289* 290* 311* 312 index builtin function dcl 91 ref 290 ioa_$rsnnl 000022 constant entry external dcl 19 ref 251 300 319 iox_$look_iocb 000044 constant entry external dcl 1-8 ref 228 iox_$put_chars 000046 constant entry external dcl 1-8 ref 297 306 325 353 j 000107 automatic fixed bin(17,0) dcl 65 set ref 116* 117 121 149* 150 174* 177 178 182 183 248* 251* label 1 000100 automatic varying char(32) array level 3 in structure "arg_structure" dcl 54 in begin block on line 52 set ref 114 117 130 153 211* 237 237* 246* label parameter varying char(32) dcl 265 in procedure "make_label" set ref 263 271 272 276 280 285 289 290 300* 319* label_prefix 13 000100 automatic varying char(32) array level 3 dcl 54 set ref 129* 213* 237* 251* label_suffix 27 000100 automatic varying char(32) array level 3 dcl 54 set ref 123* 127 130 150 213* 237* 251* last_value 25 000100 automatic fixed bin(35,0) array level 3 dcl 54 set ref 146* 153 215* 248 leading_spaces 000414 automatic fixed bin(17,0) dcl 266 set ref 272* 300* 319* len_wo_suffix 000112 automatic fixed bin(17,0) dcl 65 set ref 121* 122 123 124 length builtin function dcl 91 ref 121 122 127 128 130 130 142 237 272 276 280 289 297 297 306 306 325 325 345 353 353 line based char unaligned dcl 336 ref 345 346 linel parameter fixed bin(17,0) dcl 333 ref 331 linep parameter pointer dcl 333 ref 331 345 346 max builtin function dcl 91 ref 226 272 max_label_chars 000366 automatic fixed bin(17,0) dcl 83 set ref 224* 237 281 289 350 max_linel 000364 automatic fixed bin(17,0) dcl 83 set ref 281* 283* 315* 345 346 min builtin function dcl 91 ref 289 mod builtin function dcl 91 ref 226 multiple 12 000100 automatic bit(1) array level 3 dcl 54 set ref 109 112* 212* 237* 248 n_used 000100 automatic fixed bin(17,0) initial level 2 dcl 54 set ref 54* 107 109 112 114 117 123 127 129 130 130 130 132 146 150 153 153 153 210* 210 211 212 213 213 215 215 215 233 nargs 000102 automatic fixed bin(17,0) dcl 28 set ref 47* 48 54 96 partial_label_chars 000367 automatic fixed bin(17,0) dcl 83 set ref 225* 237* partial_linel 000365 automatic fixed bin(17,0) dcl 83 set ref 226* 283 prefix 000136 automatic varying char(512) dcl 65 set ref 277* 278* 287 312* 343 prefix_len 000110 automatic fixed bin(17,0) dcl 65 set ref 128* 129 130 132 138 138 143 143 146 146 reason parameter char unaligned dcl 362 set ref 360 365* resource_info_$canonicalize_name 000030 constant entry external dcl 24 ref 134 206 resource_type 000337 automatic char(32) initial unaligned dcl 65 set ref 65* 134* 135 198* 206* 207 reverse builtin function dcl 91 ref 116 rtrim builtin function dcl 90 ref 128 135 142 207 211 search builtin function dcl 91 ref 116 skip_auth_label 000103 automatic bit(1) initial dcl 65 set ref 65* 161* 221 310 skip_name_label 000102 automatic bit(1) initial dcl 65 set ref 65* 158* 221 237 275 sticker_height 000363 automatic fixed bin(17,0) initial dcl 80 set ref 80* 183* 273 sticker_width 000362 automatic fixed bin(17,0) initial dcl 80 set ref 80* 178* 224 225 226 226 272 276 311 substr builtin function dcl 90 ref 101 123 124 129 132 138 138 143 146 150 290 346 suffix_len 000111 automatic fixed bin(17,0) dcl 65 set ref 127* 143 146 149 switch_ptr 000360 automatic pointer dcl 65 set ref 228* 297* 306* 325* 353* switchname 000347 automatic char(32) initial unaligned dcl 65 set ref 65* 191* 228* 229* temp 000114 automatic char(32) unaligned dcl 65 set ref 134* 138 138 142 143 146 150 153 206* 211 temp_len 000124 automatic fixed bin(17,0) dcl 65 set ref 142* 143 146 149 temp_var 000125 automatic varying char(32) dcl 65 set ref 114* 116 121 122 123 124* 124 128 129 132 138 165* 169 176 251* 255* 255 257* translate builtin function dcl 90 ref 255 usage_line 000115 constant char(128) initial unaligned dcl 31 set ref 48* 107* verify builtin function dcl 90 ref 143 171 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CONSOLE_DTYPEX internal static fixed bin(17,0) initial dcl 2-31 DEVICE_TYPE internal static char(32) initial array unaligned dcl 2-18 DISK_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 2-30 DISK_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 2-38 MCA_DTYPEX internal static fixed bin(17,0) initial dcl 2-36 NUM_QUALIFIERS internal static fixed bin(17,0) initial array dcl 2-22 PRINTER_DTYPEX internal static fixed bin(17,0) initial dcl 2-32 PUNCH_DTYPEX internal static fixed bin(17,0) initial dcl 2-33 READER_DTYPEX internal static fixed bin(17,0) initial dcl 2-34 SPECIAL_DTYPEX internal static fixed bin(17,0) initial dcl 2-35 TAPE_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 2-29 iox_$attach_loud 000000 constant entry external dcl 1-8 iox_$attach_name 000000 constant entry external dcl 1-8 iox_$attach_ptr 000000 constant entry external dcl 1-8 iox_$close 000000 constant entry external dcl 1-8 iox_$close_file 000000 constant entry external dcl 1-8 iox_$control 000000 constant entry external dcl 1-8 iox_$delete_record 000000 constant entry external dcl 1-8 iox_$destroy_iocb 000000 constant entry external dcl 1-8 iox_$detach 000000 constant entry external dcl 1-8 iox_$detach_iocb 000000 constant entry external dcl 1-8 iox_$err_no_operation 000000 constant entry external dcl 1-8 iox_$err_not_attached 000000 constant entry external dcl 1-8 iox_$err_not_closed 000000 constant entry external dcl 1-8 iox_$err_not_open 000000 constant entry external dcl 1-8 iox_$error_output external static pointer dcl 1-41 iox_$find_iocb 000000 constant entry external dcl 1-8 iox_$find_iocb_n 000000 constant entry external dcl 1-8 iox_$get_chars 000000 constant entry external dcl 1-8 iox_$get_line 000000 constant entry external dcl 1-8 iox_$modes 000000 constant entry external dcl 1-8 iox_$move_attach 000000 constant entry external dcl 1-8 iox_$open 000000 constant entry external dcl 1-8 iox_$open_file 000000 constant entry external dcl 1-8 iox_$position 000000 constant entry external dcl 1-8 iox_$propagate 000000 constant entry external dcl 1-8 iox_$read_key 000000 constant entry external dcl 1-8 iox_$read_length 000000 constant entry external dcl 1-8 iox_$read_record 000000 constant entry external dcl 1-8 iox_$rewrite_record 000000 constant entry external dcl 1-8 iox_$seek_key 000000 constant entry external dcl 1-8 iox_$user_input external static pointer dcl 1-41 iox_$user_io external static pointer dcl 1-41 iox_$user_output external static pointer dcl 1-41 iox_$write_record 000000 constant entry external dcl 1-8 NAMES DECLARED BY EXPLICIT CONTEXT. crump 003764 constant entry internal dcl 360 ref 48 99 105 107 109 117 135 138 153 169 171 177 182 190 197 202 207 221 229 298 307 326 dissimilar 001260 constant label dcl 138 ref 143 150 line_proc 003632 constant entry internal dcl 331 ref 285 285 317 317 make_label 002646 constant entry internal dcl 263 ref 246 257 make_volume_labels 000443 constant entry external dcl 11 returner 003762 constant label dcl 369 ref 366 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5060 5130 4634 5070 Length 5404 4634 50 240 223 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME make_volume_labels 84 external procedure is an external procedure. begin block on line 52 830 begin block uses auto adjustable storage. make_label internal procedure shares stack frame of begin block on line 52. line_proc 210 internal procedure is assigned to an entry variable. crump 86 internal procedure is called during a stack extension. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 52 000100 arg_structure begin block on line 52 000100 ap begin block on line 52 000102 skip_name_label begin block on line 52 000103 skip_auth_label begin block on line 52 000104 al begin block on line 52 000105 auth begin block on line 52 000106 i begin block on line 52 000107 j begin block on line 52 000110 prefix_len begin block on line 52 000111 suffix_len begin block on line 52 000112 len_wo_suffix begin block on line 52 000113 code begin block on line 52 000114 temp begin block on line 52 000124 temp_len begin block on line 52 000125 temp_var begin block on line 52 000136 prefix begin block on line 52 000337 resource_type begin block on line 52 000347 switchname begin block on line 52 000360 switch_ptr begin block on line 52 000362 sticker_width begin block on line 52 000363 sticker_height begin block on line 52 000364 max_linel begin block on line 52 000365 partial_linel begin block on line 52 000366 max_label_chars begin block on line 52 000367 partial_label_chars begin block on line 52 000412 i make_label 000413 extra_lines make_label 000414 leading_spaces make_label 000415 data_len make_label 000416 buffer make_label line_proc 000100 buffer line_proc 000301 i line_proc make_volume_labels 000100 alp make_volume_labels 000102 nargs make_volume_labels THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs enter_begin call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc begin_return return tra_ext alloc_auto_adj mod_fx1 shorten_stack ext_entry int_entry int_entry_desc repeat set_cs_eis any_to_any_tr THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. authenticate_ bigletter_$five com_err_ com_err_$suppress_name cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel ioa_$rsnnl iox_$look_iocb iox_$put_chars resource_info_$canonicalize_name THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$bad_conversion error_table_$badopt error_table_$inconsistent error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000442 47 000450 48 000456 50 000475 52 000504 54 000507 65 000517 80 000531 237 000535 251 000543 96 000545 98 000555 99 000575 101 000617 102 000624 103 000631 104 000632 105 000652 107 000675 109 000715 112 000745 114 000752 116 000761 117 000774 121 001030 122 001035 123 001037 124 001061 127 001067 128 001075 129 001110 130 001121 132 001125 134 001144 135 001173 138 001252 142 001304 143 001316 146 001334 149 001354 150 001360 153 001373 156 001444 158 001446 161 001455 164 001464 165 001474 167 001504 168 001505 169 001525 171 001562 174 001631 176 001644 177 001651 178 001674 179 001676 182 001677 183 001722 185 001724 187 001725 188 001735 189 001736 190 001756 191 002003 192 002010 194 002011 195 002021 196 002022 197 002042 198 002067 199 002074 202 002075 203 002116 206 002117 207 002146 210 002225 211 002227 212 002254 213 002255 215 002257 219 002262 221 002264 224 002311 225 002315 226 002320 228 002335 229 002356 233 002375 237 002405 246 002507 248 002521 251 002543 255 002612 257 002630 258 002637 259 002641 261 002643 358 002645 263 002646 271 002650 272 002676 273 002711 275 002714 276 002716 277 002726 278 002743 280 002745 281 002747 283 002755 285 002757 287 003007 289 003015 290 003031 292 003057 293 003071 295 003073 297 003111 298 003135 300 003157 303 003222 304 003256 306 003276 307 003323 310 003345 311 003347 312 003353 314 003366 315 003371 317 003373 319 003413 322 003456 323 003512 325 003561 326 003606 329 003630 331 003631 343 003637 345 003645 346 003655 347 003674 348 003706 350 003710 351 003726 353 003735 355 003761 369 003762 360 003763 365 003777 366 004023 ----------------------------------------------------------- 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