COMPILATION LISTING OF SEGMENT fill_vol_extents_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1005.9 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style2 */ 13 14 fill_vol_extents_: 15 procedure (a_labelp, interlace, a_nvtoce, a_baseadd, a_num_pages, a_defaultsw, a_device_type, a_code); 16 17 18 /* fill_vol_extents_: excerpted by BSG from init_disk_pack_, commoned with 19* disk_rebuild_caller, as per MCR 2105 08/31/76 */ 20 /* Used to be called "get_special_vol_data". Also made mandantory at this time. */ 21 /* Modified by Mike Grady 9/79 to fix really trivial bug */ 22 /* Modified April 1982 by J. Bongiovanni to print low partition address correctly */ 23 /* Modified 821018 BIM parameterize, bootload entry, simple_command_processor_ */ 24 /* Modified 2/83 by Keith Loepere to use bce_command_processor_ and environment */ 25 /* Modified 9/83 by Keith Loepere for bce and file partitions. */ 26 /* Modified 2/84 by Keith Loepere to fix asl <-> vtoc_size computations. */ 27 28 /****^ HISTORY COMMENTS: 29* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 30* audit(85-12-02,CLJones), install(86-03-21,MR12.0-1033): 31* Support of FIPS by not allow vtoc_size to go over the max. 32* 2) change(86-01-07,Fawcett), approve(86-04-11,MCR7383), 33* audit(86-05-13,LJAdams), install(86-07-17,MR12.0-1097): 34* Add support for MSU3380 and MSU3390 512_word_io one vtoc per sector. 35* 3) change(86-04-22,Farley), approve(86-07-18,MCR7439), 36* audit(86-08-18,Fawcett), install(86-10-20,MR12.0-1189): 37* Changed to initialize all possible ss_info.flags. 38* END HISTORY COMMENTS */ 39 40 dcl a_code fixed bin (35); 41 dcl a_device_type fixed bin; 42 dcl a_labelp ptr; 43 dcl (a_num_pages, a_baseadd, a_nvtoce) 44 fixed bin; 45 dcl a_defaultsw bit (1) aligned; 46 dcl interlace fixed bin; 47 dcl loc_dev_type fixed bin; /* the index for things in fs_dev_types constants */ 48 49 dcl bootload_sw bit (1) aligned; /* controls get/put */ 50 51 dcl inbuf char (120); 52 dcl 1 my_ss_info aligned like ss_info; 53 dcl (asl_given, vtoc_constrained) 54 bit (1); 55 dcl (ioa_$nnl, ioa_) entry options (variable); 56 dcl bce_query entry options (variable); 57 dcl iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 58 dcl iox_$user_input ptr ext static; 59 dcl cu_$arg_list_ptr entry (ptr); 60 dcl cu_$arg_count_rel entry (fixed bin, ptr, fixed bin (35)); 61 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 62 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 63 dcl bce_command_processor_ entry (char (*), entry (ptr, char (*), fixed bin (35)) returns (entry), ptr, 64 fixed bin (35)); 65 66 dcl conversion condition; 67 dcl ec fixed bin (35); 68 dcl num_pages fixed bin (18); 69 dcl NORMAL_ASL float bin static init (5.0e0) options (constant); 70 dcl RPV_ASL float bin static init (2.0e0) options (constant); 71 dcl ( 72 DEFAULT_RPV_HC_SIZE_char 73 char (4) init ("2500"), 74 DEFAULT_RPV_CONF_SIZE_char 75 char (1) init ("4"), 76 DEFAULT_RPV_LOG_SIZE_char 77 char (3) init ("256"), 78 DEFAULT_RPV_BOS_SIZE_char 79 char (3) init ("270"), 80 DEFAULT_RPV_FILE_SIZE_char 81 char (3) init ("255"), 82 DEFAULT_RPV_DUMP_SIZE_char 83 char (4) init ("2000") 84 ) internal static options (constant); 85 dcl baseadd fixed bin (18); 86 dcl rebuild_call bit (1); 87 dcl nrec fixed bin; 88 dcl (hibase, lobase) fixed bin; 89 dcl asl float; 90 dcl (put, put_nnl) entry options (variable) variable; 91 dcl code fixed bin (35); 92 dcl j fixed bin; 93 dcl addr builtin; 94 dcl ceil builtin; 95 dcl char builtin; 96 dcl convert builtin; 97 dcl divide builtin; 98 dcl hbound builtin; 99 dcl length builtin; 100 dcl ltrim builtin; 101 dcl min builtin; 102 dcl null builtin; 103 dcl string builtin; 104 105 rebuild_call = (interlace > 0); 106 labelp = a_labelp; 107 loc_dev_type = a_device_type; 108 bootload_sw = "0"b; 109 put = ioa_; 110 put_nnl = ioa_$nnl; 111 call startover_rq (null); 112 if a_defaultsw 113 then call end_rq (null); /* finish up, say nothing */ 114 if rebuild_call 115 then call list_rq (null); 116 go to LISTEN; 117 118 cold_rpv: 119 entry (a_labelp, interlace, a_nvtoce, a_baseadd, a_num_pages, a_defaultsw, a_device_type); 120 /* DIFFERENT FROM MAIN ENTRY ! */ 121 labelp = a_labelp; 122 put = ioa_; 123 put_nnl = ioa_$nnl; 124 bootload_sw = "1"b; 125 loc_dev_type = a_device_type; 126 127 call ioa_ ("^/Default RPV layout: (Respond ""end"" to use it.)^/"); 128 129 call default_rq (null); 130 call list_rq (null); 131 132 LISTEN: 133 ss_info_ptr = addr (my_ss_info); 134 ss_info.request_table_ptr = null (); /* we find our own commands */ 135 ss_info.abort_label = LISTEN_again; 136 ss_info.name = "fill_vol_extents_"; 137 ss_info.arg_list_ptr = null (); 138 ss_info.info_ptr = null (); 139 string (ss_info.flags) = ""b; 140 ss_info.flags.forbid_semicolons = "1"b; 141 142 do while ("1"b); /* exit via nonlocal goto */ 143 LISTEN_again: 144 call prompt_read ("request: ", inbuf); 145 call bce_command_processor_ (inbuf, Find_Request, ss_info_ptr, code); 146 if code ^= 0 & code ^= 100 147 then call put ("Syntax error in request. Please reenter."); 148 end; 149 150 startover_rq: 151 procedure (Info_ptr); 152 dcl Info_ptr ptr; 153 label.nparts = 0; 154 baseadd = -1; 155 vtoc_constrained, asl_given = "0"b; 156 interlace = 2; 157 hibase, num_pages = label.vol_size; 158 asl = NORMAL_ASL; 159 lobase = 0; 160 end startover_rq; 161 162 163 /* These are RPV Cold Boot defaults! */ 164 /* This should not be called from the non-bootload entrypoints */ 165 166 default_rq: 167 procedure (Info_ptr); 168 dcl Info_ptr ptr; 169 170 call startover_rq (null); 171 asl = RPV_ASL; 172 call part_side_door ("hc", "low", DEFAULT_RPV_HC_SIZE_char); 173 call part_side_door ("conf", "low", DEFAULT_RPV_CONF_SIZE_char); 174 if needs_alt_part (loc_dev_type) 175 then call part_side_door ("alt", "high", 176 ltrim ( 177 char ( 178 divide (last_alt_sect_num (loc_dev_type) - first_alt_sect_num (loc_dev_type) + 1, 179 sect_per_cyl (loc_dev_type), 17) * rec_per_cyl (loc_dev_type)))); 180 call part_side_door ("bos", "high", DEFAULT_RPV_BOS_SIZE_char); 181 call part_side_door ("dump", "high", DEFAULT_RPV_DUMP_SIZE_char); 182 call part_side_door ("log", "high", DEFAULT_RPV_LOG_SIZE_char); 183 call part_side_door ("file", "high", DEFAULT_RPV_FILE_SIZE_char); 184 call part_side_door ("bce", "high", ltrim (char (BCE_PART_LTH))); 185 end default_rq; 186 187 end_rq: 188 procedure (Info_ptr); 189 declare Info_ptr pointer; 190 declare 1 found aligned, 191 2 hc bit (1) unaligned, 192 2 conf bit (1) unaligned, 193 2 bos bit (1) aligned, 194 2 bce bit (1) aligned, 195 2 file bit (1) aligned; 196 197 string (found) = ""b; 198 199 call eval_vtoc_size; /* Call place to order */ 200 num_pages = num_pages - vtoc_size; 201 if vtoc_size > label.vol_size 202 then do; 203 call put ("not enough room for vtoc. start over"); 204 call startover_rq (null); 205 go to LISTEN_again; 206 end; 207 if baseadd = -1 208 then baseadd = vtoc_size + lobase; 209 else baseadd = vtoc_size; 210 do j = 1 to label.nparts; 211 if label.parts (j).part = "hc" 212 then found.hc = "1"b; 213 else if label.parts (j).part = "bos" 214 then found.bos = "1"b; 215 else if label.parts (j).part = "conf" 216 then do; 217 found.conf = "1"b; 218 if label.parts (j).nrec ^= 4 219 then do; 220 call put ("The size of the conf partition must be 4 records."); 221 return; 222 end; 223 end; 224 else if label.parts (j).part = "bce" 225 then do; 226 found.bce = "1"b; 227 if label.parts (j).nrec < BCE_PART_LTH 228 then do; 229 call put ("The size of the bce partition must be at least ^d records.", BCE_PART_LTH); 230 return; 231 end; 232 end; 233 else if label.parts (j).part = "file" 234 then do; 235 found.file = "1"b; 236 if label.parts (j).nrec < 30 | label.parts (j).nrec > 255 237 then do; 238 call put ("The size of the file partition must be between 30 and 255 records."); 239 return; 240 end; 241 end; 242 243 if label.parts (j).frec < lobase 244 then label.parts (j).frec = label.parts (j).frec + vtoc_size; 245 if label.parts (j).frec + label.parts (j).nrec > label.vol_size 246 then do; 247 call put ("Not enough room for part ^a. start over", label.parts (j).part); 248 call startover_rq (null); 249 go to LISTEN_again; 250 end; 251 end; 252 253 if bootload_sw 254 then do; 255 if ^found.hc | ^found.conf | ^found.bce | ^found.file 256 then do; 257 call put ("Hardcore (hc), config (conf), bootload file system (file), and"); 258 call put ("bootload command environment (bce) partitions required on rpv."); 259 return; 260 end; 261 262 end; 263 264 label.vtoc_size = vtoc_size; 265 a_baseadd = baseadd; 266 a_num_pages = num_pages; 267 a_nvtoce = (vtoc_size - VTOC_ORIGIN) * VTOCES_PER_RECORD (loc_dev_type); 268 if ^bootload_sw 269 then a_code = 0; 270 go to RETURN; 271 end end_rq; 272 273 274 asl_rq: 275 procedure (Info_ptr); 276 declare Info_ptr pointer; 277 declare arg_count fixed bin; 278 declare arg_list_ptr pointer; 279 declare ap ptr, 280 al fixed bin (21), 281 arg char (al) based (ap); 282 283 arg_list_ptr = Info_ptr -> ss_info.arg_list_ptr; 284 call cu_$arg_count_rel (arg_count, arg_list_ptr, (0)); 285 if arg_count ^= 1 286 then do; 287 call put ("Usage: asl FLOAT_AVG"); 288 return; 289 end; 290 call cu_$arg_ptr_rel (1, ap, al, (0), arg_list_ptr); 291 292 on conversion go to badavg; 293 asl = convert (asl, arg); 294 revert conversion; 295 if asl < 0e0 296 then do; /* could be less than 1 */ 297 badavg: 298 call put ("Bad average ^a", arg); 299 return; 300 end; 301 if vtoc_constrained 302 then call put ("Using segment length constraint instead of VTOC size."); 303 vtoc_constrained = "0"b; 304 asl_given = "1"b; 305 end asl_rq; 306 307 308 lace_rq: 309 procedure (Info_ptr); 310 declare Info_ptr pointer; 311 declare arg_count fixed bin, 312 arg_list_ptr pointer, 313 ap ptr, 314 al fixed bin (21), 315 arg char (al) based (ap); 316 317 arg_list_ptr = Info_ptr -> ss_info.arg_list_ptr; 318 call cu_$arg_count_rel (arg_count, arg_list_ptr, (0)); 319 if arg_count ^= 1 320 then do; 321 call put ("Usage: lace LACE_COUNT"); 322 return; 323 end; 324 325 call cu_$arg_ptr_rel (1, ap, al, (0), arg_list_ptr); 326 327 j = cv_dec_check_ (arg, ec); 328 if ec ^= 0 | j < 1 329 then do; 330 call put ("Bad interlace: ^a", arg); 331 return; 332 end; 333 interlace = j; 334 end lace_rq; 335 336 list_rq: 337 procedure (Info_ptr); 338 declare Info_ptr pointer; 339 340 call eval_vtoc_size; /* Get right stuff */ 341 call put ("Average seg length = ^.2f", asl); 342 call put ("VTOC size = ^d pages, ^d vtoces.", vtoc_size, 343 (vtoc_size - VTOC_ORIGIN) * VTOCES_PER_RECORD (loc_dev_type)); 344 call put ("^d paging records.", num_pages - vtoc_size); 345 call put ("Constrained by ^[VTOC size^;average seg length^].", vtoc_constrained); 346 do j = 1 to label.nparts; 347 call put ("part ^a ^[^1s^d.^;^d.^1s^] ^d.", label.parts (j).part, (label.parts (j).frec < lobase), 348 label.parts (j).frec, label.parts (j).frec + vtoc_size, label.parts (j).nrec); 349 end; 350 end list_rq; 351 352 quit_rq: 353 procedure (Info_ptr); 354 dcl Info_ptr ptr; 355 dcl error_table_$action_not_performed 356 fixed bin (35) ext static; 357 a_code = error_table_$action_not_performed; 358 go to RETURN; 359 end quit_rq; 360 361 part_side_door: 362 procedure (Name, High_Low, Size) options (non_quick); 363 declare arg_list_ptr ptr; 364 declare (Name, High_Low, Size) char (*); 365 declare 1 local_ss_info aligned like ss_info; 366 367 call cu_$arg_list_ptr (arg_list_ptr); 368 local_ss_info.arg_list_ptr = arg_list_ptr; 369 call part_rq (addr (local_ss_info)); 370 return; 371 end part_side_door; 372 373 part_rq: 374 procedure (Info_ptr); 375 declare Info_ptr pointer; 376 declare arg_count fixed bin, 377 arg_list_ptr ptr, 378 al fixed bin (21), 379 ap ptr, 380 arg char (al) based (ap); 381 382 arg_list_ptr = Info_ptr -> ss_info.arg_list_ptr; 383 call cu_$arg_count_rel (arg_count, arg_list_ptr, (0)); 384 if arg_count ^= 3 385 then do; 386 call put ("usage: part name high/low nrec."); 387 return; 388 end; 389 call cu_$arg_ptr_rel (1, ap, al, (0), arg_list_ptr); 390 do j = 1 to label.nparts while (label.parts (j).part ^= arg); 391 end; 392 if j <= label.nparts 393 then do; 394 call put ("Cannot redefine part ^a (^d. for ^d.)^/Type ""startover"" if necessary.", arg, 395 label.parts (j).frec, label.parts (j).nrec); 396 return; 397 end; 398 399 if label.nparts >= hbound (label.parts, 1) 400 then do; 401 call put ("No more room in label for partitions"); 402 return; 403 end; 404 405 label.parts (j).part = arg; 406 call cu_$arg_ptr_rel (3, ap, al, (0), arg_list_ptr); 407 /* NREC */ 408 nrec = cv_dec_check_ (arg, ec); 409 if ec ^= 0 | nrec < 1 410 then do; 411 call put ("Bad nrec ^a.", arg); 412 return; 413 end; 414 415 call cu_$arg_ptr_rel (2, ap, al, (0), arg_list_ptr); 416 if arg = "low" 417 then do; 418 if lobase + nrec > label.vol_size 419 then do; 420 call put ("part ^a ^a ^d too big for volume", label.parts (j).part, arg, nrec); 421 return; 422 end; 423 label.parts (j).frec = lobase; 424 lobase = lobase + nrec; 425 baseadd = -1; 426 end; 427 else if arg = "high" 428 then do; 429 if hibase - nrec < lobase + VTOC_ORIGIN 430 then do; /* doesn't account for vtoc */ 431 call put ("part ^a ^a ^d too big for volume", label.parts (j).part, arg, nrec); 432 return; 433 end; 434 hibase = hibase - nrec; 435 label.parts (j).frec = hibase; 436 end; 437 else do; 438 call put ("^a neither high nor low", arg); 439 return; 440 end; 441 num_pages = num_pages - nrec; 442 label.parts (j).nrec = nrec; 443 if j > label.nparts 444 then label.nparts = j; 445 end part_rq; 446 447 vtoc_rq: 448 procedure (Info_ptr); 449 450 declare Info_ptr pointer; 451 declare vtoc_entry bit (1) aligned; 452 declare arg_count fixed bin, 453 arg_list_ptr pointer, 454 al fixed bin (21), 455 ap pointer, 456 arg char (al) based (ap); 457 458 vtoc_entry = "1"b; 459 go to COMMON; 460 461 nvtoce_rq: 462 entry (Info_ptr); 463 464 vtoc_entry = "0"b; 465 466 COMMON: 467 arg_list_ptr = Info_ptr -> ss_info.arg_list_ptr; 468 call cu_$arg_count_rel (arg_count, arg_list_ptr, (0)); 469 470 if arg_count ^= 1 471 then do; 472 call put ("Usage: ^[nvtoce N_VTOCEs^;vtoc N_VTOC_RECORDS^]", vtoc_entry); 473 return; 474 end; 475 476 call cu_$arg_ptr_rel (1, ap, al, (0), arg_list_ptr); 477 j = cv_dec_check_ (arg, ec); 478 if ec ^= 0 | j < VTOC_ORIGIN + 1 479 then do; 480 call put ("Bad vtoc size: ^a", arg); 481 return; 482 end; 483 484 if ^vtoc_entry /* nvtoces */ 485 then j = ceil (j / VTOCES_PER_RECORD (loc_dev_type)) + VTOC_ORIGIN; 486 487 if (j - VTOC_ORIGIN) * VTOCES_PER_RECORD (loc_dev_type) > MAX_VTOCE_PER_PACK 488 then do; 489 if vtoc_entry 490 then call put ("Input value too large, max vtoc size is ^d records.", 491 (MAX_VTOCE_PER_PACK / VTOCES_PER_RECORD (loc_dev_type)) + VTOC_ORIGIN); 492 else call put ("Input value to large, max nvtoce is ^d.", MAX_VTOCE_PER_PACK); 493 return; 494 end; 495 if asl_given 496 then do; 497 asl_given = "0"b; 498 call put ("Using VTOC size constraint instead of seg. length constraint."); 499 end; 500 501 vtoc_constrained = "1"b; 502 503 vtoc_size = j; 504 end vtoc_rq; 505 506 help_rq: 507 procedure (Info_ptr); 508 dcl Info_ptr ptr; 509 510 call put ("Requests are:^/^5xstartover, ^[default^;quit^], part, list, avg, vtoc, nvtoce, ^[lace, ^]or end.", 511 bootload_sw, rebuild_call); 512 513 end help_rq; 514 515 516 Find_Request: 517 procedure (Info_ptr, Command, Code) returns (entry); 518 519 declare Command character (*); 520 declare Code fixed bin (35); /* not used -- we nonlocal goto instead */ 521 declare Info_ptr pointer; 522 523 Code = 0; 524 525 if Command = "part" 526 then return (part_rq); 527 else if Command = "startover" 528 then return (startover_rq); 529 else if Command = "list" | Command = "ls" 530 then return (list_rq); 531 else if Command = "avg" | Command = "asl" 532 then return (asl_rq); 533 else if Command = "vtoc" 534 then return (vtoc_rq); 535 else if Command = "nvtoce" 536 then return (nvtoce_rq); 537 else if rebuild_call & Command = "lace" 538 then return (lace_rq); 539 else if ^bootload_sw & Command = "quit" 540 then return (quit_rq); 541 else if bootload_sw & Command = "default" 542 then return (default_rq); 543 else if Command = "end" 544 then return (end_rq); 545 else if Command = "help" 546 then return (help_rq); 547 else do; 548 call put ("Unknown request ""^a""", Command); 549 return (help_rq); 550 end; 551 end Find_Request; 552 553 eval_vtoc_size: 554 proc; 555 556 if vtoc_constrained 557 then asl = (num_pages - vtoc_size) / ((vtoc_size - VTOC_ORIGIN) * VTOCES_PER_RECORD (loc_dev_type)); 558 else do; 559 vtoc_size = 560 (num_pages + asl * VTOCES_PER_RECORD (loc_dev_type) * VTOC_ORIGIN) 561 / (1 + asl * VTOCES_PER_RECORD (loc_dev_type)) + .5; 562 /* I got A's in algebra */ 563 vtoc_size = min (vtoc_size, (MAX_VTOCE_PER_PACK / VTOCES_PER_RECORD (loc_dev_type)) + VTOC_ORIGIN); 564 end; 565 end eval_vtoc_size; 566 567 prompt_read: 568 procedure (prompt, result); 569 dcl prompt char (*); 570 dcl result char (*); 571 572 if bootload_sw 573 then call prompt_read_bootload (prompt, result); 574 else call prompt_read_iox (prompt, result); 575 return; 576 577 prompt_read_bootload: 578 procedure (prompt, result); 579 dcl prompt char (*); 580 dcl result char (*); 581 582 call bce_query (result, "^a ", prompt); /* sp cause ^a rtrims */ 583 return; 584 end prompt_read_bootload; 585 586 prompt_read_iox: 587 procedure (prompt, result); 588 dcl prompt char (*); 589 dcl result char (*); 590 dcl code fixed bin (35); 591 dcl n_read fixed bin (21); 592 dcl error_table_$long_record 593 fixed bin (35) ext static; 594 595 REREAD: 596 call ioa_$nnl ("^a", prompt); 597 result = ""; 598 call iox_$get_line (iox_$user_input, addr (result), length (result), n_read, code); 599 if code = error_table_$long_record 600 then do; 601 call ioa_ ("Line too long. Please reenter."); 602 go to REREAD; 603 end; 604 else if n_read = 0 605 then go to REREAD; 606 return; 607 end prompt_read_iox; 608 end prompt_read; 609 610 RETURN: 611 return; 612 613 /* format: off */ 614 /* BEGIN include file bce_partition_layout.incl.pl1 1 2*This is the layout of the bce partition for bootload Multics. 1 3*Written September 1983 by Keith Loepere. */ 1 4 1 5 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 1 6 1 7 dcl BCE_PART_LTH init (2200) fixed bin internal static options (constant); /* This is the default value. */ 1 8 dcl SAVED_IMAGE_RECORDX init (0) fixed bin internal static options (constant); 1 9 dcl CRASH_HANDLER_RECORDX init (512) fixed bin internal static options (constant); 1 10 dcl BCE_PAGING_AREA_RECORDX init (1024) fixed bin internal static options (constant); 1 11 dcl BCE_PAGING_AREA_LTH init (128) fixed bin internal static options (constant); 1 12 dcl MST_AREA_RECORDX init (1152) fixed bin internal static options (constant); 1 13 1 14 /* END include file bce_partition_layout.incl.pl1 */ 614 615 /* Begin include file bce_subsystem_info_.incl.pl1 BIM 11/82 */ 2 2 2 3 /* format: style3 */ 2 4 2 5 /* Deleted unused items, Keith Loepere, 5/84 */ 2 6 2 7 2 8 /****^ HISTORY COMMENTS: 2 9* 1) change(86-04-22,Farley), approve(86-07-18,MCR7439), 2 10* audit(86-10-08,Fawcett), install(86-10-20,MR12.0-1189): 2 11* Added request_handling_opr_aborts flag for save/restore. 2 12* END HISTORY COMMENTS */ 2 13 2 14 declare ss_info_ptr pointer; 2 15 declare 1 ss_info aligned based (ss_info_ptr), 2 16 2 request_table_ptr 2 17 pointer, 2 18 2 abort_label label, 2 19 2 name char (32) unaligned, 2 20 2 arg_list_ptr pointer, 2 21 2 info_ptr pointer, 2 22 2 flags aligned, 2 23 3 forbid_semicolons bit (1) unaligned, 2 24 3 request_handling_opr_aborts bit (1) unaligned; 2 25 2 26 /* End include file bce_subsystem_info_ */ 615 616 /* BEGIN INCLUDE FILE...disk_pack.incl.pl1 Last Modified January 1982 for new volume map */ 3 2 3 3 3 4 3 5 3 6 /****^ HISTORY COMMENTS: 3 7* 1) change(86-01-14,Fawcett), approve(86-05-13,MCR7383), 3 8* audit(86-05-14,LJAdams), install(86-07-18,MR12.0-1098): 3 9* Add vars PAGE_SIZE and VTOCE_SIZE, Also change the SECTORS_PER_VTOCE and 3 10* VTOCES_PER_RECORD form fixed bin constants to arrays of fixed bin 3 11* constants indexed by device type as defined in fs_dev_types.incl.pl1. 3 12* This was done for support of the 3380, and 3390 devices for 512_WORD_IO. 3 13* 2) change(86-10-21,Fawcett), approve(86-10-21,MCR7533), 3 14* audit(86-10-21,Farley), install(86-10-22,MR12.0-1193): 3 15* Change PAGE_SIZE and VTOCE_SIZE from automatic to static constants. 3 16* END HISTORY COMMENTS */ 3 17 3 18 3 19 /* 3 20* All disk packs have the standard layout described below: 3 21* 3 22* Record 0 : contains the label, as declared in fs_vol_label.incl.pl1. 3 23* Record 1 to 3 : contains the volume map, as declared in vol_map.incl.pl1 3 24* Record 4 to 5 : contains the dumper bit map, as declared in dumper_bit_map.incl.pl1 3 25* Record 6 : contains the vtoc map, as declared in vtoc_map.incl.pl1 3 26* Record 7 : formerly contained bad track list; no longer used. 3 27* Records 8 to n-1 : contain the array of vtoc entries; ( n is specified in the label) 3 28* each record contains 5 192-word vtoc entries. The last 64 words are unused. 3 29* Records n to N-1 : contain the pages of the Multics segments. ( N is specified in the label) 3 30* 3 31* Sundry partitions may exist within the region n to N-1, withdrawn or not as befits the meaning 3 32* of the particular partition. 3 33* 3 34* 3 35* 3 36* A conceptual declaration for a disk pack could be: 3 37* 3 38* dcl 1 disk_pack, 3 39* 2 label_record (0 : 0) bit(36 * 1024), 3 40* 2 volume_map_record (1 : 3) bit(36 * 1024), 3 41* 2 dumper_bit_map_record (4 : 5) bit(36 * 1024), 3 42* 2 vtoc_map_record (6 : 6) bit(36 * 1024), 3 43* 2 spare_record (7 : 7) bit(36 * 1024), 3 44* 2 vtoc_array_records (8 : n-1), 3 45* 3 vtoc_entry ( 5 ) bit(36 * 192), 3 46* 3 unused bit(36 * 64), 3 47* 2 Multics_pages_records (n : N-1) bit(36 * 1024); 3 48* 3 49* 3 50* 3 51* 3 52**/ 3 53 3 54 dcl (LABEL_ADDR init (0), /* Address of Volume Label */ 3 55 VOLMAP_ADDR init (1), /* Address of first Volume Map record */ 3 56 DUMPER_BIT_MAP_ADDR init (4), /* For initial release compaitiblity */ 3 57 VTOC_MAP_ADDR init (6), /* Address of first VTOC Map Record */ 3 58 VTOC_ORIGIN init (8), /* Address of first record of VTOC */ 3 59 DEFAULT_HCPART_SIZE init (1000), /* Size of Hardcore Partition */ 3 60 MAX_VTOCE_PER_PACK init (31774)) /* Limited by size of VTOC Map */ 3 61 fixed bin (17) int static options (constant); 3 62 3 63 /* SECTORS_PER_VTOCE & VTOCES_PER_RECORD are indexed via device type as */ 3 64 /* defined by fs_dev_types and extracted form the disk_table entry (dte) */ 3 65 /* or the physical volume table entry (pvte) device type. */ 3 66 3 67 dcl PAGE_SIZE fixed bin (17) init (1024) static options (constant); 3 68 dcl VTOCE_SIZE fixed bin (17) init (192) static options (constant); 3 69 3 70 dcl SECTORS_PER_VTOCE (9) fixed bin static options (constant) init 3 71 (0, 3, 3, 3, 3, 3, 3, 1, 1); 3 72 dcl VTOCES_PER_RECORD (9) fixed bin static options (constant) init 3 73 (0, 5, 5, 5, 5, 5, 5, 2, 2); 3 74 dcl SECTORS_PER_RECORD (9) fixed bin static options (constant) init 3 75 (0, 16, 16, 16, 16, 16, 16, 2, 2); 3 76 3 77 /* END INCLUDE FILE...disk_pack.incl.pl1 */ 616 617 /* Begin include file ...... fs_dev_types.incl.pl1 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 4 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 4 6* Add support for FIPS 4 7* 3380. 4 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 4 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 4 10* Add the support for subvolumes for the MSU3380 and MSU3390. 4 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 4 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 4 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 4 14* END HISTORY COMMENTS */ 4 15 4 16 /* Modified 5/19/76 by N. I. Morris */ 4 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 4 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 4 19 /* Modified '82 by BIM for needs_alt_part */ 4 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 4 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 4 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 4 23* volmap and record stock can be expanded. */ 4 24 4 25 /* 4 26******************************************************************************** 4 27** * 4 28** WARNING: * 4 29** * 4 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 4 31** type is added. * 4 32** * 4 33** There are other include files that contain arrays indexed by the device * 4 34** index obtained by references to MODELX or MODELN in this include file. * 4 35** These must be modified when a new device type is added: * 4 36** disk_pack.incl.pl1 * 4 37** fs_dev_types_sector.incl.pl1 (included in this include) * 4 38** * 4 39******************************************************************************** 4 40**/ 4 41 4 42 4 43 dcl (maxdevt init (9), /* maximum legal devt */ 4 44 bulkdevt init (1), /* bulk store devt */ 4 45 msu0500devt init (2), /* MSU0500 device type */ 4 46 msu0451devt init (3), /* MSU0451 device type */ 4 47 msu0450devt init (3), /* MSU0450 device type */ 4 48 msu0400devt init (4), /* MSU0400 device type */ 4 49 dsu191devt init (4), /* DSU191 device type */ 4 50 dsu190devt init (5), /* DSU190 device type */ 4 51 dsu181devt init (6), /* DSU181 device type */ 4 52 msu0501devt init (7), /* MSU0501 device type */ 4 53 fips3380devt init (8), /* 3380D FIPS device type */ 4 54 fips3381devt init (9) /* 3380E FIPS device type */ 4 55 ) fixed bin (4) static options (constant); 4 56 4 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 4 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 4 59 4 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 4 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 4 62 4 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 4 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 4 65 4 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 4 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 4 68 4 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 4 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 4 71 4 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 4 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 4 74 4 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 4 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 4 77 4 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 4 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 4 80 4 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 4 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 4 83 4 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 4 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 4 86 4 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 4 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 4 89 4 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 4 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 4 92 4 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 4 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 4 95 4 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 4 97 ("abc"); 4 98 4 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 4 100 init ("a","b","c"); 4 101 4 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 4 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 4 104 4 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 4 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 4 107 4 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 4 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 4 110 4 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 4 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 4 113 4 114 4 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 4 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 4 117 4 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 4 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 4 120 4 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 4 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 4 123 4 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 4 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 4 126 4 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 4 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 4 129 4 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 4 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 4 132 4 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 4 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 4 135 4 136 dcl last_physical_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector on device (includes T&D cylinders) */ 4 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 4 138 4 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 4 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 4 141 5 1 /* Begin fs_dev_types_sector.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 5 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 5 7* Add the sector differance for devices that do 64 word IO and devices that 5 8* do 512 word IO. 5 9* END HISTORY COMMENTS */ 5 10 5 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 5 12* need all the data in fs_dev_types. This is also included in 5 13* fs_dev_types.incl.pl1 */ 5 14 5 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 5 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 5 17 5 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 5 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 5 20 5 21 dcl sect_per_rec (9) fixed bin static options (constant) init 5 22 /* table of # of sectors per record on each device */ 5 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 5 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 5 25 5 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 5 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 5 28 5 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 5 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 5 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 5 32 5 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 5 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 5 35 5 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 5 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 5 38 5 39 /* End fs_dev_types_sector.incl.pl1 */ 5 40 4 142 4 143 4 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 617 618 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 6 2 6 3 /****^ HISTORY COMMENTS: 6 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 6 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 6 6* Add the subvolume info. 6 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 6 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 6 9* Added inconsistent_dbm bit used to determine consistency of volume 6 10* dumper bit maps. 6 11* END HISTORY COMMENTS */ 6 12 6 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 6 14 /* Note: fsout_vol clears pad fields before writing the label */ 6 15 6 16 dcl labelp ptr; 6 17 6 18 dcl 1 label based (labelp) aligned, 6 19 6 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 6 21 6 22 2 gcos (5*64) fixed bin, 6 23 6 24 /* Now we have the Multics label */ 6 25 6 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 6 27 2 version fixed bin, /* Version 1 */ 6 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 6 29 2 pv_name char (32), /* Physical volume name. */ 6 30 2 lv_name char (32), /* Name of logical volume for pack */ 6 31 2 pvid bit (36), /* Unique ID of this pack */ 6 32 2 lvid bit (36), /* unique ID of its logical vol */ 6 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 6 34 2 time_registered fixed bin (71), /* time imported to system */ 6 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 6 36 2 vol_size fixed bin, /* total size of volume, in records */ 6 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 6 38 2 not_used bit (1) unal, /* used to be multiple_class */ 6 39 2 private bit (1) unal, /* TRUE if was registered as private */ 6 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 6 41 2 flagpad bit (33) unal, 6 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 6 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 6 44 2 password bit (72), /* not yet used */ 6 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 6 46 2 this_sv fixed bin, /* what subvolume number it is */ 6 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 6 48 2 pad1 (13) fixed bin, 6 49 2 time_mounted fixed bin (71), /* time mounted */ 6 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 6 51 6 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 6 53* forces a salvage if an MR10 pack is mounted on an earlier system. 6 54* */ 6 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 6 56 2 pad6 fixed bin, 6 57 6 58 2 time_salvaged fixed bin (71), /* time salvaged */ 6 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 6 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 6 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 6 62 2 pad1a (2) fixed bin, 6 63 2 err_hist_size fixed bin, /* size of pack error history */ 6 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 6 65 2 time_last_reloaded fixed bin (71), /* what it says */ 6 66 2 pad2 (40) fixed bin, 6 67 2 root, 6 68 3 here bit (1), /* TRUE if the root is on this pack */ 6 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 6 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 6 71 3 pad7 bit (1) aligned, 6 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 6 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 6 74 3 esd_state fixed bin, /* State of esd */ 6 75 2 volmap_record fixed bin, /* Begin record of volume map */ 6 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 6 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 6 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 6 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 6 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 6 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 6 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 6 83 2 pad3 (52) fixed bin, 6 84 2 nparts fixed bin, /* Number of special partitions on pack */ 6 85 2 parts (47), 6 86 3 part char (4), /* Name of partition */ 6 87 3 frec fixed bin, /* First record */ 6 88 3 nrec fixed bin, /* Number of records */ 6 89 3 pad5 fixed bin, 6 90 2 pad4 (5*64) fixed bin; 6 91 6 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 6 93 6 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 618 619 620 end fill_vol_extents_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0803.8 fill_vol_extents_.pl1 >spec>install>1110>fill_vol_extents_.pl1 614 1 07/11/84 0937.3 bce_partition_layout.incl.pl1 >ldd>include>bce_partition_layout.incl.pl1 615 2 10/21/86 1251.6 bce_subsystem_info_.incl.pl1 >ldd>include>bce_subsystem_info_.incl.pl1 616 3 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1 617 4 10/30/86 2010.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1 4-142 5 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 618 6 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.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. BCE_PART_LTH 000057 constant fixed bin(17,0) initial dcl 1-7 set ref 184 184 227 229* Code parameter fixed bin(35,0) dcl 520 set ref 516 523* Command parameter char packed unaligned dcl 519 set ref 516 525 527 529 529 531 531 533 535 537 539 541 543 545 548* DEFAULT_RPV_BOS_SIZE_char 000062 constant char(3) initial packed unaligned dcl 71 set ref 180* DEFAULT_RPV_CONF_SIZE_char 000064 constant char(1) initial packed unaligned dcl 71 set ref 173* DEFAULT_RPV_DUMP_SIZE_char 000060 constant char(4) initial packed unaligned dcl 71 set ref 181* DEFAULT_RPV_FILE_SIZE_char 000061 constant char(3) initial packed unaligned dcl 71 set ref 183* DEFAULT_RPV_HC_SIZE_char 000065 constant char(4) initial packed unaligned dcl 71 set ref 172* DEFAULT_RPV_LOG_SIZE_char 000063 constant char(3) initial packed unaligned dcl 71 set ref 182* High_Low parameter char packed unaligned dcl 364 ref 361 Info_ptr parameter pointer dcl 310 in procedure "lace_rq" ref 308 317 Info_ptr parameter pointer dcl 152 in procedure "startover_rq" ref 150 Info_ptr parameter pointer dcl 521 in procedure "Find_Request" ref 516 Info_ptr parameter pointer dcl 338 in procedure "list_rq" ref 336 Info_ptr parameter pointer dcl 168 in procedure "default_rq" ref 166 Info_ptr parameter pointer dcl 189 in procedure "end_rq" ref 187 Info_ptr parameter pointer dcl 354 in procedure "quit_rq" ref 352 Info_ptr parameter pointer dcl 508 in procedure "help_rq" ref 506 Info_ptr parameter pointer dcl 375 in procedure "part_rq" ref 373 382 Info_ptr parameter pointer dcl 450 in procedure "vtoc_rq" ref 447 461 466 Info_ptr parameter pointer dcl 276 in procedure "asl_rq" ref 274 283 MAX_VTOCE_PER_PACK 000056 constant fixed bin(17,0) initial dcl 3-54 set ref 487 489 492* 563 NORMAL_ASL constant float bin(27) initial dcl 69 ref 158 Name parameter char packed unaligned dcl 364 ref 361 RPV_ASL constant float bin(27) initial dcl 70 ref 171 Size parameter char packed unaligned dcl 364 ref 361 VTOCES_PER_RECORD 000045 constant fixed bin(17,0) initial array dcl 3-72 ref 267 342 484 487 489 556 559 559 563 VTOC_ORIGIN constant fixed bin(17,0) initial dcl 3-54 ref 267 342 429 478 484 487 489 556 559 563 a_baseadd parameter fixed bin(17,0) dcl 43 set ref 14 118 265* a_code parameter fixed bin(35,0) dcl 40 set ref 14 268* 357* a_defaultsw parameter bit(1) dcl 45 ref 14 112 118 a_device_type parameter fixed bin(17,0) dcl 41 ref 14 107 118 125 a_labelp parameter pointer dcl 42 ref 14 106 118 121 a_num_pages parameter fixed bin(17,0) dcl 43 set ref 14 118 266* a_nvtoce parameter fixed bin(17,0) dcl 43 set ref 14 118 267* abort_label 2 based label variable level 2 dcl 2-15 set ref 135* addr builtin function dcl 93 ref 132 369 369 598 598 al 000106 automatic fixed bin(21,0) dcl 311 in procedure "lace_rq" set ref 325* 327 327 330 330 al 000104 automatic fixed bin(21,0) dcl 452 in procedure "vtoc_rq" set ref 476* 477 477 480 480 al 000106 automatic fixed bin(21,0) dcl 279 in procedure "asl_rq" set ref 290* 293 297 297 al 000104 automatic fixed bin(21,0) dcl 376 in procedure "part_rq" set ref 389* 390 394 394 405 406* 408 408 411 411 415* 416 420 420 427 431 431 438 438 ap 000106 automatic pointer dcl 376 in procedure "part_rq" set ref 389* 390 394 405 406* 408 411 415* 416 420 427 431 438 ap 000106 automatic pointer dcl 452 in procedure "vtoc_rq" set ref 476* 477 480 ap 000104 automatic pointer dcl 279 in procedure "asl_rq" set ref 290* 293 297 ap 000104 automatic pointer dcl 311 in procedure "lace_rq" set ref 325* 327 330 arg based char packed unaligned dcl 452 in procedure "vtoc_rq" set ref 477* 480* arg based char packed unaligned dcl 376 in procedure "part_rq" set ref 390 394* 405 408* 411* 416 420* 427 431* 438* arg based char packed unaligned dcl 311 in procedure "lace_rq" set ref 327* 330* arg based char packed unaligned dcl 279 in procedure "asl_rq" set ref 293 297* arg_count 000100 automatic fixed bin(17,0) dcl 277 in procedure "asl_rq" set ref 284* 285 arg_count 000101 automatic fixed bin(17,0) dcl 452 in procedure "vtoc_rq" set ref 468* 470 arg_count 000100 automatic fixed bin(17,0) dcl 311 in procedure "lace_rq" set ref 318* 319 arg_count 000100 automatic fixed bin(17,0) dcl 376 in procedure "part_rq" set ref 383* 384 arg_list_ptr 16 based pointer level 2 in structure "ss_info" dcl 2-15 in procedure "fill_vol_extents_" set ref 137* 283 317 382 466 arg_list_ptr 000102 automatic pointer dcl 376 in procedure "part_rq" set ref 382* 383* 389* 406* 415* arg_list_ptr 000102 automatic pointer dcl 452 in procedure "vtoc_rq" set ref 466* 468* 476* arg_list_ptr 000100 automatic pointer dcl 363 in procedure "part_side_door" set ref 367* 368 arg_list_ptr 000102 automatic pointer dcl 278 in procedure "asl_rq" set ref 283* 284* 290* arg_list_ptr 000102 automatic pointer dcl 311 in procedure "lace_rq" set ref 317* 318* 325* asl 000174 automatic float bin(27) dcl 89 set ref 158* 171* 293* 293 295 341* 556* 559 559 asl_given 000163 automatic bit(1) packed unaligned dcl 53 set ref 155* 304* 495 497* baseadd 000167 automatic fixed bin(18,0) dcl 85 set ref 154* 207 207* 209* 265 425* bce 2 000100 automatic bit(1) level 2 dcl 190 set ref 226* 255 bce_command_processor_ 000032 constant entry external dcl 63 ref 145 bce_query 000014 constant entry external dcl 56 ref 582 bootload_sw 000101 automatic bit(1) dcl 49 set ref 108* 124* 253 268 510* 539 541 572 bos 1 000100 automatic bit(1) level 2 dcl 190 set ref 213* ceil builtin function dcl 94 ref 484 char builtin function dcl 95 ref 174 174 184 184 code 000206 automatic fixed bin(35,0) dcl 91 in procedure "fill_vol_extents_" set ref 145* 146 146 code 000242 automatic fixed bin(35,0) dcl 590 in procedure "prompt_read_iox" set ref 598* 599 conf 0(01) 000100 automatic bit(1) level 2 packed packed unaligned dcl 190 set ref 217* 255 conversion 000000 stack reference condition dcl 66 ref 292 294 convert builtin function dcl 96 ref 293 cu_$arg_count_rel 000024 constant entry external dcl 60 ref 284 318 383 468 cu_$arg_list_ptr 000022 constant entry external dcl 59 ref 367 cu_$arg_ptr_rel 000026 constant entry external dcl 61 ref 290 325 389 406 415 476 cv_dec_check_ 000030 constant entry external dcl 62 ref 327 408 477 divide builtin function dcl 97 ref 174 174 ec 000165 automatic fixed bin(35,0) dcl 67 set ref 327* 328 408* 409 477* 478 error_table_$action_not_performed 000034 external static fixed bin(35,0) dcl 355 ref 357 error_table_$long_record 000036 external static fixed bin(35,0) dcl 592 ref 599 file 3 000100 automatic bit(1) level 2 dcl 190 set ref 235* 255 first_alt_sect_num 000022 constant fixed bin(24,0) initial array dcl 4-130 ref 174 174 flags 22 based structure level 2 dcl 2-15 set ref 139* forbid_semicolons 22 based bit(1) level 3 packed packed unaligned dcl 2-15 set ref 140* found 000100 automatic structure level 1 dcl 190 set ref 197* frec 1005 based fixed bin(17,0) array level 3 dcl 6-18 set ref 243 243* 243 245 347 347* 347 394* 423* 435* hbound builtin function dcl 98 ref 399 hc 000100 automatic bit(1) level 2 packed packed unaligned dcl 190 set ref 211* 255 hibase 000172 automatic fixed bin(17,0) dcl 88 set ref 157* 429 434* 434 435 inbuf 000102 automatic char(120) packed unaligned dcl 51 set ref 143* 145* info_ptr 20 based pointer level 2 dcl 2-15 set ref 138* interlace parameter fixed bin(17,0) dcl 46 set ref 14 105 118 156* 333* ioa_ 000012 constant entry external dcl 55 ref 109 122 127 601 ioa_$nnl 000010 constant entry external dcl 55 ref 110 123 595 iox_$get_line 000016 constant entry external dcl 57 ref 598 iox_$user_input 000020 external static pointer dcl 58 set ref 598* j 000207 automatic fixed bin(17,0) dcl 92 set ref 210* 211 213 215 218 224 227 233 236 236 243 243 243 245 245 247* 327* 328 333 346* 347 347 347 347 347* 390* 390* 392 394 394 405 420 423 431 435 442 443 443 477* 478 484* 484 487 503 label based structure level 1 dcl 6-18 labelp 000214 automatic pointer dcl 6-16 set ref 106* 121* 153 157 200 201 201 207 209 210 211 213 215 218 224 227 233 236 236 243 243 243 243 245 245 245 247 264 264 267 342 342 344 346 347 347 347 347 347 347 390 390 392 394 394 399 399 405 418 420 423 431 435 442 443 443 503 556 556 559 563 563 last_alt_sect_num 000011 constant fixed bin(24,0) initial array dcl 4-133 ref 174 174 length builtin function dcl 99 ref 598 598 lobase 000173 automatic fixed bin(17,0) dcl 88 set ref 159* 207 243 347 418 423 424* 424 429 loc_dev_type 000100 automatic fixed bin(17,0) dcl 47 set ref 107* 125* 174 174 174 174 174 174 174 174 174 267 342 484 487 489 556 559 559 563 local_ss_info 000102 automatic structure level 1 dcl 365 set ref 369 369 ltrim builtin function dcl 100 ref 174 174 184 184 min builtin function dcl 101 ref 563 my_ss_info 000140 automatic structure level 1 dcl 52 set ref 132 n_read 000243 automatic fixed bin(21,0) dcl 591 set ref 598* 604 name 6 based char(32) level 2 packed packed unaligned dcl 2-15 set ref 136* needs_alt_part 000044 constant bit(1) initial array packed unaligned dcl 4-81 ref 174 nparts 1003 based fixed bin(17,0) level 2 dcl 6-18 set ref 153* 210 346 390 392 399 443 443* nrec 1006 based fixed bin(17,0) array level 3 in structure "label" dcl 6-18 in procedure "fill_vol_extents_" set ref 218 227 236 236 245 347* 394* 442* nrec 000171 automatic fixed bin(17,0) dcl 87 in procedure "fill_vol_extents_" set ref 408* 409 418 420* 424 429 431* 434 441 442 null builtin function dcl 102 ref 111 111 112 112 114 114 129 129 130 130 134 137 138 170 170 204 204 248 248 num_pages 000166 automatic fixed bin(18,0) dcl 68 set ref 157* 200* 200 266 344 441* 441 556 559 part 1004 based char(4) array level 3 dcl 6-18 set ref 211 213 215 224 233 247* 347* 390 405* 420* 431* parts 1004 based structure array level 2 dcl 6-18 set ref 399 prompt parameter char packed unaligned dcl 569 in procedure "prompt_read" set ref 567 572* 574* prompt parameter char packed unaligned dcl 579 in procedure "prompt_read_bootload" set ref 577 582* prompt parameter char packed unaligned dcl 588 in procedure "prompt_read_iox" set ref 586 595* put 000176 automatic entry variable dcl 90 set ref 109* 122* 146 203 220 229 238 247 257 258 287 297 301 321 330 341 342 344 345 347 386 394 401 411 420 431 438 472 480 489 492 498 510 548 put_nnl 000202 automatic entry variable dcl 90 set ref 110* 123* rebuild_call 000170 automatic bit(1) packed unaligned dcl 86 set ref 105* 114 510* 537 rec_per_cyl 000033 constant fixed bin(17,0) initial array dcl 4-108 ref 174 174 request_table_ptr based pointer level 2 dcl 2-15 set ref 134* result parameter char packed unaligned dcl 589 in procedure "prompt_read_iox" set ref 586 597* 598 598 598 598 result parameter char packed unaligned dcl 570 in procedure "prompt_read" set ref 567 572* 574* result parameter char packed unaligned dcl 580 in procedure "prompt_read_bootload" set ref 577 582* sect_per_cyl 000000 constant fixed bin(17,0) initial array dcl 5-15 ref 174 174 seek_command 000212 automatic bit(6) initial array packed unaligned dcl 4-84 set ref 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* ss_info based structure level 1 dcl 2-15 ss_info_ptr 000210 automatic pointer dcl 2-14 set ref 132* 134 135 136 137 138 139 140 145* string builtin function dcl 103 set ref 139* 197* vol_size 547 based fixed bin(17,0) level 2 dcl 6-18 ref 157 201 245 418 vtoc_constrained 000164 automatic bit(1) packed unaligned dcl 53 set ref 155* 301 303* 345* 501* 556 vtoc_entry 000100 automatic bit(1) dcl 451 set ref 458* 464* 472* 484 489 vtoc_size 550 based fixed bin(17,0) level 2 dcl 6-18 set ref 200 201 207 209 243 264* 264 267 342* 342 344 347 503* 556 556 559* 563* 563 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BCE_PAGING_AREA_LTH internal static fixed bin(17,0) initial dcl 1-11 BCE_PAGING_AREA_RECORDX internal static fixed bin(17,0) initial dcl 1-10 CRASH_HANDLER_RECORDX internal static fixed bin(17,0) initial dcl 1-9 DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 3-54 DUMPER_BIT_MAP_ADDR internal static fixed bin(17,0) initial dcl 3-54 LABEL_ADDR internal static fixed bin(17,0) initial dcl 3-54 MODEL internal static fixed bin(17,0) initial array dcl 4-57 MODELN internal static fixed bin(17,0) initial array dcl 4-63 MODELX internal static fixed bin(17,0) initial array dcl 4-60 MST_AREA_RECORDX internal static fixed bin(17,0) initial dcl 1-12 Multics_ID_String internal static char(32) initial packed unaligned dcl 6-92 PAGE_SIZE internal static fixed bin(17,0) initial dcl 3-67 SAVED_IMAGE_RECORDX internal static fixed bin(17,0) initial dcl 1-8 SECTORS_PER_RECORD internal static fixed bin(17,0) initial array dcl 3-74 SECTORS_PER_VTOCE internal static fixed bin(17,0) initial array dcl 3-70 VOLMAP_ADDR internal static fixed bin(17,0) initial dcl 3-54 VTOCE_SIZE internal static fixed bin(17,0) initial dcl 3-68 VTOC_MAP_ADDR internal static fixed bin(17,0) initial dcl 3-54 bulkdevt internal static fixed bin(4,0) initial dcl 4-43 cyl_per_dev internal static fixed bin(17,0) initial array dcl 4-102 cyl_per_sv internal static fixed bin(17,0) initial array dcl 4-105 dev_time internal static float bin(27) initial array dcl 4-139 device_names internal static char(4) initial array dcl 4-66 dsu181devt internal static fixed bin(4,0) initial dcl 4-43 dsu190devt internal static fixed bin(4,0) initial dcl 4-43 dsu191devt internal static fixed bin(4,0) initial dcl 4-43 fips3380devt internal static fixed bin(4,0) initial dcl 4-43 fips3381devt internal static fixed bin(4,0) initial dcl 4-43 fips_type_disk internal static bit(1) initial array packed unaligned dcl 4-72 first_dev_number internal static fixed bin(17,0) initial array dcl 4-69 first_rec_num internal static fixed bin(17,0) initial array dcl 4-115 first_sect_num internal static fixed bin(24,0) initial array dcl 4-124 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 4-136 last_rec_num internal static fixed bin(18,0) initial array dcl 4-118 last_sect_num internal static fixed bin(24,0) initial array dcl 4-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 4-121 maxdevt internal static fixed bin(4,0) initial dcl 4-43 media_removable internal static bit(1) initial array packed unaligned dcl 4-75 msu0400devt internal static fixed bin(4,0) initial dcl 4-43 msu0450devt internal static fixed bin(4,0) initial dcl 4-43 msu0451devt internal static fixed bin(4,0) initial dcl 4-43 msu0500devt internal static fixed bin(4,0) initial dcl 4-43 msu0501devt internal static fixed bin(4,0) initial dcl 4-43 number_of_sv internal static fixed bin(17,0) initial array dcl 4-93 rec_per_dev internal static fixed bin(21,0) initial array dcl 4-87 rec_per_sv internal static fixed bin(17,0) initial array dcl 4-90 sect_per_rec internal static fixed bin(17,0) initial array dcl 5-21 sect_per_sv internal static fixed bin(24,0) initial array dcl 5-18 sect_per_track internal static fixed bin(17,0) initial array dcl 5-33 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 5-26 shared_spindle internal static bit(1) initial array packed unaligned dcl 4-78 tracks_per_cyl internal static fixed bin(17,0) initial array dcl 4-111 valid_sv_array internal static char(1) initial array packed unaligned dcl 4-99 valid_sv_string internal static char(3) initial packed unaligned dcl 4-96 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 5-29 words_per_sect internal static fixed bin(17,0) initial array dcl 5-36 NAMES DECLARED BY EXPLICIT CONTEXT. COMMON 004002 constant label dcl 466 ref 459 Find_Request 004333 constant entry internal dcl 516 ref 145 145 LISTEN 001225 constant label dcl 132 ref 116 LISTEN_again 001244 constant label dcl 143 ref 135 205 249 REREAD 005040 constant label dcl 595 ref 602 604 RETURN 001323 constant label dcl 610 set ref 270 358 asl_rq 002335 constant entry internal dcl 274 ref 531 badavg 002463 constant label dcl 297 ref 292 cold_rpv 001144 constant entry external dcl 118 default_rq 001354 constant entry internal dcl 166 ref 129 541 end_rq 001743 constant entry internal dcl 187 ref 112 543 eval_vtoc_size 004602 constant entry internal dcl 553 ref 199 340 fill_vol_extents_ 001046 constant entry external dcl 14 help_rq 004300 constant entry internal dcl 506 ref 545 549 lace_rq 002535 constant entry internal dcl 308 ref 537 list_rq 002712 constant entry internal dcl 336 ref 114 130 529 nvtoce_rq 003774 constant entry internal dcl 461 ref 535 part_rq 003221 constant entry internal dcl 373 ref 369 525 part_side_door 003151 constant entry internal dcl 361 ref 172 173 174 180 181 182 183 184 prompt_read 004677 constant entry internal dcl 567 ref 143 prompt_read_bootload 004756 constant entry internal dcl 577 ref 572 prompt_read_iox 005022 constant entry internal dcl 586 ref 574 quit_rq 003134 constant entry internal dcl 352 ref 539 startover_rq 001325 constant entry internal dcl 150 ref 111 170 204 248 527 vtoc_rq 003763 constant entry internal dcl 447 ref 533 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5472 5532 5162 5502 Length 6112 5162 40 344 310 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fill_vol_extents_ 266 external procedure is an external procedure. startover_rq 65 internal procedure is assigned to an entry variable. default_rq 93 internal procedure is assigned to an entry variable. end_rq 137 internal procedure is assigned to an entry variable. asl_rq 266 internal procedure is assigned to an entry variable, and enables or reverts conditions. on unit on line 292 64 on unit lace_rq 116 internal procedure is assigned to an entry variable. list_rq 134 internal procedure is assigned to an entry variable. quit_rq 64 internal procedure is assigned to an entry variable. part_side_door 100 internal procedure is called during a stack extension, and is declared options(non_quick). part_rq 142 internal procedure is assigned to an entry variable. vtoc_rq 138 internal procedure is assigned to an entry variable. help_rq 104 internal procedure is assigned to an entry variable. Find_Request 84 internal procedure is assigned to an entry variable. eval_vtoc_size 68 internal procedure is called by several nonquick procedures. prompt_read internal procedure shares stack frame of external procedure fill_vol_extents_. prompt_read_bootload internal procedure shares stack frame of external procedure fill_vol_extents_. prompt_read_iox internal procedure shares stack frame of external procedure fill_vol_extents_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME asl_rq 000100 arg_count asl_rq 000102 arg_list_ptr asl_rq 000104 ap asl_rq 000106 al asl_rq end_rq 000100 found end_rq fill_vol_extents_ 000100 loc_dev_type fill_vol_extents_ 000101 bootload_sw fill_vol_extents_ 000102 inbuf fill_vol_extents_ 000140 my_ss_info fill_vol_extents_ 000163 asl_given fill_vol_extents_ 000164 vtoc_constrained fill_vol_extents_ 000165 ec fill_vol_extents_ 000166 num_pages fill_vol_extents_ 000167 baseadd fill_vol_extents_ 000170 rebuild_call fill_vol_extents_ 000171 nrec fill_vol_extents_ 000172 hibase fill_vol_extents_ 000173 lobase fill_vol_extents_ 000174 asl fill_vol_extents_ 000176 put fill_vol_extents_ 000202 put_nnl fill_vol_extents_ 000206 code fill_vol_extents_ 000207 j fill_vol_extents_ 000210 ss_info_ptr fill_vol_extents_ 000212 seek_command fill_vol_extents_ 000214 labelp fill_vol_extents_ 000242 code prompt_read_iox 000243 n_read prompt_read_iox lace_rq 000100 arg_count lace_rq 000102 arg_list_ptr lace_rq 000104 ap lace_rq 000106 al lace_rq part_rq 000100 arg_count part_rq 000102 arg_list_ptr part_rq 000104 al part_rq 000106 ap part_rq part_side_door 000100 arg_list_ptr part_side_door 000102 local_ss_info part_side_door vtoc_rq 000100 vtoc_entry vtoc_rq 000101 arg_count vtoc_rq 000102 arg_list_ptr vtoc_rq 000104 al vtoc_rq 000106 ap vtoc_rq THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_l_a r_g_a alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out call_int_this call_int_other_desc call_int_other return_mac move_label_var make_label_var fl2_to_fx1 tra_ext_1 enable_op shorten_stack ext_entry int_entry int_entry_desc trunc_fx2 ceil_fx2 any_to_any_round_ divide_fx1 divide_fx2 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bce_command_processor_ bce_query cu_$arg_count_rel cu_$arg_list_ptr cu_$arg_ptr_rel cv_dec_check_ ioa_ ioa_$nnl iox_$get_line THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$long_record iox_$user_input LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 4 84 000746 14 001037 105 001054 106 001060 107 001063 108 001065 109 001066 110 001073 111 001076 112 001106 114 001122 116 001135 118 001136 121 001152 122 001156 123 001163 124 001166 125 001170 127 001172 129 001205 130 001215 132 001225 134 001227 135 001231 136 001234 137 001237 138 001240 139 001241 140 001242 143 001244 145 001253 146 001303 148 001322 610 001323 150 001324 153 001332 154 001335 155 001337 156 001341 157 001344 158 001347 159 001351 160 001352 166 001353 170 001361 171 001372 172 001375 173 001422 174 001447 180 001540 181 001566 182 001612 183 001637 184 001663 185 001740 187 001742 197 001750 199 001753 200 001760 201 001764 203 001767 204 002002 205 002013 207 002016 209 002025 210 002027 211 002040 213 002054 215 002064 217 002067 218 002071 220 002074 221 002107 223 002110 224 002111 226 002116 227 002120 229 002123 230 002142 232 002143 233 002144 235 002147 236 002151 238 002156 239 002171 243 002172 245 002202 247 002206 248 002225 249 002236 251 002241 253 002243 255 002246 257 002260 258 002273 259 002307 264 002310 265 002313 266 002316 267 002320 268 002325 270 002331 274 002334 283 002342 284 002347 285 002362 287 002365 288 002404 290 002405 292 002427 293 002446 294 002457 295 002460 297 002463 299 002507 301 002510 303 002526 304 002531 305 002533 308 002534 317 002542 318 002547 319 002562 321 002565 322 002604 325 002605 327 002627 328 002656 330 002663 331 002705 333 002706 334 002710 336 002711 340 002717 341 002724 342 002744 344 002776 345 003025 346 003045 347 003060 349 003127 350 003132 352 003133 357 003141 358 003145 361 003150 367 003176 368 003204 369 003206 370 003217 373 003220 382 003226 383 003233 384 003246 386 003251 387 003265 389 003266 390 003310 391 003333 392 003335 394 003341 396 003374 399 003375 401 003400 402 003413 405 003414 406 003424 408 003446 409 003475 411 003502 412 003526 415 003527 416 003551 418 003557 420 003565 421 003621 423 003622 424 003627 425 003631 426 003633 427 003634 429 003640 431 003650 432 003705 434 003706 435 003710 436 003716 438 003717 439 003745 441 003746 442 003750 443 003755 445 003761 447 003762 458 003770 459 003772 461 003773 464 004001 466 004002 468 004007 470 004023 472 004026 473 004046 476 004047 477 004071 478 004120 480 004125 481 004147 484 004150 487 004165 489 004176 492 004232 493 004251 495 004252 497 004254 498 004255 501 004270 503 004273 504 004276 506 004277 510 004305 513 004331 516 004332 523 004346 525 004350 527 004363 529 004375 531 004413 533 004431 535 004443 537 004455 539 004473 541 004510 543 004524 545 004536 548 004550 549 004572 553 004601 556 004607 559 004632 563 004655 565 004676 567 004677 572 004715 574 004737 575 004755 577 004756 582 004774 583 005021 586 005022 595 005040 597 005061 598 005067 599 005112 601 005116 602 005131 604 005132 606 005134 ----------------------------------------------------------- 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